http://www.lambdassociates.org/blog/nextlisp(3).htm
http://www.lambdassociates.org/blog/klambda.htm
to create a super-portable Qi based on a very compact Lisp - K Lambda
- about 20X smaller than CL wrt system functions.
For those innocent of Taoist terminology the significance of the title
'Shen' wrt this project is explained here
http://www.lambdassociates.org/shen.htm
Earlier this month the native CL code used to code Qi was completely
removed leaving only Qi in Qi as the specification language. A
specially rigged CL image of Qi called 'boot' was created to generate
K Lambda (.kl) files for the whole system.
So we have a complete set of .kl files for the system and a backend
translator into CL. On the basis of experience writing this program,
it should take no more than 10K or 300 LOC to move Shen to any
suitable platform. The code base of the new system requires only
30-40 primitive functions from K Lambda to be encoded on the target
platform as opposed to 118 CL ones for Qi II. That is as I predicted
Shen is Qi on a reduced instruction set
Hence the way will soon be open for porting Shen to Clojure, Python
(and perhaps TCL/tk, Javascript and Perl if they can support K
Lambda?) and for Carl to port Shen to the DVM.
The system will be released under a liberal license essentially giving
commercial freedom to use the system.
What remains to be done is to systematically test these .kl files to
make sure they are conformant and to assemble a canonical test suite
to test their code. I'll be posting a description of K Lambda on
Lambda Associates together with instructions on how to write backends
for porting into your target language and how to test your port.
ETA March 2010.
Mark
Slobodan
No 300 LOC means 300 lines of code; 10K is just the approximate disk
space taken.
Mark
I think he meant 10 kb (10000 characters) which is 300 LOC.
10,000 disk blocks is a lot of space....
--
__Pascal Bourguignon__
10000 bits are 1250 iso-8859-1 characters, unless compression is used.
With only about 4 character per line, that would make 300 quite useless
lines...
--
__Pascal Bourguignon__
PJB> 10000 bits are 1250 iso-8859-1 characters, unless compression is used.
PJB> With only about 4 character per line, that would make 300 quite
PJB> useless lines...
"10000 characters" clarified abbreviation, didn't it?
LOL
--
My website: http://p-cos.net
Common Lisp Document Repository: http://cdr.eurolisp.org
Closer to MOP & ContextL: http://common-lisp.net/project/closer/
There's an internationnal standard, the International System of Units
(SI) that specifies that units are case sensitive. mS doesn't mean at
all what Ms means. The first is milli-siemens, the later is
mega-seconds.
There's an IEEE 1541-2002 standard that formalizes a practice that is
probably older than you, in which b is the abbreviation of bit and B the
abbreviation of byte.
If you defined c to be the abbreviation of character then you could
write:
10 kc meaning 10000 characters, which could be 40000 bits.
10 kB meaning 10000 bytes, which could be 90000 bits.
10 kb meaning 10000 bits.
(and bot 10 kC which means 10000 coulombs).
--
__Pascal Bourguignon__
> If you defined c to be the abbreviation of character
Which would have been a bad idea before 1960, when Hz was adopted as
an SI unit, as kc was used for kilocycles :-)