Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Shen(Qi III) project: progress to date

3 views
Skip to first unread message

Mark Tarver

unread,
Feb 20, 2010, 5:15:01 AM2/20/10
to
For newcomers this notice relates to the ongoing Shen (Qi III) project
described in

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 Blazeski

unread,
Feb 20, 2010, 9:21:42 AM2/20/10
to
On Feb 20, 11:15 am, Mark Tarver <dr.mtar...@ukonline.co.uk> wrote:
> For newcomers this notice relates to the ongoing Shen (Qi III) project
> described in
>
> http://www.lambdassociates.org/blog/nextlisp(3).htmhttp://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.  
Do you mean 10 000 to 300 000 lines of code?
300 000 is gargantuan project and even 10 000 is a lot for a kernel
language even if those lines are aimed toward low level language as c.

Slobodan


Mark Tarver

unread,
Feb 20, 2010, 10:39:59 AM2/20/10
to
On 20 Feb, 14:21, Slobodan Blazeski <slobodan.blaze...@gmail.com>
wrote:

> On Feb 20, 11:15 am, Mark Tarver <dr.mtar...@ukonline.co.uk> wrote:
>
>
>
> > For newcomers this notice relates to the ongoing Shen (Qi III) project
> > described in
>
> >http://www.lambdassociates.org/blog/nextlisp(3).htmhttp://www.lambdas...

>
> > 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.  
>
> Do you mean 10 000 to 300 000 lines of code?
> 300 000 is gargantuan project and even 10 000 is a lot for a kernel
> language even if those lines are aimed toward low level language as c.
>
> Slobodan- Hide quoted text -
>
> - Show quoted text -

No 300 LOC means 300 lines of code; 10K is just the approximate disk
space taken.

Mark

Captain Obvious

unread,
Feb 20, 2010, 10:41:00 AM2/20/10
to
??>> 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.
SB> Do you mean 10 000 to 300 000 lines of code?

I think he meant 10 kb (10000 characters) which is 300 LOC.

Pascal J. Bourguignon

unread,
Feb 20, 2010, 11:00:59 AM2/20/10
to
Mark Tarver <dr.mt...@ukonline.co.uk> writes:

10,000 disk blocks is a lot of space....

--
__Pascal Bourguignon__

Pascal J. Bourguignon

unread,
Feb 20, 2010, 11:02:26 AM2/20/10
to
"Captain Obvious" <udod...@users.sourceforge.net> writes:

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__

Captain Obvious

unread,
Feb 20, 2010, 11:40:40 AM2/20/10
to
??>>>> 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. SB> Do you mean 10 000 to 300 000 lines of
??>> code?
??>>
??>> I think he meant 10 kb (10000 characters) which is 300 LOC.

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?

Pascal Costanza

unread,
Feb 20, 2010, 12:32:00 PM2/20/10
to

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/

Pascal J. Bourguignon

unread,
Feb 20, 2010, 1:42:25 PM2/20/10
to
"Captain Obvious" <udod...@users.sourceforge.net> writes:

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__

Tom Davies

unread,
Feb 20, 2010, 5:36:42 PM2/20/10
to
On Feb 21, 5:42 am, p...@informatimago.com (Pascal J. Bourguignon)
wrote:

> 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 :-)

0 new messages