newLISP now on Graham's list

Notices and updates
eddier
Posts: 289
Joined: Mon Oct 07, 2002 2:48 pm
Location: Blue Mountain College, MS US

Post by eddier »

Thanks Lutz,

Dmi posted the dynamic scoping/recursion trick. Credit where credit is due.

Eddie

Dmi
Posts: 408
Joined: Sat Jun 04, 2005 4:16 pm
Location: Russia
Contact:

Post by Dmi »

Unused memory is collected, newLISP does recycle unused memory, it just does it in a different way, not using traditional garbage collecting techniques like mark/seep and refernece counting.

Contexts/name spaces have nothing to do with this. In fact namespaces in other interpreted languages are done in a simiar fashion. They only differ in the way they organize symbols internally, some (like newLISP) use binary trees, others use hash tables.
The problem (or technical misunderstanding) with contexts in newlisp is caused by the fact, that they are proposed not only for namespace-modules, but for regular variable tricks (for ex., for the access by reference).

Let me explain:

Code: Select all

newLISP v.8.7.0 on Win32 MinGW, execute 'newlisp -h' for more info.

> (set 'ctx:var 1)
1
> (let ((ctx:var 5)) ctx:var)
5
> ctx:var
1
> (let ((ctx1:var 7)) ctx1:var)
7
> ctx1:var
nil
> (context? ctx1)
true
>
As we can see, context variables are the subject of dynamic scope and creation.
But the contexts themselves are NOT: if I create dynamic context variable, it will be destroyed when the code block is closed, but the context definition itself stays persistent.
Most people (and me too) have logical expectations that context will be destroyed as well.

The real expectation: the context symbols must behave like regular symbols:
- there must be a way to create them in MAIN (function 'context' does that)
- there must be a way to create dynamic context with 'let' declaration.
-- Such context must be initially clean (if not initialized imlicitly), despite of contents of the overlapped one.
-- This context must be destroyed according to common rules for 'let'.
-- It will be nice to have a native way to return context contents (can be partially imitated with 'source')
- there must be a way to reference to current dynamic scope context or to global defined context in MAIN.

Something like this :-)

P.S. yes, in most cases at present we can approve a small dictionary overhead for contexts that will rest after dynamic variable declaration, but potentially, in situations of namespace overlapping, this will be the point of errors.
WBR, Dmi

Dmi
Posts: 408
Joined: Sat Jun 04, 2005 4:16 pm
Location: Russia
Contact:

Post by Dmi »

Ghm... I got a joke on myself :-)
The nice context behavior, I proposed early is not applicable for "using context as for passing parameters by reference" because it is based on global/static property of the contexts.
That happens ;-)
WBR, Dmi

rickyboy
Posts: 607
Joined: Fri Apr 08, 2005 7:13 pm
Location: Front Royal, Virginia

And now, an application of "The Test of Time"

Post by rickyboy »

Qrczak wrote:I'm afraid [newLISP] is ... broken beyond hope of repair. It could be improved in minor ways ... but it's too little, to [sic] late.
Hmmm ... I know what's broken beyond repair -- and it's not newLISP -- it's Kogut, the language designed by the "impressive" genius Qrczak himself! The download page on SF, linked to from the main page, indicates no significant developer activity in several years. (Changing references to the author's email address in the source code listings 3 weeks ago, of course, doesn't count as "significant developer activity".)

Here's the user hangout: http://sourceforge.net/mailarchive/foru ... ogut-users. It's mostly Qrczak and some dude named "Daniel" talking back at each other as if it were their private forum. Hardly any of the activity that goes on here. (One wonders, then, if Qrczak and Daniel are not indeed the same person.)

The FAQ is also telling.
The Genius's Sole Minion wrote:The focus of the development of Kogut is making the code work correctly, not make [sic] it well-documented. Once Kogut has a stable codebase with tons of libraries, Marcin will spend more time on improving the documentation, but until then, it's up to the community.
Ha! There is no community. Kogut is dead. This brings to mind something that John Small said at the time: "The open market of ideas will insure the drift wood is carried out to sea and forgotten." This piece of driftwood is long gone.

Rest in Peace, Kogut!

Image
(λx. x x) (λx. x x)

cormullion
Posts: 2038
Joined: Tue Nov 29, 2005 8:28 pm
Location: latiitude 50N longitude 3W
Contact:

Re: newLISP now on Graham's list

Post by cormullion »

:)

Still, satisfaction ratings in the Kogut community must have been near 100% for most of its life, so that's something worth praising...

newdep
Posts: 2038
Joined: Mon Feb 23, 2004 7:40 pm
Location: Netherlands

Re: newLISP now on Graham's list

Post by newdep »

AHA! So thats the language Qrczak was bragging about years ago...

Lisp/scheme still has the longest breath ;-) hahahah...
-- (define? (Cornflakes))

Locked