Comments on: Greetings for 2007
REBOL Technologies

Comments on: Greetings for 2007

Carl Sassenrath, CTO
REBOL Technologies
2-Jan-2007 21:13 GMT

Article #0315
Main page || Index || Prior Article [0314] || Next Article [0316] || 17 Comments || Send feedback

I hope you had an enjoyable new year's day.

The day was quite interesting for me. I had time to gain a lot of insights and ideas... as I spent most of the day reinstalling XP and the other multiple OSes on one of my primary development systems.

It's kind of enjoyable really. A lot like fishing. You sit back for long periods, seemingly forever, and wait for the bite. It makes you want to light-up a cigar or pipe, if only those were considered healthy these days. And, as the hours pass, you actually get the chance to interact from time to time. A few nibbles here and there... enter your password or IP address. Reboot to continue.

It seems like it's going well, but inevitably, your hook gets snagged on an XP driver branch and your ethernet vanishes with your screen size maxing out at 800. So, you snap the line and start over.

Seems good... you reel in XP, but then a huge and ugly X11 fish comes along, tangles your config... only because you're not quite sure of the exact metal alloy of the hook or the radius of its curve. But, somehow you figure it out, get it untangled, and wow... you cannot imagine how good it feels to hear XFree86 engage the monitor relays at 1600.

Yes, you know it's really happening.... you are so close. The big one smells the bait. It's in the realm of possibilities now. You might even get some work done today or even eat dinner... but, along comes some nasty OpenBSD eel and devours the whole bucket of master boot records. It's all lost. "Boot failure. Insert system disk and press enter."

But... being the professional fisherman OS dude that you are, you sit back and take it in stride. Reflectively. Such is life, isn't it? After all, the year is only 2007! What do we expect by now, flying cars? What, do you think preemptive multitasking was an integral part of your OS in 1985? No, it took decades for such advances. Am I right? So, get out that regedit and start scraping those fish scales. Oh wait, you missed one... whoops... you're now part of a DoS attack.

Well... at least FireFox has improved to 2.0... and I'm editing this on Debian. So, there is much to be grateful.

The very best wishes to you for a wonderfully productive and enjoyable 2007. Some exciting things will happen this year. Let's make sure of that.



3-Jan-2007 1:20:09

what about status update upon how REBOL itself will enhance in 2007? :-)

Btw, in last PC magazine, John C. Dvorak wondered, if MS still has no clues of how to do proper multitasking, and mentioned good examples how should it be done - Amiga and OS/2 :-)

So, reading about OSes and their inefficiencies in regard to multitasking I wonder how efficient Rebol's one will be, if it is going to use OS resources. Maybe time to write own one small tasking system for REBOL? Wasn't Exec "only" 10K of assembly lines after all?

3-Jan-2007 3:41:18
Cool story. I wish fun with all these new oses on the campfire, and a happy new year. Add some bottles of Sassenranch wine, yummy :)
3-Jan-2007 4:16:18
Carl & Cindy, I wish you a happy new year : a lot of improvements in R3, more flexibility and speed, a wonderful DevCon2007, and a huge and good harvest of grapes !
Brian Wisti
3-Jan-2007 13:26:53
Sadly, my wife won't let me take the home computer fishing anymore. She needs to get work done and can't have me mucking things up at a random whim. Time to gather funds for my personal machine again so I can relive the fun.

Oh, and happy new year. Looking forward to seeing more of R3!

Carl Sassenrath
3-Jan-2007 20:42:03
Pekr: I have written a draft document regarding 3.0 and will publish it soon. But, perhaps also a larger view is required as well?

So, if you have a link to Dvorak's article, I would like to read it. Last time I talked with Dvorak he still remembered good things about the Amiga. But, I would like to know precisely what features he wants.

WRT to REBOL MT... yes, you guessed correctly, as usual. And, the reason is more than just tasking (i.e. CPU multiplexing), it is also the lower-level event/signal system. But, the tricky part is that it remains essential for REBOL to run on top of other OS's as well as stand alone.

Volker, Philippe, Brian: Thanks! And, yes, SassenRanch wine... There are now four barrels (1000L) ready and waiting to be bottled! But, of course, I will need your help drinking all of that.

4-Jan-2007 1:33:24

here's the link for John C. Dvorak's article about multitasking:

"Getting multitasking right" -,1759,2023794,00.asp

