freenode/#clasp - IRC Chatlog
Search
18:51:31
kpoeck
In https://github.com/clasp-developers/clasp/blob/dev/src/lisp/kernel/clos/print.lsp#L189
18:53:47
kpoeck
If I drop the "slotds" in the condition, both print the same and some more ansi-tests reports sucess
18:57:58
kpoeck
I see that pprint in c++ is defined as CL_DEFUN void cl__pprint(T_sp obj, T_sp stream)
19:01:36
Bike
https://gitlab.com/embeddable-common-lisp/ecl/commit/5986c0d6e3cc5bbc613361453c55305c29918f0b well i have no idea what this means.
19:03:53
drmeister
kpoeck: Looking at the wrapper code (it's been a while). void functions return (values).
19:04:33
drmeister
https://github.com/clasp-developers/clasp/blob/dev/include/clasp/core/multipleValues.h#L324
19:05:20
Bike
clhs says "If an object to be recursively printed has components and is at a level equal to or greater than the value of *print-level*, then the object is printed as ``#''. "
19:10:00
kpoeck
If I do CL_DEFUN T_sp cl__pprint(T_sp obj, T_sp stream) and put a return Values0<core::T_O>(); in the end, should that work?
19:13:49
Bike
but if void returns should return no values and aren't, we should fix that, because this isn't the only void function
19:14:20
drmeister
My system is still compiling - kpoeck - could you try another void returning function?
19:17:37
kpoeck
(multiple-value-list (core::print-unreadable-object-function 23 t nil nil nil)) -> (nil)
19:18:19
drmeister
Looking at the binding code void returning functions should return (values) - if they aren't, then I've made an error somewhere after the wrapper code.
19:24:19
drmeister
cclasp and bclasp effectively redefine all wrapped functions - it rewraps them so that the lambda list processing can be done by cclasp generated code rather than the LambdaListHandler_O object.
19:26:33
Bike
while we're at it, we should probably have the builtin interpreter print "; no values" or somethin
19:27:45
drmeister
FYI: There is a function (core:gdb "message") that invokes gdb or lldb if you have one of them connected.
19:30:11
drmeister
There is wrapper code in clasp/build/boehm/generated/c-wrappers.h - that's what is really returning the value in cclasp
19:31:24
drmeister
And that is generated here: https://github.com/clasp-developers/clasp/blob/dev/src/scraper/csubst.lisp#L72
19:37:21
drmeister
It looks like we should do an inventory of functions that return NIL and (values) and verify them.
20:17:33
kpoeck
drmeister: you get an honor invitation to the club of people how forget to change the .h file when they change the signature of a c++ function
20:17:49
Shinmera
drmeister: good news https://github.com/usocket/usocket/issues/36#issuecomment-421628028 I'll see about this tomorrow
20:18:49
kpoeck
https://github.com/clasp-developers/clasp/blob/dev/include/clasp/core/primitives.h#L270
3:32:46
drmeister
Bike: Does building clasp generate more warnings these days - I think you mentioned something about that a while ago.
3:33:46
drmeister
Is that because of functions being defined in files after the files that invoke them?