freenode/#lisp - IRC Chatlog
Search
10:10:53
jackdaniel
my little brother, this is python -very popular language. Parens? yes, that's embodiment of Python as a snake. No, it is natural that binary is named sbcl – python is its internal compiler :-)
12:03:54
Shinmera
I wouldn't assume any general "compatibility" between the different CL editions, though.
12:04:25
Shinmera
Ansi is the standard, so I don't see why you would want to look at the drafts leading up to it at all.
12:05:39
dmiles
well its good i can start by passing https://www.cs.cmu.edu/Groups/AI/lang/lisp/doc/standard/tests/0.html (CLtL1)
12:06:26
Bike
that doesn't make sense to me. it's likely that tests for cltl1 are not valid for a cltl2 or CL implementation.
12:09:05
jackdaniel
here is canonical repository: https://gitlab.common-lisp.net/ansi-test/ansi-test
12:09:23
Shinmera
If anything you'd start working on CLtL1 only to realise a lot of it is not ANSI, and have to rewrite a bunch.
12:09:58
Shinmera
The drafts weren't incremental things where they just kept on adding stuff after each.
12:10:40
jackdaniel
question is: why start a new implementation? wouldn't be easier to contribute to something else? or if you feel you must be at lead – fork other imlementation and name it something different, like mkcl
12:13:20
Shinmera
Creating a lisp implementation so you don't have to port is like saying "ok I'd rather write my own OS than port my video game from windows to linux"
12:16:57
Shinmera
Clasp, despite copying pretty much all the lisp code from ECL, took many years of focused work to get running at all, and it's still not acceptable performance-wise.
12:17:56
dmiles
when XCL (C++) it was a port of Java version that took the few weeks since it didnt port any of the lisp code
12:18:27
jackdaniel
that's not entirely true, clasp written its own compiler, which makes a huge chunk of ECL codebase
12:19:08
jackdaniel
but I believe that best shot for having CL->prolog bridge would be doing something similar
12:32:40
dmiles
what started my current project (not that one) is I have to implement parts of lisp anyways and have to make sure prolog attributed varaibles could implment foreighn objects in a natural manner to prolog coders
12:36:39
dmiles
i suppose the port if try for a whole CL is to not have document what parts of lisp i am missing
12:42:51
dmiles
also i havent encountered a prolgo-in-lisp that implements the entire prolgo language
12:44:40
knobo
Which variables do I manipulate to ensure that slime-edit-definition uses a file on remote server?
12:47:37
dmiles
none of them have been set up to make prolgo-call-lisp but yes that makes sense i could at least contribute a callback API
12:48:32
dmiles
(example of what is there https://github.com/keithj/cl-prolog/blob/master/src/swi/swi-prolog-ffi.lisp )
12:55:12
dmiles
even though technically if cl_object* (as long as they dont shift in memory) lets me do many of my hacks
12:57:41
dmiles
for instnace if i get a 2 pointers (cl_object*) to a vector and I want to replace all occurances of the vecotr1 with vector2 i think i can get away with that?
12:58:34
jackdaniel
don't know - I'd have to understand better this use case (I dont have energy to think about it now :)
12:59:30
dmiles
effectively i think the answer is yes.. which means i can probably survive if lisp cant understand this hack.. i can make lisp call C to do it
13:00:27
dmiles
the old first class locative system I belive was special in that when memory shifted the tracking is updated
13:08:05
Shinmera
sabrac: Note that this may or may not GC associated bindings with the symbols of said package.
13:13:18
dmiles
and cells indeed allow lazy side (locatives (even defined in lisp) never got arround to lazyness)
13:19:40
dmiles
Cells at least emulates greater that 50% of the desired chicanery .. though I think it made the hardest stuff easy so once would forgive that the simple stuff isnt as supported
13:19:53
sabrac
Shinmera: Ok I feel stupid now. Thank you. Just tested on sbcl. It does not look like it automatically does gc when calling delete-package.
13:20:26
Shinmera
sabrac: I forget if the symbols simply lose their package (become gensyms) or what exactly happens to them.
13:38:41
sabrac
Shinmera: after running GC, tried quickloading the package back into the running instance. Quicklisp thinks it succeeded, but LIST-ALL-PACKAGES disagrees. Memory usage jumped, so it is there, just not accessible. The joys of unintern.
16:29:02
emaczen
I want to use cffi:defcstruct to just get 4 fields out of a struct with many fields and nested structs.
18:36:18
_death
hmm.. (defmacro frogn (&body forms) (cond ((null forms) nil) ((null (cdr forms)) (car forms)) (t (let ((whatever (gensym))) `((lambda (,whatever) (declare (ignore ,whatever)) (frogn ,@(cdr forms))) ,(car forms))))))
18:36:40
_death
I thought http://www.pipeline.com/~hbaker1/MetaCircular.html might show something similar, but apparently not
18:43:56
Bike
(defmacro progn (&body forms) `(tagbody ,@(loop for form in forms when (symbolp form) collect `(identity ,form) else collect form))) "makes you think"
18:47:11
Shinmera
I mean if we're doing implicit progns: (defmacro progn (&body forms) `((lambda()NIL,@forms)))
18:52:49
Shinmera
The string might stick around longer as the docstring instead of being eliminated. Terrifying.
18:53:24
_death
yes Shinmera.. that's why I mentioned.. but I also seem to recall some issue besides that.. lemme check
18:53:45
Shinmera
It's specified that if the only form in the body of a lambda is a string, it is not treated as the docstring.
18:54:06
Shinmera
So the thing that would cause people to trip up in terms of semantics is not the issue.
18:58:22
_death
Shinmera: yes, I knew about that, but I'm still looking for why I feel there was another issue
19:08:02
_death
meanwhile found an interesting KMP message.. apparently the syntax for bit vectors was once #"..."
19:10:47
_death
anyway, the issue was http://www.lispworks.com/documentation/HyperSpec/Body/03_dk.htm .. but this is about interaction with declarations
20:15:59
jmercouris
I honestly think just a re-theme of the CLHS would do wonders for making it feel modern
20:16:20
Shinmera
Yeah, well, the best shot at that is CLUS. The HTML is so unstructured you'd have to style every page manually.
20:18:06
whoman
i would have imagined that CLHS could be dumped from any CL-comforming code base. would be nice
20:19:52
jackdaniel
jmercouris: see http://cvberry.com/tech_writings/notes/common_lisp_standard_draft.html
20:20:48
whoman
like if we just move the doc strings from the html into the code, with implementation specific notes kept in tact, or... at least to seperate the core guts of CLHS from html if it is not already. isnt it generated from a less noisy format ?
20:47:52
jmercouris
Alright, so I have an interesting problem, let's say I have two lisp files, they provide the exact same functions, but sometimes I want to compile with file A, and sometimes with file B. I don't want to have to change any of the other code in my codebase as the functions will have the same name. How should I do this?
20:49:57
pjb
jmercouris: then the second simpliest way is to push a specific feature in *features* and test for it to select one file or the other with #+/#- in a single asd file.
20:49:59
jmercouris
the only issue then is whenever I add a single dependnecy, I must add it to both files