freenode/#lisp - IRC Chatlog
Search
16:17:45
beach
jeosol: Steady progress. The latest idea is explained in this draft paper: http://metamodular.com/SICL/call-site-optimization.pdf
16:23:15
jackdaniel
ah, I've got excited for nothing, it is a server; I was hoping for a new client library
16:24:38
jeosol
beach: Thanks for the link of the paper- will read. My browser logged me out for some reason
16:27:10
jeosol
Thanks for the summary. That's something I could use since I do many optimizations runs with thousands of calls
16:30:36
jeosol
Basically, most of my application is in the optimization space (and some machine learning for function approximation).
16:32:50
jeosol
One of the application examples, is meta-optimization - optimizing and optimizer. This is the application I said does lots of calls. I am looking at improving choice of data structures, etc, to squeeze out performance. Though in other practical applications, I am limited by expensive call to a third-party application that can take several minutes
16:34:50
jeosol
sorry that was vague: it's the stochastic kind, evoluationary algorithms, e.g,. genetic algorithms, and the swarm algorithms, e.g., particle swarm optimization
16:35:51
jeosol
They are not very efficient hence the need to combine with some statistical function approximators to save function calls
16:38:08
jeosol
Perhaps I could also do an ELS paper. I tried to do one last year and travel but covid hit and disrupted plans
16:41:30
jeosol
beach: also regarding your linked paper, off the top of my head, faster calls than C++ have significant implications - for one, having faster numeric type applications. Every time I have to deal with python version issues when I reach for one of the numeric libraries
16:42:20
jeosol
beach: I worked on a draft last year, I'd finish and submit. I just got the code I was working on to a great place and it's more stable, thanks to hints from you and the other guys here
16:45:53
jeosol
Haha, I guess by draft, I overstated things a bit; it's not completed. I have seen papers with code snippets so I was thinking may be I needed to include a few (albeit simplified versions)
16:46:47
jeosol
I'd check the deadline and work to complete it. At least the code runs stable and I can run it in docker from base container
17:56:18
puchacz
hello, ECL is mostly up and running, but I was getting a strange crash before: "Internal error: Detected write access to the environment while interrupts were disabled. Usually this is caused by a missing call to ecl_enable_interrupts." - it looked as if it was related to an ironclad function being unsuccessfully injected into a hunchentoot thread
18:01:10
puchacz
got this error in emacs again, it is trying to inject (make-prng :os) from ironclad, and the error is "Cannot interrupt the inactive process #<process hunchentoot-worker-127.0.0.1:48494 0x55760597b480>"
18:01:56
puchacz
this form is automatically added to bt:*default-special-bindings* in ironclad, but I don't know what exactly is going on
18:09:01
jackdaniel
it looks as if you are trying to do something in a thread that is not started (i.e already ended)
18:12:12
puchacz
trying to recompile now with (pushnew '(*prng* . (make-prng :os)) bt:*default-special-bindings* :test #'equal) commented out
18:12:46
puchacz
I can imagine it is some sort of ironclad improved random seed generator, but I don't understand why it is trying to interrupt a thread
18:42:51
puchacz
is it possible to globally restrict compiler policy? e.g. sbcl has (sb-ext:restrict-compiler-policy 'debug 3) that overrides all local declaims, proclaims etc.
22:23:49
puchacz
jackdaniel - sorry, I did not pinpoint it, but I realised that ironclad has nothing to do with the issue - I just saw the binding at the bottom stack frame of a thread, because bordeaux-threads was binding these specials as requested by ironclad. nothing to do with interrupting.
22:54:35
puchacz
with a version from git, I think I never saw this "Cannot interrupt inactive" anymore
23:12:26
puchacz
I will play with it next weekend, there are (sparse!) application level incompatibilities, e.g. something deep inside babel crashes this in ECL (puri:parse-uri
23:12:26
puchacz
"https://en.wikipedia.org/w/load.php?lang=en&modules=ext.cite.styles%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediaBadges%7Cjquery.makeCollapsible.styles%7Cskins.vector.styles.legacy%7Cwikibase.client.init&only=styles&skin=vector")
23:13:06
puchacz
with #(124) is not of type (SIMPLE-ARRAY (UNSIGNED-BYTE 8) (*)) --- related to lovely Lisp strings in babel :)
23:25:34
devon
Is there a cure for the impossibility of using SWANK::*AFTER-INIT-HOOK* in a straightforward way?
23:35:42
aeth
mfiano: Interesting. Apparently, the behavior you were complaining about a while back (iirc) is called sb-ext:readtable-normalization according to: https://old.reddit.com/r/lisp/comments/kv9uqv/sbcl_unicode_support/
23:38:02
aeth
Maybe I can just use the host CL's readtable to readtable-case :invert in Airship Scheme, then.
3:37:48
charles`
flip214: by ignore package nickname I didn't mean "not have to type it", I meant "change the package definition to not have a nickname without changing the source code" and before or while ASDF is loading it.
3:42:04
fiddlerwoaroof
I _believe_ there's an ASDF extension somewhere that has some sort of file-local package nicknames
3:46:22
fiddlerwoaroof
But, I don't know the context, so I'm not sure what the best thing to tell you is
3:48:37
charles`
basically I have two packages that have names CL-BASE64 and BASE64; I need both because they are dependencies for different dependencies. CL-BASE64 has nickname BASE64. I just need to remove that.
3:52:49
fiddlerwoaroof
I'd be inclined to force one system in this case and then add a bit of code to emulate the other one to the BASE64 package
3:53:58
charles`
It isn't that simple. cl-base64 and base64 have differently named functions and cl-base64 has some functions that base64 doesn't have at all
3:54:51
fiddlerwoaroof
Yeah, what I'm thinking is take the one with the more complicated to implement function, and then write your own code to implement the missing names
3:59:23
charles`
so track down the package that is using it as a dependency and tell them that they should use a different package
3:59:25
fiddlerwoaroof
The problem is that their transitive dependencies, which means you'd have to figure out how to modify the dependency list
3:59:57
charles`
wouldn't I have to modify the package that uses base64 as a dependency to use cl-base64 functions
4:03:21
fiddlerwoaroof
load cl-base64 first, delete the package nickname using normal lisp code and then load your own system
4:04:23
fiddlerwoaroof
I'm actually surprised this happens, I thought quicklisp requires that all systems be loadable in the same image
4:05:06
charles`
they can load just fine. I just have to enter the debugger and manually ignore the BASE64 nickname
4:05:54
charles`
also perhaps the problematic nickname was added after already being added to quicklisp