Carl, I guessed righ, what? :-) About you writing own small tasking kernel for Rebol, not just using OS threads? That sounds cool - looking forward to your document to be published. R3 blog deserves kind of New Year status report towards R3 and its state of development, plan, etc. "Projects and priorities" as well as "Rebol 3.0 roadmap" need some update too. IMO it is better to update such docs, even if schedule slips few times, because if there are some ppl coming to the site from time to time only, they can be sure, the project "feels alive" ....

4-Jan-2007 9:27:11
Fishing, eh?

My experiences with XP, TabletPC, and other M$ products remind me of boat anchors. But for Vi$ta one needs to buy a bigger boat...

I know the new REBOLs will float my boat even better.

eFishAntSea, your bouyant bottom line...using REBOL in places where wires dare not go...O-o-o<

Carl Sassenrath
4-Jan-2007 14:19
Pekr, it's an interesting article. I hear what he's saying, and I generally agree XP's tasking is poor, but I think he'll get blasted by various "experts" who will tell him he's wrong.

What I do agree with is that the task scheduler we built at HP for MPE4 in 1981 was ten times better and smarter than what's in XP in 2006. It used a multi-level multi-policy approach. It was a very good design, well instrumented and tuned to perfection. Those were the days when good design actually meant something and professionals used professional operating systems, not some hacked-up consumer-oriented abomination. The old school approach seems lost to the world these days.

Regarding the docs, I will update them. Also, I would like to do another big-picture status update doc (along with the R3.0 specific one).

Carl Sassenrath
4-Jan-2007 14:22:54
Mr. eFishAnt: LOL! - You're absolutely right, in all the currents and depths of your message. ;)
5-Jan-2007 3:52:57
Carl, to avoid all this hassle, I'm using VMs these days for my development setup (and some other VMs to minimize interferences between installations). Just copy to a new system and you are ready to go.

And, since USB sticks are now available with 4GB you can even carry this stuff around with a VM player.

Artem Hlushko
5-Jan-2007 11:15:56
WRT to REBOL MT... yes, you guessed correctly, as usual. And, the reason is more than just tasking (i.e. CPU multiplexing), it is also the lower-level event/signal system. But, the tricky part is that it remains essential for REBOL to run on top of other OS's as well as stand alone.


preemptive MT portable kernel for REBOL on the top of OS is a huge work. I wish it to be implemented in a way similar to the Inferno/Styx(9p2000). But let it happen a bit later. :)

I ask you to implement in R3 the future I want a lot - the nonpreemptive multitasking:

  • based on Hoare's CSP model
  • providing non-blocking IO
  • operating from programmer's view similar to tasks-threads, channels and alt statements in Limbo (Inferno)
Here are the resources with detail information:

"Bell Labs and CSP Threads"

"Concurrent Programming in the Bell Labs CSP Style"

Plan 9 thread(2)

"Libtask: a Coroutine Library for C and Unix"

Do you take in account future MT in Rebol now?

5-Jan-2007 14:41:55
The docs suggested are interesting. I like following part:

"Overall program does a complex job, but the individual pieces are all very simple."

It reminds me of IOS - it is a framework, based on "few individual pieces", which put toghether, can orchestrate whole world of different functionalities ....

I also like the image on page 20 of the pdf file, showing, keyboard, mouse etc. events, using parralel execution - reminds me of Amiga devices.

So, Carl, what do you think? :-)


Carl Sassenrath
5-Jan-2007 22:21:12
Hi Artem, I am familiar with Tony Hoare's work... for more than 30 years... back in the '80s before doing the Amiga kernel. (And ironically, after Amiga I was into the Transputer which used Occam... another language developed with CSP ideas.)

Although the claims are that the CSP method is cleaner and simpler, I am not so sure. CSP style uses the concept of a synchronous channel as the primitive, but there's more to it than that. It needs preset process definitions and the algebra ifself. The above primitive statement is a bit like saying all you need is TAS (test-and-set) to implement IPC. It's true, but there's more to it.

I think very few programmers understand CSP when they look at it. As proof, I would point to the two Bell labs papers above. Neither paper explains the basic CSP model, formally or informally. Both papers duck the definition.

I'm always open. I could be convinced. I would need to see a good concise, working model. It is possible that Inferno provides that example... it's been a while since I looked at Plan9... and Styx is similar to my 1984 CAOS design for Amiga (filesystem as clean access method to OS structures), but I've not studied the concurrency model, so if you have a good reference on that part, please tell me.

