Thanks for showing me the strange behaviour for (compare 1 2)! I've made a small modification to print the types when they are not equal, so that it explains why it is so.
The recursive anonymous function thing really confuses me . I'll have to look into it more .
Not that I've got any experience, but instead of generating assembly directly, why not use something like http://llvm.org/, and benefit from all of the optimisers and things in that project It mentions some type of run-time compilation too.
Hey, I've got this function I think some people might be interested in. I've put it into Lisp Paste: http://paste.lisp.org/+1X85 , and below: (defun compare (a b &optional (out-stream t)) "This function compares a and b for equality. The third argument is where to output the result." (...
This makes me want to be able to tell if a particular form is a mutating/side-effect one or not. I suppose it would be kinda cool to have a compiler macro for this kind of thing.
You raise good points. Thanks for the reply, findinglisp. It seems that there are (at least) two types/categories of persistence: One is like the internet, or the automobile example, which seem reminiscent of cellular bodies, ant colonies (nature seems to have a lot of these), and distributed human ...
It jogged my memory, and I found change-class . HTH (defclass aa () ((name :initarg :name :accessor name))) (defclass bb () ((name :initarg :name :accessor name) (c :initarg :c))) (defparameter ana (make-instance 'aa :name :jimmy)) (change-class ana 'bb) ana (name ana) Notice that name still has the...
Has anyone seen or worked on a system that must run all of the time, and could change underlying databases while it is running (and logging/reading/updating)? I would think that the dynamic nature of Lisp would lend itself to that kind of solution. I could almost see a system that has an old DB, and...
As an idea for a secure interpreter, how about create a checking program/function/macro that checks to see if the submitted code contains any 'non-secure' function/macro calls? That might be easier than trying to saw off big chunks of lisp.