jackdaniel changed the topic of #lisp to: Common Lisp, the #1=(programmable . #1#) programming language<http://cliki.net/> logs:<https://irclog.whitequark.org/lisp,http://ccl.clozure.com/irc-logs/lisp/> | SBCL 1.4.5, CMUCL 21b, ECL 16.1.3, CCL 1.11.5, ABCL 1.5.0
kozy has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 240 seconds]
kozy has joined #lisp
Khisanth has quit [Ping timeout: 252 seconds]
fikka has joined #lisp
Khisanth has joined #lisp
fikka has quit [Ping timeout: 252 seconds]
<AeroNotix> ,clhs fileposition
<AeroNotix> clhs fileposition
<AeroNotix> jesus I'll do it myself http://clhs.lisp.se/Body/f_file_p.htm
<AeroNotix> and people think AI will take over the world
<AeroNotix> This should've been setf'able instead of taking an optional.
ebrasca has quit [Read error: Connection reset by peer]
dented42 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
marusich has quit [Quit: Leaving]
Hu0p has quit [Ping timeout: 252 seconds]
fikka has joined #lisp
fikka has quit [Ping timeout: 244 seconds]
nEatoBoRRITO is now known as potatonomicon
anewuser has joined #lisp
<pjb> AeroNotix: file-position it is.
<pjb> AeroNotix: it's legacy.
<pjb> You can alway (defun fpos (f) (file-position f)) (defun (setf fpos) (n f) (file-position f n) n) and use fpos instead.
<|3b|> setf function returning NIL on failure instead of erroring would be a bit odd though
<|3b|> or returning N
<pjb> setf functions are specified to return the value set.
<pjb> So you've got no choice here.
<|3b|> right, which is why NIL would be odd
* |3b| initially missed that your version returns N either way
<|3b|> but silently discarding errors doesn't seem good either, so i'd say it just shouldn't return if it can't validly return the value returned from FILE-POSITION
<pjb> Exactly, which is probably why file-position is not setf-able.
<pjb> I've got a serie of accessor to read and write files, but of course, you have to take them with a grain of salt.
<pjb> (defun (setf fpos) (n f) (or (file-position f n) (error "Cannot set file position")) n)
* |3b| can't tell from spec if it is allowed to set it to a position other than the one you requested (and then return that different position, though doesn't seem like it)
<pjb> or cerror.
<pjb> |3b|: it's not forbidden, but it may just not work.
<|3b|> no, i mean if you tell it to set to 5, can it set to 4
<pjb> The only file position that have a good chance of success are those returned by file-position.
<|3b|> right
<pjb> or do wrong things, eg on a text file with a multi-byte encoding.
<pjb> (and there's not only utf-8, there are a lot of such encodings).
<|3b|> though presumably modification to the file could even invalidate those
fikka has joined #lisp
<pjb> So, you have (unsigned-byte 8) files, which will probably do what you expect on posix systems, and there are other files for which you need to be more careful.
<|3b|> so in other words, files are too hard, just store everything in the cloud :)
<pjb> :-)
fikka has quit [Ping timeout: 245 seconds]
SenasOzys has quit [Remote host closed the connection]
graphene has quit [Remote host closed the connection]
graphene has joined #lisp
fikka has joined #lisp
<AeroNotix> pjb: thanks for informing me that functions and setf functions are a possibility in Common Lisp
dented42 has joined #lisp
fikka has quit [Ping timeout: 246 seconds]
graphene has quit [Remote host closed the connection]
graphene has joined #lisp
lisper29 has joined #lisp
fikka has joined #lisp
lisper29 has left #lisp [#lisp]
fikka has quit [Ping timeout: 244 seconds]
rumbler31 has joined #lisp
_whitelogger has joined #lisp
ckonstanski has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 246 seconds]
_whitelogger has joined #lisp
fikka has joined #lisp
housel has quit [Ping timeout: 272 seconds]
k-stz has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 245 seconds]
dented42 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
fikka has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
robotoad has quit [Quit: robotoad]
fikka has joined #lisp
equwal has joined #lisp
robotoad has joined #lisp
azimut has joined #lisp
fikka has quit [Ping timeout: 245 seconds]
<no-defun-allowed> if spi speed isn't a problem, i might have a go at writing an "extended" lisp for arduino
<no-defun-allowed> i have two 128kb sram chips, so one will be from-space and the other is to-space
<drmeister> Is it incorrect to automatically use COMMON-LISP in any package that is created?
<drmeister> in every package that is created.
<no-defun-allowed> sbcl doesn't automatically use CL when defining a new package
<|3b|> if there is no :use clause in defpackage, behavior is unspecified so it is OK, :use () shouldn't use any other package though
<drmeister> Otherwise &optional, &key, &aux etc can't be used without package prefixes.
<|3b|> not every package is intended to be used from in-package
<drmeister> Hmmm, :use () shouldn't use any other package - that's clear - ok.
<no-defun-allowed> that's cute, this 1969 paper uses m-expressions
fikka has joined #lisp
<|3b|> "implementation-defined" rather than "unspecified" to be more precise
<|3b|> and same applies to MAKE-PACKAGE, not just DEFPACKAGE
<no-defun-allowed> *when the reader reads a symbol it flips a coin and uses that to decide if it should intern a new symbol or use the CL symbol
<equwal> That sounds like fake news.
antonv has joined #lisp
<antonv> why is (read-sequence #(1 2) ...) invalid?
fikka has quit [Ping timeout: 252 seconds]
<no-defun-allowed> equwal: it's a kind of motivation to not rely on UB
<antonv>
<antonv> ; See also:
<antonv> ; Destructive function READ-SEQUENCE called on constant data: #(1 2)
<antonv> ; caught WARNING:
<kristof> Constants may not be motivated.
<antonv> ; The ANSI Standard, Special Operator QUOTE
<antonv> ; The ANSI Standard, Section 3.2.2.3
<antonv>
<no-defun-allowed> "what do you mean the variable FOOBAR::&OPTIONAL is never used"
<kristof> use (vector
<no-defun-allowed> i think read-sequence changes the insert pointer or something
<kristof> Right, but the *compiler* might not even store a fill pointer (and I would hope not)
<antonv> kristof: I can't understand where standard says #(1 2) is a constant value
<no-defun-allowed> yes, that's called a fill pointer.
<equwal> Works fine for me.
<equwal> (read-sequence *x* *standard-input*)
<equwal> #(#\3 #\4)
<equwal> >*x*
<equwal> >34
<|3b|> antonv: you aren't allowed to modify any object created by the reader while reading the program source
<no-defun-allowed> ^^
<|3b|> including the #() reader syntax
<no-defun-allowed> you must create the object through vector in this case
<antonv> |3b|: where in the docs I can find this constraint?
* |3b| is trying to remember
<|3b|> yeah
<no-defun-allowed> i heard parts of cltl2 weren't implemented, which parts were those?
fikka has joined #lisp
<antonv> |3b|: the link you sent is about Literal Objects
<antonv> not about objects created by reader
<equwal> antov: Try finding out what a literal object is.
<equwal> antonov
<equwal> antonv
<|3b|> right, at the point where you are evaluating (read-sequence #() ...) you are evaluating a list containing the symbol CL:READ-SEQUENCE, the self-evaluating object #(), and whatever objects are in the ...)
<antonv> equwal: I did
<|3b|> as opposed to when you evaluate (read-sequence some-vector ...) or (read-sequence (vector ...) ...), in which case the 2nd element of the list is a symbol (which evaluates as a variable), or a list starting with the symbol CL:VECTOR (which evaluates as a function call), in neither case a self-evaluating object
Balooga_ has joined #lisp
<antonv> |3b|: self-evaluating, I see
<antonv> so it is a literal...
<antonv> everything produced by reader is a literal than
<|3b|> right
<antonv> ok, it will be (vector ..)
fikka has quit [Ping timeout: 246 seconds]
<antonv> kristof: the reference to The ANSI Standard, Section 3.2.2.3 doen't really help, IMHO
<|3b|> consider what would happen if you were using a lisp editor to edit your code, and it stored your source (read-sequence #(1 2 3) ...) as lisp forms instead of a string, then evaluated the form and it changed the #(1 2 3) that was being used to store your code
<|3b|> and for a more current example, i think sbcl gets confused (or has recently) by macros that modify their input since it changes the forms it stores for debug info (or something like that, been a while)
<antonv> kristof: adding "3.7.1 Modification of Literal Objects" to the warning message might be helpful
fikka has joined #lisp
dented42 has joined #lisp
<antonv> thanks all
kristof has quit [Ping timeout: 245 seconds]
fikka has quit [Ping timeout: 245 seconds]
dented42 has quit [Ping timeout: 252 seconds]
<beach> Good morning everyone!
dented42 has joined #lisp
fikka has joined #lisp
<no-defun-allowed> afternoon, beach
<no-defun-allowed> well actually it's still lunchtime
<no-defun-allowed> isn't it a bit early then?
fikka has quit [Ping timeout: 245 seconds]
<beach> "The idea behind establishing this convention was to eliminate noise generated almost every time someone comes in and greets using some form of day-time based greeting, and then channel members on the other side of the globe start pointing out that it's different time of the day for them."
<no-defun-allowed> b...but it's like five in the morning in france
dented42 has quit [Read error: Connection reset by peer]
<no-defun-allowed> on a sunday too
dented42 has joined #lisp
jack_rabbit has quit [Ping timeout: 252 seconds]
fikka has joined #lisp
<beach> no-defun-allowed: [getting back to topic] There is lots of work to be done in all the Common Lisp projects I have listed. Yesterday I made excellent progress on SICL bootstrapping, and I want to continue that work while it is still fresh in my mind.
<no-defun-allowed> oh, well done
dented42_ has joined #lisp
<beach> This bootstrapping thing has got to be one of the most complicated tasks I have ever tried.
<no-defun-allowed> what makes it difficult?
<beach> The Cleavir compiler framework is straightforward in comparison.
<beach> no-defun-allowed: A mixture of the fact that nobody has tried this before (as far as I can tell) and (more importantly) that I have 4 different SICL first-class global environments in which the meaning of classes and generic functions may be different.
dented42 has quit [Ping timeout: 252 seconds]
<no-defun-allowed> i see
fikka has quit [Ping timeout: 245 seconds]
<beach> In my head, I know how it works (though I sometimes need a little diagram), but I still have no real clue how to document it so that other people can understand.
sabrac has joined #lisp
<no-defun-allowed> i wonder if there's a really obscure loop expression i can use to do box blur
jack_rabbit has joined #lisp
fikka has joined #lisp
<equwal> Jesus christ
<no-defun-allowed> (loop for this-x from (- pixel-x width) to (+ pixel-x width) summing (aref image this-x) into total finally (return (/ total (* 2 width)))
<no-defun-allowed> is a grayscale, 1 dimensional possibility
<equwal> Well that simplifies things.
<equwal> I was slammed with "you can but you shouldn't" when I read that sentence.
<equwal> Have you seen the object oriented stuff in els2018 with graphics?
<beach> equwal: What are you referring to and who are you asking?
jlarocco has quit [Ping timeout: 244 seconds]
<no-defun-allowed> beach: i think equwal was reacting to my "box blur in LOOP" implementation
<no-defun-allowed> although it's more accurately line blur in one dimension
fikka has quit [Ping timeout: 240 seconds]
<equwal> I was asking if no-defun-allowed has read an obscure paper about graphics only tangentially related to the original topic.
<beach> Got it.
<no-defun-allowed> hmm, no, els topics are way too advanced for me
fikka has joined #lisp
FreeBirdLjj has quit [Ping timeout: 244 seconds]
fikka has quit [Ping timeout: 272 seconds]
<equwal> Object Oriented Shader Composition using CLOS by Nicholas Hafner. I think it is pretty accessible if you are interested.
regreg has joined #lisp
lavaflow_ has joined #lisp
dented42_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
dented42 has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 272 seconds]
housel has joined #lisp
caltelt_ has joined #lisp
dented42 has quit [Read error: Connection reset by peer]
dented42 has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 272 seconds]
Roy_Fokker has quit [Quit: Leaving]
slyrus1 has quit [Quit: slyrus1]
slyrus1 has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 252 seconds]
dale has joined #lisp
nanoz has joined #lisp
lavaflow_ has quit [Ping timeout: 272 seconds]
steiner has quit [Remote host closed the connection]
lavaflow_ has joined #lisp
pierpal has quit [Quit: Poof]
pierpal has joined #lisp
_whitelogger has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 252 seconds]
atgreen has quit [Ping timeout: 240 seconds]
nanozz has joined #lisp
nanoz has quit [Ping timeout: 252 seconds]
dented42_ has joined #lisp
dented42 has quit [Ping timeout: 245 seconds]
Pixel_Outlaw is now known as Portly_Outlaw
dented42_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
asarch has quit [Quit: Leaving]
pjb has quit [Ping timeout: 252 seconds]
ober` has joined #lisp
ober` is now known as Ober`
Ober` is now known as ober
_whitelogger has joined #lisp
X-Scale has quit [Ping timeout: 252 seconds]
pyx has joined #lisp
pyx has quit [Client Quit]
jlarocco has joined #lisp
<|3b|> no-defun-allowed: for separable filters like box, 1d is all you need, and for box you can just keep a running total adding in pixel at leading edge and subtracting out pixel at trailing edge
jack_rabbit has quit [Ping timeout: 252 seconds]
Portly_Outlaw has quit [Quit: Leaving]
nanozz has quit [Ping timeout: 240 seconds]
<drmeister> Stupid question - is there any reason why quicklisp/setup.lisp can't be compile-file'd ?
Balooga_ has left #lisp [#lisp]
makomo has joined #lisp
dented42 has joined #lisp
<LdBeth> good evenign
<|3b|> drmeister: probably harder for it to figure out its containing directory if compiled (.fasl wouldn't get recompiled to change *compile-file-truename* if directory was moved for example)
<drmeister> Hmm, that might be a bit of trouble for us for a while. Clasp's compiler is slow and will probably remain that way for a while (llvm dominates compilation time 60-90%).
<drmeister> Thank you.
<|3b|> no interpreter?
<drmeister> Yes - we have an interpreter - I could try that.
jack_rabbit has joined #lisp
antonv has quit [Ping timeout: 246 seconds]
arduo has joined #lisp
kooga has quit [Quit: :]
Oladon has quit [Quit: Leaving.]
dented42 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<beach> This is a figure I am planning to use in the SICL specification document to illustrate the bootstrapping phases: http://metamodular.com/bootstrapping.pdf
<nydel> beach: do you keep anything like a weblog or etc that i might add to my list of things i read?
<beach> I am afraid I don't.
<nydel> thank you anyway
<beach> I document as much as I can in the specification document, of course.
<beach> But the bootstrapping chapter is being worked on now, so it is not consistent.
pierpal has quit [Quit: Poof]
pierpal has joined #lisp
nirved has joined #lisp
moei has quit [Ping timeout: 260 seconds]
jack_rabbit has quit [Ping timeout: 252 seconds]
CraigL64 has left #lisp [#lisp]
<makomo> morning!
<beach> Hello makomo.
ski has joined #lisp
<makomo> hello :-)
anewuser has quit [Quit: anewuser]
<beach> Slightly updated figure: http://metamodular.com/bootstrapping.pdf showing that ersatz generic functions are capable of operating on ersatz instances.
shrdlu68 has joined #lisp
<shrdlu68> Good morning
<beach> Hello shrdlu68.
<phoe> Morning
jack_rabbit has joined #lisp
dale has quit [Quit: dale]
<beach> Hi phoe.
a7f4 has joined #lisp
laqq3 has joined #lisp
caltelt_ has quit [Ping timeout: 244 seconds]
<phoe> Hey beach.
dented42 has joined #lisp
<phoe> drmeister: a workaround would be to change setup.lisp and split it into two files - one doing the basic setup (compilable), the other being tiny, non-compilable, and only used to fetch *compile-file-truename* on each load
<phoe> I think that literally a file containing only (defparameter quicklisp::*ql-path* *compile-file-truename*) would be enough to solve this issue.
<phoe> But then again, there might be other ones, too - Xach would need to be asked for more insight.
X-Scale has joined #lisp
nanoz has joined #lisp
doubledup has joined #lisp
FreeBirdLjj has joined #lisp
robotoad has quit [Quit: robotoad]
<d4ryus> is there a system in quicklisp to benchmark/compare runtime speed of cl implementations?
<ober> cl-bench, not in ql
<d4ryus> ober: perfect, thank you
dented42 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<beach> Isn't trivial-benchmark in Quicklisp?
orivej has quit [Ping timeout: 252 seconds]
laqq3 has quit [Ping timeout: 244 seconds]
<d4ryus> beach: yes
<no-defun-allowed> |3b|: I've read how to implement box blur as a two-pass O(n) procedure, don't you worry.
<beach> d4ryus: Oh, but maybe I'm mistaken about what it does. Now that I think about it, I think Shinmera created a system for exactly the purpose you want.
<Shinmera> beach: trivial-benchmark is for benchmarking user code, it won't automatically compare the performance of implementations across a standardised set of forms for you.
<Shinmera> my other project, cl-all can help you compare implementation behaviour though, by invoking them for you
<no-defun-allowed> I should add start and end keywords for ffmpeg to allow it to create high quality Lisp ytp.
<Shinmera> so maybe a combination of trivial-benchmark and cl-all would be a solution
<no-defun-allowed> To go full circle, I'll make ytps of baggers first.
<beach> Shinmera: Got it.
<d4ryus> Shinmera: cl-bench:bench-run works fine for what iam trying to measure :) but thanks
FreeBirdLjj has quit [Remote host closed the connection]
jack_rabbit has quit [Ping timeout: 252 seconds]
Lycurgus has joined #lisp
pierpal has quit [Remote host closed the connection]
vlatkoB has joined #lisp
jack_rabbit has joined #lisp
ober has quit [Ping timeout: 244 seconds]
nika has joined #lisp
rippa has joined #lisp
froggey has quit [Ping timeout: 252 seconds]
froggey has joined #lisp
FreeBirdLjj has joined #lisp
jlarocco has quit [Ping timeout: 252 seconds]
nanoz has quit [Ping timeout: 252 seconds]
ebrasca has joined #lisp
astalla has joined #lisp
kooga has joined #lisp
kenanb has joined #lisp
pjb has joined #lisp
gpiero has quit [Ping timeout: 252 seconds]
kenanb has left #lisp ["ERC (IRC client for Emacs 26.1)"]
razzy has quit [Ping timeout: 245 seconds]
astalla has quit [Ping timeout: 252 seconds]
orivej has joined #lisp
lavaflow_ has quit [Ping timeout: 272 seconds]
cage_ has joined #lisp
_whitelogger has joined #lisp
FreeBirdLjj has quit [Ping timeout: 272 seconds]
pfdietz has quit [Ping timeout: 245 seconds]
orivej has quit [Ping timeout: 252 seconds]
pfdietz has joined #lisp
<ebrasca> Does someone know what license have Second-Climacs ?
<no-defun-allowed> i would guess it's the same as Cluffer but you better check with beach
<phoe> that's right, there's no LICENSE file in the repo
<phoe> beach: ^
<no-defun-allowed> beach: btw the license in second-climacs is missing
Essadon has joined #lisp
orivej has joined #lisp
pfdietz has quit [Ping timeout: 252 seconds]
terpri has quit [Ping timeout: 252 seconds]
terpri has joined #lisp
orivej has quit [Ping timeout: 252 seconds]
_whitelogger has joined #lisp
DataLinkDroid has joined #lisp
razzy has joined #lisp
orivej has joined #lisp
atgreen has joined #lisp
SenasOzys has quit [Remote host closed the connection]
vlatkoB_ has joined #lisp
vlatkoB has quit [Ping timeout: 252 seconds]
astalla has joined #lisp
SaganMan has quit [Read error: Connection reset by peer]
dueyfinster has joined #lisp
lavaflow_ has joined #lisp
lavaflow_ has quit [Ping timeout: 244 seconds]
housel has quit [Read error: Connection reset by peer]
lavaflow_ has joined #lisp
<makomo> how exactly does one achieve indentation like this https://i.imgur.com/oWepfcn.png as opposed to this https://i.imgur.com/HwhEoqp.png
varjag has joined #lisp
<makomo> i hope it's clearly visible what i mean but to describe it a little: i want a "body form" within my macro's custom syntax to be indented just like macros' body forms are usually indented
<makomo> note how in the first picture the body is indented nicely under :lambda, while in the second the body is aligned with the previous form
<makomo> scymtym: the first picture is an example using ESRAP so maybe you'll know
<makomo> the nice indentation started working only once i loaded ESRAP (i think, checking now), so i suppose there's a way to do it
pierpal has joined #lisp
<makomo> :lambda indents nicely without loading ESRAP, but :destructure requires ESRAP to be loaded to indent nicely
nika has quit [Quit: Leaving...]
<makomo> maybe it has something to do with SB-EXT:WITH-CURRENT-SOURCE-FORM?
jmercouris has joined #lisp
parseval has left #lisp [#lisp]
ym_ has joined #lisp
dueyfinster has quit [Quit: My iMac has gone to sleep. ZZZzzz…]
<beach> ebrasca: BSD, but it is not usable at the moment.
<beach> no-defun-allowed: I'll add it at some point, but there is no great point in doing that until I have something that can be experimented with.
<makomo> _death: oh boy, if only i looked carefully at the file list -- i was looking at macros.lisp and now interface.lisp...
<makomo> _death: thanks
_whitelogger has joined #lisp
<scymtym> makomo: what _death said. SB-EXT:WITH-CURRENT-SOURCE-FORM is for associating macro expansion errors with sub-forms. for example to allow SLIME to highlight a sub-form instead of the whole macro form
shrdlu68 has quit [Read error: Connection reset by peer]
k-stz has joined #lisp
<makomo> scymtym: ah, that confirms the vague idea i formed by reading the docstring a couple of times. gooling for it doesn't really give much except for messages in #sbcl and sbcl mailing lists posts, both of which are yours :-)
astalla has quit [Ping timeout: 245 seconds]
jack_rabbit has quit [Ping timeout: 252 seconds]
<k-stz> cffi:load-foreign-library searches for library.so but cant find those with number extensions library.so.<number>, is there some setting that does that? My linux distribution saves only the newest library with number extensions and cant (no symlink "libfreetype.so -> libfreetype.so.6")
dddddd has joined #lisp
<Shinmera> fix the bindings to specify a version
<jmercouris> k-stz: why can't you use a symlink?
<jmercouris> it is pretty standard practice to have a symlink pointing to the latest version of a shared library
jack_rabbit has joined #lisp
<Shinmera> probably Nix
reverse_light has quit [Remote host closed the connection]
<scymtym> makomo: all SBCL users benefit though, as this is used in SBCL itself as well. compare left (with WITH-CURRENT-SOURCE-FORM) to right (without) in https://techfak.de/~jmoringe/macroexpansion-condition-locations.png
groovy2shoes has quit [Ping timeout: 246 seconds]
igemnace has joined #lisp
atgreen has quit [Read error: Connection reset by peer]
atgreen_ has joined #lisp
dueyfinster has joined #lisp
<k-stz> I can symlink no problem, but I'd rather fix it at the source or it won't work on all distributions. And the bindings aren't mine, so you'd say its a bug and I should tell the maintainer?
<Shinmera> well, some may argue one way or the other.
wiselord has quit [Ping timeout: 260 seconds]
Jesin has quit [Quit: Leaving]
groovy2shoes has joined #lisp
orivej has quit [Ping timeout: 252 seconds]
SaganMan has joined #lisp
orivej has joined #lisp
rumbler31 has joined #lisp
moei has joined #lisp
rumbler31 has quit [Remote host closed the connection]
asarch has joined #lisp
dueyfinster has quit [Quit: My iMac has gone to sleep. ZZZzzz…]
dueyfinster has joined #lisp
rumbler31 has joined #lisp
rumbler31 has quit [Ping timeout: 240 seconds]
lavaflow_ has quit [Ping timeout: 252 seconds]
nika has joined #lisp
mkolenda has quit [Remote host closed the connection]
mkolenda has joined #lisp
X-Scale has quit [Quit: HydraIRC -> http://www.hydrairc.com <- Now with extra fish!]
dueyfinster has quit [Quit: My iMac has gone to sleep. ZZZzzz…]
rumbler31 has joined #lisp
orivej has quit [Ping timeout: 252 seconds]
rumbler31 has quit [Remote host closed the connection]
lavaflow_ has joined #lisp
dueyfinster has joined #lisp
housel has joined #lisp
shrdlu68 has joined #lisp
doubledup has quit [Quit: Leaving]
dueyfinster has quit [Quit: My iMac has gone to sleep. ZZZzzz…]
lnostdal has quit [Quit: https://www.Quanto.ga/]
lnostdal has joined #lisp
beach has quit [Remote host closed the connection]
nika has quit [Quit: Leaving...]
slyrus1 has quit [Ping timeout: 252 seconds]
rumbler31 has joined #lisp
lemonpepper24 has joined #lisp
rumbler31 has quit [Ping timeout: 240 seconds]
beach has joined #lisp
nanoz has joined #lisp
dueyfinster has joined #lisp
housel has quit [Read error: Connection reset by peer]
<j`ey> can you return from a let*?
<phoe> j`ey: return?
<phoe> the simplest way is to do (BLOCK NIL (LET* ...))
<phoe> that way you can (RETURN) from anywhere
<j`ey> actually I'll just split up my lets into two, that's a better idea
nbunjeva2 has joined #lisp
<beach> j`ey: That sounds strange. Would you care to share your code (on a pastebin site)?
<phoe> ^
<phoe> remember that you can do (let* ((foo (return)) (bar ...)) ...)
pfdietz has joined #lisp
<j`ey> that's basically the pattern I was going to do ^
<j`ey> but that seems odd?
nbunjeva1 has quit [Ping timeout: 272 seconds]
a7f4 has quit [Ping timeout: 245 seconds]
<beach> phoe: I don't understand what it is supposed to do.
steiner has joined #lisp
charh has quit [Ping timeout: 245 seconds]
Pixel_Outlaw has joined #lisp
lemonpepper24 has quit [Ping timeout: 252 seconds]
slyrus1 has joined #lisp
_whitelogger has joined #lisp
<j`ey> a REPL would be nice, since my current code takes 10mins to initialise :S
<phoe> go grab a REPL
<phoe> that's the basic feature that slime/slimv/vlime/sly/other toolkits like that give you
<pjb> (loop (print (eval (read)))) or implement it yourself!
<phoe> a REPL where you can also send code to be compiled to the Lisp image.
<pjb> (com.informatimago.common-lisp.interactive.interactive:repl)
<phoe> pjb: that won't give you compiling files or forms with two keychords
<j`ey> i could also use save-lisp-and-ide probably
rumbler31 has joined #lisp
<phoe> j`ey: theoretically, yep - but it's not a good idea in general
Lycurgus has quit [Ping timeout: 245 seconds]
rumbler31 has quit [Ping timeout: 252 seconds]
xuxuru has joined #lisp
ski has quit [Ping timeout: 246 seconds]
<drmeister> Are these lambda-lists congruent?
<drmeister> (clos::congruent-lambda-p '(page &key if-exists &allow-other-keys) '(page &key))
<drmeister> The first one is from the (defgeneric foo (page &key if-exists &allow-other-keys) ) definition
<drmeister> The second one is a method (defmethod foo :around ((page page) &key) ...)
jmercouris has quit [Ping timeout: 244 seconds]
<oni-on-ion> drmeister: hi. seen the thing in october; good luck on the stuff!
<drmeister> Thank you
<oni-on-ion> ^_^
<beach> drmeister: They don't appear to be congruent.
jlarocco has joined #lisp
<beach> drmeister: See point 4 in the Common Lisp HyperSpec.
<makomo> clhs 7.6.4
<beach> No bots apparently.
<makomo> bot dead? :C
<makomo> i see
<beach> Can't sign in because of the new rules of freenode that you have to be registered.
Trystam has joined #lisp
dmiles has quit [Read error: Connection reset by peer]
Tristam has quit [Ping timeout: 252 seconds]
Trystam is now known as Tristam
<makomo> Colleen: clhs 7.6.4
<makomo> Colleen works :-D
<Colleen> Unknown command. Possible matches: 8, mop, roll, set, say, get, login, block, award, time,
regreg has quit [Ping timeout: 252 seconds]
laqq3 has joined #lisp
dmiles has joined #lisp
regreg has joined #lisp
<sabrac> whatever happened to minion?
<beach> Can't sign in because of the new rules of freenode that you have to be registered.
robotoad has joined #lisp
<oni-on-ion> aw
<slyrus1> scymtym: around?
<phoe> someone needs to tell minion and specbot to register with nickserv
wigust has joined #lisp
jasmith has joined #lisp
jmercouris has joined #lisp
atgreen_ has quit [Ping timeout: 246 seconds]
lavaflow_ has quit [Ping timeout: 244 seconds]
<j`ey> what's the opposite of ash? Ive tried searching
<beach> Use a negative number.
<j`ey> ah
<drmeister> makomo: Thank you - I encountered those incongruent lambda lists in some code from someone that I trust and I know that it is accepted in sbcl. I couldn't believe that clasp/ecl determined correctly that the lambda lists were correct and that the author and sbcl were incorrect.
<beach> drmeister: Perfect!
<makomo> drmeister: i'm glad you've found what you need :-)
Lycurgus has joined #lisp
Lycurgus has quit [Client Quit]
nanoz has quit [Ping timeout: 240 seconds]
zhlyg has joined #lisp
suskeyhose has joined #lisp
kooga has quit [Quit: :]
<drmeister> s/I couldn't believe that clasp/ecl determined correctly that the lambda lists were correct and that the author and sbcl were incorrect./I couldn't believe that clasp/ecl determined correctly that the lambda lists were INCONGRUENT and that the author and sbcl were incorrect./
lavaflow_ has joined #lisp
<drmeister> With that I think I've had enough internet today.
orivej has quit [Ping timeout: 252 seconds]
SenasOzys has joined #lisp
dueyfinster has quit [Quit: My iMac has gone to sleep. ZZZzzz…]
housel has joined #lisp
cage_ has quit [Quit: Leaving]
pierpal has quit [Quit: Poof]
pierpal has joined #lisp
charh has joined #lisp
rumbler31 has joined #lisp
jack_rabbit has joined #lisp
rumbler31 has quit [Ping timeout: 250 seconds]
<j`ey> here's my table serialisation code: http://sprunge.us/uq7Fuy?scheme
<phoe> the (declare ...) form should be on new line
<phoe> generally there's always a newline in the DEFUN form after you finish typing the arguments
<j`ey> oh, that was just bad copy/paste
<j`ey> will fix
<zhlyg> I *think* you should add tuple :if-does-not-exist :create to your with-open-file form (I'm cargo culting from PCL).
dale has joined #lisp
<phoe> (merge-pathnames filename) isn't necessary
<phoe> you have nothing to merge it with
<phoe> filename alone should be enough.
<j`ey> ok, the file stuff I just copied from the hyperspe
<j`ey> c
<phoe> weird
<phoe> oh well, yet another issue in the hyperspec™
<jmercouris> link to the page? phoe how about that ultraspec :P?
<phoe> jmercouris: paused for the time being as I pursue different options in my life
jack_rabbit has quit [Ping timeout: 252 seconds]
<j`ey> see the first example
<phoe> in other words, I'm doing other stuff
<jmercouris> phoe: I remember, I was just joking
<j`ey> Ive been outside the LispWorks building, it's not far from me
<phoe> j`ey: yep, that example is weird
<jmercouris> Indeed, merge pathnames there is totally unnecessary
<jmercouris> at least for the purposes of a demonstration
<phoe> j`ey: anyway, that's how I'd indent that code
<j`ey> phoe: apart from create-if-exists, just looks like the indentation changed?
<jmercouris> j`ey: I believe you said you were using VIM earlier?
<phoe> yep
<phoe> ...though, well
<j`ey> jmercouris: ye
<phoe> when you're opening the file for input, you likely don't want to supersede it if it exists
<phoe> or create if it doesn't
<jmercouris> are there any VIM plugins for proper indentation? I belive steve losh is also a vim usr
<phoe> I think you'd need :if-does-not-exist :error instead of that
<zhlyg> jèy: write-sequence could maybe be used instead of the bit-dance and write-byte.
<j`ey> zhlyg: wouldnt I still need to get the different bytes out of the value into a sequence?
<phoe> anyway, I'm off to sleep
<phoe> good night #parens
<jmercouris> goodnight!
<zhlyg> j`ey: also :input is more correct than ':input in my best knowledge.
<pjb> equivalent. But indeed it's customary to write :input.
<jmercouris> well, ':input will just evaluate to :input, not sure why you would do one over the other
<pjb> ':input would insist on the symbol, not on it's meaning.
<phoe> they're equivalent but keywords are rarely ever quoted. they evaluate to themselves.
<j`ey> ok changed to :input
<jmercouris> is there ever a scenario in which the computation result would be different?
<phoe> yes, macro processing
<pjb> jmercouris: a bad compiler could generate better code for ':input than :input. But it would need to be very bad.
<phoe> where you don't evaluate your input
<jmercouris> okay, fair enough, I didn't think about macros
<phoe> jmercouris: in which case one input is :INPUT and the other is (QUOTE :INPUT)
<pjb> jmercouris: it can never be different (unless the implementation allow for non-conforming setting of the keyword value)
<phoe> one is a symbol the other is a list
<jmercouris> Yes.
<pjb> But of course, this is only when they'er evaluated. If not, then there's a big difference: (quote (:foo ':foo)) #| --> (:foo ':foo) |# doesn't contain two symbols!
<jmercouris> Indeed, indeed
<j`ey> is there a way to use aref with a 'flat' indexing on a multidimensional array?
<j`ey> so I can read/write multidimensional arrays transparently
<pjb> row-major-aref
<pjb> j`ey: I would use a displaced vector on the multidimensional array to avoid a copy.
<j`ey> a what what
<pjb> (write-sequence (make-array (reduce '* (array-dimensions a)) :displaced-to a) stream)
<zhlyg> j`ey: scratch my idea of using write-sequence, it won't work because you are building an little-endian integer.
<pjb> j`ey: a displaced array is an array whose elements are actually stored in another array.
<pjb> It can be used to change the dimensions, or view a part of the other array.
<phoe> it's a window through which you look at another array
<pjb> It's constrained to the row-major order of the slots however.
<j`ey> pjb: im not exactly sure where youre suggesting I use that
<pjb> j`ey: write-sequence.
ealfonso has quit [Disconnected by services]
ealfonso` has joined #lisp
ealfonso has joined #lisp
<pjb> and similarly, read-sequence, once you've read the dimensions and initialized the multidimensional array.
<j`ey> now im confused. why am I doing all this byte stuff if write-sequence and read-sequence can write out an array?
pierpa has joined #lisp
jack_rabbit has joined #lisp
<pjb> j`ey: ah, well, this is not an array of bytes, so you still need to convert the elements into sequences of bytes (if you want to write your file portably).
<pjb> j`ey: so yes, you will have to loop with row-major-aref.
vlatkoB_ has quit [Remote host closed the connection]
<j`ey> looks like row-major-aref is working, thanks
sbadger has quit [Remote host closed the connection]
shrdlu68 has quit [Ping timeout: 240 seconds]
ealfonso` has quit [Quit: ERC (IRC client for Emacs 25.3.1)]
<j`ey> loooks like I spoke too soon
ealfonso has quit [Disconnected by services]
ealfonso has joined #lisp
<pjb> (loop :for i :below (reduce (function *) (array-dimensions a)) :do (write-sequence (element-to-byte-sequence (row-major-aref a i)) stream))
<pjb> (loop :with buffer (make-array +size-of-serialized-element+ :element-type '(unsigned-byte 8)) :for i :below (reduce (function *) (array-dimensions a)) :while (= +size-of-serialized-element+ (read-sequence buffer stream)) :do (setf (row-major-aref a i) (element-from-byte-sequence buffer)))
<AeroNotix> Out of interest where is the most complete description of LOOP/
<AeroNotix> ?
<pjb> clhs loop
<pjb> and follow link
<aeth> I think loop is unnecesary there.
<pjb> AeroNotix: type: /msg specbot clhs loop
<pjb> aeth: if you want to avoid a big buffer.
<aeth> dotimes is normally enough for working with arrays
<pjb> Well of course. loop = loop, don't care which operator you use.
<j`ey> for some reason this reads in the multi dimension array incorrectly
dale has quit [Quit: dale]
<pjb> j`ey: well what did your programming teachers taught you?
<aeth> pjb: Yeah, I'm just saying when everyone's reaction is to go to the documentation maybe a simpler form is better
<pjb> j`ey: a function shall do a single thing!
astalla has joined #lisp
<pjb> j`ey: here, write-table does 2 things.
tankf33der has joined #lisp
<pjb> j`ey: it writes bytes to a file, and it serialize an element.
<j`ey> yes
<pjb> j`ey: this is one too many things.
<pjb> j`ey: but otherwise, it's ok.
<j`ey> well something is not ok :P
<pjb> j`ey: yes, you only write quartets, not octets.
<pjb> #xf instead of #xff (unless you have a special reason to).
<pjb> Perhaps writing #b00001111 or #b11111111 would make things clearer?
<j`ey> woops
dented42 has joined #lisp
<pjb> j`ey: also, what did you programming teachers say about literals?
<pjb> j`ey: didn't tell you that you should never use a literal value directly in the code? Instead, define a constant!
asarch has quit [Quit: Leaving]
<pjb> (eval-when (:compile-toplevel :load-toplevel :execute) (defconstant +byte-size+ 8)) and then :element-type `(unsigned-byte ,+byte-size+) and (logand (1- (expt 2 +byte-size)) ...)
<pjb> this way you can't make such errors.
<pjb> and (ash x (* -2 +byte-size+)) etc.
rumbler31 has joined #lisp
<pjb> j`ey: perhaps you should revise your programming lectures notes?
<j`ey> lol
<pjb> Alternatively, ask for a refund.
<aeth> pjb: To be fair, I recognize parts of this from IRC
<j`ey> aeth: yes, the combine was yours
<aeth> pjb: Our small code snippits weren't built that way.
<pjb> But seriously, given the cost of studies, and the final results, I can't wait to see a suit asking refund.
<j`ey> lol
<aeth> pjb: Personally, I wouldn't use a constant for something like that, I'd use a *macro*.
<aeth> Then you could handle multiple byte sizes by defining a new function from the macro
<aeth> The constant restricts you to one
<aeth> Macros are just better constants :-p
<pjb> Yes, depending on your needs.
<pjb> You can also start with (deftype octet () `(unsigned-byte 8)) and use that type in :element-type everywhere…
<aeth> I do
<pjb> Isn't it dangerous to be a zombie raptor? Don't you risk contamination?
<aeth> That file's a decent candidate to move into a general utility library.
<aeth> I'm considering using the name carthage.
<j`ey> cool, now my program takes only 2.5s to start
rumbler31 has quit [Ping timeout: 252 seconds]
<pjb> Which was also burnt down like libraries, but wasn't quite a library AFAIK.
<pjb> :-)
<aeth> Well, it was the *other* major North African port city
<aeth> (in ancient times, of course)
<pjb> Then, there remains all the little monasteries and abbey where copist had libraries of volumes.
<pjb> Scriptorium
<pjb> Biblioteca Marciana in Venice -> zombie-raptor/marciana
<pjb> There were also medieval universities.
<pjb> Constantinople. Oxford, Padua.
<j`ey> in the CLHS it shows you can (map 'string..), with characters, is there a simple way to do it but with a list of strings?
<aeth> Are the strings one character long?
<j`ey> no
zhlyg has quit [Remote host closed the connection]
<aeth> Do you want to concatenate the strings together?
<j`ey> (reduce (lambda (x y) (concatenate 'string x y)) works
<j`ey> just wondered if I was missing something with map
<aeth> I think you could probably do it with a mapfoo (probably not map) but it would be functionally equivalent to the reduce, but more verbose.
<aeth> (and it would return a list of one string in the end)
<aeth> I wouldn't recommend trying to abuse the mapfoo functions like that, though.
<j`ey> ok, will stick with reduce
<aeth> It doesn't look like my version of SBCL has a fast route for string concatenation when the types are known. i.e. this won't speed up your reduce (it will slow it down slightly, to check the types of x and y): (defun concatenate-string (x y) (declare (string x y)) (concatenate 'string x y))
<j`ey> it's not a hot function
<aeth> j`ey: The other way to do it is (apply #'concatenate 'string list)
<j`ey> oh, that's nicer
<aeth> j`ey: That will turn it into (concatenate 'string a b c d e ...) where "a b c d e ..." are elements of the list. It might be slower or faster. It's limited to call-arguments-limit
<aeth> And it will only work on lists, not sequences
<j`ey> my list should always be relatively small
xuxuru has quit [Quit: xuxuru]
<aeth> well, call-arguments-limit in 64-bit SBCL is 4611686018427387903
dented42 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<j`ey> hm, my lists should fit
lemonpepper24 has joined #lisp
pierpal has quit [Ping timeout: 272 seconds]
dented42 has joined #lisp
<Xof> (with-output-to-string (*standard-output*) (map nil 'princ list-of-strings))
DGASAU has quit [Ping timeout: 244 seconds]
dmiles has quit [Read error: Connection reset by peer]
Mutex7 has joined #lisp
Jesin has joined #lisp
<pjb> Xof: write-string may be nice too.
Balooga_ has joined #lisp
dmiles has joined #lisp
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
rumbler31 has joined #lisp
rumbler31 has quit [Ping timeout: 240 seconds]
Balooga_ has quit [Quit: Balooga_]
<pfdietz> It might be nice if SBCL images could make the standard part shareable between different images, like libraries. Or is that the case already?
k-stz has quit [Remote host closed the connection]
Jachy has joined #lisp
robotoad has quit [Ping timeout: 272 seconds]
nirved has quit [Ping timeout: 240 seconds]
Balooga_ has joined #lisp
<slyrus1> pfdietz: I agree. It might already be a thing, but, without thinking about it too deeply, something like dougk's shrinkwrapped binaries linked against a common libsbcl would be awesome.
robotoad has joined #lisp
<slyrus1> Then again I'm busy downloading a 17MB string handling R package as some chained dependency so clearly nobody cares about package size anymore...
jack_rabbit has quit [Ping timeout: 252 seconds]
fikka has joined #lisp
<pfdietz> ../../include/clasp/asttooling/astVisitor.h:30:10: fatal error: 'clang/AST/RecursiveASTVisitor.h' file not found
<oni-on-ion> Colleen: oh!
<Colleen> Unknown command. Possible matches: 8, roll, clhs, set, say, mop, get, login, block, time,
<oni-on-ion> awesome, just what i was looking for. about to quicklisp her =P
<pfdietz> wrong channel :)
<oni-on-ion> who me? Colleen was mentioned here just earlier, thats where i first heard the name. i searched CL irc bot and got the same name, these reasons are why i say hi to her.
astalla has quit [Ping timeout: 246 seconds]
<pfdietz> No, me
jack_rabbit has joined #lisp
_whitelogger has joined #lisp
<oni-on-ion> julia, colleen, ruby .. lady names are easy to remember, and at least partially altruistic =)
Mutex7 has quit [Remote host closed the connection]
<vsync> bit of a model minority stereotype to assume ladies are altruistic, oni-on-ion
<vsync> women do tend to score higher in extraversion, agreeableness, and conscientiousness, sure, but I prefer to keep the focus mainly on the individual
<vsync> but now we're veering away from programming
<LdBeth> I remember a developer changed his legal name to Cons
<vsync> only acceptable if name children car and cdr
<vsync> car and cadr rather
<LdBeth> So how to pronounce CADDADADR
<pfdietz> Lifehack: give your children common names so they aren't social outcasts.
<pfdietz> Dad: are you still upset about your name, Lifehack?
dale has joined #lisp
lemonpepper24 has quit [Read error: Connection reset by peer]
bsund has joined #lisp
terpri has quit [Read error: Connection reset by peer]
<pjb> LdBeth: caduhdadader
<oni-on-ion> vsync: i mean for man to treat a lady. software and computers like we call the cars we work on "our baby"
<pjb> LdBeth: alternatively, you may pronounce it "you're lacking abstraction!".
<oni-on-ion> vsync: altruism in the form of etiquette and gentlemanlyness.. 9_6
<oni-on-ion> Shinmera: broken link on colleen README.md - points to http://plaster.tymoon.eu/view/5A
graphene has quit [Remote host closed the connection]
graphene has joined #lisp
varjag has quit [Read error: Connection reset by peer]
pierpal has joined #lisp
<Shinmera> oni-on-ion: colleen the project is abandoned, see Maiden instead
<Colleen> Shinmera: drmeister said 6 hours, 23 minutes ago: You used (:local-nicknames (#:cst #:concrete-syntax-tree))
<Colleen> Shinmera: drmeister said 5 hours, 7 minutes ago: In staple here https://github.com/Shinmera/staple/blob/master/inference.lisp#L43 you use the symbol definition:declaration - that is only defined for sbcl.lisp in the definitions system.
<Colleen> Shinmera: drmeister said 4 hours, 33 minutes ago: There are some incongruent lambda lists in staple. https://github.com/quicklisp/quicklisp-client/blob/master/local-projects/staple/page.lisp#L30 the methods look like they need to have &allow-other-keys added to them.
<Colleen> Shinmera: drmeister said 6 hours, 22 minutes ago: That last link won't work of course: https://github.com/Shinmera/staple/blob/master/parser/package.lisp#L11
<Shinmera> oh jesus
<drmeister> Ha - good morning.
pierpal has quit [Ping timeout: 240 seconds]
lavaflow_ has quit [Ping timeout: 245 seconds]
<Shinmera> Hmm. I wonder why I explicitly remember that just specifying &key was allowed
<pfdietz> You mean, what purpose does that serve?
<Shinmera> Might be a fluke based on GFs that dont specify any explicit keys
SenasOzys has quit [Ping timeout: 245 seconds]
<Shinmera> no
AroPar has joined #lisp
<pfdietz> Even ignoring GFs, it could make sense to do that with ordinary functions, since you can pass keyword parameters if you include a :allow-other-keys t pair of arguments.
<Shinmera> We're specifically talking about (defgeneric f (a &key b &allow-other-keys)) (defmethod f (a &key))
kjeldahl has quit [Ping timeout: 276 seconds]
<pfdietz> k
<no-defun-allowed> hello everyone
<no-defun-allowed> wait, you can put values in apply as well as lists?
orivej has joined #lisp
<no-defun-allowed> wonderful
<Shinmera> only the last argument is unrolled
lavaflow_ has joined #lisp
<Shinmera> drmeister: the sbcl-isms in staple should be fixed now. (except for the local nicknames)
<drmeister> What do you recommend wrt the local nicknames.
<Shinmera> implementing them in clasp of course
<Shinmera> they're very useful for large systems
<drmeister> What's involved in implementing local package nicknames?
<drmeister> It means when you are in a particular package - that certain additional nicknames are available.
<Shinmera> adding a local-nickname table to the package object and making intern look there when it searches for symbols
<Shinmera> based on *package*
Kaisyu has joined #lisp
<pfdietz> The various standard functions that take packages are arguments may have to be modified, as well as the reader and the printer.
<pfdietz> as arguments
kjeldahl has joined #lisp
<Shinmera> right. there's also a protocol to query the system, if you want to be fully compatible with onther implementations
<Shinmera> but basic support should not be hard (famous last words I know)
rumbler31 has joined #lisp
<pfdietz> I've been thinking there should also be "standard" local nicknames for a package, and a way to say "use that package's standard local nicknames inside this package". The standard local nicknames could collide, but if they do it's immediately detectable and you just manually specify a different one for one of the colliding packages.
jmercouris has quit [Ping timeout: 252 seconds]
rumbler31 has quit [Ping timeout: 252 seconds]
Essadon has quit [Quit: Qutting]
Lycurgus has joined #lisp
Lycurgus has quit [Client Quit]
Lycurgus has joined #lisp
atgreen_ has joined #lisp
fikka has quit [Ping timeout: 244 seconds]
lavaflow_ has quit [Ping timeout: 272 seconds]
<oni-on-ion> Shinmera: oh!! alright. it was the first search result and i've come across it before, and seen her here in chan.
Balooga_ has quit [Quit: Balooga_]
<Shinmera> yeah, colleen runs on https://shirakumo.github.io/maiden now
<oni-on-ion> oh! tricky =)
<oni-on-ion> this seems a lot simpler too. great work homie
<oni-on-ion> going to see what i can muster up with her. =)
<oni-on-ion> and oh i love eldoc so much mucho.
<Shinmera> maiden is a lot more complex though
<oni-on-ion> in framework? could be a good thing. i've got some wierd big ideas for something; ive had a couple game servers that had irc integration for eg.
terpri has joined #lisp
Balooga_ has joined #lisp
fikka has joined #lisp
lavaflow_ has joined #lisp