Skip to content

Elegant, minimalistic virtualization of a classic Lisp Machine, written in C.

Notifications You must be signed in to change notification settings

OriRoth/Keti-Programming-Language

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 

Repository files navigation

Keti Programming Language

Elegant, minimalistic virtualization of a classic Lisp Machine, written in C. For Katy, my inspiration and love.

ATTENTION! Line 51 in file "native.c" should be "memptr env = lookup(GET_CAR(symbol_value), ENVIRONMENT);" instead of "memptr env = lookup(symbol, ENVIRONMENT);" As you can see, the BUG leads to malacious nested "define" operations. I have not changed the code because the more complex examples won't work with the change. One should update the code before try doing something like: (define f (lambda () (define x 2))) (define x 1) (f) ; x should be 2, but it is 1

Line 105 in system.c should be: if (string_compare(GET_CAR(GET_CDR(current_data)), GET_CAR(GET_CDR(data)))) { instead of if (string_compare(GET_CAR(GET_CDR(current_data)), GET_CAR(data))) { causes very strange bug: by luck, the call (define define define) would delete quote definition.

Line 313 in native.c: return string_compare(first_arg, second_arg) ? t : nil;

Line 318 in native.c: return t;

About

Elegant, minimalistic virtualization of a classic Lisp Machine, written in C.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published