libera/#commonlisp - IRC Chatlog
Search
22:13:00
Shinmera
It's not clear to me whether it's better to have a master file that includes a subfile, or a subfile that includes a scaffold. You can do either, or none.
22:13:36
Kingsy
usually I like the subfile that includes the scaffold. btu yeah. nice! good to hear.
22:14:53
resttime
kakuhen: https://github.com/marcoheisig/sb-simd/commit/67ff8cb36962a02e36f1eeba71a50c0c6d073ced there we go, mystery solved
22:15:32
kakuhen
I was wondering why cl-isl was really insistent on picking libisl.so rather than libisl.dylib on my system
22:16:38
kakuhen
resttime: yes, if you look at the paper, heisig seems to use loopus:for much like do-vectorized was once used
22:16:55
kakuhen
so right now I'm on a journey to eventually get cl-isl compiling on my mac, to get loopus.sb-simd compiling, and test loopus:for
22:17:43
resttime
Issue that I see now is that loopus tries to use this missing symbol&package still so I it's prob outdated a bit https://github.com/marcoheisig/Loopus/blob/bd84132eb5d0e94b1fadcb9be734a3ff8b0c1aff/code/ir/sb-simd.lisp#L46
22:21:30
kakuhen
for instance, sb-simd-avx2:f64.4 will not exist on computers building sb-simd on intel processors without avx2 instructions
22:26:42
resttime
kakuhen: Want me to open a PR to add (:darwin "libisl.dynlib") to the prologue.lisp? That'd solve for the future for osx systems
22:28:50
kakuhen
I'm also having to make sure my copy of libisl is ABI compatible, since it looks like cl-isl needs version 22, but my system has version 23.
22:29:03
Kingsy
Shinmera: could I trouble you with a radiance question? I have asked in clschool, but as you are here I am wondering if I could be cheeky
22:31:16
kakuhen
looks like my SBCL is hanging in the middle of building cl-isl, so there may be ABI issues... I have no way of definitively telling, and I'm too lazy to install an outdated isl just to see if I can build this tbh
22:32:28
kakuhen
running in terminal now to see if I get dropped to LDB; I suspect that may be happening when SBCL hangs.
22:34:12
kakuhen
"READ error during COMPILE-FILE: Package SB-SIMD-VECTORIZER does not exist. Line: 3, Column: 71, File-Position: 96." in code/ir/sb-simd.lisp
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??