phoe changed the topic of #lisp to: Common Lisp, the #1=(programmable . #1#) programming language | <http://cliki.net/> <https://irclog.tymoon.eu/freenode/%23lisp> <https://irclog.whitequark.org/lisp> <http://ccl.clozure.com/irc-logs/lisp/> | SBCL 1.4.16, CMUCL 21b, ECL 16.1.3, CCL 1.11.5, ABCL 1.5.0
<no-defun-allowed> guess defunkydrummer pressed #\a
mikecheck has left #lisp ["part"]
orivej has joined #lisp
t58 has quit [Quit: night]
orivej has quit [Ping timeout: 244 seconds]
frodef has quit [Ping timeout: 252 seconds]
joast has quit [Quit: Leaving.]
karlosz has quit [Ping timeout: 246 seconds]
v0|d has joined #lisp
karlosz has joined #lisp
lavaflow has joined #lisp
lnostdal has quit [Ping timeout: 255 seconds]
Necktwi has quit [Ping timeout: 246 seconds]
zotan has quit [Ping timeout: 257 seconds]
<Xach> hey, xach.com/clhs is working again
<Xach> sorry for the downtime
<Xach> i rewrite it from triple-ancient php to double-ancient lisp
zotan has joined #lisp
caltelt has joined #lisp
<aeth> apparently l1sp.org was down a couple of days ago, too.
<Xach> jes
<Xach> all related to my server move
Necktwi has joined #lisp
<aeth> The CLHS search doesn't seem to support my favorite function, remove-if-not
<aeth> l1sp does return the results for it
<aeth> (remove-if-not is the subject of an intense tabs-vs-spaces-level debate over whether or not it should be used because it is probably the most common of the deprecated functions)
<Xach> weird. that is a bug.
<Xach> copy & paste error
<Xach> will fix, thanks for the info
<aeth> you're welcome
<Xach> remove-if-not works now
<Xach> there is no debate, remove-if-not is fine to use
lavaflow has quit [Quit: WeeChat 2.4]
lavaflow has joined #lisp
orivej has joined #lisp
techquila has quit [Remote host closed the connection]
uplime is now known as Sherlime
techquila has joined #lisp
rumbler31 has quit [Read error: Connection reset by peer]
rumbler31 has joined #lisp
<aeth> Xach: uh oh... the REMOVE COMPLEMENT crowd are going to surface now
<aeth> It looks like people talked about the topic 2-3 times in the past year here. https://irclog.tymoon.eu/freenode/%23lisp?from=2018-05-16T21%3A15%3A14&to=2019-05-17T09%3A15%3A14&search=remove-if-not&by
<no-defun-allowed> remove-if and remove-if-not are extraneous just do (loop for item in list when (funcall test item) collect item)
Sherlime is now known as uplime
<aeth> no-defun-allowed: Is there a vector-equivalent to collect, though? remove-if is sequence-generic, not a list function.
<Xach> aeth: it is not real
<no-defun-allowed> ooh er
<aeth> no-defun-allowed: Just as a heuristic... you will probably need two implementations for any sequence function since what's best for lists and what's best for vectors tend to be different.
v88m has quit [Ping timeout: 258 seconds]
<aeth> e.g. the new design of the split-sequence library
<no-defun-allowed> can't think of a trivial vector specific remove-if
dddddd has quit [Remote host closed the connection]
<aeth> That's because removing from the middle of a vector is messy if you have to keep the order (if order doesn't matter you just move the last element into the removed element's spot)
<aeth> If order didn't matter it would just be (subseq foo 0 (- length-foo (1+ matches))) and then overwrite the matches in the copy with the stuff that didn't get copied
<aeth> With order mattering you'll have to make a new list at the size of (- length-foo (1+ matches)) and then, in a second iteration, copy element-by-element if not a match afaik.
<no-defun-allowed> is vector-push-extend usually O(1)? could use an adjustable vector and guess the size (eg 1/2 the original)
<Bike> usually it's amortized constant time, i think. assuming nothing weird happens with the allocation anyway
<no-defun-allowed> i would think there'd be a bit of moving to extend, dunno
<aeth> With my approach I guess the second loop would be something like this: (loop :for item :in original :with i := 0 :when (funcall test item) :do (progn (setf (aref new-vector i) item) (incf i)))
<aeth> You'd get the size of the new-vector with count/count-if/count-if-not
<aeth> It would be complicated a bit because the type would have to match and there are a lot of 1D array types
<aeth> (I didn't run that loop, it probably has bugs)
v88m has joined #lisp
anewuser has joined #lisp
v88m has quit [Ping timeout: 246 seconds]
v88m has joined #lisp
mindCrime_ has joined #lisp
v88m has quit [Ping timeout: 255 seconds]
mindCrime_ has quit [Ping timeout: 258 seconds]
gjvc has joined #lisp
v88m has joined #lisp
torbo has joined #lisp
v88m has quit [Read error: Connection reset by peer]
mindCrime_ has joined #lisp
v88m has joined #lisp
esrse has joined #lisp
grewal has quit [Quit: leaving]
orivej has quit [Ping timeout: 258 seconds]
atgreen has quit [Remote host closed the connection]
lavaflow has quit [Quit: WeeChat 2.4]
lavaflow has joined #lisp
atgreen has joined #lisp
mindCrime_ has quit [Ping timeout: 246 seconds]
prxq has quit [Ping timeout: 258 seconds]
mindCrime_ has joined #lisp
torbo has quit [Remote host closed the connection]
Nilby has quit [Read error: Connection reset by peer]
teej has quit [Quit: Connection closed for inactivity]
mindCrime_ has quit [Ping timeout: 244 seconds]
joast has joined #lisp
moei has joined #lisp
Bike has quit [Quit: Lost terminal]
loke` is now known as loke
defunkydrummer has joined #lisp
igemnace has quit [Quit: WeeChat 2.4]
igemnace has joined #lisp
gabbiel has joined #lisp
teej has joined #lisp
JohnMS_WORK has joined #lisp
defunkydrummer has quit [Ping timeout: 246 seconds]
cyberoctopi has joined #lisp
asarch has joined #lisp
defunkydrummer has joined #lisp
techquila has quit [Remote host closed the connection]
Arcaelyx has quit [Ping timeout: 244 seconds]
gabbiel has quit [Remote host closed the connection]
oni-on-ion has joined #lisp
ricekrispie2 has quit [Read error: Connection reset by peer]
varjag has joined #lisp
dacoda has joined #lisp
v88m has quit [Ping timeout: 246 seconds]
jack_rabbit has joined #lisp
caltelt has quit [Ping timeout: 245 seconds]
voidlily has quit [Ping timeout: 264 seconds]
varjag has quit [Ping timeout: 268 seconds]
libertyprime has quit [Remote host closed the connection]
karlosz_ has joined #lisp
karlosz has quit [Quit: karlosz]
karlosz_ is now known as karlosz
karlosz has quit [Quit: karlosz]
karlosz has joined #lisp
pierpal has quit [Quit: Poof]
pierpal has joined #lisp
techquila has joined #lisp
<beach> Good morning everyone!
<Josh_2> Morning
t58 has joined #lisp
voidlily has joined #lisp
sauvin has joined #lisp
dale has quit [Quit: dale]
jack_rabbit has quit [Ping timeout: 252 seconds]
v88m has joined #lisp
oni-on-ion has quit [Ping timeout: 258 seconds]
oni-on-ion has joined #lisp
vlatkoB has joined #lisp
jack_rabbit has joined #lisp
<no-defun-allowed> If I destroy a thread (using bordeaux-threads), will locks it held be freed?
ggole has joined #lisp
<fe[nl]ix> no-defun-allowed: no
<fe[nl]ix> some might, it depends. you can't count on it
<no-defun-allowed> Better not do that then.
<asarch> What's wrong? http://paste.scsys.co.uk/584520
<no-defun-allowed> Seems the C generator forgot #include <stdlib.h> or something like that.
<White_Flame> "lfp.h: No such file or directory" is probably the root cause
<asarch> D'oh! :-(
<asarch> OpenBSD has any :'-(
<fe[nl]ix> asarch: you need to install a C library named libfixposix
<fe[nl]ix> support for OpenBSD might not be very good
frodef has joined #lisp
<asarch> Yeah, I will have to use a Linux box
<asarch> Maybe in our printer server...
Intensity has quit [Remote host closed the connection]
dacoda has quit [Ping timeout: 252 seconds]
slyrus__ has quit [Remote host closed the connection]
<asarch> In a (ql:quicload) operation, what does "GC" mean?
<asarch> GNU C Compiler?
<beach> "quicload"? Really?
<Josh_2> It's extra quick because It's missing a character
<beach> That must be it.
<asarch> "Welcome to LDB, a low-level debugger for the Lisp runtime environment."?: http://paste.scsys.co.uk/584521
<no-defun-allowed> he protecc, he attac, but most importantly he quiccload
<no-defun-allowed> to my knowledge, :gc does nothing but it's valid because of &allow-other-keys
<aeth> try :aeth-is-the-greatest t
crystalball has joined #lisp
crystalball has quit []
atgreen has quit [Remote host closed the connection]
atgreen has joined #lisp
crystalball has joined #lisp
crystalball has quit [Client Quit]
orivej has joined #lisp
crystalball has joined #lisp
crystalball has quit [Read error: Connection reset by peer]
ym555_ is now known as ym555
anewuser has quit [Quit: anewuser]
varjag has joined #lisp
asarch has quit [Quit: Leaving]
Nilby has joined #lisp
orivej has quit [Ping timeout: 245 seconds]
<ebzzry> Xach: thanks for fixing l1sp.org!
scymtym has quit [Ping timeout: 246 seconds]
atgreen has quit [Ping timeout: 252 seconds]
fivo has joined #lisp
ak5 has joined #lisp
sz0 has joined #lisp
frodef has quit [Ping timeout: 248 seconds]
karlosz has quit [Quit: karlosz]
hhdave has joined #lisp
Ekho has quit [Quit: An alternate universe was just created where I didn't leave. But here, I left you. I'm sorry.]
Ekho has joined #lisp
edgar-rft has quit [Quit: Leaving]
wigust- has joined #lisp
wigust has quit [Ping timeout: 258 seconds]
scymtym has joined #lisp
john2x has joined #lisp
aindilis has quit [Read error: Connection reset by peer]
aindilis has joined #lisp
dddddd has joined #lisp
blt has quit [Read error: Connection reset by peer]
aindilis has quit [Ping timeout: 255 seconds]
schweers has joined #lisp
aindilis has joined #lisp
blt has joined #lisp
cosimone has joined #lisp
blt has quit [Quit: ZNC 1.7.3 - https://znc.in]
blt has joined #lisp
Necktwi has quit [Ping timeout: 252 seconds]
cyberoctopi has quit [Ping timeout: 255 seconds]
Necktwi has joined #lisp
nicdev has quit [Ping timeout: 268 seconds]
<no-defun-allowed> minion: memo to heisig: I'm not sure if I'll be awake when you come online but happy third birthday to Petalisp!
<minion> Remembered. I'll tell heisig when he/she/it next speaks.
<no-defun-allowed> 🎂
blt has quit [Ping timeout: 258 seconds]
maxxcan has joined #lisp
esrse has quit [Ping timeout: 252 seconds]
orivej has joined #lisp
ym555 has quit [Ping timeout: 245 seconds]
maxxcan has quit [Quit: maxxcan]
blt has joined #lisp
cosimone has quit [Quit: WeeChat 2.3]
m00natic has joined #lisp
cyberoctopi has joined #lisp
Zaab1t has joined #lisp
cyberoctopi has quit [Ping timeout: 246 seconds]
Zaab1t has quit [Remote host closed the connection]
moldybits has quit [Ping timeout: 258 seconds]
blt has quit [Ping timeout: 246 seconds]
Necktwi has quit [Ping timeout: 252 seconds]
igemnace has quit [Remote host closed the connection]
crystalball has joined #lisp
samebchase has quit [Ping timeout: 245 seconds]
loke has quit [Ping timeout: 244 seconds]
Necktwi has joined #lisp
crystalball has quit []
moldybits has joined #lisp
moldybits` has joined #lisp
atgreen has joined #lisp
john2x has quit [Ping timeout: 264 seconds]
moldybits has quit [Ping timeout: 246 seconds]
frodef has joined #lisp
gareppa has joined #lisp
nowhereman has joined #lisp
gareppa has quit [Remote host closed the connection]
heisig has joined #lisp
Inline has quit [Quit: Leaving]
<no-defun-allowed> minion: never mind the memo
<minion> good, i'll forget it
<no-defun-allowed> NLP at its finest
grewal has joined #lisp
JohnMS has joined #lisp
cosimone has joined #lisp
JohnMS_WORK has quit [Ping timeout: 255 seconds]
Lord_of_Life_ has joined #lisp
JohnMS has quit [Client Quit]
Lord_of_Life has quit [Ping timeout: 258 seconds]
Lord_of_Life_ is now known as Lord_of_Life
nowhereman has quit [Ping timeout: 258 seconds]
crystalball has joined #lisp
crystalball has quit [Client Quit]
nowhereman has joined #lisp
crystalball has joined #lisp
crystalball has quit [Client Quit]
cosimone has quit [Quit: WeeChat 2.3]
nowhereman has quit [Ping timeout: 258 seconds]
nitrix has quit [Quit: ZNC 1.7.3 - https://znc.in]
nitrix has joined #lisp
random-nick has joined #lisp
cyberoctopi has joined #lisp
crystalball has joined #lisp
crystalball has quit [Client Quit]
cyberoctopi has quit [Ping timeout: 246 seconds]
crystalball has joined #lisp
LiamH has joined #lisp
crystalball has quit [Client Quit]
campy_fellow has joined #lisp
edgar-rft has joined #lisp
ricekrispie has joined #lisp
crystalball has joined #lisp
defunkydrummer has quit [Ping timeout: 258 seconds]
atgreen has quit [Quit: Leaving]
crystalball has quit []
amerlyq has joined #lisp
oni-on-ion has quit [Ping timeout: 246 seconds]
orivej has quit [Ping timeout: 246 seconds]
notzmv has quit [Ping timeout: 255 seconds]
orivej has joined #lisp
pierpal has quit [Ping timeout: 258 seconds]
Bike has joined #lisp
Arcaelyx has joined #lisp
heisig has quit [Quit: Leaving]
mindCrime has joined #lisp
FreeBirdLjj has joined #lisp
FreeBirdLjj has quit [Ping timeout: 258 seconds]
orivej has quit [Ping timeout: 268 seconds]
ak5 has quit [Ping timeout: 252 seconds]
dale_ has joined #lisp
dale_ is now known as dale
FreeBirdLjj has joined #lisp
cyberoctopi has joined #lisp
cosimone has joined #lisp
oni-on-ion has joined #lisp
cyberoctopi has quit [Ping timeout: 268 seconds]
orivej has joined #lisp
sjl_ has joined #lisp
campy_fellow has quit [Read error: Connection reset by peer]
campy_fellow has joined #lisp
orivej has quit [Ping timeout: 246 seconds]
orivej has joined #lisp
campy_fellow has quit [Ping timeout: 252 seconds]
campy_fellow has joined #lisp
oni-on-ion has quit [Ping timeout: 244 seconds]
macdavid313 has joined #lisp
pierpal has joined #lisp
powerbit has quit [Read error: Connection reset by peer]
frodef has quit [Ping timeout: 250 seconds]
macdavid313 has quit [Quit: macdavid313]
cosimone has quit [Quit: WeeChat 2.3]
shifty has quit [Ping timeout: 246 seconds]
HDurer has quit [Ping timeout: 252 seconds]
HDurer has joined #lisp
interruptinuse has joined #lisp
sauvin has quit [Ping timeout: 245 seconds]
v88m has quit [Ping timeout: 245 seconds]
Josh_2 has quit [Quit: ERC (IRC client for Emacs 26.1)]
eddof13 has joined #lisp
eddof13 has quit [Client Quit]
sauvin has joined #lisp
sauvin has quit [Excess Flood]
sauvin has joined #lisp
eddof13 has joined #lisp
rpg has joined #lisp
sauvin has quit [Max SendQ exceeded]
maxxcan has joined #lisp
loke has joined #lisp
maxxcan has quit [Quit: maxxcan]
ricekrispie2 has joined #lisp
ak5 has joined #lisp
ricekrispie has quit [Ping timeout: 268 seconds]
atgreen has joined #lisp
sauvin has joined #lisp
cosimone has joined #lisp
karlosz has joined #lisp
mindCrime_ has joined #lisp
cyberoctopi has joined #lisp
ak5 has quit [Quit: WeeChat 2.4]
mindCrime has quit [Ping timeout: 252 seconds]
cyberoctopi has quit [Ping timeout: 255 seconds]
cyberoctopi has joined #lisp
schweers has quit [Ping timeout: 252 seconds]
Josh_2 has joined #lisp
campy_fellow has quit [Read error: Connection reset by peer]
campy_fellow has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
fivo has quit [Quit: WeeChat 1.9.1]
hhdave has quit [Ping timeout: 258 seconds]
shangul has joined #lisp
atgreen_ has joined #lisp
lumm has joined #lisp
atgreen has quit [Ping timeout: 244 seconds]
cosimone has quit [Ping timeout: 258 seconds]
cosimone has joined #lisp
m00natic has quit [Remote host closed the connection]
ravenousmoose has joined #lisp
cosimone has quit [Ping timeout: 252 seconds]
cosimone has joined #lisp
ravenousmoose has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
ravenousmoose has joined #lisp
cosimone has quit [Ping timeout: 264 seconds]
cosimone has joined #lisp
cosimone has quit [Ping timeout: 250 seconds]
rpg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
cosimone has joined #lisp
lavaflow has quit [Ping timeout: 246 seconds]
dkmueller has joined #lisp
cosimone has quit [Ping timeout: 248 seconds]
cosimone has joined #lisp
cosimone has quit [Client Quit]
rpg has joined #lisp
t58 has quit [Quit: Eyes hurt]
atgreen__ has joined #lisp
atgreen_ has quit [Ping timeout: 246 seconds]
<gaze___> hey folks, I'm getting back into lisp after a long hiatus and I've hit a bit of a snag. I have a directory with a file called main.lisp and a file called foo.asd... foo.asd contains (asdf:defsystem foo ...). I open emacs, I open main.lisp, I M-x sly, and then I M-x load-system foo, and I get an ASDF/FIND-SYSTEM:MISSING-COMPONENT
<gaze___> or sorry, sly-asdf-load-ssytem
Acru has joined #lisp
<Xach> gaze___: the directory has to be known to asdf somehow.
<Xach> gaze___: or there must be some way it can find the foo.asd file through its various ways
<Acru> hey, I am having a problem with compiling a lisp program: when running it, I include "split-sequence" via (ql:quickload "split-sequence"), but when I complile it i get the error *** - READ from #<INPUT BUFFERED FILE-STREAM CHARACTER #P"/home/antono/Projects/codenchill/median.lisp" @15>: there is no package with name "SPLIT-SEQUENCE", and when I declare (asdf:load-system "split-sequence") I still get the error
<gaze___> even if foo.asd is in the CWD?
<Acru> I am really new to lisp package management
<Xach> gaze___: that's right.
<Xach> gaze___: you'd have to teach asdf to look there if you like
<Xach> Acru: the call to ql:quickload does not happen in time for it to make the package name available for reading in the same file.
<katco> Xach: speaking of, are you aware of a way to configure asdf to always look at cwd?
<katco> it seems to deal only in absolute paths
<Xach> katco: one way is to push the symbol 'cl:*default-pathname-defaults* to asdf:*central-registry*
<Acru> Xach: what can I do to make it work?
<Xach> Acru: one option is to wrap the quickload form in (eval-when (:compile-toplevel :load-toplevel :execute) ...)
<Xach> Acru: another option is to use a system definition that sets up all the things to load before loading your code.
<Xach> making a system definition is not too tricky
<gaze___> Xach: let's suppose I add a (pushnew "~/path-to-project/root/" asdf:*central-registry* :test #'equal) to my .sbclrc... does that mean that it'll find ~/path-to-project/root/project1/project1.asd, ~/path-to-project/root/project2/project2.asd?, etc.?
<Acru> how would I make a system definition?
<Xach> gaze___: i use quicklisp so i usually stick projects in ~/quicklisp/local-projects/ - those are found automagically
<gaze___> ah :D
<Xach> Acru: i have a link for that, hang on
<Xach> gaze___: modifying the central registry works too
<Xach> and the conf file stuff works too (but i have trouble remembering how it works)
<gaze___> just to be clear, when you start new projects, you just put them in local-projects?
<katco> it took me awhile to grok this, but it does explain the different options
<gaze___> I'm trying to establish good habits in my workflow
<katco> gaze___: they just need to be under the root of one of the places asdf knows to search for projects. if you're using quicklisp, `local-projects` is one such place
<katco> i used to put my projects where i liked them to reside and then symlink them to `local-projects`, but i like the conf file solution better
<Xach> https://xach.com/tmp/quickstart.html has a self-contained simple project with a system definition.
<gaze___> gotcha! thanks!
sauvin has quit [Remote host closed the connection]
<jackdaniel> another kind of chart for polyclot (wip integration with cl-bench): https://files.mastodon.social/media_attachments/files/014/697/322/original/c1c1e5a45dbd4a25.png
<jackdaniel> putting there clisp results would make two things happen: charts would be less readable and ecl would look much better in comparison ,)
saravia has joined #lisp
pierpal has quit [Quit: Poof]
orivej has quit [Ping timeout: 246 seconds]
pierpal has joined #lisp
oni-on-ion has joined #lisp
techquila has quit [Remote host closed the connection]
dkmueller has quit [Quit: WeeChat 1.6]
MichaelRaskin has joined #lisp
dkmueller has joined #lisp
Jesin has quit [Quit: Leaving]
<gaze___> okay, maybe a goofy question but what's the recommended way to patch additional functionality into a library? pzmq for instance doesn't have the encryption functions implemented. Suppose I don't yet want to submit a pull request, I just sorta want to hack the functionality in place for testing and I don't want to edit pzmq itself
<gaze___> can I just (in-package so-and-so) and go wild?
slac-in-the-box has joined #lisp
<sukaeto> gaze___: in the past, that is what I've done, FWIW
<gaze___> nice.
<sukaeto> (you may want to wait for others to weigh in, just to be safe, though)
techquila has joined #lisp
<Bike> for temporary patching that kind of thing is fine. it gets dicey when you try to maintain it, though.
<gaze___> oh yeah absolutely.
<gaze___> no question it's very fragile. I'm just prototyping
<sukaeto> yeah, it goes without saying that this is not a permanent solution :-)
<gaze___> sometimes just just want some shit to work... the wrong way.
nowhere_man has joined #lisp
Jesin has joined #lisp
sz0 has quit [Quit: Connection closed for inactivity]
pierpal has quit [Ping timeout: 245 seconds]
pillton has quit [Read error: Connection reset by peer]
<Xach> gaze___: it's nice to be able to patch the implementation when needed, too
pierpal has joined #lisp
cosimone has joined #lisp
random-nick has quit [Ping timeout: 258 seconds]
igemnace has joined #lisp
v88m has joined #lisp
vlatkoB has quit [Remote host closed the connection]
eddof13 has quit [Quit: eddof13]
jmarciano has joined #lisp
asdf_asdf_asdf has joined #lisp
cyberoctopi has quit [Ping timeout: 246 seconds]
nowhereman has joined #lisp
shangul has quit [Ping timeout: 255 seconds]
nowhere_man has quit [Ping timeout: 255 seconds]
random-nick has joined #lisp
asarch has joined #lisp
frodef has joined #lisp
eddof13 has joined #lisp
cyberoctopi has joined #lisp
Inline has joined #lisp
zotan has quit [Ping timeout: 252 seconds]
zotan has joined #lisp
scymtym has quit [Ping timeout: 248 seconds]
anamorphic has joined #lisp
cyberoctopi has quit [Ping timeout: 258 seconds]
<asdf_asdf_asdf> Hi. How get signature callback (function) in SBCL (Common Lisp)? I try: (* func), not working. I defined callback, it: (define-alien-callback ...).
orivej has joined #lisp
<anamorphic> asdf_asdf_asdf: is a callback even funcallable?
<asdf_asdf_asdf> Probably, yes.
<gaze___> maybe a bit of a contentious question, but is there a way to strip symbol names from SBCL when doing save and die?
<asdf_asdf_asdf> I give error: "Undefined alien type: ... (* func).
<gaze___> I know it's impossible to fully stop reverse engineering, but it'd be nice to slow it down a bit.
<gaze___> and if not with SBCL, is it possible with CCL, CMUCL, one of the more major implementations
ebrasca has quit [Remote host closed the connection]
ym555 has joined #lisp
<asdf_asdf_asdf> gaze___, looks for it: https://koji-kojiro.github.io/sb-docs/build/html/index.html
<gaze___> huh?
<Bike> https://bugs.launchpad.net/sbcl/+bug/310108 i think stripping an sbcl binary will be problematic.
<grewal> gaze___: Setting debug to 0 and agressively inlining might help
<Bike> ...and i don't think there is any special support for stripping
<asdf_asdf_asdf> (define-alien-type nil (struct WNDCLASS (lpfnWndProc 'WindowProc))) How pass signature function to type struct?
ggole has quit [Quit: Leaving]
<Bike> asdf_asdf_asdf: can you just use cffi, as several people have now suggested? it's more common and documented.
<anamorphic> gaze___: maybe you can define your own perverted defun and friends to hash the friendy names
<asdf_asdf_asdf> (lpfnWndProc <here should be pointer to callback probably>)
<gaze___> anamorphic: that's really cute
<gaze___> I'm not entirely sure why the names have to be retained to begin with... isn't SBCL ultimately a compiler?
<gaze___> well okay... I guess that functionality is retained so you have to go out of your way to break it.
<whartung> …in an ostensibly interactive environment. where meta data and debug information is always valuable.
<Bike> indeed.
<Bike> sbcl is public domain so you can do whatever with it, but it's common to share sources (e.g., quicklisp)
<gaze___> ah well, employers don't always want the details of the architecture of their hardware being broadcast to the world... so if I'm developing a compiler or something
<whartung> it would not surprise me if Franz or Harlquins lisp had more aggressive stripping utilities.
<Bike> i'm not judging you, i'm just saying what you're doing is not how sbcl is usually used, so it's unlikely to be supported particularly, you know?
<whartung> considering it’s academic roots, especially.
<gaze___> yeah, that completely makes sense.
<Bike> i'd definitely look more at the commercial lisps for this
<Bike> they do stuff like avoid distributing the compiler for the sake of their own IP, stripping doesn't seem far off from that
<gaze___> lispworks has a tree shaker and all that.
<whartung> Just change the reader to hash symbols that you read in to GUIDs. “EZ! amirite?”
<whartung> just check the pacakge of the symbol so you don’t mung CLUSER etc. That would probably be Bad.
<grewal> Change your application design/business model so they never have the executable on a computer they own
<whartung> burn the code in to a microcontoller.
<anamorphic> Dongles.
<Bike> develop a lisp to malbolge compiler
<whartung> Mind I’m a terrible person to talk to about this, as I don’t grok the fear management is feeling.
<whartung> that woul dwant to persue this in the first place.
<gaze___> I mean if even to keep customers from going "ooh there's a lisp interpreter in here" and introducing bugs and complaining to support
<whartung> (I don’t say it doesn’t exist, I don’t say it’s invalid, I just don’t grok it)
<whartung> well don’t let them get access to the reader.
<gaze___> I don't so much mind people having a whack at reverse engineering... it's always, always possible. A bit of friction might be good tho.
<grewal> Write a lisp minifier
<Bike> well, like i said, distributed lispworks programs don't have an interpreter or compiler or anything available.
<gaze___> it's true.
<gaze___> I might poke around inside SBCL
svillemot has quit [Quit: ZNC 1.7.2+deb2 - https://znc.in]
<whartung> can’t hurt it
<gaze___> trying to figure out how to strip this information might not be a bad way to learn a bit about SBCL's internals... which, ya know hey, if you wanna master a language, master the compiler.
<whartung> try and make it like headless Forth.
<gaze___> how many people have tried to write tree shakers for SBCL?
<gaze___> I feel like this must be a very common question
anamorphic has quit [Quit: anamorphic]
<Bike> i've seen a few attempts, but i couldn't give you a number.
svillemot has joined #lisp
<Bike> also, a tree shaker is kind of different, no? if anything, having a bunch of useless things in the image would make it harder to figure out.
<whartung> I honestly off the top of my head don’t know how to lookup a symbol given the text of it.
<Bike> maybe you want a tree grower.
<whartung> yea, you really just want a symbol stripper
<whartung> a tree shaker removes dead code. but that’s not what you’re asking.
<whartung> (like the compiler)
<gaze___> no, it isn't, but it's also a thing that might be nice to have.
<gaze___> sorry, I'm not being super clear
<whartung> you want to remove the symbols (or obfuscate them)
<Bike> eliminating certain things might be problematic. for example, sbcl uses jit compiles for make-instance, so if you're not careful removing the compiler could wreck CLOS.
<gaze___> oh no kidding? hmm
anamorphic has joined #lisp
<whartung> that would be a rude shock lol
meepdeew has joined #lisp
svillemot has quit [Client Quit]
lavaflow has joined #lisp
Nilby has quit [Ping timeout: 248 seconds]
svillemot has joined #lisp
<gaze___> seems like what I wanna do is somehow deep inside sbcl/src/code/target-package.lisp
shangul has joined #lisp
lumm has quit [Quit: lumm]
lumm has joined #lisp
ravenousmoose has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<whartung> if only it turns out to be that easy gaze___
<anamorphic> gaze___: what industry are you in where your binary needs to be scrubbed like this? (curious, if you don't mind)
Bike has quit []
cosimone has quit [Ping timeout: 252 seconds]
Acru has quit [Quit: Page closed]
<gaze___> quantum computing
cosimone has joined #lisp
<gaze___> I'm not associated with rigetti, I might add.
lumm has quit [Remote host closed the connection]
lumm has joined #lisp
cosimone has quit [Client Quit]
<gaze___> yeah ok, there's someone called nuke-symbol in there that could probably be used as a reference
<gaze___> I guess a package encompasses the functionality of a symbol table, is that right?
cosimone has joined #lisp
<whartung> packages are part and parcel to symbols
<whartung> symbols are, at a base level, made of two components: the package and the symbol text.
lumm has quit [Ping timeout: 258 seconds]
<anamorphic> gaze___: I long time ago juho snellman (I think) posted a snippet on github gist somewhere that did a pretty good tree shake. I don't recall what it did with symbols though and I'm having trouble finding it
<anamorphic> Huh maybe that is it and I misremember
<gaze___> there is this guy here, and it seems to just completely nuke the package system
lumm has joined #lisp
<anamorphic> Huh 17 days ago though... I think there was an earlier attemp that was quite comprehensive too
<gaze___> perhaps this?
lumm has quit [Ping timeout: 258 seconds]
<anamorphic> Yeah that's it
amerlyq has quit [Quit: amerlyq]
lavaflow has quit [Ping timeout: 245 seconds]
<Josh_2> what are delimited continuations used for?
lumm has joined #lisp
mindCrime_ has quit [Ping timeout: 258 seconds]
lumm has quit [Remote host closed the connection]
<aeth> Has any implementation tried JITing method calls?
<aeth> or, I guess generic function calls.
dkmueller has quit [Quit: WeeChat 1.6]
<anamorphic> aeth: Like cache method combinations?
atgreen__ has quit [Ping timeout: 246 seconds]
dkmueller has joined #lisp
meepdeew has quit [Ping timeout: 246 seconds]
LiamH has quit [Quit: Leaving.]
<aeth> anamorphic: Yes, that might work. I think if you operated under the assumption that in e.g. a loop it's probably going to be the same method call(s) for the same generic function, you'd probably be right more than wrong.
<aeth> Like if you had a list-or-vector generic, it's probably going to be dispatching on the same class repeatedly.
<anamorphic> I think most clos impls probably do caching
<aeth> But you could do proper JIT, too, which I guess would be something like inlining the probable generic function.
rumbler3_ has joined #lisp
rumbler31 has quit [Ping timeout: 245 seconds]
<aeth> Actually, I'm curious exactly how make-instance is JITed in SBCL. I always thought CL performance kind of fits in this strange world where AOT-everything-but-CLOS makes sense, but I didn't expect an implementation to actually do it.
rumbler3_ has quit [Ping timeout: 246 seconds]
rumbler31 has joined #lisp
Bike has joined #lisp
<Bike> Jitting generic function calls is what beach's clos implementation strategy does. Works well in clasp
<Bike> Sbcl jits make instance by replacing obvious calls with calls to a cached function. Since the function can know the class and initargs in advance, it skips a lot of work.
<aeth> Is it better for performance to use initargs than your own custom keywords in an initialize-instance defmethod, then?
xkapastel has joined #lisp
<Bike> I don't understand what you're asking.
<aeth> It seems fairly common to add keywords to a make-instance with something like (defmethod initialize-instance :after ((object foo) &key
<Bike> Those methods do more than set slots, though
<Bike> Or they set slots based on the values of other slots
<Bike> They do things you couldn't do with just an initarg, i mean
<physpi> Question(s)
<physpi> Anyone using projectile and allegro?
<physpi> (Not using git :( )
<aeth> Bike: Well, I guess I mean that some (not all) of them probably could be rewritten to have extra initargs instead of adding keys, and use those new slots with those new initargs to set the derived values of the other slots, which is what they're probably doing with the keys.
<anamorphic> projectile the emacs mode and allegro the lisp?
<physpi> anamorphic: yeah
<physpi> I’m trying to figure out how to configure it
<Bike> Huh??
<physpi> Without git
<Bike> what kind of weird initialize instances are these
<anamorphic> Well projectile doesn't have much to do with Lisp modes in Emacs
<physpi> I know
<physpi> Oh duh.
<physpi> Maybe I should ask in #emacs
Bike_ has joined #lisp
shangul has quit [Ping timeout: 246 seconds]
maxxcan has joined #lisp
maxxcan has quit [Client Quit]
pierpal has quit [Ping timeout: 258 seconds]
saravia has quit [Remote host closed the connection]
Bike has quit [Ping timeout: 256 seconds]
random-nick has quit [Read error: Connection reset by peer]
mindCrime_ has joined #lisp
shifty has joined #lisp
<White_Flame> Bike_: by "JIT" do you mean the actual call site is recompiled eliminating the function call, or the callee is recompiled and dispatched through an indirecting pointer?
mindCrime has joined #lisp
mindCrime_ has quit [Ping timeout: 244 seconds]
<White_Flame> or if not eliminating the function call, eliminating the indirection
wooden__ has joined #lisp
<Bike_> there's an indirection
Bike_ is now known as Bike
* oni-on-ion happy with treemacs and raylib
frodef has quit [Ping timeout: 244 seconds]
cosimone has quit [Ping timeout: 258 seconds]
<White_Flame> Bike: yeah, actual call site recompilation would be the only way to fully optimize local numeric types and inline small methods. I wonder how big of a change that would be for existing implementations, if it'd basically require a new one
<Bike> it transforms (make-instance 'name ...initargs) into (funcall (load-time-value (ensure-ctor ...) t))
cosimone has joined #lisp
frodef has joined #lisp
asdf_asdf_asdf has quit [Ping timeout: 256 seconds]
moei has quit [Quit: Leaving...]
lumm has joined #lisp
anamorphic has quit [Quit: anamorphic]
anewuser has joined #lisp
atgreen__ has joined #lisp
anewuser has quit [Read error: Connection reset by peer]
frodef has quit [Ping timeout: 258 seconds]
anewuser has joined #lisp
karlosz has quit [Quit: karlosz]
eddof13 has quit [Quit: eddof13]
karlosz has joined #lisp
Josh_2 has quit [Quit: ERC (IRC client for Emacs 26.1)]
rpg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
dkmueller has quit [Quit: WeeChat 1.6]
caltelt has joined #lisp
torbo has joined #lisp
lumm has quit [Quit: lumm]
lumm has joined #lisp
karlosz has quit [Quit: karlosz]
lumm has quit [Client Quit]
lumm has joined #lisp
Lord_of_Life has quit [Ping timeout: 268 seconds]
Lord_of_Life has joined #lisp
ym555 has quit [Ping timeout: 246 seconds]
mindCrime has quit [Excess Flood]
mindCrime has joined #lisp
varjag has quit [Quit: ERC (IRC client for Emacs 26.1)]
cosimone has quit [Quit: WeeChat 2.3]