Search
Saturday, 15th of September 2018, 19:06:10 UTC
19:06:11
kpoeck
jumps directly to print.cc
19:06:21
Bike
yeah, i don't see a redefinition in pprint.lsp.
19:07:47
kpoeck
https://github.com/clasp-developers/clasp/blob/dev/src/core/print.cc#L204
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:12:53
kpoeck
Well I need to recompile anyway, will try
19:13:32
Bike
i think it would have to be T_mv
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:03
Bike
(might be the only one for something specified to return no values, tho)
19:14:20
drmeister
My system is still compiling - kpoeck - could you try another void returning function?
19:15:10
Bike
which, incidentally, is supposed to return nil instead of no values
19:15:34
Bike
https://github.com/clasp-developers/clasp/blob/dev/src/core/primitives.cc#L115
19:17:34
drmeister
There may be other non-conforming return values.
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:20:24
drmeister
Confirmed (sleep 1) -> NIL but the C++ function returns void.
19:23:28
kpoeck
Shouldn't sleep than return _Nil<T_O>();
19:23:55
kpoeck
and be defined as CL_DEFUN T_sp cl__sleep(T_sp oseconds)?
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:24:35
Bike
so let's check whether it's no values in the interpreter
19:25:01
drmeister
aclasp does not return NIL
19:25:03
drmeister
https://www.irccloud.com/pastebin/ybbPz61H/
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:28:00
drmeister
It returns void - so I'm using that to test this.
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:30:26
drmeister
https://www.irccloud.com/pastebin/8lKOWMr9/
19:31:24
drmeister
And that is generated here: https://github.com/clasp-developers/clasp/blob/dev/src/scraper/csubst.lisp#L72
19:31:31
drmeister
It's the scraper that is responsible for this.
19:32:41
Bike
there might be more functions we have to fix like sleep tho.
19:33:07
drmeister
Do the ansi tests check the return values of functions?
19:33:31
drmeister
Probably not - or this would have come up earlier
19:36:13
kpoeck
The thinj with (values) for pprint is an ansi-test
19:37:21
drmeister
It looks like we should do an inventory of functions that return NIL and (values) and verify them.
19:37:41
Bike
ansi tests might cover that
19:38:04
kpoeck
(sleep 0) -> is tested by the ansi-tests
19:38:41
kpoeck
But sleep returns nil in my clasp
19:38:50
kpoeck
I assume there is a double error
19:39:16
kpoeck
but the translater make it return nil
19:39:28
kpoeck
That double error no test can find
19:40:39
kpoeck
I meant before (sleep 0) -> nil is covered in the ansi-test
19:40:56
kpoeck
by 13 different tests with all combinations of input
19:42:11
drmeister
We should check once the scraper is generating the correct code.
19:42:32
drmeister
I've got to leave soon for a few hours - I'll start a build
19:42:55
kpoeck
awk for 15 min, but will come back. If there is something to test, please advise
19:43:12
drmeister
I'm pushing changes now
19:43:23
kpoeck
ok, will pull than later
19:44:43
drmeister
pushed through to testing (testing the buildbot as well)
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
21:33:20
drmeister
Well - that didn't get very far
21:34:08
drmeister
Pushing changes to github and then running out the door never ends well.
21:37:06
drmeister
How do people feel about buildbot posting build messages to #clasp?
21:37:33
Shinmera
depends on the frequency
21:38:44
drmeister
Ok. I'll flesh out the buildbot a bit more and then take a look at it.
22:53:19
kpoeck
Both sleep and pprint now seem to do the right thing (after fixing primitives.h
22:58:13
kpoeck
(null (multiple-value-list (pprint 23))) -> t
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:01
drmeister
And it may be a different story for bclasp vs cclasp.
3:33:10
Bike
there are more warnings because of the loading
3:33:46
drmeister
Is that because of functions being defined in files after the files that invoke them?
3:34:21
Bike
if you haveh like (defun f ... (g ...)) (defun f ...) in a file
3:34:47
Bike
er, defun g ... at the end
3:35:06
Bike
with compile-file no warning, but iwth load there's a warning
3:35:46
drmeister
What is the best way to deal with this?
3:36:38
Bike
not loading file, but that's not on the table
3:37:48
drmeister
How about suppressing warnings during load while building?
5:23:28
beach
Good morning everyone!
Sunday, 16th of September 2018, 7:06:10 UTC