Plan9 has a GCC port on which pico compiles with a few changes. (The
changes are required because the GCC port itself is not complete!).
The binary runs with no problems.
About the lack of shared libraries on Plan9: Plan9 don't need shared
libraries because components on Plan9 can interact using just four
system calls - open, read, write and close. As an example consider a
graphics library that could be shared by various applications:
/* Pseudo C */
handle =3D LoadLibrary ("graphics.so");
CallFn (handle, "drawRect", 0, 0, 200, 200);
Close (handle);
The equivalent plan9 code will be something like this:
handle =3D open ("/sys/graphics/cntl");
cmd =3D "drawRect 0 0 200 200";
write (handle, cmd, strlen (cmd));
close (handle);
The interesting thing is that /sys/graphics/cntl/ could be on a remote
file system. This makes distributed computing easy and shared
libraries redundant.
Thanks,
-- Vijay
On Fri, Sep 3, 2010 at 1:17 PM, Mateusz Jan Przybylski
<[email protected]> wrote:
> Hi Tomas,
>
>
> On Thursday 02 September 2010 19:32:40 you wrote:
>> > makes up my daily work environment ;)
>>
>> cool. =A0I looked at it briefly but couldn't find my way around. =A0Do y=
ou
>> really use that acme editor or how it's called? =A0Is it possible to run
>> it as console only with vi (or emacs;-)?
>
> <even more ot>
>
> To clear it up, i use the `Plan 9 from User Space' (i.e., the tools porte=
d to
> POSIX).
> Mostly because of Acme -- for very quick edit/[compile/]run/open-file-wit=
h-
> error cycle, and for the Rc shell -- practical for scripting.
>
> http://swtch.com/plan9port/man/man1/install.html
>
> Acme requires GUI (it could be implemented with exact same semantics in t=
ext
> mode, I guess, but it isn't). However, it uses little bandwidth, and so i=
t's
> usual and natural to use it over network in both native Plan 9 and ported=
X11
> version. ssh -Y -C gets the job done even on slow links.
>
> It took me a few (3?) months to learn to use Acme efficiently.
>
> Acme takes a three-buttoned mouse, preferably with a scroll. It's pretty
> important to have all three physical buttons, since a lot is done via cho=
rding
> two buttons.
>
> Acme understands and uses a certain text processing language, based on se=
d's.
> It's executed via the `Edit THE_PROGRAM'.
> For example, I indent selected portion of text with:
> Edit s,^, =A0 =A0 =A0 ,g
>
> To find current selection address(es), I do
> Edit =3D
> etc.etc.
>
> You ought to have plumber up and running before you start Acme
> http://swtch.com/plan9port/man/man4/plumber.htm
> to get some extra functionality, mostly related to opening files you indi=
cate
> with rightclick.
> You want the plumber started on the same machine the Acme is running (one=
of
> POSIX limitations)
>
> My plumbing rules (the file is $HOME/lib/plumbing) are as follows:
>
> #file / line in PHP format
> type is text
> data matches '(.+) on line ([0-9]+)'
> arg isfile $1
> data set $file
> attr add addr=3D$2
> plumb to edit
>
> include /usr/local/plan9/plumb/initial.plumbing
>
>
>
>>
>> > As a curiosity, there are no shared libraries in P9 -- only what we ca=
ll
>> > `static linking'. It's awesome in the longer run <3
>>
>> What's so awesome about it?
>
> No DLL hell.
> Programs (and thus processes) and libraries are very small.
> Greater percentage of code & data fits in CPU cache. Less indirect & more
> direct data access & code calls/jumps. etc. etc.
> http://harmful.cat-v.org/software/dynamic-linking/
>
> and it avoids the worst bane of DLL so far:
> http://harmful.cat-v.org/software/dynamic-linking/versioned-symbols
>
> </even more ot>
>
> tl;dr:
> Plan 9 from User Space provides tools that may appeal to a long-time POSI=
X
> user ;-)
>
>
> Cheers,
> --
> Mateusz Jan Przybylski
>
>
> ``One can't proceed from the informal to the formal by formal means.''
> --
> UNSUBSCRIBE: mailto:[email protected]?subject=3dunsubscribe
>
--
UNSUBSCRIBE: mailto:[email protected]?subject=unsubscribe