And yes... now is the time to figure out the MT model.

Artem Hlushko
9-Jan-2007 9:56:30
Carl, I thought about an easy way to write non-stucking (non-hunging) network anf GUI applications. I don't like to wait and if a program started long download or waits for connection. As user I want to have a control to break operation or to do something else and not to wait till timeout (i.e non-blocking GUI). As a programmer I want to do multiple communications simultaneously (i.e. non-blockin IO). As a lite way to reach this in short time (till R3 release) I propose non-preemptive tasks. Libtask library is working references to start with.

I had made a blunder: channels and alt statement need preemptive threads.

The first link in the post above contains not only talk about CSP but has references to resources on Alef language (now discarded), Limbo and "A Concurrent Window System".

Considering a long perspective (R4?) I think about Inferno model for Rebol MT kernel. (The main difference - Inferno uses virtual machine Dis and Limbo is compiled language.) Inferno can be run on bare hardware and on the top of other OSes. In the last case Inferno processes are mapped on native OS processes and Inferno threads are mapped on native threads (LWP). Under Plan 9/Unix you can see all of them running "ps".

The core part is Styx (aka 9p2000) protocol. It allows to have not only clean filesystem-like access to OS structures (/proc, /env, /mem, etc) but to write userspace fileservers and bind in uniformal way the processes from different Inferno instances running in different environments. It is incredible to use simple open-read-write-fscanf-fprintf-fgetc-fputc instead of all the hell of RPC/CORBA/DCOM/SOAP/XML-RPC and even sockets/sys5ipc/ftp/nsf/samba or VNC/X Window/Remote Assistant.

This binded multiple instances looks like one system. For exapmple, Inferno running on bare hardware and communicating via RS232 or infrared port can mount /net file system from second instance and so can have tcp/ip networking. Then it can mount Windows registry from third instance as directory and can read/write needed settings using shell echo and cat. And then it can mount other filesystem and begin to start/stop/monitor biochemical computational processes on the fourth Plan 9 256-node grid instance.

Imagine you can do all of this stuff with Rebol! Bind Rebol app on smartphone with office Windows laptop and home Mac, with Plan 9 in VMware or on powerful grid, with Rebol comunication workplace platform (Altissimo? IOS?) on Linux farm, with smart home control system implemented on Inferno.

Inferno Home

Plan 9 Documents (Volume 2)
(The first 3 articles are short and clear introduction.)

Plan 9 man pages

9-Jan-2007 11:16:22
Hi Artem,

I am no expert in such deep topics, but what you describe sounds as cool architecture. I never studied Plan9/Inferno before, just knew about it from the Amiga Tao Intent time discussions, when Amiga divorced with QNX. Have you studied QNX? What you describe sounds really similar.

Cheers, Petr

Artem Hlushko
9-Jan-2007 14:08:05
Have you studied QNX? What you describe sounds really similar.


no, I don't studied QNX, I only heard some things about. I just have done short look thought QNX QNET.

The main difference is that Plan 9/Inferno uses per-process namespaces, namespace stucture is dinamic and virtual, childs inherit namespace of the parent (depending in the parameters of rfork).

QNET just makes the resources from filesystem at other nodes available to the processes of the node. In QNX namespace is one and common for all the processes of the node:


In Plan 9/Inferno you can do the similar thing by using "import" command (see exportfs) and bind other node filesystem in any place of your namespace not only in /net. There is no concept of fileservers in QNX. 9P approach is qualitatively more flexible.

The first 3 Plan 9 articles mentioned earlier are short and very clear introduction into the subject.

And you can't run QNX on the top of MS Windows or Linux. :)

4-Jul-2012 21:35:43
I am doing a report on this subject. Your article is full of really useful information. I will make sure to come back to check out your posts for my next report. Cheers dig this

Post a Comment:

You can post a comment here. Keep it on-topic.


Blog id:



 Note: HTML tags allowed for: b i u li ol ul font p br pre tt blockquote

This is a technical blog related to the above topic. We reserve the right to remove comments that are off-topic, irrelevant links, advertisements, spams, personal attacks, politics, religion, etc.

Updated 9-Dec-2023   -   Copyright Carl Sassenrath   -   WWW.REBOL.COM   -   Edit   -   Blogger Source Code