freenode/#clasp - IRC Chatlog
Search
0:52:24
Bike
lambda lists full of gensyms with lets doing car cdr stuff and (ERROR "too many arguments supplied")
0:56:50
Bike
check that the place is a special variable, if it is just set the symbol value, otherwise punt to compile
0:59:24
drmeister
https://github.com/clasp-developers/clasp/blob/dev/src/lisp/kernel/cleavir/toplevel.lisp#L81
1:01:22
Bike
also, we should hopefully have a sane error when there's an odd number of arguments or whatever.
1:32:19
drmeister
What about these? #'(LAMBDA NIL (DECLARE (CORE:LAMBDA-NAME CLOS::PARSE-DEFAULT-INITARGS.LAMBDA)) NIL)
2:02:13
Bike
i mean, as an example, defmacro expands into a LET, so that we can set the lambda-list and documentation
2:03:34
Bike
documentation i'm not sure. i tried to fix it up to use the function description and stuff but i got weird errors
2:06:11
drmeister
That's what I meant - how do we get around using LET. I see - function-discription s
2:09:55
Bike
we'd expand defmacro into (eval-when ... (%defmacro ',name (lambda ...macro function here...)))
2:12:02
Bike
ideally the function-description of the lambda would store everything, but we don't have that working
2:12:30
Bike
if we didn't have to do setf-lambda-list or (setf documentation), the entirety of defmacro would just be (setf (macro-function ',name) (lambda ...))
2:12:49
drmeister
We can get it working - everything we need is in the (lambda ...macro function here...)
2:18:23
Bike
https://github.com/clasp-developers/clasp/blob/master/src/lisp/kernel/clos/inspect.lsp#L360-L365 you can see it calls get-documentation instead
2:21:31
drmeister
Yes it is fine to edit a function-description. It's a bit weird though because it's a C++struct that points into a literal table for things like functionName, lambdaList, docstring and declares.
2:21:55
drmeister
When you write into those slots it redirects it to write into a literal table somewhere.
2:21:58
Bike
http://irclog.tymoon.eu/freenode/%23clasp?around=1531940242#1531940242 not even in our code, eek
2:24:52
drmeister
Ah - you were doing this right after I finished my llvm talk. I usually grey out when I give talks.
2:25:36
drmeister
Nah - this should be easy - and if it isn't I did something stupid that we can fix. It's really not a problem. Let's do this.
2:26:32
drmeister
Keep a list of things that you try and let's get them all done. I hate abandoning good ideas.
2:26:52
drmeister
And we have been really tightening things up so we don't need to do half measures.
2:28:25
Bike
specifically what happened is you'd start clasp, and it would display an error but not actually go into the debugger
2:30:36
drmeister
Well, maybe it's something dumb like I didn't go all the way and allocate function-descriptions for interpreted functions.
2:31:51
drmeister
Or wrapped C++ functions - whatever - we just need to figure it out. I can add a sanity check to make sure we don't try to write into a function-description that isn't there and then add support for those function-descriptions as they come up.
2:56:58
drmeister
Hmm, interpreted and C++ wrapped functions have function-descriptions. We need to reproduce the errors to figure out what is going on.
3:59:35
beach
drmeister: In that code where you have no looping constructs, you have DEFUN, but not WHEN nor INCF?
4:01:11
drmeister
Hi beach - I don't recall what I have - I'm comfortable with tagbody/go for small loops - so I just go with what I know the C++ interpreter provides.
4:04:37
drmeister
I haven't tested it extensively but I was able to compile quicklisp and quickload babel.
4:05:04
drmeister
We are working now to reduce the amount of work the compiler has to do by beefing up cclasp-eval-with-env
4:08:36
drmeister
It's a bit squirrely because this is Xcode "Instruments" and it has a hard limit of 512 frames in a stack trace. Clasp has deeper stacks than that.
12:47:56
drmeister
I added a SIGINFO handler so that on macOS if you hit Control-T you get a backtrace.