freenode/#clasp - IRC Chatlog
Search
13:33:15
beach
Sometimes I think I should create a #sicl channel to avoid filling #clasp with this stuff. But I haven't been able to face figuring out how to do it and then manage the spam, the bots, etc.
13:35:07
Shinmera
if you want to register it, /msg NickServ register should tell you what to do, it's really not hard
13:36:00
beach
I also don't know how to get operator privileges (I guess the creator automatically does), nor what to do with such privileges.
13:38:12
Shinmera
I don't see why not. I'm sure there's also people interested in sicl that don't care about clasp
13:38:28
beach
I guess it won't hurt, and if SICL traffic gets too high here, the discussion can always move.
16:03:29
drmeister
I added you to clasp-developers and added usocket to clasp-developers with write access.
16:06:08
drmeister
General: I switched to 'mosh' yesterday - I did a test where I connect to an AWS machine through my home network and then switch my laptop to connect to the internet through my phone hotspot - it reconnected fine. That's great!
16:06:39
drmeister
I guess it just uses ssh to connect the first time and then uses ports 60000-61000 to maintain the connection.
16:07:00
drmeister
The downside is I have to open ports 60000-61000 on the AWS machine to the world.
16:16:42
Shinmera
drmeister: what is the status of the usocket implementation for clasp? is it complete or?
16:19:19
drmeister
Clasp mimics the ecl/sbcl socket low level functionality. I think it is complete - if it isn't then it's a bug in clasp.
16:20:53
drmeister
When I asked what do we use it for - we use slime, quicklisp, cl-jupyter. Clasp has run McClim with a caveat.
16:21:30
drmeister
I haven't run staple-server but I plan to. I have tried drakma and can't remember the result.
16:22:24
Shinmera
well, I'm working on staple-server now. I just loathe having clones of essential libraries, so I really want this upstream asap
16:36:54
Shinmera
looks like the usocket tests require a system called "portable-threads", which does not load.
16:45:37
drmeister
Although Bordeaux-Threads may be more popular today, but Portable-threads offers more portable APIs (e.g. atomic-incf) and supports older versions of implementations. GBBopen also has a " scheduled-periodic-functions" module based on portable-threads, it literally supports creating "scheduled periodic functions" which is very useful in a Lisp server environment.
16:54:49
Shinmera
Alright, I can at least load staple-server. Calling staple-server:start just seems to hang idly though?
16:59:52
Shinmera
So the usocket implementation is not yet right. http://plaster.tymoon.eu/view/922#922
17:11:21
drmeister
Are you doing this on macOS or Linux? On macOS you could get a backtrace easily if its locking.
17:13:24
drmeister
Could you create a clasp issue? We are going to get back on track with fixing issues now that Martin is coming on board next week.
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