Hello,
I want to write a router with real time performance. I am trying to find the best language to use for it, and would like to use a functional language if possible. Erlang might work, but I want to distribute the router incorporated into a Linux live boot CD, so I think that maybe whatever I distribute has to be GPL compatible. I don't know if I can distribute the Erlang runtime with that license condition. I tried to join the Erlang questions list to ask about that, but so far have not been able to join the list.
Is Gambit Scheme suitable for real time applications? Does it have a real time garbage collector?
Vincent
____________________________________________________________________________________ Finding fabulous fares is fun. Let Yahoo! FareChase search your favorite travel sites to find flight and hotel bargains. http://farechase.yahoo.com/promo-generic-14795097
Afficher les réponses par date
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 6-Feb-07, at 9:43 PM, Vincent wrote:
Is Gambit Scheme suitable for real time applications?
The answer is "it depends". What kind of real-time constraints do you have in your application? Moreover, what is the quantity of live data? Can you get by with statically allocated data structures or is all allocated dynamically?
Does it have a real time garbage collector?
Not the standard release, but I could dig up some old code that we did use for research if you want to experiment (http:// www.iro.umontreal.ca/~feeley/papers/ismm98.ps.gz).
Marc
The answer is "it depends". What kind of real-time constraints do you have in your application? Moreover, what is the quantity of live data? Can you get by with statically allocated data structures or is all allocated dynamically?
I haven't gotten started yet, and I don't have any experience with real time development, so I'm not sure what the constraints are. Ultimately I'd like to replace the Internet and phone system with a global P2P network, which also uses a P2P money system to pay nodes for cooperation. Long distance links might require hundreds or thousands of hops. For this to succeed, the latency at each hop needs to be minimized to the bare minimum. I want to try to do this using standard PCs converted to single purpose routers with a Linux boot CD. Slashdot had a discussion awhile back about Linux having real time capabilities built into the kernel starting from version 2.6.18
http://linux.slashdot.org/article.pl?sid=06/10/14/2132244
So I guess I'd like to write my application to perform on par with the capabilities of the Linux kernel - not to introduce any significant delays beyond what the kernel does.
I think it would be possible to write it using statically allocated data structures. Since the boot CD would use the computer as a single purpose machine, I could just take all the memory available and manage it myself rather than using the OS to allocate or deallocate.
Thank you for the offer of old code. At this point I don't know Lisp or Scheme yet - I'm just starting to learn. Just trying to get an idea if this language could do what I want, or if I'll have to use C.
Vincent
Does it have a real time garbage collector?
Not the standard release, but I could dig up some old code that we did use for research if you want to experiment (http:// www.iro.umontreal.ca/~feeley/papers/ismm98.ps.gz).
Marc
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.3 (Darwin)
iD8DBQFFyguz//V9Zc2T/v4RAlFGAKC+sCNfHaFXm3PzkXAuCucUQo+A9wCgiEMY
wZDYf/iEGtFinyKclY5nk7E= =eIyS -----END PGP SIGNATURE----- _______________________________________________ Gambit-list mailing list Gambit-list@iro.umontreal.ca
https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list
____________________________________________________________________________________ Finding fabulous fares is fun. Let Yahoo! FareChase search your favorite travel sites to find flight and hotel bargains. http://farechase.yahoo.com/promo-generic-14795097
Vincent wrote:
Hello,
I want to write a router with real time performance. I am trying to find the best language to use for it, and would like to use a functional language if possible. Erlang might work, but I want to distribute the router incorporated into a Linux live boot CD, so I think that maybe whatever I distribute has to be GPL compatible. I don't know if I can distribute the Erlang runtime with that license condition. I tried to join the Erlang questions list to ask about that, but so far have not been able to join the list.
Is Gambit Scheme suitable for real time applications? Does it have a real time garbage collector?
Vincent
If you're talking hard real time, you're pretty much limited to three choices: C, assembler and Forth. Nothing else is going to be close enough to the hardware and interrupt structure.
Given that, and your requirement for open source, there's gcc for C and gforth for Forth. I'm not sure which assemblers are best; there are probably four or five usable assemblers for i86-32, but your choices may be more limited for other chip sets.
I would guess 98 percent of the router code these days is written in C. A lot of the guts of routing is already built into the Linux kernel, so you might be able to get away with a Scheme that compiles to C.