From: Xah Lee
Subject: Qi on top of NewLisp
Date: 
Message-ID: <b4b94c29-429a-4668-b7d3-aecb1a2c5bcb@d21g2000prf.googlegroups.com>
hi Mark,

is it possible to get Qi to work on top of NewLisp?

I think NewLisp is really fantastic.

http://newlisp.org/index.cgi?page=Features
http://en.wikipedia.org/wiki/NewLISP

  Xah
  ···@xahlee.org
∑ http://xahlee.org/

☄

From: Chris Russell
Subject: Re: Qi on top of NewLisp
Date: 
Message-ID: <51f706d1-c7ce-48df-afd4-cbbbda5e5133@s12g2000prg.googlegroups.com>
On Feb 7, 12:18 pm, Xah Lee <····@xahlee.org> wrote:
> hi Mark,
>
> is it possible to get Qi to work on top of NewLisp?
>
> I think NewLisp is really fantastic.
>
> http://newlisp.org/index.cgi?page=Featureshttp://en.wikipedia.org/wiki/NewLISP
>
>   Xah
>   ····@xahlee.org
> ∑http://xahlee.org/
>
> ☄

I'm not Mark, but newlisp lacks lexical scoping making conventional
functional programming impossible.
It lacks macros (it only has fexprs http://en.wikipedia.org/wiki/Fexpr)
preventing you from making a QI compiler, and the pass by value
semantics would heavily penalise the use of HOFs and recursion on
large data structures.

You'd have to write an old lisp in newlisp before you could port qi.
From: Mark Tarver
Subject: Re: Qi on top of NewLisp
Date: 
Message-ID: <ad70b0ca-96b1-48ec-a909-1ec4d3a7e648@c23g2000hsa.googlegroups.com>
On 7 Feb, 12:18, Xah Lee <····@xahlee.org> wrote:
> hi Mark,
>
> is it possible to get Qi to work on top of NewLisp?
>
> I think NewLisp is really fantastic.
>
> http://newlisp.org/index.cgi?page=Featureshttp://en.wikipedia.org/wiki/NewLISP
>
>   Xah
>   ····@xahlee.org
> ∑http://xahlee.org/
>
> ☄

Thats a good question; I wrote Qi in CL because CL is the most
commonly used Lisp dialect and thats what I had on my university
machine long ago.

I'm doing a complete rebuild of Qi for Qi II to appear this summer.
So far I have 2700 lines of generated Lisp code.  Out of interest I
read in the code, flattened it, removed the duplicates, and removed
all tokens which were not (a) uppercase symbols (b) not FBOUND.  What
I was left with was a list of Lisp system funcs - 118 in all.

[AND APPEND APPLY ASSOC ATOM SYSTEM::BACKQUOTE BLOCK BOUNDP CAAR CADR
CAR CDAR CDDDR CDR CHAR CHAR-EQUAL CHARACTERP COERCE COMPILE COMPILED-
FUNCTION-P COMPLEXP COND CONS CONSP DECF DECLARE DEFCONSTANT DEFMACRO
DEFSTRUCT DEFUN DEFVAR DO EQ EQL EQUAL EQUALP ERROR EVAL FIRST FLOATP
FORCE-OUTPUT FORMAT FOURTH FUNCALL FUNCTION GENTEMP GET GETHASH GO
HANDLER-CASE IF INCF INTEGERP LAMBDA LAST LENGTH LET LET* LIST LIST-
LENGTH LOAD LOOP MACRO-FUNCTION MAKE-HASH-TABLE MAPC MAPCAR MEMBER
NAMESTRING NOT NREVERSE NTH NULL NUMBERP OR
 PPRINT PRINC PROBE-FILE PROG PROGN PROGV PUSH QUOTE RANDOM RATIONALP
READ-CHAR READ-FROM-STRING READTABLE-CASE REALP REMOVE REST RETURN
RETURN-FROM REVERSE ROUND SECOND SET SET-DIFFERENCE SET-SYNTAX-FROM-
CHAR SETF SETQ SQRT STRING STRINGP SUBST SYMBOL-FUNCTION SYMBOL-NAME
SYMBOL-VALUE SYMBOLP TAGBODY TERPRI THE THIRD TIME UPPER-CASE-P WITH-
OPEN-FILE WRITE-STRING Y-OR-N-P ZEROP]

So then I went through this list and removed all functions which were
definable in terms of others in the same list or which I really did
not need.  This reduced the list to 59.

[APPLY BLOCK BOUNDP CAR CHAR-EQUAL CHARACTERP COERCE COMPILE COMPILED-
FUNCTION-P COMPLEXP CONS CONSP DEFMACRO DEFSTRUCT DEFUN EQL EVAL
FLOATP FORCE-OUTPUT FORMAT FUNCTION GET GETHASH HANDLER-CASE IF
INTEGERP LAMBDA LET LOAD MACRO-FUNCTION MAKE-HASH-TABLE NAMESTRING
NUMBERP PPRINT PRINC PROBE-FILE PROG PROGV QUOTE RANDOM RATIONALP READ-
CHAR READ-FROM-STRING READTABLE-CASE REALP RETURN RETURN-FROM SET SETF
STRINGP SYMBOL-FUNCTION SYMBOL-NAME SYMBOL-VALUE SYMBOLP TAGBODY TIME
UPPER-CASE-P
WITH-OPEN-FILE WRITE-STRING]

My program missed out +, -, /, * but add them and I'd guess you could
build Qi on a Lisp-like language with a base of < 70 system functions.

Try to wittle this list down further.  Its an interesting exercise to
find out what is really needed.

Mark
From: Mark Tarver
Subject: Re: Qi on top of NewLisp
Date: 
Message-ID: <e6b220c3-7456-4be4-a633-a03b15849c6b@k39g2000hsf.googlegroups.com>
On 7 Feb, 19:33, Mark Tarver <··········@ukonline.co.uk> wrote:
> On 7 Feb, 12:18, Xah Lee <····@xahlee.org> wrote:
>
> > hi Mark,
>
> > is it possible to get Qi to work on top of NewLisp?
>
> > I think NewLisp is really fantastic.
>
> >http://newlisp.org/index.cgi?page=Featureshttp://en.wikipedia.org/wik...
>
> >   Xah
> >   ····@xahlee.org
> > ∑http://xahlee.org/
>
> > ☄
>
> Thats a good question; I wrote Qi in CL because CL is the most
> commonly used Lisp dialect and thats what I had on my university
> machine long ago.
>
> I'm doing a complete rebuild of Qi for Qi II to appear this summer.
> So far I have 2700 lines of generated Lisp code.  Out of interest I
> read in the code, flattened it, removed the duplicates, and removed
> all tokens which were not (a) uppercase symbols (b) not FBOUND.  What
> I was left with was a list of Lisp system funcs - 118 in all.
>
> [AND APPEND APPLY ASSOC ATOM SYSTEM::BACKQUOTE BLOCK BOUNDP CAAR CADR
> CAR CDAR CDDDR CDR CHAR CHAR-EQUAL CHARACTERP COERCE COMPILE COMPILED-
> FUNCTION-P COMPLEXP COND CONS CONSP DECF DECLARE DEFCONSTANT DEFMACRO
> DEFSTRUCT DEFUN DEFVAR DO EQ EQL EQUAL EQUALP ERROR EVAL FIRST FLOATP
> FORCE-OUTPUT FORMAT FOURTH FUNCALL FUNCTION GENTEMP GET GETHASH GO
> HANDLER-CASE IF INCF INTEGERP LAMBDA LAST LENGTH LET LET* LIST LIST-
> LENGTH LOAD LOOP MACRO-FUNCTION MAKE-HASH-TABLE MAPC MAPCAR MEMBER
> NAMESTRING NOT NREVERSE NTH NULL NUMBERP OR
>  PPRINT PRINC PROBE-FILE PROG PROGN PROGV PUSH QUOTE RANDOM RATIONALP
> READ-CHAR READ-FROM-STRING READTABLE-CASE REALP REMOVE REST RETURN
> RETURN-FROM REVERSE ROUND SECOND SET SET-DIFFERENCE SET-SYNTAX-FROM-
> CHAR SETF SETQ SQRT STRING STRINGP SUBST SYMBOL-FUNCTION SYMBOL-NAME
> SYMBOL-VALUE SYMBOLP TAGBODY TERPRI THE THIRD TIME UPPER-CASE-P WITH-
> OPEN-FILE WRITE-STRING Y-OR-N-P ZEROP]
>
> So then I went through this list and removed all functions which were
> definable in terms of others in the same list or which I really did
> not need.  This reduced the list to 59.
>
> [APPLY BLOCK BOUNDP CAR CHAR-EQUAL CHARACTERP COERCE COMPILE COMPILED-
> FUNCTION-P COMPLEXP CONS CONSP DEFMACRO DEFSTRUCT DEFUN EQL EVAL
> FLOATP FORCE-OUTPUT FORMAT FUNCTION GET GETHASH HANDLER-CASE IF
> INTEGERP LAMBDA LET LOAD MACRO-FUNCTION MAKE-HASH-TABLE NAMESTRING
> NUMBERP PPRINT PRINC PROBE-FILE PROG PROGV QUOTE RANDOM RATIONALP READ-
> CHAR READ-FROM-STRING READTABLE-CASE REALP RETURN RETURN-FROM SET SETF
> STRINGP SYMBOL-FUNCTION SYMBOL-NAME SYMBOL-VALUE SYMBOLP TAGBODY TIME
> UPPER-CASE-P
> WITH-OPEN-FILE WRITE-STRING]
>
> My program missed out +, -, /, * but add them and I'd guess you could
> build Qi on a Lisp-like language with a base of < 70 system functions.
>
> Try to wittle this list down further.  Its an interesting exercise to
> find out what is really needed.
>
> Mark

Oh yes - Lambda Associates should be up in 24 hours.  It went down
because of a security block X-(.

It's kind of odd that Xah should pose that question now because I
actually ran that little program this morning before I read his post.
But it has occurred to me that Qi runs on a pretty small set of
functions and that you don't need that much to port it.  Could e.g.
Python run Qi or Scheme?  I'm not enough of a Python person to say.
Macros are essential though.

Mark
From: Mark Tarver
Subject: Re: Qi on top of NewLisp
Date: 
Message-ID: <be01c2c8-28d8-4afa-b239-373b38da658d@m34g2000hsf.googlegroups.com>
On 7 Feb, 19:42, Mark Tarver <··········@ukonline.co.uk> wrote:
> On 7 Feb, 19:33, Mark Tarver <··········@ukonline.co.uk> wrote:
>
>
>
>
>
> > On 7 Feb, 12:18, Xah Lee <····@xahlee.org> wrote:
>
> > > hi Mark,
>
> > > is it possible to get Qi to work on top of NewLisp?
>
> > > I think NewLisp is really fantastic.
>
> > >http://newlisp.org/index.cgi?page=Featureshttp://en.wikipedia.org/wik...
>
> > >   Xah
> > >   ····@xahlee.org
> > > ∑http://xahlee.org/
>
> > > ☄
>
> > Thats a good question; I wrote Qi in CL because CL is the most
> > commonly used Lisp dialect and thats what I had on my university
> > machine long ago.
>
> > I'm doing a complete rebuild of Qi for Qi II to appear this summer.
> > So far I have 2700 lines of generated Lisp code.  Out of interest I
> > read in the code, flattened it, removed the duplicates, and removed
> > all tokens which were not (a) uppercase symbols (b) not FBOUND.  What
> > I was left with was a list of Lisp system funcs - 118 in all.
>
> > [AND APPEND APPLY ASSOC ATOM SYSTEM::BACKQUOTE BLOCK BOUNDP CAAR CADR
> > CAR CDAR CDDDR CDR CHAR CHAR-EQUAL CHARACTERP COERCE COMPILE COMPILED-
> > FUNCTION-P COMPLEXP COND CONS CONSP DECF DECLARE DEFCONSTANT DEFMACRO
> > DEFSTRUCT DEFUN DEFVAR DO EQ EQL EQUAL EQUALP ERROR EVAL FIRST FLOATP
> > FORCE-OUTPUT FORMAT FOURTH FUNCALL FUNCTION GENTEMP GET GETHASH GO
> > HANDLER-CASE IF INCF INTEGERP LAMBDA LAST LENGTH LET LET* LIST LIST-
> > LENGTH LOAD LOOP MACRO-FUNCTION MAKE-HASH-TABLE MAPC MAPCAR MEMBER
> > NAMESTRING NOT NREVERSE NTH NULL NUMBERP OR
> >  PPRINT PRINC PROBE-FILE PROG PROGN PROGV PUSH QUOTE RANDOM RATIONALP
> > READ-CHAR READ-FROM-STRING READTABLE-CASE REALP REMOVE REST RETURN
> > RETURN-FROM REVERSE ROUND SECOND SET SET-DIFFERENCE SET-SYNTAX-FROM-
> > CHAR SETF SETQ SQRT STRING STRINGP SUBST SYMBOL-FUNCTION SYMBOL-NAME
> > SYMBOL-VALUE SYMBOLP TAGBODY TERPRI THE THIRD TIME UPPER-CASE-P WITH-
> > OPEN-FILE WRITE-STRING Y-OR-N-P ZEROP]
>
> > So then I went through this list and removed all functions which were
> > definable in terms of others in the same list or which I really did
> > not need.  This reduced the list to 59.
>
> > [APPLY BLOCK BOUNDP CAR CHAR-EQUAL CHARACTERP COERCE COMPILE COMPILED-
> > FUNCTION-P COMPLEXP CONS CONSP DEFMACRO DEFSTRUCT DEFUN EQL EVAL
> > FLOATP FORCE-OUTPUT FORMAT FUNCTION GET GETHASH HANDLER-CASE IF
> > INTEGERP LAMBDA LET LOAD MACRO-FUNCTION MAKE-HASH-TABLE NAMESTRING
> > NUMBERP PPRINT PRINC PROBE-FILE PROG PROGV QUOTE RANDOM RATIONALP READ-
> > CHAR READ-FROM-STRING READTABLE-CASE REALP RETURN RETURN-FROM SET SETF
> > STRINGP SYMBOL-FUNCTION SYMBOL-NAME SYMBOL-VALUE SYMBOLP TAGBODY TIME
> > UPPER-CASE-P
> > WITH-OPEN-FILE WRITE-STRING]
>
> > My program missed out +, -, /, * but add them and I'd guess you could
> > build Qi on a Lisp-like language with a base of < 70 system functions.
>
> > Try to wittle this list down further.  Its an interesting exercise to
> > find out what is really needed.
>
> > Mark
>
> Oh yes - Lambda Associates should be up in 24 hours.  It went down
> because of a security block X-(.
>
> It's kind of odd that Xah should pose that question now because I
> actually ran that little program this morning before I read his post.
> But it has occurred to me that Qi runs on a pretty small set of
> functions and that you don't need that much to port it.  Could e.g.
> Python run Qi or Scheme?  I'm not enough of a Python person to say.
> Macros are essential though.
>
> Mark- Hide quoted text -
>
> - Show quoted text -

Oops I should not have removed CDR - 60 functions.

Mark
From: Joost Diepenmaat
Subject: Re: Qi on top of NewLisp
Date: 
Message-ID: <87odas4gyd.fsf@zeekat.nl>
Mark Tarver <··········@ukonline.co.uk> writes:

> On 7 Feb, 19:33, Mark Tarver <··········@ukonline.co.uk> wrote:
> functions and that you don't need that much to port it.  Could e.g.
> Python run Qi or Scheme?  I'm not enough of a Python person to say.
> Macros are essential though.

It looks like Perl can run scheme: http://billhails.net/Book/

I haven't looked at it in detail, though it seems interesting.

Joost.
From: Ken Tilton
Subject: Re: Qi on top of NewLisp
Date: 
Message-ID: <47ab784c$0$15184$607ed4bc@cv.net>
Mark Tarver wrote:

>  This reduced the list to 59.
> 
> [APPLY BLOCK BOUNDP CAR CHAR-EQUAL CHARACTERP COERCE COMPILE COMPILED-
> FUNCTION-P COMPLEXP CONS CONSP DEFMACRO DEFSTRUCT DEFUN EQL EVAL
> FLOATP FORCE-OUTPUT FORMAT FUNCTION GET GETHASH HANDLER-CASE IF
> INTEGERP LAMBDA LET LOAD MACRO-FUNCTION MAKE-HASH-TABLE NAMESTRING
> NUMBERP PPRINT PRINC PROBE-FILE PROG PROGV QUOTE RANDOM RATIONALP READ-
> CHAR READ-FROM-STRING READTABLE-CASE REALP RETURN RETURN-FROM SET SETF
> STRINGP SYMBOL-FUNCTION SYMBOL-NAME SYMBOL-VALUE SYMBOLP TAGBODY TIME
> UPPER-CASE-P
> WITH-OPEN-FILE WRITE-STRING]
> 
> My program missed out +, -, /, * but add them and I'd guess you could
> build Qi on a Lisp-like language with a base of < 70 system functions.
> 
> Try to wittle this list down further.  

Got it!: read, left, right, write, erase

hth, kenny

-- 
http://www.theoryyalgebra.com/

"In the morning, hear the Way;
  in the evening, die content!"
                     -- Confucius
From: Alex Mizrahi
Subject: Re: Qi on top of NewLisp
Date: 
Message-ID: <47ab0bf5$0$90262$14726298@news.sunsite.dk>
 XL> I think NewLisp is really fantastic.

why do you think so?

 XL> http://en.wikipedia.org/wiki/NewLISP

from description it seems language is shaped around a crappy interpreter.

stupid interpreter does not handle lexical scope => we'll use dynamic scope 
and invent some shit called contexts.

we have no clue how to make fully fledged garbage collector => we'll call it 
"automatic memory management" with ORO concept.

 > newLISP does not support sharing of subobjects among objects, cyclic 
structures, nor multiple variables pointing to the same object.
 > Objects are (physically) copied when stored in data structures or passed 
to functions, except passing to particular builtin functions.

even authors of PHP have finally implemented memory management more-or-less 
right in version 5, even them do not copy objects anymore!
you need a Lisp implementation that is crappier than PHP?

why are you attracted?
small footprint? -- i bet nobody cares with 1+ GB memory on typical computer
bindings and libraries? -- most CL implementations support more.