phoe changed the topic of #commonlisp to: Common Lisp, the #1=(programmable . #1#) programming language | Wiki: <https://www.cliki.net> | IRC Logs: <https://irclog.tymoon.eu/libera/%23commonlisp> | Cookbook: <https://lispcookbook.github.io/cl-cookbook> | Pastebin: <https://plaster.tymoon.eu/>
perrierjouet has joined #commonlisp
zacque has joined #commonlisp
tyson2 has joined #commonlisp
zacque has quit [Read error: Connection reset by peer]
waleee has quit [Ping timeout: 268 seconds]
waleee has joined #commonlisp
zacque has joined #commonlisp
<qhong> is there a (somewhat) portable defadvice library?
<qhong> I've long heard that SBCL has fwrapper which can be used to implement defadvice, but I don't know any library doing it
occ has joined #commonlisp
occ has quit [Ping timeout: 245 seconds]
occ has joined #commonlisp
<pjb> random-nick: any lisp can use defstruct and defclass. Since you can define them as macro in any lisp.
<pjb> random-nick: this includes even schemes.
morganw has quit [Remote host closed the connection]
<pjb> ::notify help
<Colleen> pjb: Got it. I'll let help know as soon as possible.
<pjb> ::notify hashfuncf39 you can define your own macro to define classes in a more stereotypal way like defstruct. See for example https://github.com/informatimago/lisp/blob/4bfb6893e7840b748648b749b22078f2facfee0a/common-lisp/cesarum/utility.lisp#L895
<Colleen> pjb: Got it. I'll let hashfuncf39 know as soon as possible.
White_Flame has quit [Remote host closed the connection]
White_Flame has joined #commonlisp
<Xach> qhong: fwrappers is allegro
random-nick has quit [Ping timeout: 256 seconds]
taiju has joined #commonlisp
kpoeck has quit [Quit: Client closed]
Devon has quit [Ping timeout: 250 seconds]
lisp123 has joined #commonlisp
molson has joined #commonlisp
Guest74 has quit [Quit: Connection closed]
lisp123 has quit [Ping timeout: 240 seconds]
Devon has joined #commonlisp
taiju-sub has quit [Ping timeout: 240 seconds]
aeth has quit [Ping timeout: 252 seconds]
aeth has joined #commonlisp
mixfix41 has joined #commonlisp
mixfix41 has quit [Remote host closed the connection]
Inline__ has joined #commonlisp
Inline has quit [Ping timeout: 256 seconds]
mixfix41 has joined #commonlisp
occ has quit [Ping timeout: 250 seconds]
occ has joined #commonlisp
karlosz has quit [Ping timeout: 256 seconds]
taiju has quit [Ping timeout: 240 seconds]
karlosz has joined #commonlisp
taiju-sub has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
occ has quit [Ping timeout: 240 seconds]
lisp123 has joined #commonlisp
lisp123 has quit [Ping timeout: 240 seconds]
triffid has quit [Remote host closed the connection]
<beach> Good morning everyone!
pranavats has joined #commonlisp
occ has joined #commonlisp
semz_ has joined #commonlisp
semz has quit [Ping timeout: 250 seconds]
Devon has quit [Ping timeout: 240 seconds]
Devon has joined #commonlisp
Devon has quit [Read error: Connection reset by peer]
Devon has joined #commonlisp
waleee has quit [Ping timeout: 240 seconds]
Guest74 has joined #commonlisp
taiju-sub has quit [Ping timeout: 240 seconds]
Bike has quit [Quit: sleep]
eddof13 has joined #commonlisp
hashfunc569 has joined #commonlisp
Devon has quit [Ping timeout: 240 seconds]
lisp123 has joined #commonlisp
lisp123 has quit [Ping timeout: 250 seconds]
razetime has joined #commonlisp
mon_aaraj has quit [Ping timeout: 256 seconds]
mon_aaraj has joined #commonlisp
occ has quit [Ping timeout: 240 seconds]
dongdigua has joined #commonlisp
dongdigua has left #commonlisp [#commonlisp]
Devon has joined #commonlisp
Devon has quit [Ping timeout: 256 seconds]
taiju-sub has joined #commonlisp
occ has joined #commonlisp
Devon has joined #commonlisp
Devon has quit [Ping timeout: 240 seconds]
razetime has quit [Ping timeout: 240 seconds]
taiju-sub has quit [Quit: Quit]
szkl has joined #commonlisp
epony has quit [Quit: QUIT]
luchadoritos has joined #commonlisp
hashfunc569 has quit [Ping timeout: 240 seconds]
mon_aaraj has quit [Ping timeout: 240 seconds]
occ has quit [Ping timeout: 240 seconds]
<Josh_2> Good morning
occ has joined #commonlisp
lisp123 has joined #commonlisp
lisp123 has quit [Ping timeout: 252 seconds]
Cymew has joined #commonlisp
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
mon_aaraj has joined #commonlisp
aartaka has quit [Ping timeout: 240 seconds]
aartaka has joined #commonlisp
aartaka has quit [Ping timeout: 268 seconds]
aartaka has joined #commonlisp
shka has joined #commonlisp
epony has joined #commonlisp
<froggey> Good morning lispers. I'll see you at ELS :)
amb007 has quit [Ping timeout: 240 seconds]
amb007 has joined #commonlisp
MajorBiscuit has joined #commonlisp
Dynom has joined #commonlisp
MajorBiscuit has quit [Client Quit]
lisp123 has joined #commonlisp
MajorBiscuit has joined #commonlisp
<beach> froggey: Oh, you will be there?
<froggey> I will, finally :)
<beach> Excellent!
occ has quit [Read error: Connection reset by peer]
<beach> You should give a lightning talk.
<froggey> That's my intent, I'm still sorting things out atm
<beach> Great!
mon_aaraj has quit [Ping timeout: 252 seconds]
mon_aaraj has joined #commonlisp
lisp123 has quit [Remote host closed the connection]
attila_lendvai has joined #commonlisp
karlosz has quit [Quit: karlosz]
szkl has quit [Quit: Connection closed for inactivity]
miique has quit [Quit: You have been kicked for being idle]
aartaka has quit [Ping timeout: 252 seconds]
amb007 has quit [Ping timeout: 256 seconds]
amb007 has joined #commonlisp
mon_aaraj has quit [Ping timeout: 245 seconds]
mgl has joined #commonlisp
mon_aaraj has joined #commonlisp
attila_lendvai has quit [Quit: Leaving]
lisp123 has joined #commonlisp
luchadoritos has quit [Ping timeout: 240 seconds]
rogersm has joined #commonlisp
Cymew has quit [Ping timeout: 240 seconds]
Cymew has joined #commonlisp
lisp123 has quit [Remote host closed the connection]
<Josh_2> Wheres the primary repo for Bknr datastore?
lisp123 has joined #commonlisp
kevingal has joined #commonlisp
mon_aaraj has quit [Ping timeout: 260 seconds]
<lisp123> (get-pro 'bknr)
<lisp123> there you go
mon_aaraj has joined #commonlisp
Cymew has quit [Ping timeout: 256 seconds]
s-liao has joined #commonlisp
Cymew has joined #commonlisp
hhdave has joined #commonlisp
s-liao has quit [Quit: Ping timeout (120 seconds)]
s-liao has joined #commonlisp
lisp123 has quit [Remote host closed the connection]
pranavats has left #commonlisp [Disconnected: Replaced by new connection]
pranavats has joined #commonlisp
wacki has joined #commonlisp
rogersm has quit [Read error: Connection reset by peer]
rogersm has joined #commonlisp
Cymew has quit [Ping timeout: 240 seconds]
kevingal has quit [Remote host closed the connection]
nature has joined #commonlisp
Cymew has joined #commonlisp
razetime has joined #commonlisp
random-nick has joined #commonlisp
pillton has quit [Quit: ERC (IRC client for Emacs 27.2)]
s-liao has quit [Quit: Client closed]
rogersm has quit [Quit: Leaving...]
s-liao has joined #commonlisp
razetime has quit [Ping timeout: 260 seconds]
razetime has joined #commonlisp
tyson2 has joined #commonlisp
taiju has joined #commonlisp
razetime has quit [Ping timeout: 252 seconds]
attila_lendvai has joined #commonlisp
<flip214> I need a name for a function that goes through a list and returns (values (remove-if pred list) (all other items))
MajorBiscuit has quit [Ping timeout: 240 seconds]
<flip214> split-sequence is already taken, sort is taken... perhaps remove-if*
<flip214> because it just returns a second value?
s-liao has quit [Quit: Ping timeout (120 seconds)]
s-liao has joined #commonlisp
<shka> flip214: divide-if
<flip214> shka: ah, thanks!
<shka> well, it is just my suggestion, but it makes sense for me at least
<yitzi> flip214: partition-if?
<flip214> yitzi: also good...
<flip214> hmmm, divide may have a bit of numbers in it, which might mislead here
<yitzi> If I understand what you are doing that is what it is called in set theory.
<flip214> yeah, right
<flip214> well, I'll blame you both in the comment ;)
<yitzi> Ohhhhh...a comment mention! Fuel for a future academic paper that scrapes comments from CL code?
<beach> Bah! Eclector already does that.
<jackdaniel> nano also allows to scrap comments from CL code :)
<jackdaniel> manually, but hey! it still does
<drbluefall> Can't you just use a half-decent regex?
<yitzi> Ha! I meant more not the method of scraping, but a paper that lists the scraped comments like some kind or archeological dig. ;)
<jackdaniel> proper parsing (like with eclector) allows you to associate the comment with its parent node
<jackdaniel> (i.e for consumption by another program)
<drbluefall> yitzi: ah :P
anticomputer has quit [Remote host closed the connection]
anticomputer has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
zacque has quit [Quit: Goodbye :D]
s-liao has quit [Ping timeout: 256 seconds]
Dynom has quit [Quit: WeeChat 3.4]
anticomputer has quit [Ping timeout: 240 seconds]
s-liao has joined #commonlisp
anticomputer has joined #commonlisp
razetime has joined #commonlisp
Bike has joined #commonlisp
waleee has joined #commonlisp
attila_lendvai has quit [Ping timeout: 240 seconds]
aartaka has joined #commonlisp
<mfiano> flip214: sounds like serapeum:batches iirc
<mfiano> Ah nope, it is serapeum:partition. I always mix those two up
<flip214> mfiano: ack, thanks
szkl has joined #commonlisp
razetime has quit [Ping timeout: 240 seconds]
razetime has joined #commonlisp
semz_ is now known as semz
razetime has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
cage has joined #commonlisp
amb007 has quit [Ping timeout: 240 seconds]
amb007 has joined #commonlisp
s-liao has quit [Quit: Client closed]
mfiano has quit [Quit: WeeChat 3.4]
ec has joined #commonlisp
Devon has joined #commonlisp
razetime has joined #commonlisp
taiju has quit [Ping timeout: 240 seconds]
Devon has quit [Ping timeout: 256 seconds]
Devon has joined #commonlisp
light has quit [Ping timeout: 256 seconds]
Devon has quit [Ping timeout: 252 seconds]
tyson2 has joined #commonlisp
_73 has joined #commonlisp
light has joined #commonlisp
kpoeck has joined #commonlisp
<_73> I wrote this macro DEFCLOSURE that works as intended to give a function name to a lexical closure while allowing a docstring. I have heard that in CL you should never need to use EVAL but I have not been able to come up with a way to get rid of the EVAL in this macro. How could I get rid of this EVAL? (I added the code for PARSE-BODY from ALEXANDRIA because my macro uses it) http://dpaste.com/GKEXZBJPY
Cymew has quit [Ping timeout: 250 seconds]
<Bike> _73: parse the body at macroexpansion time, not runtime
<_73> ok Ill try that.
X-Scale` has joined #commonlisp
razetime has quit [Ping timeout: 256 seconds]
X-Scale has quit [Ping timeout: 256 seconds]
X-Scale` is now known as X-Scale
Devon has joined #commonlisp
mfiano has joined #commonlisp
MajorBiscuit has joined #commonlisp
<_73> Got it thanks. It certainely makes more sense to parse the body at macroexpansion time. http://dpaste.com/62YYP7SPK
mfiano has quit [Client Quit]
Devon has quit [Ping timeout: 256 seconds]
<beach> What does it do that you can't do with DEFUN?
<beach> Also, why do you not accept names like (SETF <symbol>)?
<_73> I am using dlambda from the let-over-lambda book and the author uses this pattern so I extracted it into a macro.
<beach> Can you summarize that for me so i don't have to read the entire thing?
<beach> I haven't read that book.
<beach> But I also don't see what your macro can do that DEFUN can't.
<pjb> _73: see flet and labels !
<pjb> (flet ((foo (x) "Return the successor of the number X" (1+ x))) (foo 42)) #| --> 43 |#
<pjb> (funcall (let ((increment 3)) (flet ((foo (x) "Return the INCREMENT'th successor of the number X" (+ x increment))) (function foo))) 42) #| --> 45 |#
<pjb> _73: ^
<_73> Dlambda stands for `destructuring lambda` and lets you write a lambda with dynamic dispatch. `(DLAMBDA (:foo (n1 n2) ...) (:bar (&optional bar) (...)) ...)`. SO I can dynamically dispatch different functions with different lambda lists based on a keyword specifier.
mfiano has joined #commonlisp
razetime has joined #commonlisp
mfiano has quit [Client Quit]
<_73> If I used DEFUN I would have to funcall the DEFUN'd function to get the lambda out.
mfiano has joined #commonlisp
<pjb> _73: just like flet: (flet ((foo (n1 n2) …) (bar (&optional bar) …) …) (list (foo 1 2) (bar) (bar 3)))
<pjb> _73: why are you writing or using macros that don't bring anything new to the table?
X-Scale` has joined #commonlisp
mfiano has quit [Client Quit]
X-Scale has quit [Ping timeout: 272 seconds]
X-Scale` is now known as X-Scale
Devon has joined #commonlisp
<beach> _73: OK.
<_73> pjb: I don't see how using flet and labels is the same as dlambda.
<beach> _73: Also, there is no such thing as "a LAMBDA". There is "a LAMBDA expression", and there are functions.
<beach> And what is the BODY argument to PARSE-BODY anyway?
<beach> Wouldn't that be a list of forms possibly starting with some documentation and some declarations?
<beach> _73: If that is the case, then BODY is not a form.
<_73> beach: No it an expression that returns a function (with dlambda), with an optional docstring.
Devon has quit [Ping timeout: 252 seconds]
<_73> Here is an actual use of the macro http://dpaste.com/GKZ6PNDUH
<beach> How does a form take an optional docstring?
<beach> I can see how an expression does if it is the body of a function, but I can't see a form taking an optional docstring.
<_73> Ok I see your problem is my docstring. I will improve it.
<_73> thanks
<beach> Sure.
Guest74 has quit [Quit: Connection closed]
Devon has joined #commonlisp
Guest50 has joined #commonlisp
Guest50 has quit [Client Quit]
ryanbw has quit [Remote host closed the connection]
tyson2 has quit [Remote host closed the connection]
szkl has quit [Quit: Connection closed for inactivity]
<pjb> _73: also, you can just use CLOS, which is equivalent.
mfiano has joined #commonlisp
mfiano has quit [Client Quit]
Devon has quit [Ping timeout: 256 seconds]
Devon has joined #commonlisp
Guest7423 has joined #commonlisp
<_73> pjb: I see now. I still think defclosure and dlambda are more convienent though. Also I want to be able to say (symbol-table :entry-p "foo") instead of (entry-p "foo") for example because I have many of these tables and they all have an :ENTRY-P function so I would need to do extra namespace management.
Devon has quit [Ping timeout: 240 seconds]
<_73> You're solution requires more namespace management in general.
karlosz has joined #commonlisp
Devon has joined #commonlisp
Josh_2 has quit [Read error: Connection reset by peer]
mon_aaraj has quit [Ping timeout: 252 seconds]
karlosz has quit [Quit: karlosz]
mon_aaraj has joined #commonlisp
morganw has joined #commonlisp
Guest7423 has quit [Quit: Connection closed]
Guest7414 has joined #commonlisp
MajorBiscuit has quit [Ping timeout: 240 seconds]
mon_aaraj has quit [Ping timeout: 240 seconds]
mon_aaraj has joined #commonlisp
razetime has quit [Ping timeout: 252 seconds]
<jasom> _73: CLOS lets you do that with eql specializers
mgl has quit [Ping timeout: 256 seconds]
Nilby has quit [Ping timeout: 240 seconds]
mixfix41 has quit [Ping timeout: 240 seconds]
ldb has joined #commonlisp
kpoeck has quit [Quit: Client closed]
mon_aaraj has quit [Ping timeout: 256 seconds]
mon_aaraj has joined #commonlisp
karlosz has joined #commonlisp
rogersm has joined #commonlisp
ns12 has quit [Quit: bye]
ns12 has joined #commonlisp
Guest7414 has quit [Quit: Connection closed]
mon_aaraj has quit [Ping timeout: 240 seconds]
tyson2 has joined #commonlisp
mon_aaraj has joined #commonlisp
mgl has joined #commonlisp
lisp123 has joined #commonlisp
lisp123 has quit [Ping timeout: 252 seconds]
Inline__ is now known as Inline
Inline has quit [Quit: Leaving]
karlosz has quit [Quit: karlosz]
ldb has quit [Quit: ERC (IRC client for Emacs 27.2)]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
Fade has quit [Quit: leaving]
Inline has joined #commonlisp
cosimone has quit [Ping timeout: 245 seconds]
Fade has joined #commonlisp
Fade is now known as Fade
Dynom has joined #commonlisp
mgl has quit [Quit: Client closed]
karlosz has joined #commonlisp
karlosz has quit [Client Quit]
cosimone has joined #commonlisp
mon_aaraj has quit [Ping timeout: 256 seconds]
kpoeck has joined #commonlisp
mon_aaraj has joined #commonlisp
cosimone has quit [Remote host closed the connection]
zacque has joined #commonlisp
cosimone has joined #commonlisp
aeth_ has joined #commonlisp
aeth has quit [Killed (NickServ (GHOST command used by aeth_))]
aeth_ is now known as aeth
<zacque> Is this a bug in slime? I tried invoking (slime-eval '(+ 1 2)) from Elisp but got an error: symbol + not found.
<zacque> To make it work, I have to invoke like (slime-eval '(cl:+ 1 2))
<zacque> Also, I'm not sure how to pass the optional PACKAGE argument. Both of these fail to work: (slime-eval '(+ 1 2) "CL-USER") and (slime-eval '(+ 1 2) 'cl)
<_death> it's not a bug.. slime-eval is not really intended for use outside slime's needs.. you can read the docstring for slime-rex to get more details on how it works
lisp123 has joined #commonlisp
lisp123 has quit [Ping timeout: 256 seconds]
<zacque> Oic, I thought it's a "public" function with a single dash in its name
<_death> it is.. you can use it within its limitations
aeth_ has joined #commonlisp
aeth has quit [Killed (NickServ (GHOST command used by aeth_))]
aeth_ is now known as aeth
Lord_of_Life_ has joined #commonlisp
<zacque> Hmmm, ok...
Lord_of_Life has quit [Ping timeout: 252 seconds]
Everything has joined #commonlisp
Lord_of_Life_ is now known as Lord_of_Life
kpoeck has quit [Quit: Client closed]
mon_aaraj has quit [Ping timeout: 240 seconds]
<_death> you give an elisp datum and it "magically" translates it to a CL form.. if you want to give an arbitrary (but readable) CL form, you can give it `(cl:eval (cl:read-from-string ,cl-form-as-string)) .. it has another limitation in the other direction, in the way of result.. so you can also add a cl:prin1-to-string.. but then you need some way to interpret it
<_death> (also handle multiple values)
aartaka has quit [Ping timeout: 240 seconds]
<etimmons> luis: I just discovered that some links on https://cffi.common-lisp.dev/ got broken by the move to common-lisp.dev. All the origin-relative URLs should be directory-relative instead.
<zacque> _death: You meant like this: (slime-send '(cl:eval (cl:read-from-string "(+ 1 2)")))?
<zacque> But it crashes my swank server right away
<Devon> zacque: Try slime-eval instead of slime-send
<Devon> E.g., (slime-eval `(cl:eval (cl:read-from-string ,(format "%S" sexp))))
<zacque> Ah, that works
<zacque> Thanks, was in the middle of trying slime-send just now
mon_aaraj has joined #commonlisp
<Devon> Ha, if you want to use the unspeakable on-the-wire protocol.
wacki has quit [Quit: Leaving.]
<zacque> Who knows, it might work... Haha
<Devon> Wrap in it `(cl:let ((cl:*package* (cl:find-package ,(or package (slime-current-package))))) #)
<zacque> Oic..
<Devon> Call it something like slime-eval*
<zacque> Looks like that suppose to be what I expect slime-eval to work
<zacque> Much like swank:eval-in-emacs which is very intuitive
mon_aaraj has quit [Ping timeout: 240 seconds]
<zacque> Thanks, this is it in full: https://paste.debian.net/1234775/
<zacque> So, invoking (slime-eval* '(+ 1 2)) works right out of the box
<zacque> I'll keep in mind the limitations that _death pointed out just now
hashfunc569 has joined #commonlisp
lisp123 has joined #commonlisp
<hashfunc569> is there a way to ask the SBCL compiler to warn you if you never use a :READER or :WRITER function of a class?
<Devon> zacque: You might give a doc string, e.g., "Like `slime-eval' but user friendly."
<hashfunc569> *:READER or :WRITER function designator of a slot
<Bike> hashfunc569: doubtful. they're globally defined, so they could be used somewhere outside of any code you compile.
mon_aaraj has joined #commonlisp
<zacque> Devon: Right, thanks for reminding
<hashfunc569> Bike: that is very unfortunate
<hashfunc569> now i'm really debating going back to just using DEFSTRUCT
<Devon> hashfunc569: No doubt some general purpose tool like that is buried in some obscure paper or thesis.
<_death> how come? if you want something to warn you, you can write define-hashfunc-class that does that
<Bike> um, you'd have the same problem with defstruct accessors
<hashfunc569> _death: that is a possible solution
<hashfunc569> Bike: reason being is that now the code can't be self-documenting
<Bike> huh?
<Bike> what does documentation have to do with the warning?
<_death> hmm, I misunderstood what you asked for.. do you mean if you have a :reader foo in a defclass, the compiler should at some point warn you about it not being used up to that point?
<hashfunc569> _death: yes, exactly
lisp123 has quit [Remote host closed the connection]
<_death> at what point would that be? any why?
<_death> (and how does defstruct give better result there?)
<hashfunc569> because if it's defined, but not used it code-bloat
<hashfunc569> with defstruct there
<_death> in Lisp you do incremental development.. if you haven't used something up to now, it doesn't mean you won't use it in the future
<Bike> there's no way to institute a warning like this for defstruct either. for example, you could define a structure without :read-only t, but never use a writer, and there'd be no warning for that
<Bike> define a structure slot*
<hashfunc569> Bike: that's a good point
<_death> maybe your question makes some sense when you package something up for delivery and want to drop some code that you know won't ever be used (some form of "tree shaking") but otherwise it doesn't make sense to me
<Bike> yeah, more or less. it's more like a linting concern than anything that a compiler is doing
<hashfunc569> ok fair enough. but i'm the type of person that when i see a :WRITER function defined for a class, i will cache that it my mind, thinking, "ok, this slot will at some point be written to" but since that may not be the cause, i can no longer hold that thought as an invariant
kpoeck has joined #commonlisp
<Bike> yeah, i don't think it's unreasonable to want it.
<_death> instead maybe think in terms of interfaces and protocols, not slots.. slots are often just an implementation detail, and :writer is just sugar to define a method to set the slot's value..
<hashfunc569> i see what you're saying
<hashfunc569> unfortunately :READER nor :WRITER can't be set to nil either
<_death> what do you mean? you can just not have them
<hashfunc569> right, but being as explicit about the data structures as possible is what i'm aiming for
<_death> not sure what this has to do with data structures
<hashfunc569> a slot is part of the structure of the data
<_death> right.. and readers/writers are one way to access it, so?
<Bike> not having a :writer seems pretty explicit to me
<_death> maybe you want to be explicit about an _abstract data type_.. then you can define a class that has no slots at all, (defclass queue () ()) .. and a bunch of defgenerics like (defgeneric queue-insert (queue item)) (defgeneric queue-empty-p (queue)) etc.
<_death> then, you can have a (defclass my-super-weird-queue (queue) ()) (defmethod queue-insert ...) etc.
<_death> (well, with slots)
<_death> a user then usually doesn't have to know anything about the implementation of my-super-weird-queue, just care about the protocol (that it's a subclass of queue, and implements the right semantics for the defgenerics)
nature has quit [Ping timeout: 256 seconds]
lisp123 has joined #commonlisp
cage has quit [Quit: rcirc on GNU Emacs 27.1]
lisp123 has quit [Ping timeout: 240 seconds]
Dynom has quit [Quit: WeeChat 3.4]
zacque has quit [Quit: Goodbye :D]
wyrd has quit [Ping timeout: 240 seconds]
wyrd has joined #commonlisp
shka has quit [Ping timeout: 252 seconds]
molson has quit [Remote host closed the connection]
molson has joined #commonlisp
pillton has joined #commonlisp
molson has quit [Remote host closed the connection]
molson has joined #commonlisp
<jasom> when you have a moderate amount of data, never underestimate the power of a 4GB hash-table saved in a core image
anticomputer has quit [Remote host closed the connection]
anticomputer has joined #commonlisp
<_death> what's the amount of information though?
<jasom> _death: in this case a mapping from ISBN-10 and ISBN-13 to all of the books in OpenLibrary
karlosz has joined #commonlisp
<jasom> I want to scan all of my books in by barcode; there's plenty of tools that will import a list of ISBNs and do the lookups for you. However many books have multiple barcodes, some of which collide with the ISBN number space but aren't ISBNs, so I need to know quickly if I scanned the right one or not. zbarscan -> my lisp database hash table -> text-to-speach and I can verify that the title is
<jasom> correct.
hashfunc569 has quit [Ping timeout: 240 seconds]
karlosz has quit [Quit: karlosz]
<_death> ok.. I guess you used an openlibrary dump then? is it not sorted?
robin has quit [Ping timeout: 240 seconds]
cosimone has quit [Read error: Connection reset by peer]
cosimone has joined #commonlisp
molson has quit [Remote host closed the connection]
molson has joined #commonlisp
robin has joined #commonlisp
ec has quit [Quit: ec]
kpoeck has quit [Quit: Client closed]
lisp123 has joined #commonlisp
<jasom> _death: correct. It's sorted, but not by the keys I'm looking up
<jasom> If it were bigger, I might just build a sorted index to the dump and binary search, but it fits in RAM, so *shrug*
random-nick has quit [Ping timeout: 260 seconds]
lisp123 has quit [Ping timeout: 256 seconds]
<_death> ;)
szkl has joined #commonlisp
Bike has quit [Quit: Lost terminal]
mon_aaraj has quit [Ping timeout: 240 seconds]
mon_aaraj has joined #commonlisp