libera/#commonlisp - IRC Chatlog
Search
22:37:28
kakuhen
With that said, I also am getting at the very bottom of the debugger output: "Bogus form-number: the source file has probably changed too much to cope with"
22:41:05
resttime
Went ahead and created PR, should solve minor annoyance with picking the write lib on OSX, I've written crossplatform CFFi bindings before and just specify the lib name explicitly depending on the platform
22:46:35
Kingsy
more generic question then if anyone might know, whatis the best way of recompiling an .asd lisp module and I am working on?
22:49:16
kakuhen
I'm guessing it's because :UNIX is in *FEATURES* as well, but I'm not sure since I've never used CFFI.
22:50:32
kakuhen
in any case, I proceeded building the package despite the warnings in loopus.sb-simd, and codegen became absolutely borked, so I think the presence of sb-simd-vectorizer is important :<
22:52:28
resttime
kakuhen: Yeah, the way DEFINE-FOREIGN-LIBRARY works is that it'll check the load clauses in order, so the one for :DARWIN will have to be before the :UNIX one
22:56:28
resttime
Kingsy: Dunno best way, but I keep a symlink to the project repo in quicklisp/local-projects and quickload the system when needed
22:57:42
Kingsy
resttime: I think I did it within emacs using SPC-m-c -> f, no restart of radiance needed. after that I just hit the radiance server and the new endpoint was there.. pertty sweet.
22:58:38
Kingsy
resttime: ah that makes sense. my project is actually in there right now, so just a quickload would have worked too I suppsoe, thats probably what emacs is doing under the hood.
23:00:30
resttime
np, and it kinda depends. My context is if I'm working on a project that depends-on another, I'd make a local copy of the other repo, make changes, add symlink to the quicklisp/local-projects
23:01:10
resttime
Then every subsequent quickload will automatically prioritise the one in local-projects instead of the one in the quicklisp repo
23:04:22
resttime
If it's just my own project then I'd just take advantage of hotloading with the SLY/SLIME keybindings
23:09:39
Kingsy
hehe thats kinda over my head. but I am sure i will figure it out at some point. I have a depends on and the sly keybinding worked. but we will see.
3:39:03
beach
I don't know the answer, but I wonder why that is important. I mean, you typically don't start your Common Lisp image very often.
3:40:40
smlckz
something like this: https://slime.common-lisp.dev/doc/html/Loading-Swank-faster.html
4:18:11
phantomics
Checking in again with a question about the finer points of threading. In lparallel is there a fast way to get a count of the number of active workers in the kernel? I'm working on finding a way to divide large, unpredictable workloads without causing delays due to shortages of available threads
4:22:15
phantomics
(lparallel:task-categories-running) will get the info, but running it millions of times will definitely cost
4:22:42
hayley
Though it'd be "intrusive" to your code, you could have your tasks atomically bump a counter?
4:22:54
phantomics
I've thought of keeping an integer count of active threads and incrementing/decrementing it when appropriate, but I'll have to handle many conditions
4:23:38
phantomics
Intrusive isn't much of a problem, since I'm concentrating all parallelism in the system in a single function to focus on optimizing
5:57:31
flip214
phantomics: is that more a question of "how many cores did I get assigned on startup", or "how busy is my system right now"?
6:01:00
flip214
the latter will be unpredictable to some degree... the first question is "just" a syscall, but could vary too
6:51:45
Josh_2
I have a macro that is defining two conditions, the latter has the former as a superclass, but CL is complaining that the former is not yet defined
6:55:10
flip214
or it might be easier to just (EVAL ...) the superclass directly during macro runtime
7:02:20
Josh_2
turns out it was because I had a define-condition form somewhere it shouldn't have been
7:52:13
flip214
Using SBCL 2.2.6+git something I observe that my code, when it dynamically creates a package, binds *PACKAGE* to it, and then (LOADs ...) some files into it (which use macros in other packages etc.),
7:52:55
flip214
gets the symbols LOOP-END-NIL, LOOP-STEP-NIL, and LOOP-TOP-NIL interned in that new package.
7:53:28
flip214
I'm fairly sure that my code doesn't do that; is that something that got fixed in SBCL lately?
9:38:29
_death
it generates such symbols via a function called symbol-append, which for some reason uses INTERN instead of MAKE-SYMBOL
9:58:07
beach
flip214: If the function is inlined, you will not see anything when you trace it. I don't know that that's the case, but it could very well be that.
9:59:47
flip214
beach: well, swank's tracer shows that ADD-SYMBOL is being called ... but using SBCL's (TRACE :encapsulation nil :break sb-impl:add-symbol) [that should use a breakpoint] doesn't work
10:03:45
beach
flip214: If it is not declared notinline, it could be inlined. But I guess that's not the case.
10:05:41
flip214
_death: but ITERATE is used in functions that are "statically defined" and might only get called via macros... does iterate INTERN in the generated loop prolog or epilogue??
10:22:37
flip214
yeah, thanks... one macro calls an inlined function that uses ITERATE, I guess that's the point where it happens.
10:24:23
_death
my guess is that make-symbol should be used instead, but I've not tried to assess the repercussions
10:32:42
Josh_2
aeth: Thanks for the info but no, the problem was I had a define-condition form with a superclass that was not yet defined somewhere it was not meant to be (duplicates)