jackdaniel changed the topic of #lisp to: Common Lisp, the #1=(programmable . #1#) programming language | <https://irclog.tymoon.eu/freenode/%23lisp> <https://irclog.whitequark.org/lisp> <http://ccl.clozure.com/irc-logs/lisp/> | offtopic --> #lispcafe
igemnace has joined #lisp
karlosz has quit [Quit: karlosz]
karlosz has joined #lisp
contrapunctus has left #lisp ["Disconnected: closed"]
rumbler31 has quit [Remote host closed the connection]
rumbler31 has joined #lisp
karlosz has quit [Quit: karlosz]
nicktick has joined #lisp
rumbler31 has quit [Remote host closed the connection]
rumbler31 has joined #lisp
cosimone has quit [Read error: Connection reset by peer]
ukari has quit [Remote host closed the connection]
<nij> Oh no Bike sorry I missed your message as my friend called. Feeling bad :(
<nij> >> Weird.. in my stumpwm config, I have (when (ignore-errors (ql:quickload :some-package)) (progn (defcommand ..)))
ukari has joined #lisp
<nij> When :some-package is not presented, (defcommand) was still evaluated, leading to an error.
<nij> I was wondering if defcommand is some macro that might "leak".
<nij> So I did put (progn (setf test 123) (defcommand ... something that will fail))..
amontero has joined #lisp
<nij> The package :some-package was not presented, so (progn..) shouldn't be evaluated (indeed, TEST wasn't set to 123). However, (defcommand..) was evaluated and led to another error.
gitgood has quit [Remote host closed the connection]
karlosz has joined #lisp
akoana has left #lisp ["Leaving"]
<jasom> is it possible to sign-extend a number, given a desired bitwidth? i.e. treat a positive number as being the unsigned representation of a twos-complement value?
<jasom> so e.g. (foo #xff 8) => -1
xsperry has joined #lisp
xsperry has quit [Changing host]
xsperry has joined #lisp
MIF has joined #lisp
<moon-child> (defun foo (n b) (let ((m (1- (expt 2 (1- b))))) (if (< n m) n (- m n)))
pagnol has joined #lisp
<jasom> right, but nothing builtin for that?
DHARMAKAYA has joined #lisp
quazimodo has joined #lisp
<pagnol> morning
<moon-child> err, s/</<=/
<jasom> moon-child: or just < without the 1-, but then you'd have a bignum at machine-word sizes
<moon-child> well, then you would need (- m n 1)
<moon-child> there's nothing as far as I know. Txr has it apparently https://www.nongnu.org/txr/txr-manpage.html#N-026F9F46
wxie has joined #lisp
amontero has quit [Quit: ERC (IRC client for Emacs 27.1)]
hypercube has quit [Ping timeout: 252 seconds]
mrchampion has quit [Ping timeout: 252 seconds]
<jasom> Here's what I had, FWIW: (defun foo (x width) (if (logbitp (1- width) x) (- x (ash 1 width)) x))
mrchampion has joined #lisp
<jasom> though on reflection, this is probably clearer: (defun foo (x width) (if (logbitp (1- width) x) (dpb x (byte width 0) -1) x))
<mfiano> I'd be impressed if you can do this more efficiently. stassats helped me write that years ago
<mfiano> (with proper type annotations of course)
<jasom> ah, uses a multiply to avoid a branch. Probably a good call on any processor made in the last 20 years or so
<moon-child> mfiano: sounds like a compiler issue :P
<moon-child> assuming 'width' is hardware assisted, it should be no more than 3 instructions
<moon-child> (maybe a couple extra if you want to avoid a branch, but predictable branches are übercheap)
Josh_2 has quit [Remote host closed the connection]
<jasom> mfiano: same # instructions between that and mine, with mine having a branch
<jasom> s/instructions/bytes
<jasom> mine is fewer instructions
Kundry_W_ has quit [Remote host closed the connection]
<jasom> mfiano: yours is about 2x as fast on a quick benchmark despite being more instructions; not too surprising since the sign bit branch is completly random on my test-case
<mfiano> Code size is not a really meaningful metric
<jasom> mfiano: I suspect mine would be faster if the test corpus was entirely positive or entirely negative
<jasom> just tested, and it's indeed slightly faster
<mfiano> Also depends on the register allocator
ech has quit [Quit: Lost terminal]
<jasom> in this test case there were plenty of registers so it wouldn't have discovered that
<jasom> gtg, dinner
<mfiano> SBCL will register-allocate lexivars if it deems it is good to do so
DHARMAKA_ has joined #lisp
DHARMAKAYA has quit [Ping timeout: 252 seconds]
hypercube has joined #lisp
DHARMAKA_ has quit [Ping timeout: 268 seconds]
bilegeek has quit [Quit: Leaving]
Kundry_Wag has joined #lisp
Kundry_Wag has quit [Remote host closed the connection]
DHARMAKAYA has joined #lisp
curtosis[away] has joined #lisp
igemnace has quit [Remote host closed the connection]
<pagnol> Has anyone here used Postmodern a lot? I only recently found out about it and it seems like the ideal way to interface with a relational db to me, but I'm wondering if there are downsides that only become apparent after a while.
igemnace has joined #lisp
Aurora_v_kosmose has quit [Remote host closed the connection]
Aurora_v_kosmose has joined #lisp
gigetoo has joined #lisp
Kundry_Wag has joined #lisp
<nij> Hello! I'm trying out qlot. In its official github repo, it says I can get it by (ql:quickload :qlot). But that doesn't seem to generate the binary `qlot` (for cli usage) directly. Did I miss any step? https://github.com/fukamachi/qlot
<Bike> well, in the readme it mentions that the roswell install, introduces the shell command unlike the quicklisp install
<Bike> i don't see any obvious explanation of how you get the shell command if installed via quicklisp
<nij> Erg :-( ok.. yeah I thought there might be an easy way.
<nij> I'll have to learn rowell then..
<Bike> there's a makefile. maybe you can just do make
<Bike> it looks like said makefile just does (asdf:make :qlot)
curtosis[away] has quit [Quit: My Mac Mini has gone to sleep. ZZZzzz…]
<nij> very weird, under my .quicklisp/dist.../qlot there's no makefile
<nij> I should download it from github directly, right?
<Bike> ?\_(?)_/?
nicktick has quit [Ping timeout: 240 seconds]
<nij> \ ?_? /
<nij> (this emoji seems confusing and bursting out tears. love it)
<Bike> hm, something on my end butchered the encoding. sad
nicktick has joined #lisp
srhm has quit [Quit: Konversation terminated!]
<jasom> mfiano: I beat your version
<mfiano> Like I siad, I removed the optimizations from mine because I don't know your input
<jasom> mfiano: sb-c::mask-signed-fied
<mfiano> If that works for you, fair enoguh. As for me, I wrote Common Lisp code, else I'd be using blub if I wrote code for one implementation
<jasom> hmm, it looks much better in the assembly but is testing out as 50% slower. That's quite odd.
<mfiano> the statistical profiler will likely be showing the foreign syscalls that slow it down.
<jasom> There are literally 2 instructions before the CLC/POP RBP
<jasom> MOVSX RDX, DL and SHL RDX 1
<jasom> Is movsx super slow or something?
<jasom> ah, I just had the value/width backwards since it was opposite of sign-extend.
hineios has quit [Ping timeout: 265 seconds]
<jasom> the mask-signed-field version is too fast for me to measure with this benchmark (summing a list of integers vs summing it sign-extended differ by less than the noise)
hineios has joined #lisp
nij has quit [Quit: ERC (IRC client for Emacs 27.2)]
chipolux has joined #lisp
<mfiano> it's roughly an order of a magnitude and a half faster
aartaka has joined #lisp
Alfr is now known as Guest49171
Alfr has joined #lisp
Guest49171 has quit [Ping timeout: 250 seconds]
aartaka_d has quit [Ping timeout: 240 seconds]
<beach> Good morning everyone!
<mfiano> Hello beach
remby has joined #lisp
<remby> In sbcl, this seems to be an error: (setf x 10). It says x is an undefined variable.
<moon-child> yes
<no-defun-allowed> Yes.
<moon-child> you need to define or bind variables before you assign to them
<mfiano> It's a warning, not an error, but implementations aren't required to do so
Oladon has joined #lisp
<remby> I was reading practical common lisp and it gave me the impression you could do this, but I misunderstood the example.
Sheilong has quit []
<remby> right near the assignment header, what do you think they meant to say? http://www.gigamonkeys.com/book/variables.html
<mfiano> Exactly what they say
<mfiano> "Once you've created a binding, you can do two things with it: get the current value and set it to a new value."
<remby> oh, duh
* remby facepalms
nij has joined #lisp
<mfiano> The book should be read linearly
<mfiano> The previous topic discussing binding
<remby> yeah with defparameter and defar
<mfiano> and more
<mfiano> That whole chapter is about ways to bind and use variables
<mfiano> defparameter and defvar are but two ways
<remby> I read the entire page, but I skimmed over the let binding
<mfiano> I would advise against skimming. That book only really has value if you read it linearly and perform all of the practicals
marusich has joined #lisp
Kundry_Wag has quit [Remote host closed the connection]
Kundry_Wag has joined #lisp
<nij> Here's the example what I meant by that the stumpwm macro "defcommand" might be leaking.. dunno why it's the case - https://bpa.st/JOXQ . It stays in the second argument of #'when, and it should not be evaluated. But it is...
<nij> Could a lisp macro be leaking like this?
<Bike> no. it couldn't be.
Kundry_Wag has quit [Ping timeout: 240 seconds]
<Bike> are you sure you have the situation right? like, for example, could something else have defined the record! command?
<nij> no.. it's pointing to that exact file. and when i add something, the indicating line changes accordingly.
<Bike> well i don't know what to tell you. that is not how lisp works. the defcommand is not actually being evaluated.
<Bike> also, the reason you're getting this error is that lisp tries to read the entire form before evaluating it
<beach> nij: What do you mean by "#'when"?
<Bike> so it will read recording:prompt-recording before :recording is quickloaded
<Bike> presumably the when macro
<nij> beach: the when macro
<nij> yeah
<beach> nij: That's a strange way of indicating it.
<nij> why? -- CL-USER> #'when #<FUNCTION (:MACRO WHEN) {1000DA2A3B}>
<no-defun-allowed> Try it on Clozure.
<nij> Bike, well, but that form shouldn't even been touched, right?
<Bike> it is an error to use function on a symbol that denotes a macro or special form
<nij> Cuz the predicate fails.
<Bike> the form that is read is the _entire_ form
<no-defun-allowed> ...or ECL, or ABCL, or CLISP even.
<nij> Bike: how would you address a macro or a special form?
<no-defun-allowed> "The macro WHEN"
<Bike> it reads the whole thing at once. (when ... (recording:prompt-recording) ...)
<Bike> and yes, you could just say "the macro WHEN". to get the macro function you would do (macro-function 'when)
<nij> Bike: if it's just READing.. then it should read RECORDING:PROMPT-RECORDING as a symbol, without issue, no?
<Bike> the reader cannot handle symbols from unknown packages
<Bike> because packages can use other packages, it is not clear what package a qualified symbol actually belongs to until the package is defined
<nij> OH!
<nij> Yay thanks that clarifies!
<nij> CL-USER> (when nil h:hiiii); Debugger entered on #<SB-INT:SIMPLE-READER-PACKAGE-ERROR "Package ~A does not exist." {1001A9BBD3}>
<nij> Now I understand. Thank you very much :)
<Bike> mhm
<Bike> i don't know what's going on with the defcommand thing though. all i can guess is you have persistent state between trials messing things up.
<nij> no then defcommand isn't the problem
<nij> it's not evaluated
<nij> my problem was that error
<Bike> ok, great.
<nij> then .. how to workaround this?
<nij> on some machine i don't expect the package to be loaded correctly
<nij> if that's the case, I don't intend to load config for it
<Bike> you could do some annoying things with find-symbol, like (funcall (find-symbol "PROMPT-RECORDING" "RECORDING"))
<Bike> then the symbol won't actually be looked up until the form is evaluated, so the reader won't complain
<nij> I mean.. only want that config when the package is loaded correctly
<Bike> right
<nij> otherwise, skip that piece of config
<Bike> so i mean if you do the find-symbol thing, it will do what you're trying to do here, i think
<Bike> none of that code will be evaluated if the quickload failed
<Bike> but the reader won't complain
<nij> I need to write recording:prompt-recording somewhere in the code, no?
<Bike> No
<Bike> Try (find-symbol "PROMPT-RECORDING" "RECORDING") in the repl
<Bike> or (find-symbol "MAX" "CL") or something
<Bike> you get the symbol back.
<Bike> it will look it up at runtime, rather than at read time
<Bike> so, if the quickload fails, the find-symbol will not be evaluated, so the symbol is not looked up, so there's no problem
<nij> and if it succeeds, the find-symbol will return the right symbol, which will in turn be evaluated?
<nij> and the config is loaded?
<Bike> uhhuh.
<nij> ((find-symbol "+" "CL") 1 1) => error
<nij> no..
<mfiano> This isn't scheme
<Bike> funcall
<Bike> did you see the funcall? when i write things i mean them to be involved
<Bike> (funcall (find-symbol "+" "CL") 1 1)
<nij> OHOHok of course
<nij> thanks! learned a lot :)
<nij> I was quite confused. Now i'm fine!
<Bike> glad to be of assistance
<nij> <3 GN
orivej has joined #lisp
curtosis[away] has joined #lisp
nicktick has quit [Ping timeout: 240 seconds]
pagnol has quit [Ping timeout: 252 seconds]
nicktick has joined #lisp
Bike has quit [Quit: Lost terminal]
Iolo has quit [Quit: ZNC 1.7.5+deb4 - https://znc.in]
Iolo has joined #lisp
orivej has quit [Ping timeout: 268 seconds]
curtosis[away] has quit [Quit: My Mac Mini has gone to sleep. ZZZzzz…]
lawt has joined #lisp
hypercube has quit [Ping timeout: 240 seconds]
contrapunctus has joined #lisp
<contrapunctus> I'm writing something dealing with vCard data, and it seems the only result for the only Lisp library for it is here. The link is dead and I can't find the project anywhere else :\ https://old.reddit.com/r/lisp/comments/qk3ag/clvcard_parsing_vcard_with_common_lisp/
chipolux has quit [Quit: chipolux]
Oladon has quit [Quit: Leaving.]
Oladon has joined #lisp
mindCrime has quit [Ping timeout: 252 seconds]
sp41 has quit [Remote host closed the connection]
waleee-cl has quit [Quit: Connection closed for inactivity]
chipolux has joined #lisp
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
contrapunctus has joined #lisp
aartaka has quit [Ping timeout: 260 seconds]
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
<fiddlerwoaroof> contrapunctus: I've recently used soiree ( https://github.com/slyrus/soiree ) for this sort of thing
<fiddlerwoaroof> I ended up writing my own ics parser, though, because I wanted a streaming-style parser, rather than instantiating objects for the whole calendar in memory
<contrapunctus> fiddlerwoaroof: whoa, thanks a lot
<fiddlerwoaroof> If you need to handle ics files only, I have this: https://github.com/fiddlerwoaroof/lisp-sandbox/blob/master/ical-parser.lisp
<fiddlerwoaroof> I might actually have something more "production quality": this is in my experiments repo
gaqwas has joined #lisp
gaqwas has quit [Changing host]
gaqwas has joined #lisp
Oladon has quit [Read error: Connection reset by peer]
<fiddlerwoaroof> This project is my more fleshed-out version
<fiddlerwoaroof> No docs yet (sorry), but this is an example of the protocol I've designed to process the stream of data from an iCalendar format file
Oladon has joined #lisp
aartaka has joined #lisp
<fiddlerwoaroof> I also have a version that generates an sqlite db because I really like https://datasette.io for data exploration
<fiddlerwoaroof> ^ contrapunctus
aartaka_d has joined #lisp
Nilby has joined #lisp
aartaka has quit [Ping timeout: 268 seconds]
hjudt has joined #lisp
Sauvin has joined #lisp
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
andrei-n has joined #lisp
HDurer has joined #lisp
skapata has quit [Remote host closed the connection]
Kundry_Wag has joined #lisp
narimiran has joined #lisp
Kundry_Wag has quit [Ping timeout: 240 seconds]
Oladon has quit [Quit: Leaving.]
ramHero has joined #lisp
curtosis[away] has joined #lisp
indathrone has joined #lisp
ljavorsk has joined #lisp
gaqwas has quit [Ping timeout: 260 seconds]
narimiran has quit [Ping timeout: 265 seconds]
narimiran has joined #lisp
abhixec has joined #lisp
curtosis[away] has quit [Quit: My Mac Mini has gone to sleep. ZZZzzz…]
aartaka has joined #lisp
chipolux has quit [Quit: chipolux]
aartaka_d has quit [Ping timeout: 252 seconds]
<Shinmera> There's also my https://shinmera.github.io/iclendar
attila_lendvai has joined #lisp
attila_lendvai has joined #lisp
theruran has quit [Ping timeout: 245 seconds]
gendl has quit [Ping timeout: 245 seconds]
selwyn has quit [Read error: Connection reset by peer]
mpontillo has quit [Ping timeout: 258 seconds]
rme has quit [Ping timeout: 245 seconds]
jmercouris has quit [Ping timeout: 245 seconds]
gendl has joined #lisp
selwyn has joined #lisp
theruran has joined #lisp
mpontillo has joined #lisp
rme has joined #lisp
jmercouris has joined #lisp
<contrapunctus> Shinmera: I figured I'd at least update the licenses for your projects on awesome-cl - and there are so many! Talk about prolific 🤯
<Shinmera> too many, some would argue
imode has quit [Ping timeout: 252 seconds]
random-nick has joined #lisp
cchristiansen has joined #lisp
indathrone has quit [Remote host closed the connection]
indathrone has joined #lisp
orivej has joined #lisp
aartaka_d has joined #lisp
hiroaki_ has quit [Ping timeout: 260 seconds]
<fiddlerwoaroof> Shinmera: I guess I should have checked your repos first :)
<fiddlerwoaroof> I made the mistake of just checking Cliki
aartaka has quit [Ping timeout: 240 seconds]
<fiddlerwoaroof> Although, I think your library is the inverse of mine: I only support parsing ics, you only seem to support generating it
<Shinmera> Yes, I never got around to implementing parsing.
Posterdati has quit [Ping timeout: 265 seconds]
<fiddlerwoaroof> I consulted the RFC for mine, but I didn't implement everything: I implemented what was necessary to parse my work calendar and a couple random calendars I found online
<Shinmera> As usual with RFCs the spec is absolutely insane
<fiddlerwoaroof> Yeah
surabax has joined #lisp
<Shinmera> iclendar has the advantage that it actually defines all types and relations in code already, so it could become a strict parser at some point.
<contrapunctus> Shinmera: some clarification - `deploy` still seems to be Artistic License - is this deliberate? Also, qtools is zlib, correct? For some reason GitHub doesn't seem to recognize it in that specific case.
<Shinmera> ah, damn, must have forgotten to update deploy somehow, let me fix that.
<Shinmera> everything should be zlib. if it isn't there's a bug :)
orivej has quit [Ping timeout: 252 seconds]
<Shinmera> I did the update through a script back then... wonder how it missed deploy.
<contrapunctus> Shinmera: ^^ ditto https://github.com/Shinmera/definitions
<Shinmera> Ah, I was on a branch for that one. At least that explains that lol
hiroaki_ has joined #lisp
<Shinmera> Fixed both, thanks.
shka_ has joined #lisp
Posterdati has joined #lisp
attila_lendvai has quit [Ping timeout: 246 seconds]
Kundry_Wag has joined #lisp
cosimone has joined #lisp
Kundry_Wag has quit [Ping timeout: 240 seconds]
anticrisis has quit [Read error: Connection reset by peer]
Cthulhux has quit [Ping timeout: 258 seconds]
Cthulhux has joined #lisp
<contrapunctus> Glad to be of help ^^
Major_Biscuit has joined #lisp
<lukego> anyone else using Lisp/sbcl from nixpkgs or am I the only such fool around here?
<jackdaniel> s/fool/visionary/ ;-)
<contrapunctus> lukego: I might be joining you in that soon.
<contrapunctus> (...but on NixOS.)
<lukego> my condolences to you but misery loves company :)
vaporatorius__ is now known as Vaporatorius
Vaporatorius has quit [Quit: Leaving]
Vaporatorius has joined #lisp
Vaporatorius has quit [Changing host]
Vaporatorius has joined #lisp
<fiddlerwoaroof> lukego: I'm using sbcl mostly from nix
<fiddlerwoaroof> on darwin
<lukego> I was just starting to spell out my current problem but I think I arrived at the solution - or at least a next step - in mid-sorrow :)
<fiddlerwoaroof> Although, I sort of think I prefer my old way of manually building sbcl and putting it in ~/sbcl
anticrisis has joined #lisp
<lukego> I made an overlay to tweak the flags that sbcl is built with and I'm going nuts trying to understand why this new sbcl isn't being used. but now I realize that the one that is being used is from my user environment. so I know where to look for a problem now
<fiddlerwoaroof> Yeah, on my work laptop I use home-manager to manage all that, and just install from my overlay to the user environment
<lukego> Nix has a lot of new features and workflows but I somehow keep using the ones from way back when I first installed it, when "nix pills" was the state of the art
<lukego> I have heard the term "home manager" before but don't know what it means :)
JohnMS_WORK has joined #lisp
<fiddlerwoaroof> When I started this job a couple months ago, I decided to rebuild my setup
<fiddlerwoaroof> home-manager is pretty cool, you have a home.nix and it generates a lot of the dotfiles I used to manage in my dotfiles github repo. It also lets me pick which packages get installed in the user environment
<fiddlerwoaroof> Which I like, because I don't want to mess with the rest of my mac's system
karlosz has quit [Quit: karlosz]
<lukego> I'm in a bit of a "lone hacker" mode. The nix expression for my Lisp program actually installs a lot of related stuff e.g. Emacs with a bunch of packages and their configurations.
karlosz has joined #lisp
<lukego> I'm using ql2nix and that's treating me pretty well
<fiddlerwoaroof> Cool, I've been meaning to try that
<fiddlerwoaroof> I find that I want all my dependency management to be initiated from the REPL, though
anticrisis has quit [Read error: Connection reset by peer]
<lukego> yeah interesting, having Lisp wear the pants and dump out nix expressions could be a nice style
<fiddlerwoaroof> So, I only install sbcl through nix: when I absolutely need to pin versions, I use legit to clone the relevant repos and configure ASDF
<lukego> I have a Nix expression with a list [ "1am" "alexandria" ... ] of all quicklisp packages that I want installed and then it arranges for them all to be built and ready when I start sbcl
<contrapunctus> lukego: sounds like you want Guix 🤔
<lukego> contrapunctus: have been meaning to look at it one day :)
<fiddlerwoaroof> I like to pretend that I have a lispos
<lukego> I want everything pinned by default though, that's the appeal of Nix for me
<fiddlerwoaroof> Yeah, I've also grown to dislike version pinning from Javascript
<fiddlerwoaroof> I'd rather be forced to fix my code when the deps update rather than slowly dig myself into a huge pit as the world moves away from me
<fiddlerwoaroof> If a library breaks my code too many times, I just ban it
davd33 has joined #lisp
<splittist> What's my best bet for a quick something I can display (possibly elaborately) styled text on from lisp, on Windows 10?
<moon-child> browser? :P
<fiddlerwoaroof> spinneret + hunchentoot?
<lukego> fiddlerwoaroof: yeah. I regularly update to the latest of everything, i.e. refresh my nix distro from the latest quicklisp, but at least I decide when to do that and I can easily rollback if there's a problem that I'm not in the mood to debug.
<fiddlerwoaroof> lukego: I've sort of been radicalized with the way I can just load and run 40 year old code in CL
<splittist> Good point. And now I change the requirements: And interact with the text with keyboard and (probably) mouse.
<fiddlerwoaroof> websocket-driver
<fiddlerwoaroof> I think doing that from the browser is the goal of this: https://github.com/rabbibotton/clog
<lukego> fiddlerwoaroof: I'm likewise radicalized by the old days when a "weekend of lisp hacking" would just mean getting a compatible set of dependencies from cvs :)
<lukego> (but more genreally I basically stopped using dependencies of any kind many years ago, and then started again when I found nix and could police them. but I digress.)
karlosz has quit [Quit: karlosz]
remby has left #lisp ["Leaving"]
<lukego> Speaking of errors when rebuilding dependencies, I'm getting an error on compiling screamer now that I didn't have before, with two warnings and one error. I /think/ that the error is a -Werror kind of situation i.e. the compiler didn't find an error but asdf errored when it noticed the warnings (with a backtrace instead of an explanation.) plausible?
<fiddlerwoaroof> lukego: line 75ff here is sort of my sketch of an in-cl way to do something nix-like: https://git.fiddlerwoaroof.com/u/edwlan/git-systems.git/blob/master/git-systems.lisp#L75
<fiddlerwoaroof> I don't think I've ever seen that happen
<lukego> (and for all my talk of rolling back inconvenient breakages I can't actually do that because I didn't check-in my previous nix snapshots of quicklisp packages. so um a valuable learning experience about missed steps in my workflow)
hendursaga has joined #lisp
<Nilby> splittist: Unfortunately the bar for such a thing is very high now that it's expected to handle all the worlds languages and render super fast in a GPU.
<fiddlerwoaroof> Screamer loads fine for me
<lukego> seems like asdf:*compile-file-failure-behaviour* default behavior on SBCL will error from ASDF if the compiler warns
<Shinmera> splittist: qtools should still work fine on windows.
<fiddlerwoaroof> lukego: *compile-file-warnings-behaviour* I think is the equivalent to -Werror
<lukego> hey it is actually kind of nice that -Werror is the default. that motivates me to actually dig into problems knowing that other people aren't just leaving them :). here's the screamer warning, I'll dig into it now https://gist.github.com/lukego/1da425f16384bb53f2c416c49d5b6ecd
<splittist> Shinmera: I get "debugger invoked on a SB-KERNEL::UNDEFINED-ALIEN-FUNCTION-ERROR ... The alien function "sw_find_class" is undefined."
<Shinmera> :(
hendursa1 has quit [Ping timeout: 240 seconds]
<lukego> (though if I need to patch screamer that's a problem because my current nix workflow doesn't really support anything but upstream projects from quicklisp..)
asarch has joined #lisp
<fiddlerwoaroof> Is there a good library for extracting only interesting content from an HTML page
<fiddlerwoaroof> e.g. a readability type thing?
<lukego> this looks like a pretty clear cut bug in screamer:
<lukego> (if (vectorp sequence)
<lukego> (dolist (element sequence)
ukari has quit [Remote host closed the connection]
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
attila_lendvai has joined #lisp
<fiddlerwoaroof> Yeah
<jackdaniel> it is written for a special-purpose implementations that represent vectors as lists :)
<lukego> sounds like something I would do ..
ukari has joined #lisp
<asarch> One stupid question: if I had this (:id 30 :username "asarch" :password "xxx-yyy") I could easily get the username with (getf user :username)
<Shinmera> splittist: if you add a :depends-on for qt-libs first, does that work?
<jackdaniel> that's not a question
<asarch> But what if I would have a list of lists with n elements ((:id 1 :username "foo" :password "...") (:id 2 :username "bar" :password "...") ... (:id n :username "baz" :password "...")), how could I easily get the username of the n element?
<jackdaniel> (getf (nth n your-list) :user)
<asarch> Do I need to traverse the entire list every time I want a specific element of them?
<jackdaniel> s/:user/:username/
<asarch> Bingo!
<asarch> Thank you! Thank you very much! :-)
pve has joined #lisp
<asarch> But what if I don't know the position of the record?
<jackdaniel> if you store users on the list and you are not caching results (or add other optimizations) then yes, you traverse the list
<jackdaniel> then how do you know which username do you want to get?
<splittist> Shinmera: doesn't qtools already :depends-on qt-libs? The error arises when trying to load the examples.
<jackdaniel> (find "foo" your-list :key (lambda (o) (getf o :username)) :test #'string=)
<asarch> All I know is its id, let's say it is 324 and the list is from a query
<jackdaniel> is one way
<phoe> asarch: this looks like the ID is some kind of key and everything else is values
<White_Flame> (getf (find 30 *users* :key (lambda (user) (getf user :id))) :username)
<phoe> at which point this looks like a hash table use case
<lukego> (I have to say, reading through the Screamer source once from top to bottom has not really enhanced my enthusiasm for using it)
<White_Flame> (typed before the last few lines, obviously)
<jackdaniel> your solution is more complete!
quazimodo has quit [Ping timeout: 240 seconds]
<White_Flame> since the FIND will return NIL on not found, it should all safely collapse to NIL even through the subsequent GETFs
quazimodo has joined #lisp
<lukego> phoe: ah! the version issue
<jackdaniel> another solution (loop for user = (nth (random (length users)) users) when (eq (getf user :id) <your-id>) do (return (getf user :username))) ;-]
<Shinmera> splittist: it does but there's some weird dependency fluke apparently
cchristiansen has quit [Remote host closed the connection]
<asarch> Thank you very much once again guys :-)
<splittist> Shinmera: OK. Trying. Thanks! I know you have better things to do.
<asarch> Have a nice day :-)
asarch has quit [Quit: Leaving]
<jackdaniel> you too, thanks
<Shinmera> splittist: No no, sorry things aren't working right away :(
<Shinmera> I also wish I could just recommend Alloy, but it's still very rough.
<phoe> I had this qtools issue when installing/compiling from scratch; I usually install and compile it, close my image, quickload it again, and then it works
<phoe> but this only manifests during the very very first installation so I rarely ever reproduce it
<Shinmera> yeah it's a very elusive bug that I could never quite trace.
<fiddlerwoaroof> Hmm, the USE-VALUE restart in slime seems to break everything when it's selected for a PACKAGE-DOES-NOT-EXIST error
<phoe> huh? what do you mean?
<fiddlerwoaroof> It's more complicated than that
<fiddlerwoaroof> I'm not entirely sure what's going on
<fiddlerwoaroof> But, I put https://github.com/ruricolist/cl-boilerpipe into my local projects and then tried to load it
<phoe> (handler-bind ((sb-ext:package-does-not-exist (lambda (c) (declare (ignore c)) (invoke-restart 'use-value :cl-user)))) (in-package :cl-ooser))
<phoe> this works for me
<fiddlerwoaroof> it complained that the package OPTIMA wasn't found, so I hit 2 to attempt to trick it into using TRIVIA
<Shinmera> phoe: another ping for your verbose issue
<phoe> Shinmera: aaaa, yes, thank you
<fiddlerwoaroof> And slime and everything froze
<phoe> oooh, like that
<phoe> might have more complex interactions during compilation
<fiddlerwoaroof> Yeah, the backtrace is interesting
<fiddlerwoaroof> The condition seems to be being signaled while a lock is held
<fiddlerwoaroof> Inside the processing of a defpackage form
<lukego> dammit looks like I'll just disable -Werror in asdf because I don't really understand how to apply a patch to Screamer in my current setup
<jackdaniel> -Cerror
wxie has quit [Ping timeout: 240 seconds]
<fiddlerwoaroof> lukego: you can always add a file to your project that does IN-PACKAGE and then redefines
<fiddlerwoaroof> :)
<fiddlerwoaroof> Now to see if I can come up with a minimal reproducing case
<lukego> maybe the lowest hanging fruit here would be to somehow get quicklisp to apply patches during installation
<lukego> anyone have such a mechanism? (asdf-level would be fine too I guess)
<fiddlerwoaroof> lukego: it's sort of a hack, but you could add a component that's like (:file "patches")
<fiddlerwoaroof> And just put all the patches into patches.lisp
<Shinmera> you can build your own quicklisp dist that has different versions of the libraries you want to patch.
<Shinmera> but that's involved.
<flip214> lukego: I've just a few local git checkouts with changes in my local-projects
<lukego> fiddlerwoaroof: but I don't have a private copy of the source tree where the asd file is defined
<fiddlerwoaroof> Add it to your project's asd
<lukego> I have a few local git checkouts too but I don't like that because it undermines my pinning and upgrading discpline. but okay that would be an acceptable workaround especially for screamer that's not updating rapidly
<lukego> fiddlerwoaroof: my project's asd doesn't get loaded because its dependencies have failed to compile
<fiddlerwoaroof> Hmm, yeah you'd need to have a second system
<lukego> I think that patches make sense to me. I'll be meaning to make a series of small temporary changes sparsely spread across various dependencies
<lukego> lemme see if ql2nix provides an opportunity to patch things neatly
<splittist> Shinmera: works. Thanks again!
<fiddlerwoaroof> I've done something like this a couple times
<lukego> fiddlerwoaroof: that looks neat but you still needed to patch the .asd file defining example
<lukego> and at the moment I lack a way to patch my dependnecies
<Shinmera> splittist: phew!
<fiddlerwoaroof> Because it's a defsystem-depends-on, it'll be loaded before processing your project's dependencies
<fiddlerwoaroof> Hmm, that won't work either
<fiddlerwoaroof> Ignore me :)
<fiddlerwoaroof> I just realized that I'm assuming the dependency actually loads
<lukego> you know for now I'll just stop using screamer :)
<phoe> I can see that nikodemus is not very active
<phoe> maybe it would be worth to fork screamers to sharplispers and apply the fix there, since it's trivial
<phoe> Xach: fe[nl]ix: what do you think?
<phoe> s/screamers/screamer
<fiddlerwoaroof> nikodemus has basically quit CL, I think
<scymtym> phoe: sounds good to me. for other projects he created or was involved in (esrap, alexandria), ownership has already been transferred. for esrap, he explicitly blessed the transfer
<jackdaniel> MetaYan_: do you have any opinion about this?
<phoe> scymtym: I've sent him a mail so I can also have an explicit blessing
<phoe> ;; and in case of no response, I'll be happy with an implicit blessing
contrapunctus has left #lisp ["Disconnected: closed"]
ramHero has quit [Remote host closed the connection]
DHARMAKAYA has quit [Quit: Turning off a portion of this simulation.]
nicktick has quit [Ping timeout: 252 seconds]
<fiddlerwoaroof> Does anyone know of a library for extracting metadata from PDFs?
<fiddlerwoaroof> cl-pdf isn't great for parsing PDFs
memories_ has left #lisp [#lisp]
aartaka_d has quit [Read error: Connection reset by peer]
aartaka has joined #lisp
<flip214> fiddlerwoaroof: what kind of metadata are you looking for?
<flip214> Marc is responsive if you have any feature requests
cosimone has quit [Remote host closed the connection]
<lukego> Maybe should also hack ASDF to print a user-facing message about upgrading errors to warnings, I found that very confusing
<lukego> I'm really sorely lacking a workflow to be able to hack on dependencies :-|
zaquest has quit [Quit: Leaving]
zaquest has joined #lisp
ebrasca has joined #lisp
scymtym has quit [Read error: Connection reset by peer]
lotuseater has joined #lisp
cosimone has joined #lisp
hhdave has quit [Ping timeout: 260 seconds]
froggey has quit [Ping timeout: 268 seconds]
dilated_dinosaur has quit [Ping timeout: 246 seconds]
Noisytoot has quit [Ping timeout: 240 seconds]
Adamclisi has quit [Ping timeout: 268 seconds]
Noisytoot has joined #lisp
<lukego> I know you all think I'm a bad person for using Serapeum's -> macro to declare function types in design-by-contract style, but I'm finding it really useful in practice, I do a bunch more type checking than I usually would and it catches sloppiness like carelessly returning multiple values
<phoe> I actually like and dig ftype declarations
Adamclisi has joined #lisp
froggey has joined #lisp
Elzington has quit [Read error: Connection reset by peer]
Elzington_ has joined #lisp
dilated_dinosaur has joined #lisp
<flip214> sbcl can infer return types by itself (at least sometimes), so declaring argument types already helps quite a lot
hhdave has joined #lisp
vegansbane6963 has quit [Quit: The Lounge - https://thelounge.chat]
Kundry_Wag has joined #lisp
<Nilby> Return type? Suprise me. [too complex to check]
<lukego> I'm declaring return types now and appreciating the compiler often telling me that I'm carelessly returning multiple values when I only mean to return one
<White_Flame> flip214: it doesn't do that for non-returning error calls, though
<Nilby> Unused multiple values are a primary food source for hungry ghosts.
<White_Flame> (the fixnum (case foo (:a 1) (:b 2) (otherwise (call-error ...)))) will cause SBCL to scream, even though (otherwise (error ...)) is fine
<Nilby> You never know when error could return: "the kinds of sweeping effects hinted at by this example"
zooey has quit [Ping timeout: 240 seconds]
zooey has joined #lisp
<White_Flame> that quote is specifically about an implementation being buggy
<phoe> White_Flame: actually, no
<phoe> (declaim (ftype (function () nil) foo)) (defun foo () (error "foo")) (defun bar (x) (the fixnum (case x (:a 1) (:b 2) (otherwise (foo)))))
<phoe> no warnings for me
<White_Flame> hmm, I've tried (function (&rest t) nil) before, and that did nothing for me
* White_Flame tries again
<White_Flame> maybe because this is about a LABELS function and not a DEFUN?
<phoe> (defun bar (x) (labels ((foo () (error "foo"))) (declare (ftype (function () nil) foo)) (the fixnum (case x (:a 1) (:b 2) (otherwise (foo))))))
<phoe> no warnings for me
<White_Flame> it tells me that my (syntax-error (&rest rest) ..build error string... (error ...)) function has some wrong derived type, not my declared type
<White_Flame> (declare (ftype (function (&rest t) nil) syntax-error))
jello_pudding has quit [Ping timeout: 260 seconds]
<White_Flame> "Result is a (VALUES (OR NUMBER (MEMBER :TRUE :NULL :FALSE NIL)) &OPTIONAL), not a CHARACTER."
<phoe> hmmm
<phoe> show me the code?
<White_Flame> it's an internal thing, I'd have to extract it
<phoe> also, uh
<phoe> you declare the result type to be NIL
<phoe> and it complains that it's not a character
contrapunctus has joined #lisp
<phoe> are you sure it's the right ftype that you're looking at?
<White_Flame> yes
<White_Flame> ==> (SB-C::%FUNCALL #'(LABELS SYNTAX-ERROR ....
<phoe> please extract it then, I'm genuinely curious
<White_Flame> ok, I'll PM
<White_Flame> whenI do
<flip214> for phoe's BAR I get Derived type: (FUNCTION (T) (VALUES (INTEGER 1 2) &OPTIONAL))
<flip214> even if I remove the DECLARE
<flip214> (defun bar2 (x) (the fixnum (case x (:a 1) (:b 2) (otherwise (error "foo")))))
<flip214> Derived type: (FUNCTION (T) (VALUES (INTEGER 1 2) &OPTIONAL))
jello_pudding has joined #lisp
<flip214> no magic needed at all
<phoe> yes, but I assume that White_Flame has a SYNTAX-ERROR call instead of ERROR
<phoe> which is an indirection
<White_Flame> right
<phoe> where SYNTAX-ERROR is some custom function
mokulus has joined #lisp
<White_Flame> and of course a simple extraction of just syntax-error and a single use doesn't trip the error
<White_Flame> it just builds up a more complex error string
<flip214> If I move the (ERROR ...) out into another function (not even a LABELS) and use it in OTHERWISE, the result is the same
<flip214> but perhaps this is so small that inlining just makes it the same
<White_Flame> ah, I was able to trip it...
<flip214> BAR-ERROR names a compiled function:
<flip214> Derived type: (FUNCTION (T) NIL)
<flip214> Source form: (LAMBDA (X) (BLOCK BAR-ERROR (ERROR X)))
<flip214> also derived result type NIL here
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
frgo has quit [Remote host closed the connection]
frgo has joined #lisp
scymtym has joined #lisp
<White_Flame> so the :true return value is leaking into the syntax-error derivation for some reason
<White_Flame> might be a bug?
<White_Flame> or is there legitimacy in that reasoning?
<flip214> Derived type: (FUNCTION (T) (VALUES (MEMBER :TRUE) &OPTIONAL))
<phoe> what is your SBCL version and compiler policy?
<phoe> I can't reproduce this
Kundry_Wag has quit [Remote host closed the connection]
<White_Flame> This is SBCL 2.1.3.50-e8b780650
<phoe> 2.1.0 does not complain
<phoe> let me upgrade to 2.1.3
<flip214> White_Flame: the :TRUE is for (eq key :foo) - the error path doesn't return any value
<White_Flame> flip214: it's saying that syntax-error returns :true
<White_Flame> or am I reading it wrong?
<flip214> how do you see that?
<White_Flame> the complaint is for get-num's usage, when read-something's definition is present
<flip214> I have no complaints from sbcl
<phoe> flip214: what is your SBCL version?
<flip214> 2.1.3
<phoe> hmmmm, might be a new regression then?
<phoe> #sbcl will want to know about it in that case
<White_Flame> ok
<phoe> yes, that's invalid, SYNTAX-ERROR neither returns (member :true) nor is supposed to return a fixnum
<phoe> so that's some heavy type confusion
<phoe> oh wait, the FIXNUM is from the THE call
aartaka has quit [Ping timeout: 240 seconds]
<phoe> OK, so it's just SYNTAX-ERROR having an incorrect type
villanella has joined #lisp
villanella has quit [Ping timeout: 258 seconds]
troydm has quit [Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset]
<edgar-rft> where (the fixnum ... (error ...)) IMO is a buggy type declaration, because (error ...) is defined to return *no* values and therefore cannot be a fixnum
vegansbane6963 has joined #lisp
<flip214> edgar-rft: if it can't ever return, there cannot be a type conflict with the return value (because there is none)
elderK has quit [Quit: Connection closed for inactivity]
<ebrasca> What are Deprecated Functions? ( http://www.lispworks.com/documentation/HyperSpec/Body/01_ha.htm )
<phoe> edgar-rft: NIL is a subtype of FIXNUM
<edgar-rft> ebrasca: functions that were marked as deprecated in 1994 but still exist in 2021
<edgar-rft> phoe: true, thank you!
<ebrasca> edgar-rft: Is it ok to use them?
<phoe> ebrasca: yes
<phoe> edgar-rft: also, "defined to return no values" would have a return type of (values)
<phoe> a return type of NIL means elsething - that it does not return at all
villanella has joined #lisp
<phoe> these two are highly distinct because a return type of (values) implies that the function is allowed to return at all in the general case
<phoe> and you don't ever want #'ERROR (or #'INVOKE-DEBUGGER for the matter) to return at all
<White_Flame> (good, that confirms my assumptions in reading these types)
<edgar-rft> ebrasca: don't worry too much, in a hypothetical CL 2.0 standard (that is unlikely to happen) there might be a dicussion about that :-)
<edgar-rft> White_Flame: sorry, I was wrong and phoe is right
<phoe> function return types are real tricky
klltkr has joined #lisp
ljavorsk has quit [Ping timeout: 260 seconds]
<ebrasca> What about CL 1.5 ?
<jackdaniel> and if that's too much, what about CL 1.0.0.0.1?
mokulus has quit [Quit: WeeChat 3.0]
<ebrasca> I was referencing Lisp 1.5
<phoe> that's a blast from the past
<edgar-rft> Lisp 1.5 was at least three decades before Common Lisp
<ebrasca> I am sure if we make CL 1.5 we are going to have CL 2.0
refpga has joined #lisp
<no-defun-allowed> Lisp was so good they never made Lisp 2: <https://en.wikipedia.org/wiki/LISP_2>
<edgar-rft> Common Lisp is a Lisp-n, so it's far ahead of its time
Nilby has quit [Ping timeout: 258 seconds]
<Xach> Lisp-nFinity
<phoe> Lisp-#.(ackermann n n)
<ebrasca> If CL is Lisp-n , why we don't have algol syntax?
<no-defun-allowed> "Lisp 2" there refers to a hypothetical successor to the original Lisp (which never happened). Usually Lisp-n refers to the number of namespaces of things that the language manipulates.
<no-defun-allowed> edgar-rft probably lost count of how many of such namespaces there are in Common Lisp, so wrote Lisp-n with a free variable.
<phoe> there's also the fact that namespaces are user-definable, so n must be a free variable
<ebrasca> Why someone need to define new namespaces?
<edgar-rft> are there also proprietarily owned variables?
<phoe> because they have new classes of things that need to be named
<edgar-rft> or enslaved variables?
<phoe> think of e.g. test suites, or test cases inside those test suites
<phoe> or of ASDF systems
<ebrasca> I don't understand.
<phoe> (ql:quickload :alexandria)
<phoe> :alexandria designates an ASDF system named "alexandria"
<phoe> and "alexandria" is a name in the ASDF system namespace
<phoe> that, obviously, is not a part of the CL standard
orivej has joined #lisp
* jackdaniel is collecting infinity conses
<no-defun-allowed> edgar-rft: You are thinking of bound variables.
<edgar-rft> :-)
<no-defun-allowed> A crucial part of design-by-contract, where they are legally bound to certain terms and conditions of course.
<phoe> CL variables can be unbound but not unbounded
<ebrasca> How I can see this ASDF namespace?
<phoe> ebrasca: the same way you can see other namespaces
<ebrasca> How?
<phoe> the simplest tools are asdf:find-system and asdf:defsystem
<phoe> see the similarity to cl:find-package and cl:defpackage
<edgar-rft> LIST-ALL-PACKAGES returns a list of all currently defined packages if that helps
<phoe> seems like ASDF does not have a LIST-ALL-SYSTEMS function, hm
<phoe> but this works, (let ((x '())) (asdf:map-systems (lambda (y) (push (asdf:component-name y) x))) x)
Lycurgus has joined #lisp
<ebrasca> I can have "asd" as function , variable , package , test case ...
<phoe> sort of kind of
<phoe> you can't have "asd" as a function because the function namespace is named by symbols
<phoe> not strings
<phoe> that's the difference: some namespaces have distinct name types
troydm has joined #lisp
<Lycurgus> phoe, I was wondering about the price anomalies on your book
Cthulhux has quit [Ping timeout: 250 seconds]
<Lycurgus> (used, kindle costing more than new)
JohnMS_WORK has quit [Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/]
<phoe> Lycurgus: I am absolutely unaware of them and I cannot provide any reasoning beacuse of that
<phoe> I'd need to ask Apress, and I can if you provide me with some data
<Lycurgus> on amazon
<phoe> from what I last checked, used likely cost more because they are sold by shops that are not in Amazon's direct shipping reach
<ebrasca> phoe: Did you make a book?
<phoe> which is weird because apress ships worldwide, but on the other hand resellers still exist and make money
<phoe> minion: tell ebrasca about tclcs
<minion> ebrasca: tclcs: The Common Lisp Condition System, https://www.apress.com/us/book/9781484261330
rodriga has joined #lisp
Cthulhux has joined #lisp
<Lycurgus> ah, thought something of that sort
<phoe> Lycurgus: I have no idea about Kindle though! (I don't use it myself)
<Lycurgus> it's basically just pdf for the amazon reader
<Lycurgus> generally the kindle version is substantially less often less than half the hardcopy
<Lycurgus> actually it might be epub or whatever
daphnis has joined #lisp
Bike has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
nij has quit [Remote host closed the connection]
nij has joined #lisp
<nij> Good morning! I have a lisp file to be run automatically. However, on some machine I don't have certain package, so the symbol PACKAGE:FUN1 may cause an error even at READ time. A workaround is to use (funcall (find-symbol "fun1" "PACKAGE")) instead.. but that means I have to change all of PACKAGE:FUN1 to that long stuff.. is there any better workaround?
<phoe> wait a second, if you don't have package named PACKAGE then FIND-SYMBOL will signal an error anyway
<phoe> except at runtime
<nij> Oh, I did put that into a (when (ignore-errors (ql:quickload :PACKAGE)) [here])
<phoe> the bug is that you actually use ignore-errors
<phoe> the system is not loaded until runtime, so you do not have its symbols at read-time.
ljavorsk has joined #lisp
<phoe> quick and dirty workaround: at the top of your file, (eval-always (ql:quickload :package))
<phoe> actual solution: use proper ASDF dependencies
refpga has quit [Remote host closed the connection]
<Bike> it sounded like nij wanted the code to not necessarily be dependent on the system
<nij> for the second solution, i do expect on some machine there won't be PACKAGE
<Bike> and asdf doesn't really do optional dependencies as far as i remember
<phoe> oh, like that
<phoe> then you need to conditionally quickload anyway
<nij> (if has-package load! do-nothing!)
<phoe> IGNORE-ERRORS kinda solves that issue but it's dirty
<phoe> this sounds like a case for reader conditionals then
<nij> (when (ignore-errors (ql:quickload :PACKAGE)) (package:fun1)) => ERROR!
<phoe> yes, this is because the reader does not have the package PACKAGE at read-time
<nij> Because it was trying to READ package:fun1 at READ time, which causes the problem.
<nij> yes
<nij> I have lots of package:fun1 in that file.. and changing them all to (find-symbol "fun1" "PACKAGE") seems a little bit dirty and ugly.
<nij> (let alone funcall)
<phoe> can you extract that into another file and only load it when the system in question is found?
<phoe> since I think will be the easiest
<phoe> s/will/that will/
<nij> OH that could do!
<nij> a bit less idealistic though..
<nij> i hope the code and the condition is presented together
<nij> I will do that if there's no better solution..
<phoe> you could hack your way around using reader conditionals instead
<nij> or should i write a macro that replaces any (package:fun1 body..) into (funcall (package:fun1 body..))?
<phoe> you can't do it with a macro
<phoe> macroexpansion time happens after read time
<nij> oh yes.. duh
<daphnis> what is a way to avoid repetition in cond, when all tests are, say, whether the same value is a member of various lists?
<phoe> ugly stuff like #+#.(when (asdf:find-system :foo) '(and) '(or)) could possibly work
<phoe> daphnis: alexandria:switch with a custom test
<phoe> !!!
<phoe> I just found a bug in alexandria:switch
<jackdaniel> witch!
<daphnis> phoe: thanks
<nij> !!!
ljavorsk has quit [Ping timeout: 240 seconds]
<phoe> try to replace the lambda with (alexandria:rcurry #'member :test #'equal) and watch the world burn.
<nij> I tried #+#.(ql:quickload :recording) t => error!
<phoe> nij: reader conditionals work differently
<nij> (no :RECORDING is there)
<nij> Oh I see.
<nij> #+#.(when (asdf:find-system :foo) '(and) '(or)) => error!
<jackdaniel> does alexandria claim that test is evaluated?
<phoe> unspecified
<jackdaniel> defaulting to (quote eql) certainly makes such impression though
<phoe> it only supports extracting QUOTE and FUNCTION via manual intervention
<phoe> why would it do that instead of doing an explicit ONCE-ONLY on the test and then FUNCALLing it though?
<jackdaniel> funcalling things may have a certain performance penalty
<jackdaniel> because not-sufficiently-smart-compiler will resolve the function at runtime
<phoe> in this case, alexandria:switch could be smart and only resolve to FUNCALL if the test is a list whose CAR is neither QUOTE nor FUNCTION
<jackdaniel> that said this probably should be smarter, like: atom - return spec, cons and (quite function) - extract, just cons - evaluate
<jackdaniel> sure, I'm just guessing why it is written the way it is
<phoe> yes
<jackdaniel> lunch came, later \o
<phoe> cya
Lycurgus has quit [Quit: Exeunt]
aeth has quit [Ping timeout: 240 seconds]
jrm has quit [Read error: Connection reset by peer]
jrm2 has joined #lisp
jrm2 is now known as jrm
aeth has joined #lisp
<nij> What's the cleanest way to alias #'f to #'g?
<Bike> (setf (fdefinition 'f) (fdefinition 'g))
igemnace has quit [Remote host closed the connection]
<nij> hmm.. error: G is undefined
<Bike> er, did i misunderstand the direction, here?
<_death> (rotatef (cadr form) (caddr form))
<Bike> do you want to make F an alias for an existing G function, or the other way around?
<nij> oh the other way around works.. my english is the bug
nicktick has joined #lisp
slyrus has joined #lisp
slyrus has quit [Ping timeout: 240 seconds]
amontero has joined #lisp
<nij> Hmm.. can I connect to a swank/slynk server from a running sbcl repl?
<nij> Normally we have to go to emacs and `M-x sly-connect`.. but sometimes I want to hop into a server in a living repl.
amontero has quit [Client Quit]
<Bike> i don't understand
<Bike> it's emacs that connects to swank/slynk. sbcl _runs_ a swank/slynk server
<nij> yes.. say we have two sbcl repls. r1 and r2.
<nij> In r1 I launch a swank server. I want to connect to it in r2..
<Bike> i mean it's emacs/slime/whatever it is for slynk that does the connection
<Bike> that is an emacs program. it is not a lisp program. it doesn't run in sbcl
<Bike> i don't think there is a lisp version of the client
<nij> i see :(
<Bike> i mean, it woudl be weird conceptually, right? it's not like an sbcl repl is a text editor
hiroaki_ has quit [Ping timeout: 260 seconds]
<_death> well, it could be useful.. with climacs or whatever
mrchampion has quit [Ping timeout: 260 seconds]
<Alfr> nij, as a work around, you could securely forward the port swank/slynk listens on to a machine where you have emacs.
<nij> For an sbcl to subsume shell.. I think this is needed?
<Bike> well a shell is still not a text editor
<Bike> maybe i don't understand what you mean
<nij> i just hope that we can control one repl from another repl
wsinatra has joined #lisp
<_death> in fact looks like someone already did some work https://github.com/lem-project/lem/blob/master/modes/lisp-mode/swank-protocol.lisp
<Bike> you could set up your own socket code to do so, though i'm not immediately sure of the point
<Bike> man, there are kind of a lot of lisp editor projects, aren't there
<Bike> but the slime/swank protocol is set up for editors so a lot of it won't make sense where you have a repl instead of an editor
<beach> But don't they all do roughly the same thing?
luckless has quit [Remote host closed the connection]
<Bike> the editors? sure, i guess, they edit
<beach> They "just" edit.
<Bike> i haven't used lem so i don't know what features it does or doesn't have
<Alfr> ... on their own and spit out what you wish for? I still waiting for that one. :D
amontero has joined #lisp
<Alfr> s/I/I'm/
amontero has quit [Client Quit]
<phoe> Bike: there is
<Bike> alright then. there you go, nij
<phoe> along with swank-crew and lfarm for better distributed protocol
<phoe> s/protocol/computing/
orivej has quit [Ping timeout: 260 seconds]
<phoe> you can use the swank protocol for CL↔CL communication just fine this way
<Bike> using an editor protocol for rpc seems like overkill to me. i guess it's easier than developing a smaller protocol and convincing people to implement it
* nij is in search of a slynk-client
<phoe> it avoids the NIH syndrome - there is already a battle-tested protocol and a battle-tested server, so why not
<jackdaniel> there was a clim implementation of this protocol (for climacs) - afair its name was "SWINE" ^_^
<no-defun-allowed> Does it run in Wine? Then can I debug that combination from a lispm on EINE?
<jackdaniel> sure it does
layerex has joined #lisp
<nij> im afraid there's no slynk equivalent of swank-client.
<nij> jeez time to learn swank :D :D
aeth has quit [Ping timeout: 240 seconds]
<phoe> actually
hiroaki_ has joined #lisp
<phoe> sly speaks the swank protocol
<phoe> and swank-client is explicitly mentioned there
<phoe> which is good news for you
aeth has joined #lisp
<nij> OH great. Lemme see :-D
nikolayclfx has quit [Quit: Connection closed]
CrashTestDummy has quit [Quit: Leaving]
narimiran has quit [Ping timeout: 252 seconds]
indathrone has quit [Ping timeout: 258 seconds]
nij has quit [Remote host closed the connection]
cosimone has quit [Remote host closed the connection]
CrashTestDummy has joined #lisp
msk has joined #lisp
hjudt has quit [Ping timeout: 240 seconds]
msk has quit [Ping timeout: 252 seconds]
amontero has joined #lisp
CrashTestDummy has quit [Quit: Leaving]
Kundry_Wag has joined #lisp
amontero has quit [Quit: ERC (IRC client for Emacs 27.1)]
Posterdati has quit [Read error: Connection reset by peer]
Posterdati has joined #lisp
mrchampion has joined #lisp
ukari has quit [Ping timeout: 252 seconds]
rumbler31_ has joined #lisp
<attila_lendvai> any ASDF experts? i'd like to avoid perform'ing an operation if the output file exists (i.e. regardless of the modification time). any hints? overriding operation-done-p seems to be not enough.
CrashTestDummy has joined #lisp
ukari has joined #lisp
<flip214> sorry, I can only offer an opposite hint - if you want to rebuild always, (on linux) you can use a dependency like /proc/stat which is always "current"
<flip214> attila_lendvai: can you compare the output file's timestamp to itself?
ramHero has joined #lisp
<attila_lendvai> flip214, my issue is that i don't know what part of ASDF i should hook into. op-done-p is not even called if the input file's mod time is earlier
<flip214> can you make input file == output file?
neirac has joined #lisp
orivej has joined #lisp
dyelar has quit [Quit: Leaving.]
OlCe has joined #lisp
aartaka has joined #lisp
CrazyEddy has quit [Ping timeout: 240 seconds]
srhm has joined #lisp
dyelar has joined #lisp
hypercube has joined #lisp
luckless has joined #lisp
hypercube has quit [Ping timeout: 240 seconds]
CrazyEddy has joined #lisp
cosimone has joined #lisp
<daphnis> how do i turn '((a b) (c d)) into '(a b c d)?
<beach> daphnis: (reduce #'append '((a b) (c d)) :from-end t)
<phoe> or (a:mappend #'identity '((a b) (c d)))
<phoe> but that's only because I like mappend
<phoe> Xach: nikodemus replied! I'll make a private fork first, submit some PRs, and then request him to transfer the repository over to sharplispers
<beach> phoe: How is mappend implemented?
<phoe> beach: (loop for results in (apply #'mapcar function lists) append results)
<beach> That will work.
<phoe> I assume that LOOP APPEND is smart enough to do :from-end t automatically for optimization
<beach> yeah.
<beach> Pretty sure.
<phoe> _death: I see you have some screamer changes that have not been mainstreamed, should I take a look at them?
<daphnis> beach: thanks!
<beach> Pleasure.
slyrus has joined #lisp
<daphnis> from-end is faster?
<phoe> yes
<beach> If you don't to :FROM-END T then you have a quadratic algorithm.
<phoe> it conses O(n) conses rather than O(n²)--- yes
<splittist> phoe: if you're reaching for alexandria, why not a:flatten ? (:
<phoe> note that if your lists are fresh and mutable rather than literal/quoted/immutable, you can NCONC them instead of APPENDing, and you'll cons nothing
<phoe> splittist: will break in case of nested lists since it'll flatten them all
<phoe> I got bitten by that once
<beach> phoe: yes, but without :from-end t, you still have to traverse a quadratic number of times.
<phoe> beach: oh right, it'll be both O(n²) space and memory
<phoe> or rather, the latter will be reclaimable by the GC because the intermediate conses will be collectable
<phoe> but still, this produces GC pressure
* beach is lost. But that could be because of the time of day.
<phoe> don't mind me
<beach> "space and memory"?
<phoe> time and memory, sorry
attila_lendvai_ has joined #lisp
<beach> So APPEND without :FROM-END T is quadratic in consing and traversal. NCONC without :FROM-END T is quadratic in traversal only.
aeth_ has joined #lisp
<phoe> oh right! I was thinking APPLY rather than REDUCE, you're right
<phoe> REDUCE will work better.
aeth has quit [Disconnected by services]
aeth_ is now known as aeth
attila_lendvai has quit [Ping timeout: 240 seconds]
skapata has joined #lisp
long4mud has quit [Quit: WeeChat 3.0.1]
DanklyTuned has joined #lisp
<_death> phoe: yeah, I think they make sense
<phoe> I see that nikodemus just reverted the SBCL change because it broke on clisp for whatever reason
<phoe> the one with redefinition warnings
<phoe> wouldn't it make more sense to prevent duplicate definitions from being generated in the first place?
<phoe> (if possible)
<_death> it's always possible, but would not be worthwhile in this case
<phoe> we depend on implementation-defined behavior if we actually do generate multiple definitions
<phoe> this can sort of work, but also is a portability quirk
chipolux has joined #lisp
<_death> screamer has a good reason for redefining them (when it realizes they are nondeterministic as they call nondeterministic functions that are defined later)
<phoe> yes, I see
<_death> iirc it's not implementation-defined behavior.. check the clhs reference I gave
<_death> I don't know how it breaks on clisp (I've not checked it)
<phoe> it's unspecified - CLHS defines that as "unpredictable but harmless"
<_death> clhs 3.2.2.3
<phoe> and that implementations are permitted to specify the consequences, and that portable code must not depend on the results or effects of that situation
<phoe> "The consequences are unspecified if functions are redefined individually at run time or multiply defined in the same file."
<phoe> I kinda wonder what "harmless" means in this concrete context
<phoe> since they are also "unpredictable", so in theory two DEFUN FOO in one file can cause... yes, what exactly is permitted?
<_death> where is the word "harmless"?
<phoe> clhs 1.4.2
<_death> in the definition of "unspecified"?
<phoe> "The consequences are unspecified"
<Bike> this seems like kind of a vague definition.
<phoe> sure it is, because when we have two DEFUN FOOs in a row then what exactly does it mean that it's "unpredictable" to have stuff like that
<phoe> because unpredictability itself in such a case is anything but harmless if e.g. we completely skip the second DEFUN FOO
<phoe> which, naïvely looking, seems to be permitted?
<_death> I don't remember what prompted me to make that change.. possibly an SBCL warning
<phoe> I think so, yes, SBCL complains about multiple definitions
<phoe> it produces full warnings for that
marusich has quit [Ping timeout: 252 seconds]
<_death> and why does clisp fail?
<MetaYan_> jackdaniel: I just noticed that you were asking for my opinion about something earlier today, but even after reading the backlog, I still can't figure out what about...
<_death> (with my change.. presumably it doesn't fail so hard without?)
<phoe> _death: I have no idea! nikodemus will know
bilegeek has joined #lisp
<phoe> perhaps it's because the HANDLER-BIND-wrapped DEFUN is no longer toplevel
<phoe> which shouldn't really matter, because of the EVAL-ALWAYS... huh
<_death> ok, I tried loading it with clisp
<_death> @3728>: there is no package with name #1="SB-EXT"
<_death> but that may be from another commit
<phoe> wait, sb-ext? where
<phoe> yes, must be some other commit
<_death> yeah, another of my commits.. I'll conditionalize on #+sbcl for now
<phoe> oh, yes, I see it now
<_death> otherwise, it loads successfully
<phoe> I asked for the concrete compilation error in the PR
<_death> it wants stefil for the tests.. hmm
waleee-cl has joined #lisp
<_death> test-screamer returns T
<_death> hopefully nikodemus will elaborate
<phoe> yes
<_death> not sure the tests cover that code.. I have some screamer code, but may or may not load on clisp without effort
long4mud has joined #lisp
<_death> eh, clisp backtraces look crappy with slime.. and no frame-source-location implementation
gitgood has joined #lisp
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
mindCrime has joined #lisp
contrapunctus has joined #lisp
DHARMAKAYA has joined #lisp
DHARMAKAYA has quit [Client Quit]
DanklyTuned has quit [Quit: nyaa~]
ukari has quit [Remote host closed the connection]
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
ukari has joined #lisp
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
contrapunctus has joined #lisp
DHARMAKAYA has joined #lisp
ramHero has quit [Remote host closed the connection]
<_death> ok, some of my aoc2020 code that uses screamer fails on clisp, because screamer's walker does not support MACROLET
curtosis[away] has joined #lisp
<_death> and clisp's LOOP expands to that.. so I'm not sure screamer is very useful on clisp :)
<phoe> gasp
<phoe> make an issue mayhaps!
<_death> nah, I don't use clisp nowadays so it's not an issue for me
aeth_ has joined #lisp
<_death> are you planning on using screamer btw?
attila_lendvai_ is now known as attila_lendvai
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
aeth has quit [Ping timeout: 265 seconds]
<phoe> a little bit; I plan on giving it some maintenance in order to get the official blessing to move the repo to sharplispers
<phoe> and I've been curious about it for a long time, so that's also a chance to get to know it in depth
<_death> cool
<Shinmera> There's also https://shinmera.github.io/classowary for a linear constraint solver alternative. :)
<Shinmera> It's definitely less fancy than Screamer though
<_death> cool, I also have a pulp-like thing
<phoe> Shinmera: it certainly seems capable of screaming though
<Shinmera> At least I can guarantee Classowary works well, since I use it quite a bit in my Alloy layouts.
ljavorsk has joined #lisp
msk has joined #lisp
ukari has quit [Remote host closed the connection]
ukari has joined #lisp
cage_ has joined #lisp
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
curtosis[away] has quit [Quit: My Mac Mini has gone to sleep. ZZZzzz…]
zaquest has quit [Read error: Connection reset by peer]
aartaka has quit [Read error: Connection reset by peer]
aartaka_d has joined #lisp
aeth_ is now known as aeth
msk has quit [Ping timeout: 265 seconds]
<_death> phoe: another thing about screamer, I remember they warn about using stuff like DOLIST/DOTIMES in nondeterministic functions, because it may not establish a new binding on each iteration (it's implementation-defined).. but since they shadow CL symbols like DEFUN, why not also shadow DOLIST and friends to provide just that?.. I've not tried it
rumbler31 has quit [Remote host closed the connection]
<phoe> _death: that can work and should be a simple transform, please make an issue
rumbler31 has joined #lisp
ramHero has joined #lisp
<_death> phoe: I don't like posting issues :).. to me an issue is a call for action on the maintainer, and I prefer my calls for action to be in the form of pull requests
<phoe> _death: since it seems that I'll be maintaining screamer in the future - please do so
<phoe> (and you can explicitly mention that in the issue text if that makes you feel a little bit better)
<_death> phoe: you may do it yourself, if you're interested ;)
diamondbond has joined #lisp
<phoe> _death: ...I actually started looking at the docs and I cannot find them there
rumbler31_ has quit [Ping timeout: 240 seconds]
<phoe> like, dolist or dotimes
<phoe> http://nikodemus.github.io/screamer/ does not mention dolist or dotimes or the term "binding"
<_death> phoe: that's just what nikodemus wrote.. the original docs are in the papers directory
<phoe> grepping the papers directory shows nothing, either
<_death> check screamer.pdf
<phoe> oooh, it is in the PDF file.
<phoe> grepping doesn't find that.
<phoe> and transforming DO macros is going to be simple but I don't think I'll want to make a LOOP wrapper
<_death> right.. LOOP is a no-no too, but it's still useful in deterministic functions..
Major_Biscuit has quit [Quit: WeeChat 3.0.1]
zaquest has joined #lisp
karlosz has joined #lisp
Brucio-43 has joined #lisp
* Brucio-43 test
<phoe> test successful
Brucio-43 has quit [Ping timeout: 265 seconds]
<Shinmera> or not.
attila_lendvai_ has joined #lisp
attila_lendvai has quit [Read error: Connection reset by peer]
mindCrime has quit [Ping timeout: 268 seconds]
ljavorsk has quit [Ping timeout: 268 seconds]
ukari has quit [Remote host closed the connection]
ukari has joined #lisp
gaqwas has joined #lisp
varjag has joined #lisp
DHARMAKAYA has quit [Ping timeout: 240 seconds]
imode has joined #lisp
attila_lendvai_ has quit [Quit: Leaving]
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
attila_lendvai has joined #lisp
heisig has joined #lisp
<fe[nl]ix> phoe: we can certainly move it to sharplispers
<fe[nl]ix> it would be nice if Nikodemus started that instead of forking
<_death> there's also screamer+, though the code there likely needs some work..
<mfiano> Wasn't there a screamer extensions repository with a questionable license, perhaps not by the same author?
<_death> yeah, it has a "You may not distribute the code without prior consent from me.".. I'm guessing 20 years later, someone could ask the author to relicense
gareppa has joined #lisp
<mfiano> I guess questionable in that it has none?
<_death> mfiano: see comment in screamer-plus.lisp
gareppa has quit [Remote host closed the connection]
<mfiano> Eww, custom license.
rumbler31 has quit [Remote host closed the connection]
rumbler31 has joined #lisp
rumbler31_ has joined #lisp
varjag has quit [Ping timeout: 260 seconds]
Sauvin has quit [Remote host closed the connection]
Cthulhux has quit [Changing host]
Cthulhux has joined #lisp
varjag has joined #lisp
aartaka has joined #lisp
aartaka_d has quit [Ping timeout: 252 seconds]
layerex has quit [Quit: Leaving]
layerex has joined #lisp
layerex has quit [Client Quit]
varjag has quit [Ping timeout: 252 seconds]
jeosol has quit [Quit: Connection closed]
ukari has quit [Remote host closed the connection]
ukari has joined #lisp
remby has joined #lisp
<phoe> fe[nl]ix: I got a mail from Nikodemus - he'll gladly move it himself once some fixes with PRs are submitted to the original repo
<phoe> and I'll try doing just that
plaisanterie has joined #lisp
hjudt has joined #lisp
cosimone has quit [Read error: Connection reset by peer]
varjag has joined #lisp
hypercube has joined #lisp
kpoeck has joined #lisp
hypercube has quit [Ping timeout: 246 seconds]
UM-Li has joined #lisp
UM-Li has quit [Client Quit]
davd33 has quit [Remote host closed the connection]
narimiran has joined #lisp
<attila_lendvai> luis, ping. would you mind if we made cffi get captured by quicklisp by a moving tag instead of the tarball from cl.net? i.e. tagged-git https://github.com/cffi/cffi.git stable
<attila_lendvai> luis, that would make it more flexible for us to designate which state ql should capture... just move a tag, instead of releasing...
hypercube has joined #lisp
plaisanterie has quit [Quit: Connection closed]
OlCe has quit [Ping timeout: 240 seconds]
layerex has joined #lisp
<fe[nl]ix> phoe: very nice
<fe[nl]ix> attila_lendvai: what's the benefit ?
<attila_lendvai> fe[nl]ix, anyone who has the git commit bit can designate what should go into ql. moving a tag is much less work than releasing, and maybe you don't want to release, yet you want ql to get some patches.
aartaka_d has joined #lisp
<attila_lendvai> another benefit is that ql can capture the sources even if cl.net is down (assuming that github.com will better survive any upcoming internet split)
hendursaga has quit [Ping timeout: 240 seconds]
aartaka has quit [Ping timeout: 240 seconds]
<Odin-> attila_lendvai: I'd guess that depends on whether you end up on the Apple or Facebook side.
<Odin-> :p
layerex has quit [Remote host closed the connection]
<attila_lendvai> Odin-, i'm more worried about politicians screwing us up with their geopolitical nonsense...
<attila_lendvai> bonus reason: git is a much better versioning tool than named tarballs on random servers...
<Odin-> attila_lendvai: Those are all 'soft' splits, and most of the ones that are likely to happen based on the geopolitics are already in place.
<Odin-> Unless you're expecting a successful nazi movement in the US next round..?
jeosol has joined #lisp
andrei-n has quit [Quit: Leaving]
aartaka_d has quit [Ping timeout: 252 seconds]
<Shinmera> this is definitely not the place to discuss politics.
cosimone has joined #lisp
heisig has quit [Ping timeout: 252 seconds]
hypercube has quit [Quit: WeeChat 3.1]
DHARMAKAYA has joined #lisp
Lord_of_Life_ has joined #lisp
Lord_of_Life has quit [Ping timeout: 252 seconds]
Lord_of_Life_ is now known as Lord_of_Life
rumbler31_ has quit [Ping timeout: 246 seconds]
asarch has joined #lisp
Nilby has joined #lisp
kpoeck has quit [Quit: Connection closed]
aartaka has joined #lisp
scymtym has quit [Ping timeout: 250 seconds]
krjli has joined #lisp
ukari has quit [Remote host closed the connection]
ukari has joined #lisp
rumbler3_ has joined #lisp
aoeu256 has joined #lisp
narimiran has quit [Ping timeout: 240 seconds]
rumbler31 has quit [Remote host closed the connection]
rodriga has quit [Read error: Connection reset by peer]
remby has quit [Remote host closed the connection]
remby has joined #lisp
<copec> Is there a standard name for an initialization function that people like to group everything under for some package?
aartaka_d has joined #lisp
anticrisis has joined #lisp
aartaka has quit [Ping timeout: 265 seconds]
rumbler3_ has quit [Remote host closed the connection]
<phoe> clhs initialize-instance
rumbler31 has joined #lisp
<phoe> people like adding constructor stuffs as :before and :after methods for that GF
<phoe> mostly :after
<phoe> or do you mean something else?
rumbler31 has quit [Remote host closed the connection]
rumbler31 has joined #lisp
hypercube has joined #lisp
DHARMAKAYA has quit [Ping timeout: 260 seconds]
bilegeek has quit [Quit: Leaving]
scymtym has joined #lisp
<copec> I read in S-exp from a config file into clos objects, and have a function that does it
Lycurgus has joined #lisp
<copec> I could just (function-name) under a commented init section, but I was wondering if there was a defacto standard, like to make an (init) function or something
<copec> and group everything under that
<asarch> What is a "generator"?
<Bike> that term refers to many different things in many different contexts
<Bike> do you have one in min
<Bike> d
<asarch> As a result of a query from a DB cluster?
<Bike> it might mean a closure with state that returns a new value from an iteration every time you call it
<Bike> but that is a guess based on little information
daphnis has quit [Ping timeout: 240 seconds]
daphnis has joined #lisp
aoeu256 has quit [Ping timeout: 265 seconds]
gaqwas has quit [Ping timeout: 240 seconds]
DHARMAKAYA has joined #lisp
cage_ has quit [Quit: Leaving]
<asarch> Where could I learn more about it?
msk has joined #lisp
<Bike> i don't know? the documentation of whatever system you're getting this thing from, probably?
<asarch> I see
<asarch> Thank you Bike! Thank you very much! :-)
<asarch> Have a nice day!
asarch has quit [Quit: Leaving]
shka_ has quit [Ping timeout: 240 seconds]
msk has quit [Ping timeout: 240 seconds]
daphnis_ has joined #lisp
Kundry_Wag has quit [Read error: Connection reset by peer]
daphnis has quit [Ping timeout: 240 seconds]
mindCrime has joined #lisp
Kundry_Wag has joined #lisp
<Alfr> I think w-h-t-i has a nice example for generators in that sense, Bike.
X-Scale has quit [Ping timeout: 252 seconds]
X-Scale` has joined #lisp
jeosol has quit [Quit: Connection closed]
jeosol has joined #lisp
msk has joined #lisp
theothornhill has joined #lisp
msk has quit [Ping timeout: 240 seconds]
wsinatra has quit [Quit: WeeChat 3.1]
theothornhill has quit [Ping timeout: 252 seconds]
elderK has joined #lisp
CrazyPython has joined #lisp
cosimone has quit [Read error: Connection reset by peer]
daphnis_ has quit [Ping timeout: 268 seconds]
theothornhill has joined #lisp
daphnis has joined #lisp
remby has quit [Quit: Leaving]
gaqwas has joined #lisp
gaqwas has joined #lisp
theothornhill has quit [Ping timeout: 246 seconds]
daphnis has quit [Ping timeout: 265 seconds]
theothornhill has joined #lisp
devrtz has quit [Ping timeout: 258 seconds]
Yardanico has quit [Remote host closed the connection]
varjag has quit [Remote host closed the connection]
varjag has joined #lisp
Yardanico has joined #lisp
devrtz has joined #lisp
krjli has quit [Remote host closed the connection]
msk has joined #lisp
gaqwas has quit [Ping timeout: 265 seconds]
theothornhill has quit [Ping timeout: 240 seconds]
varjag has quit [Ping timeout: 268 seconds]
msk has quit [Ping timeout: 252 seconds]
villanella has quit [Quit: villanella]
contrapunctus has left #lisp ["Disconnected: closed"]
chipolux has quit [Quit: chipolux]
contrapunctus has joined #lisp
rumbler31_ has joined #lisp
surabax has quit [Quit: Leaving]
skapata has quit [Ping timeout: 260 seconds]
skapata has joined #lisp
Lycurgus has quit [Quit: Exeunt]
curtosis[away] has joined #lisp
frgo has quit [Remote host closed the connection]
frgo has joined #lisp
pve has quit [Quit: leaving]
maiqthefalse has quit [Quit: Connection closed for inactivity]
aeth has quit [Ping timeout: 252 seconds]
aeth has joined #lisp
<fiddlerwoaroof> flip214: maybe I should contact him directly, I'd like to pull things like author/title/etc.
lotuseater has quit [Quit: ERC (IRC client for Emacs 27.1)]
<fiddlerwoaroof> The last time I tried, I also ran into issues with PDF spec versions, I think
charles` has joined #lisp
curtosis[away] has quit [Quit: My Mac Mini has gone to sleep. ZZZzzz…]
nicktick has quit [Ping timeout: 240 seconds]
skapata has quit [Remote host closed the connection]
aartaka_d has quit [Ping timeout: 240 seconds]
hendursaga has joined #lisp
hendursaga has quit [Remote host closed the connection]
hendursaga has joined #lisp
torbo has joined #lisp
random-nick has quit [Ping timeout: 240 seconds]
igemnace has joined #lisp
hjudt has quit [Ping timeout: 240 seconds]
orivej has quit [Ping timeout: 265 seconds]
Lord_Nightmare has quit [Quit: ZNC - http://znc.in]
hypercube has quit [Ping timeout: 240 seconds]
Lord_Nightmare has joined #lisp
ukari has quit [Remote host closed the connection]
ukari has joined #lisp
jeosol has quit [Quit: Connection closed]
rumbler3_ has joined #lisp
rumbler31 has quit [Ping timeout: 246 seconds]
rumbler31_ has quit [Ping timeout: 240 seconds]
bilegeek has joined #lisp