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
wigust has quit [Ping timeout: 240 seconds]
TCZ has joined #lisp
xh4 has joined #lisp
_paul0 has joined #lisp
smurfrobot has joined #lisp
paul0 has quit [Ping timeout: 245 seconds]
energizer has quit [Quit: Leaving]
smurfrobot has quit [Ping timeout: 240 seconds]
vaporatorius__ has quit [Remote host closed the connection]
smurfrobot has joined #lisp
Mutex7 has joined #lisp
TCZ has quit [Quit: Leaving]
Kevslinger has joined #lisp
smurfrobot has quit [Ping timeout: 248 seconds]
fisxoj has joined #lisp
milanj has joined #lisp
slyrus has quit [Ping timeout: 245 seconds]
vtomole has quit [Ping timeout: 260 seconds]
vsync has quit [Quit: ZNC - http://znc.sourceforge.net]
vsync has joined #lisp
smurfrobot has joined #lisp
beardio has joined #lisp
smurfrobot has quit [Ping timeout: 240 seconds]
slyrus has joined #lisp
serichse` has joined #lisp
serichsen has quit [Ping timeout: 245 seconds]
pierpal has joined #lisp
smurfrobot has joined #lisp
fikka has quit [Ping timeout: 256 seconds]
pierpal has quit [Read error: Connection reset by peer]
pierpal has joined #lisp
daniel-s has joined #lisp
smurfrobot has quit [Ping timeout: 245 seconds]
dtornabene has joined #lisp
Kundry_Wag has joined #lisp
EvW1 has quit [Ping timeout: 256 seconds]
longshi has joined #lisp
Kundry_Wag has quit [Ping timeout: 256 seconds]
sz0 has joined #lisp
smurfrobot has joined #lisp
smurfrob_ has joined #lisp
smurfrobot has quit [Remote host closed the connection]
TCZ has joined #lisp
smurfrob_ has quit [Remote host closed the connection]
krator44 has quit [Remote host closed the connection]
_krator44 has joined #lisp
markong has quit [Ping timeout: 245 seconds]
fikka has joined #lisp
pierpal has quit [Ping timeout: 252 seconds]
aijony has quit [Ping timeout: 264 seconds]
djinni` has quit [Quit: Leaving]
FreeBirdLjj has joined #lisp
djinni` has joined #lisp
fikka has quit [Ping timeout: 252 seconds]
longshi has left #lisp ["WeeChat 2.1"]
aijony has joined #lisp
dddddd has quit [Remote host closed the connection]
AdmiralBumbleBee has joined #lisp
smurfrobot has joined #lisp
smurfrobot has quit [Ping timeout: 245 seconds]
daniel-s has quit [Remote host closed the connection]
daniel-s has joined #lisp
fikka has joined #lisp
LiamH has quit [Quit: Leaving.]
octobanana has quit [Read error: Connection reset by peer]
eli_oat has joined #lisp
Mutex7 has quit [Quit: Leaving]
comborico1611 has quit [Quit: Konversation terminated!]
pierpal has joined #lisp
d4ryus1 has joined #lisp
pierpal has quit [Read error: Connection reset by peer]
d4ryus has quit [Ping timeout: 248 seconds]
trocado has joined #lisp
pierpal has joined #lisp
octobanana has joined #lisp
pierpal has quit [Ping timeout: 264 seconds]
pierpal has joined #lisp
Kundry_Wag has joined #lisp
xh4 has quit [Read error: Connection reset by peer]
pierpal has quit [Read error: Connection reset by peer]
fikka has quit [Ping timeout: 248 seconds]
beardio has left #lisp ["ERC (IRC client for Emacs 25.3.1)"]
Kundry_Wag has quit [Ping timeout: 264 seconds]
pierpa has quit [Quit: Page closed]
fikka has joined #lisp
damke has joined #lisp
FreeBirdLjj has quit [Ping timeout: 252 seconds]
TCZ has quit [Quit: Leaving]
xh4 has joined #lisp
trocado has quit [Ping timeout: 252 seconds]
vtomole has joined #lisp
DataLinkDroid has quit [Ping timeout: 240 seconds]
igemnace has joined #lisp
fisxoj has quit [Quit: fisxoj]
DataLinkDroid has joined #lisp
eli_oat has quit [Quit: Leaving.]
smurfrobot has joined #lisp
fikka has quit [Ping timeout: 248 seconds]
smurfrobot has quit [Ping timeout: 245 seconds]
octobanana has quit [Ping timeout: 264 seconds]
daniel-s has quit [Remote host closed the connection]
eli_oat has joined #lisp
fikka has joined #lisp
Aritheanie has quit [Remote host closed the connection]
Aritheanie has joined #lisp
Fare has joined #lisp
smurfrobot has joined #lisp
tomsen_ has joined #lisp
pierpal has joined #lisp
Oladon has quit [Quit: Leaving.]
smurfrobot has quit [Ping timeout: 240 seconds]
pierpal has quit [Read error: Connection reset by peer]
fisxoj has joined #lisp
fisxoj has quit [Client Quit]
pierpal has joined #lisp
rumbler31 has quit [Ping timeout: 248 seconds]
Kundry_Wag has joined #lisp
xh4 has quit [Read error: Connection reset by peer]
pierpal has quit [Client Quit]
pierpal has joined #lisp
rumbler31 has joined #lisp
smurfrobot has joined #lisp
Kundry_Wag has quit [Ping timeout: 245 seconds]
sz0 has quit [Quit: Connection closed for inactivity]
Oladon has joined #lisp
smurfrobot has quit [Ping timeout: 260 seconds]
FreeBirdLjj has joined #lisp
xh4 has joined #lisp
<potatonomicon> how could I go about writing a macro that takes its arguments like let does? that is, taking an s-expression and splitting it up so the elements can be used independently
eli_oat has quit [Quit: Leaving.]
vtomole has quit [Ping timeout: 260 seconds]
<stylewarning> potatonomicon: good question
<stylewarning> potatonomicon: the macro would just take in a list, and you'd compute how it gets split up
fikka has quit [Ping timeout: 252 seconds]
<potatonomicon> what would I use to do the splitting?
<stylewarning> potatonomicon: look at this example implementation of LET:
<stylewarning> CL-USER> (defmacro my-let (bindings &body body)
<stylewarning> MY-LET
<stylewarning> CL-USER> (my-let ((x 1) (y 2)) (+ x y))
<stylewarning> ,@(mapcar #'second bindings)))
<stylewarning> `(funcall (lambda ,(mapcar #'first bindings) ,@body)
<stylewarning> 3
<stylewarning> Here, I took BINDINGS as an argument to the macro, and I split it up using FIRST and SECOND.
<stylewarning> BINDINGS I expect to be a list of two-element lists from the user, like ((x 1) (y 2))
<potatonomicon> alright
<stylewarning> potatonomicon: does that make sense? The macro MY-LET takes an argument called BINDINGS which is the list ((x 1) (y 2))
<potatonomicon> why are first and second uninterned?
<potatonomicon> it makes sense for the most part
<stylewarning> potatonomicon: they're not, #'X means "the function X"
<potatonomicon> oh right
<stylewarning> #'first means "the function FIRST"
<stylewarning> try (macroexpand-1 '(my-let ((x 1) (y 2)) (+ x y)))
<potatonomicon> ... are first and second buit in cl functions?
<stylewarning> Yep!
<potatonomicon> ok that makes more sense then :p
<stylewarning> CL-USER> (first '(x 1))
<stylewarning> 1
<stylewarning> CL-USER> (second '(x 1))
<stylewarning> X
<potatonomicon> cool thanks
jason_m has quit [Ping timeout: 245 seconds]
<stylewarning> (here, I'm faking LET by making a LAMBDA function and calling it on the values of the MY-LET-bindings)
fyodost has quit [Quit: Leaving]
smurfrobot has joined #lisp
fikka has joined #lisp
<potatonomicon> I am trying to make something that works like let and when together, though there is probably something that does this already
<stylewarning> potatonomicon: what kind of thing are you interested in writing?
<stylewarning> what should this let/when look like
xh4 has quit [Remote host closed the connection]
smurfrobot has quit [Ping timeout: 264 seconds]
<potatonomicon> same as let for the most part but will test the bindings before executing the body
<stylewarning> potatonomicon: so like: (when-let ((x ...) (y ...)) ...)?
<potatonomicon> yeah
<stylewarning> and it tests if X is true, binds it, if Y is true, binds it, etc before executing the body?
<potatonomicon> yeah
<stylewarning> potatonomicon: then what might the expansion of that look like?
<stylewarning> How about: (let ((x ...)) (when x (let ((y ...)) (when y <body>))))
<potatonomicon> well really i was planning on binding everything and then testing
<stylewarning> ah, you could do that
<stylewarning> what would that look like? (let ((x ...) (y ...)) (when (and x y) <body>)) ?
<potatonomicon> yeah probably
<stylewarning> potatonomicon: sounds simple enough!
<stylewarning> (defmacro when-let (bindings &body body) ???)
<potatonomicon> though your first suggestion may be better, since that would do proper short circuiting, which may or may not be expected?
<stylewarning> I'd probably expect short-circuiting myself
<stylewarning> but the second version is easier to implement
<potatonomicon> I think I'll go for that to start with
<stylewarning> potatonomicon: well BINDINGS is the same as LET bindings
<stylewarning> so we might start with `(let ,bindings (when ??? ,@body))
<stylewarning> what would ??? be?
<potatonomicon> the identifier part of the bindings if I am not mistaken
<stylewarning> yep, if we have a list of pairs, how do we get the first element of each pair?
<potatonomicon> (mapcar #'first bindings) like you said wouldn't it
<stylewarning> yep
<stylewarning> so that's it, you're done
smurfrobot has joined #lisp
<potatonomicon> that wouldn't work with multiple bindings right
<stylewarning> (defmacro when-let (bindings &body body) `(let ,bindings (when (and ,@(mapcar #'first bindings)) ,@body)))
<potatonomicon> oh, wait, I see the @ infront of mapcar
<stylewarning> yes, we need to embed it in an (and ...)
<stylewarning> we have a list of variable names like (X Y Z ...), and we want (AND X Y Z ...)
<stylewarning> we don't want (AND (X Y Z ...))
<stylewarning> so we have to embed with the ,@ (comma splice) operator
<potatonomicon> ohhh ok, so mapcar is returning each, not just one, right
<stylewarning> correct
<potatonomicon> or a list, whatever
<stylewarning> (mapcar #'first '((a 1) (b 2)) ==> (A B)
<potatonomicon> yeah
<stylewarning> with enough parentheses :)
<potatonomicon> thats pretty handy
smurfrobot has quit [Ping timeout: 264 seconds]
<stylewarning> MAPCAR is pretty useful, so is ,@
milanj has quit [Quit: This computer has gone to sleep]
<potatonomicon> Yeah I have used @ in other macros
<stylewarning> ,@ not @!
<stylewarning> :)
siraben has joined #lisp
<potatonomicon> well, isn't it two different operations happening
<stylewarning> nope, just one
<potatonomicon> expansion and unquoting
<stylewarning> It's really one operator
schoppenhauer has quit [Ping timeout: 245 seconds]
<stylewarning> potatonomicon: but that thinking won't be harmful :)
schoppenhauer has joined #lisp
terpri has quit [Ping timeout: 256 seconds]
<potatonomicon> Well, thanks for the help :>
<stylewarning> potatonomicon: lmk if you have more questions
<potatonomicon> I have quite a few functions that will use this so it sould make things a little more concise :q
Kundry_Wag has joined #lisp
Kundry_Wag has quit [Ping timeout: 240 seconds]
fikka has quit [Ping timeout: 248 seconds]
sz0 has joined #lisp
fikka has joined #lisp
kmurphy4 has joined #lisp
kmurphy4 has quit [Client Quit]
Kevslinger has quit [Quit: Connection closed for inactivity]
SaganMan has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
xh4 has joined #lisp
xh4 has quit [Ping timeout: 252 seconds]
<beach> Good morning everyone!
xh4 has joined #lisp
asarch has joined #lisp
xh4 has quit [Ping timeout: 264 seconds]
Mutex7 has joined #lisp
fikka has joined #lisp
asarch_ has joined #lisp
asarch has quit [Ping timeout: 245 seconds]
SenasOzys has quit [Ping timeout: 252 seconds]
<potatonomicon> hoy
EvW has joined #lisp
<aeth> Heh. It's actually more efficient in SBCL to pass in a struct and have to redo a few things than to pass in various parts of a struct to a function. Of course it is.
<aeth> 877 bytes vs. 864 bytes in disassemble, but disassemble doesn't tell the whole story. sb-disassem:dissassemble-code-component does. 1029 vs. 1530 bytes.
<potatonomicon> one pointer vs a lot of pointers? or does it copy
EvW has quit [Ping timeout: 245 seconds]
<aeth> If you pass a struct, it typechecks the struct. If you pass a bunch of fields from the struct, it type checks *each one you pass in*
<potatonomicon> makes sense
<aeth> 8 parameters having to be type checked vs. 4 in this case. Making the API a lot more complicated while also making it slower.
<beach> potatonomicon: In Common Lisp, nothing is implicitly copied.
Bike has quit [Quit: Lost terminal]
Kundry_Wag has joined #lisp
xh4 has joined #lisp
Oladon has quit [Quit: Leaving.]
xh4 has quit [Ping timeout: 245 seconds]
Kundry_Wag has quit [Ping timeout: 260 seconds]
serichse` has quit [Ping timeout: 245 seconds]
makomo has joined #lisp
fikka has quit [Ping timeout: 252 seconds]
smurfrobot has joined #lisp
smurfrobot has quit [Ping timeout: 248 seconds]
FreeBirdLjj has quit [Ping timeout: 248 seconds]
slyrus1 has joined #lisp
fikka has joined #lisp
rippa has joined #lisp
smurfrobot has joined #lisp
Ukari has quit [Ping timeout: 245 seconds]
surya has joined #lisp
_paul0 is now known as paul0
xh4 has joined #lisp
smurfrobot has quit [Ping timeout: 240 seconds]
xh4 has quit [Ping timeout: 248 seconds]
emacsomancer has quit [Remote host closed the connection]
energizer has joined #lisp
jjkola has joined #lisp
<jjkola> hi
<jjkola> is planet.lisp.org being down a known issue?
Ukari has joined #lisp
xh4 has joined #lisp
terpri has joined #lisp
octobanana has joined #lisp
xh4 has quit [Ping timeout: 245 seconds]
fikka has quit [Ping timeout: 252 seconds]
fikka has joined #lisp
surya has quit [Read error: Connection reset by peer]
Kundry_Wag has joined #lisp
FreeBirdLjj has joined #lisp
tessier has joined #lisp
Kundry_Wag has quit [Ping timeout: 245 seconds]
Kundry_Wag has joined #lisp
damke_ has joined #lisp
smurfrobot has joined #lisp
damke has quit [Ping timeout: 252 seconds]
Kundry_Wag has quit [Ping timeout: 268 seconds]
smurfrobot has quit [Ping timeout: 260 seconds]
nika has joined #lisp
asarch_ has quit [Quit: Leaving]
smurfrobot has joined #lisp
Fare has quit [Ping timeout: 260 seconds]
xh4 has joined #lisp
fikka has quit [Ping timeout: 252 seconds]
xh4 has quit [Ping timeout: 245 seconds]
slyrus1 has quit [Quit: slyrus1]
energizer has quit [Ping timeout: 260 seconds]
fikka has joined #lisp
xh4 has joined #lisp
xh4 has quit [Remote host closed the connection]
xh4 has joined #lisp
smurfrobot has quit [Remote host closed the connection]
Kundry_Wag has joined #lisp
gector has joined #lisp
jjkola has quit [Ping timeout: 256 seconds]
Mutex7 has quit [Quit: Leaving]
Kundry_Wag has quit [Ping timeout: 260 seconds]
oldtopman has joined #lisp
beardio has joined #lisp
smurfrobot has joined #lisp
moei has quit [Quit: Leaving...]
igemnace has quit [Remote host closed the connection]
smurfrobot has quit [Ping timeout: 264 seconds]
random-nick has joined #lisp
SaganMan has quit [Quit: WeeChat 1.6]
SaganMan has joined #lisp
SaganMan is now known as Guest70478
Guest70478 has quit [Client Quit]
blackadder has joined #lisp
siraben has quit [Ping timeout: 245 seconds]
surya has joined #lisp
sauvin has joined #lisp
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
trittweiler_ has joined #lisp
dtornabene has quit [Remote host closed the connection]
dtornabene has joined #lisp
blackadder has quit [Ping timeout: 256 seconds]
fikka has quit [Ping timeout: 264 seconds]
smurfrobot has joined #lisp
nickenchuggets has quit [Read error: Connection reset by peer]
Kundry_Wag has joined #lisp
smurfrobot has quit [Ping timeout: 245 seconds]
Kundry_Wag has quit [Ping timeout: 245 seconds]
smurfrobot has joined #lisp
paul0 has quit [Quit: Leaving]
blackadder has joined #lisp
smurfrobot has quit [Ping timeout: 240 seconds]
fikka has joined #lisp
mflem has quit [Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/]
smurfrobot has joined #lisp
bendersteed has joined #lisp
<bendersteed> hi everyone, I'm learning lisp and try to create a simple web app with hunchentoot
shka_ has joined #lisp
<bendersteed> is there a way to create handlers with the (define-easy-handler) macro for a list of objects
<beach> Hello bendersteed. Weekends are a bit slow here. It is possible that the people with knowledge of Hunchentoot are doing other things.
<bendersteed> it's ok, thanks for your response
<bendersteed> in general treating macros in loop is kind of sketchy
<beach> How so?
milanj has joined #lisp
terpri has quit [Ping timeout: 245 seconds]
<_death> bendersteed: if the list is known prior to "run time", you can have a macro that expands to `(progn ,@list-of-define-easy-handler-forms) .. otherwise, it may be better to create your own dispatcher
damke_ has quit [Ping timeout: 252 seconds]
Kundry_Wag has joined #lisp
damke_ has joined #lisp
mparashar_ has joined #lisp
Kundry_Wag has quit [Ping timeout: 256 seconds]
<beach> bendersteed: In what way is "treating" macros in loop "sketchy"?
lumm has joined #lisp
<bendersteed> beach: i'm not really familiar with how to treat variables etc
<beach> If you are uncertain, just ask.
<bendersteed> thanks, I'll try to clear a bit things by playing so that I have on-point questions
mparashar_ has left #lisp ["Bye bye, Blackbird."]
<beach> OK.
fikka has quit [Ping timeout: 264 seconds]
fikka has joined #lisp
<beach> What is the state of CL-UNICODE with respect to recent versions of the Unicode standard?
tomsen_ has quit [Ping timeout: 264 seconds]
aindilis has quit [Remote host closed the connection]
aindilis has joined #lisp
blackadder is now known as SaganMan
Kundry_Wag has joined #lisp
Kundry_Wag has quit [Ping timeout: 252 seconds]
vap1 has joined #lisp
vaporatorius has joined #lisp
dmiles has quit [Ping timeout: 260 seconds]
dmiles has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
wigust has joined #lisp
fikka has joined #lisp
vap1 has quit [Quit: Leaving]
moei has joined #lisp
dtornabene has quit [Quit: Leaving]
xh4 has quit [Remote host closed the connection]
xh4 has joined #lisp
smurfrobot has quit [Remote host closed the connection]
milanj has quit [Quit: This computer has gone to sleep]
fikka has quit [Ping timeout: 260 seconds]
Kundry_Wag has joined #lisp
Kundry_Wag has quit [Ping timeout: 264 seconds]
fikka has joined #lisp
damke has joined #lisp
aindilis has quit [Read error: Connection reset by peer]
RebelCoderRU has joined #lisp
damke_ has quit [Ping timeout: 252 seconds]
oleo has quit [Quit: Leaving]
isBEKaml has joined #lisp
nowhere_man has joined #lisp
python476 has joined #lisp
fikka has quit [Ping timeout: 276 seconds]
igemnace has joined #lisp
xh4 has quit [Read error: Connection reset by peer]
xh4 has joined #lisp
fikka has joined #lisp
terpri has joined #lisp
oleo has joined #lisp
oleo is now known as Guest1044
nika has quit [Quit: Leaving...]
atchoum has quit [Ping timeout: 245 seconds]
atchoum has joined #lisp
Guest1044 has quit [Changing host]
Guest1044 has joined #lisp
xh4 has quit [Remote host closed the connection]
<Xach> beach: none that i know of.
<Xach> beach: but some portion of OTF files are TTF files with a thin wrapper, and I don't think that wrapper is difficult
igemnace has quit [Quit: WeeChat 2.1]
<beach> Got it. Thanks.
Arcaelyx has quit [Ping timeout: 245 seconds]
varjag has joined #lisp
random-nick has quit [Ping timeout: 265 seconds]
fikka has quit [Ping timeout: 245 seconds]
Guest1044 has quit [Quit: Leaving]
pjb has joined #lisp
fikka has joined #lisp
<beach> Xach: Would you consider that to be a valid project for someone? I.e. define a protocol for accessing the information in an OpenType font by first reading the contents into memory and then calling various functions to retrieve that information?
<Xach> beach: yes, though for my own project, i loaded only (some) metadata in memory and loaded other things on demand (with caching)
<beach> I understand.
Kundry_Wag has joined #lisp
<Xach> some font files are many megabytes of raw, lightly compressed data, and loading them in memory to access only a few glyphs would be costly up front.
sz0 has quit [Quit: Connection closed for inactivity]
<beach> I typically ignore such issues, counting on the virtual-memory system to do a good job, on RAM being sufficiently inexpensive, and on the Common Lisp system to have a good memory allocator. This is not necessarily true for all combinations of operating system and Common Lisp implementations, but it may well be by the time such a project is finished.
gargaml has joined #lisp
Kundry_Wag has quit [Ping timeout: 260 seconds]
Bike has joined #lisp
<MichaelRaskin> I think for the OS allocator to manage caching the data from HDD well, you need to mmap the file, not just read it.
<beach> That might be true. But that would be messy from a programming point of view. I prefer to parse the entire thing into a native data structure.
<shka_> hello all
<beach> On the other hand, RAM is around 10€ per GigaByte. So "many megabytes" may add up to say 0.05€.
<beach> Hell shka.
cess11_ has quit [Ping timeout: 276 seconds]
<beach> For that saving to be worth the time spent on improving the memory use, There would have to be thousands of simultaneous users using several fonts that each contains "many megabytes" of data.
damke_ has joined #lisp
<Xach> For my use case it was worth the time savings.
<beach> I believe you.
live__ has joined #lisp
damke has quit [Ping timeout: 252 seconds]
octobanana has quit [Ping timeout: 245 seconds]
Folkol has joined #lisp
xh4 has joined #lisp
random-nick has joined #lisp
markong has joined #lisp
isBEKaml has quit [Quit: Leaving.]
FreeBirdLjj has quit [Remote host closed the connection]
surya has quit [Ping timeout: 268 seconds]
FreeBirdLjj has joined #lisp
<kolb> I would chime in and say I know very well which applications are an issue on RAM.
SenasOzys has joined #lisp
FreeBirdLjj has quit [Ping timeout: 256 seconds]
<kolb> Years ago I had to retire my 900mhz 2gig ram arm notebook because I had a clojure gig and I couldn’t start the JVM. Today (4gigs) I get into swapping because of Firefox + R with a big-ish dataset + Pharo running a rather hungry app
pseudonymous has joined #lisp
iqubic` has joined #lisp
smurfrobot has joined #lisp
jmercouris has joined #lisp
iqubic has quit [Ping timeout: 260 seconds]
FreeBirdLjj has joined #lisp
EvW has joined #lisp
surya has joined #lisp
jmercouris has quit [Remote host closed the connection]
milanj has joined #lisp
Kevslinger has joined #lisp
hhdave has joined #lisp
makomo has quit [Ping timeout: 248 seconds]
hhdave has quit [Ping timeout: 248 seconds]
hhdave_ has joined #lisp
<pjb> kolb: that said, you can still use lynx…
igemnace has joined #lisp
siraben has joined #lisp
scymtym has quit [Ping timeout: 252 seconds]
raynold has quit [Quit: Connection closed for inactivity]
pseudonymous has quit [Remote host closed the connection]
xh4 has quit [Read error: Connection reset by peer]
xh4 has joined #lisp
makomo has joined #lisp
DemolitionMan has quit [Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/]
tomsen has joined #lisp
beardio has quit [Ping timeout: 260 seconds]
<python476> hey lispers
<python476> I have a generic question regarding programming semantics (-ish)
<python476> i was wondering if there was a language that accepted mutable anything for local scope, but by default considered everything from outer scopes immutable
<python476> as a safety yet speed friendly mechanism
LiamH has joined #lisp
<python476> (this comes from reading about rustlang a bit)
<theemacsshibe[m]> That's a lot of languages in one question.
<python476> so it's been tried and used a lot already ?
<theemacsshibe[m]> I don't think immutable outer structures would speed things up a lot. Typically you pass pointers around with objects and mutating one would be just as fast as reading.
<python476> but it's always useful to assume these aren't mutable
<python476> you can freeze, isolate, copy, do whatever you want on the side
<python476> (at least that's my fuzzy understanding)
<theemacsshibe[m]> I was referencing mentioning rust, asking lispers and having python in your username.
<pjb> python476: indeed, this is how you should consider things, when you are writing code yourself.
<theemacsshibe[m]> Yes, sometimes you will just rebind the variable and not mutate it.
<theemacsshibe[m]> Sometimes there's an edge case where you do need mutation, which is where you need it and why languages may not pick it up.
<python476> theemacsshibe[m]: oh hehe, I couldn't find rustlang channel, and lisp being used so often for semantic exploration .. I allowed myself to ask here :)
<pjb> python476: there's no language that ensure it, but you could write a lambda macro that would signal a warning or an error if you tried to mutate a parameter or a free variable.
<python476> (and my nick is an unfortunate accident, cons-ider me a lisper first :)
<python476> pjb: thanks
<python476> i thought there would be a nickname for this kind of hygiene, something I could lookup on springer, google scholar or similar
<pjb> in fact, since the implementation defun defmacro defmethod defgeneric probably use cl:lambda, you will have to define your own version of them too.
<theemacsshibe[m]> Maybe if you use one of those wanky pure functional languages you can get immutability.
<pjb> you may have a look at cl-stepper for an example.
<python476> theemacsshibe[m]: common, purely functional is nice
xh4 has quit [Remote host closed the connection]
hhdave_ has quit [Quit: hhdave_]
xh4 has joined #lisp
damke has joined #lisp
damke_ has quit [Ping timeout: 252 seconds]
<drmeister> clhs documentation
igemnace has quit [Ping timeout: 260 seconds]
<drmeister> Hello everyone
<beach> Hello drmeister.
<shka_> drmeister: hello!
<TMA> hello, drmeister
<shka_> beach: i have question regarding flexichains
<drmeister> Does anyone have a clear description of the difference between (documentation #'list t) and (documentation #'list 'function) ?
<beach> shka_: Go ahead.
<drmeister> In sbcl they return the same thing.
<shka_> is there a way to sort it's content?
<beach> shka_: Not easily, no.
<drmeister> In ecl and clasp (documentation #'list t) returns NIL and (documentation #'list 'function) returns a string of documentation.
igemnace has joined #lisp
<shka_> drmeister: (defun something ()) (defclass something ())
<beach> drmeister: That doesn't look right.
<shka_> oh, i see
<drmeister> The ECL/Clasp response? I didn't think so. That's part of what has been confusing me.
<beach> drmeister: The second parameter being something like 'function is used only when the first parameter is a name, and not an object.
<drmeister> beach: Is that so that if there is a function and say a compiler macro with the same name - you can get the function docstring?
EvW has quit [Ping timeout: 245 seconds]
xh4 has quit [Remote host closed the connection]
<beach> drmeister: More generally, if the first thing is a name, you need to say whether you want its definition as a function, as a class, as a variable, etc.
<drmeister> Ok, that makes perfect sense.
xh4 has joined #lisp
lnostdal has quit [Ping timeout: 252 seconds]
<beach> clhs documentation
<beach> drmeister: Look at the second method signature.
<beach> drmeister: If the first argument is a function and the second argument is the symbol FUNCTION, then this method applies.
EvW1 has joined #lisp
<beach> Now, it doesn't say that the same thing will be returned by this method as what is returned by the first one, but that seems a reasonable thing to do.
fyodost has joined #lisp
<drmeister> Ok.
troydm has quit [Ping timeout: 268 seconds]
Fare has joined #lisp
gargaml has quit [Quit: WeeChat 2.1]
<python476> drmeister: are you the spirolygomer researcher
dddddd has joined #lisp
<drmeister> Indeed I am
<python476> well hello
<python476> enjoyed your talks (more for the biochem side than the lisp one even though it was cool too)
<python476> happy to see you
<python476> I hope you'll make more talks
<python476> seconded
<drmeister> As of a few weeks ago it's official - I'm a "Molecular LEGO" researcher.
<drmeister> On the right is Sir Fraser Stoddard, 2016 Nobel Laureate in Chemistry.
<python476> completely off the cool-title chart
<python476> thanks, I have zero knowledge about people in chemistry
<python476> (even though the name kinda rings a bell)
<drmeister> He coined the term in the '80s and almost got sued by Lego Corp.
<drmeister> Rather he got threatened by them in the '80s.
<python476> a clear marketing team error
<drmeister> Yeah - hopefully they are more enlightened these days.
<drmeister> Anyway - I'm glad you enjoyed the presentation.
<python476> a protein ~repl, hard not to be
pierpal has quit [Read error: Connection reset by peer]
pierpal has joined #lisp
troydm has joined #lisp
<drmeister> I'd expand that to - any molecule repl.
<python476> hehe indeed
<drmeister> Things are taking off - we got a lot of grant funding in the last couple of months and I'm starting a company.
<drmeister> I'll need Common Lisp programmers with chemistry knowlege.
<drmeister> knowledge
SenasOzys has quit [Ping timeout: 252 seconds]
<python476> I don't want to divert #lisp much more, but just in case https://www.irif.fr/users/nschaban/index <= makes dna folding computation, when I saw a tiny conf with him, couldn't stop thinking about you
<python476> drmeister: where are you based ? US ?
<drmeister> Philadelphia, PA, USA
eli_oat has joined #lisp
<python476> after quantum computer, protein scaffolds.. lisp is coming back by the deep end
Fare has quit [Ping timeout: 276 seconds]
Fare has joined #lisp
<drmeister> Chemistry is fundamental and universal - the language that works with it should be as fundamental.
fikka has quit [Ping timeout: 248 seconds]
<python476> warning, lambda calculist may come and rant
Guest7068 has quit [Ping timeout: 260 seconds]
pierpal has quit [Ping timeout: 240 seconds]
SenasOzys has joined #lisp
troydm has quit [Ping timeout: 276 seconds]
Fare has quit [Ping timeout: 276 seconds]
pjb has quit [Remote host closed the connection]
pierpal has joined #lisp
Arcaelyx has joined #lisp
pjb has joined #lisp
fikka has joined #lisp
troydm has joined #lisp
jason_m has joined #lisp
troydm has quit [Ping timeout: 264 seconds]
eli_oat has quit [Quit: Leaving.]
igemnace has quit [Quit: WeeChat 2.1]
skeuomorf has joined #lisp
troydm has joined #lisp
warweasle has joined #lisp
warweasle has quit [Client Quit]
warweasle has joined #lisp
johnvonneumann has joined #lisp
johnvonneumann is now known as Guest15684
lnostdal has joined #lisp
d4ryus1 is now known as d4ryus
Guest15684 has quit [Read error: Connection reset by peer]
johnvonneumann_ has joined #lisp
EvW1 has quit [Ping timeout: 276 seconds]
Oladon has joined #lisp
smurfrobot has quit [Remote host closed the connection]
smurfrobot has joined #lisp
damke_ has joined #lisp
damke has quit [Ping timeout: 252 seconds]
fisxoj has joined #lisp
beach has quit [Ping timeout: 245 seconds]
bendersteed has quit [Remote host closed the connection]
trigen has quit [Ping timeout: 256 seconds]
pierpal has quit [Quit: Poof]
pierpal has joined #lisp
beach has joined #lisp
zotan has quit [Ping timeout: 256 seconds]
zotan has joined #lisp
pseudonymous has joined #lisp
fisxoj has quit [Quit: fisxoj]
smurfrobot has quit [Remote host closed the connection]
trigen has joined #lisp
iqubic` has left #lisp ["ERC (IRC client for Emacs 25.3.1)"]
APic has joined #lisp
fikka has quit [Ping timeout: 245 seconds]
TCZ has joined #lisp
warweasle has quit [Quit: Leaving]
TCZ has quit [Quit: Leaving]
smurfrobot has joined #lisp
Baggers has joined #lisp
siraben has quit [Ping timeout: 252 seconds]
longshi has joined #lisp
sbodin has joined #lisp
lnostdal has quit [Ping timeout: 245 seconds]
vtomole has joined #lisp
ebrasca has joined #lisp
fikka has joined #lisp
smurfrobot has quit [Remote host closed the connection]
fisxoj has joined #lisp
SenasOzys has quit [Ping timeout: 245 seconds]
slyrus has quit [Quit: Leaving]
slyrus has joined #lisp
SenasOzys has joined #lisp
Kundry_Wag has joined #lisp
SenasOzys has quit [Ping timeout: 245 seconds]
longshi has quit [Ping timeout: 245 seconds]
Kundry_Wag has quit [Ping timeout: 240 seconds]
EvW has joined #lisp
RebelCoderRU has quit [Ping timeout: 240 seconds]
SenasOzys has joined #lisp
nika has joined #lisp
SenasOzys__ has joined #lisp
SenasOzys has quit [Read error: Connection reset by peer]
Kundry_Wag has joined #lisp
sbodin has left #lisp [#lisp]
damke has joined #lisp
Kundry_Wag has quit [Ping timeout: 260 seconds]
damke_ has quit [Ping timeout: 252 seconds]
longshi has joined #lisp
margeas has joined #lisp
palmtree has joined #lisp
markong has quit [Ping timeout: 245 seconds]
atchoum has quit [Ping timeout: 252 seconds]
asarch has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
markong has joined #lisp
margeas has quit [Ping timeout: 252 seconds]
lnostdal has joined #lisp
smurfrobot has joined #lisp
igemnace has joined #lisp
terpri has quit [Ping timeout: 256 seconds]
xh4 has quit [Remote host closed the connection]
xh4 has joined #lisp
palmtree has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
smurfrobot has quit [Remote host closed the connection]
comborico1611 has joined #lisp
comborico1611 has quit [Client Quit]
rippa has joined #lisp
comborico1611 has joined #lisp
surya has quit [Ping timeout: 260 seconds]
FreeBirdLjj has joined #lisp
zymurgy has quit [Quit: WeeChat 1.4]
zymurgy has joined #lisp
RebelCoderRU has joined #lisp
xh4 has quit [Remote host closed the connection]
xh4 has joined #lisp
FreeBirdLjj has quit [Ping timeout: 245 seconds]
<shka_> so, I have set's of aggregation operations, groupping operations and so one, ala SQL
<shka_> i can do stuff like (average (group-by data #'first))
<shka_> and it is lazy evaluated and stuff
<shka_> it works
damke_ has joined #lisp
<shka_> but my implementation seems to be more complicated then it should be
<shka_> i construct graph of 'aggregator' objects and each element in range flows trough it
EvW has quit [Ping timeout: 245 seconds]
<shka_> sometimes multiple iterations are required to finish the job
damke has quit [Ping timeout: 252 seconds]
margeas has joined #lisp
<shka_> i was wondering if anyone here worked on something like this, and how he approached this problem
FreeBirdLjj has joined #lisp
ryanwatkins has joined #lisp
markong has quit [Ping timeout: 256 seconds]
smurfrobot has joined #lisp
jason_m has quit [Ping timeout: 260 seconds]
asarch has quit [Ping timeout: 256 seconds]
Khisanth has quit [Ping timeout: 245 seconds]
skidd0 has joined #lisp
karswell has quit [Remote host closed the connection]
karswell has joined #lisp
fikka has quit [Ping timeout: 268 seconds]
test1600 has joined #lisp
nika has quit [Quit: Leaving...]
Khisanth has joined #lisp
mflem has joined #lisp
damke_ has quit [Ping timeout: 252 seconds]
ryanwatkins has quit [Ping timeout: 268 seconds]
fikka has joined #lisp
margeas is now known as markong
<drmeister> How does one determine if a lisp stream (that is the reading end of a pipe) has data available for reading?
<drmeister> Is it cl:peek?
<drmeister> peek-char
xh4 has quit [Remote host closed the connection]
smurfrobot has quit [Read error: Connection reset by peer]
<jackdaniel> drmeister: not so easy
<jackdaniel> if you open pipe with blocking (default), if there is nothing in the pipe your thread will hang waiting for io
xh4 has joined #lisp
<jackdaniel> if you open pipe without blocking (among other gothas) if there is no input you'll have EOF
<jackdaniel> I was working on that lately in ECL, you may check out these last changes (in C code)
<jackdaniel> I've resigned of using peek-char in listen for that very reason
<drmeister> Ok - I have a parent process and I forked a child. The child is writing output to a stream that the parent has the other end to - I'd like to know when characters are available so that I can have the parent read those characters and keep the pipe buffer from overfilling. This can't be blocking because I have many children to deal with.
smurfrobot has joined #lisp
RebelCoderRU has quit [Ping timeout: 240 seconds]
Kevslinger has quit [Quit: Connection closed for inactivity]
<jackdaniel> no, for different reason – you have to use peek-byte
<drmeister> peek-byte? Is that an ECL thing?
ryanwatkins has joined #lisp
<jackdaniel> no, ECL doesn't have it implemented at all
<jackdaniel> it is rather an ommision in the spec
<jackdaniel> omission* ?
<jackdaniel> I'm just saying, that working with fifo pipes has some gotchas.
Oladon has quit [Quit: Leaving.]
megalography1 has quit [Ping timeout: 252 seconds]
SenasOzys__ has quit [Remote host closed the connection]
SenasOzys__ has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
<jeosol> morning guys
<beach> Hello jeosol.
smurfrobot has quit [Remote host closed the connection]
fikka has joined #lisp
RebelCoderRU has joined #lisp
<jeosol> what CL db ORM do you guys use?
<jackdaniel> many people will tell you, that whole ORM concept is a misunderstanding :-)
<jeosol> I recently started looking at mito for the postgresql example (movie database). I have a table actor which has a column actor-id in the imported table; naturally this should the pk. I have a mismatch of columns on the lisp side and actual table. how to deal with this?
<jeosol> jackdaniel? Really?
<jackdaniel> jeosol: sure, it is nothing else but transpilation. usually database languages are declarative, while oop is a different paradigm
<jackdaniel> transpiling between languages of different paradigm may lead to a disaster
<jackdaniel> (as in: software which has a terrible performance and bugs)
<jeosol> Oh, I have used clsql in the past but I have heard complaints against it. The thing is I am using a 'defmodel' type macro that given creates a bunch of functions to access columns, search query, etc for a given table, as in django tables
<jeosol> jackdaniel: ok, I see your point
<jeosol> I am hoping it is not too much headache overall, and want something, some model, that is manageable
fikka has quit [Ping timeout: 256 seconds]
<MichaelRaskin> Defining a cross-cutting data schema and generating some parts of CLSQL FDML code (and hand-writing some parts) worked well for me.
<jeosol> MichaelRaskin: So you use clsql more often?
<MichaelRaskin> Just not its OODDL/OODML
omilu has quit [Remote host closed the connection]
<jeosol> I did like and enjoy using CLSQL, but have seen complaints about bit-rot, security, etc
<MichaelRaskin> CLSQL FDML/FDDL — yes
<jeosol> ok, I see.
<MichaelRaskin> Well, I only used it with CLSQL and PostgreSQL
<MichaelRaskin> Oops
terpri has joined #lisp
<MichaelRaskin> SQLite and PostgreSQL
<MichaelRaskin> I guess bitrot might be worse for other backends…
pfdietz has joined #lisp
megalography has joined #lisp
<jeosol> I use mostly Postgresql
<MichaelRaskin> Security… well, I think CLSQL has sane enough escaping.
<pfdietz> Downloaded Allegro CL 10.1 free version. Haven't run the random tester on Allegro in years.
<MichaelRaskin> You might need to define your own query fragments for advanced queries, and there you'd better make sure you do use CLSQL escaping facilities for input parameters
python476 has quit [Ping timeout: 245 seconds]
<jeosol> MichaelRaskin: thanks for the info. May need to return back. Yes, I do use other advanced queries.
<jeosol> MichaelRaskin: But recently, because I can have many tables, I am trying to use some macro to automatically define a bunch of functions that I'll normally need for each table.
<MichaelRaskin> Yes, that sounds natural
pierpal has quit [Quit: Poof]
fisxoj has quit [Quit: fisxoj]
pierpal has joined #lisp
<jeosol> MichaelRaskin: Thanks Mike
EvW has joined #lisp
<jeosol> anyone working with machine learning/ai type problems in lisp? I have discussed on here about picking up CLML library but still resolving licence related issues with former maintainers/owners. May also need to set up a small task force, not like a committee through
<jeosol> I have one potential member in jmercoursis(?)
aindilis has joined #lisp
iqubic has joined #lisp
fikka has joined #lisp
Mutex7 has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
jeosol has quit [Quit: Page closed]
test1600 has quit [Ping timeout: 256 seconds]
jeosol has joined #lisp
<comborico1611> jeosol: I'm just a newb, but well wishes for you AI pursuits.
<jeosol> what do you mean?
python47` has joined #lisp
terpri has quit [Ping timeout: 260 seconds]
light2yellow has joined #lisp
xh4 has quit [Remote host closed the connection]
SenasOzys__ has quit [Ping timeout: 260 seconds]
xh4 has joined #lisp
Nilby has joined #lisp
energizer has joined #lisp
SenasOzys__ has joined #lisp
random-nick has quit [Ping timeout: 245 seconds]
beardio has joined #lisp
octobanana has joined #lisp
trittweiler_ has quit [Ping timeout: 240 seconds]
igemnace has quit [Quit: WeeChat 2.1]
atchoum has joined #lisp
smurfrobot has joined #lisp
groovy2shoes has joined #lisp
jmercouris has joined #lisp
pierpal has quit [Read error: Connection reset by peer]
pierpal has joined #lisp
python47` has quit [Read error: Connection reset by peer]
python476 has joined #lisp
pierpal has quit [Read error: Connection reset by peer]
megalography has quit [Ping timeout: 245 seconds]
vsync has quit [Read error: Connection reset by peer]
vsync has joined #lisp
atchoum has quit [Ping timeout: 260 seconds]
fikka has quit [Ping timeout: 248 seconds]
random-nick has joined #lisp
atchoum has joined #lisp
copyeditor has joined #lisp
pierpal has joined #lisp
fikka has joined #lisp
megalography has joined #lisp
skidd0 has quit [Quit: WeeChat 2.1]
pagnol has joined #lisp
iqubic has quit [Remote host closed the connection]
kmurphy4 has joined #lisp
pierpal has quit [Ping timeout: 268 seconds]
Kevslinger has joined #lisp
iqubic has joined #lisp
iqubic has left #lisp [#lisp]
Baggers has quit [Remote host closed the connection]
SenasOzys__ has quit [Remote host closed the connection]
dddddd has quit [Read error: Connection reset by peer]
Yaargh has joined #lisp
fikka has quit [Ping timeout: 268 seconds]
innovati has quit [Quit: Textual IRC Client: www.textualapp.com]
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
nickenchuggets has joined #lisp
nickenchuggets has joined #lisp
nickenchuggets has quit [Changing host]
pierpa has joined #lisp
fikka has joined #lisp
shka_ has quit [Ping timeout: 252 seconds]
isBEKaml has joined #lisp
smurfrobot has quit [Remote host closed the connection]
smurfrobot has joined #lisp
terpri has joined #lisp
fikka has quit [Ping timeout: 264 seconds]
azimut has quit [Ping timeout: 252 seconds]
<jeosol> CLOS question here: I am writing defmethods that prints object based on a query from a db table, e.g., (defmethod print-actor ((obj actor)) ...) (defmethod print-actor ((objs list)) ..) Somethings, a query returns nil, and I get an error, is there is way to cater for the latter case
<jeosol> somethings ->sometimes
azimut has joined #lisp
<sjl> (defmethod print-actor ((object (eql 'nil))) ...) maybe?
<sjl> don't even need the '
<jeosol> sjl: nice, it work
<jeosol> merci
<jeosol> I just return nil for that case.
<_death> "null" is also a class name
<pjb> jeosol: (if result (do-something result) (do-something-else))
<jeosol> pjb: I was asking in the context of different defmethods ...
<sjl> _death: huh, TIL. I thought it was just a type, not a full class. neat.
<pjb> I assumeL (defmethod print-actor ((obj list)) (let ((result (query-list obj))) (if result (do-something result) (do-something-else))))
xh4 has quit [Remote host closed the connection]
<pjb> But if you want to call print-actor with NIL and not call query-list in that case, then (if obj (query-non-empty-list obj) (query-nil))
<pjb> I mean, why would NIL be not something to be queried from the database too?
<jeosol> _death: defining a method on null also worked
<jeosol> _death: domo arigato
xh4 has joined #lisp
fikka has joined #lisp
<jeosol> pjb: sorryI didn't method it, for the correct case, the query return as list of objects (I am using some ORM)
<pjb> Notice that if you specialize a generic function on NULL, then specialize it also on CONS, otherwise call-next-method may call the method on LIST!
<pjb> Call Precedent List: null, symbol, list, sequence, t
<jeosol> so I am calling the print-actor defmethod on the out from the query
<jeosol> pjb: thanks for that info
<pjb> ok.
<jeosol> *out -> results
<pjb> In those cases I like to use defgeneric to keep all the methods together: (defgeneric print-actor (obj) (:method ((obj null)) 'foo) (:method ((obj cons)) 'bar))
wigust has quit [Ping timeout: 256 seconds]
octobanana has quit [Ping timeout: 252 seconds]
<jeosol> pjb: thanks.
TETOFILO has joined #lisp
kajo has quit [Ping timeout: 245 seconds]
<jeosol> I guess that is one approach to organizing the defmethods, I wrote them separately initially.
tomsen has quit [Ping timeout: 252 seconds]
random-nick has quit [Ping timeout: 260 seconds]
kajo has joined #lisp
pagnol has quit [Quit: Ex-Chat]
vtomole has quit [Ping timeout: 260 seconds]
Folkol has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
comborico has joined #lisp
<comborico> What is efun? https://hastebin.com/xukitekodo.http
octobanana has joined #lisp
margeas has joined #lisp
<comborico> lol. Oops. Nevermind.
markong has quit [Ping timeout: 248 seconds]
fikka has quit [Ping timeout: 252 seconds]
margeas is now known as markong
fikka has joined #lisp
smurfrobot has quit [Remote host closed the connection]
jmercouris has quit [Ping timeout: 256 seconds]
xaotuk has joined #lisp
Nilby has quit [Quit: 👽愛🆑]
beardio has quit [Ping timeout: 276 seconds]
joachifm has quit [Remote host closed the connection]
Kundry_Wag has joined #lisp
Mutex7 has quit [Quit: Leaving]
smurfrobot has joined #lisp
Kundry_Wag has quit [Ping timeout: 264 seconds]
TETOFILO has quit [Quit: Leaving]
vmmenon has joined #lisp
pfdietz has quit [Ping timeout: 240 seconds]
Kevslinger has quit [Quit: Connection closed for inactivity]
atchoum has quit [Ping timeout: 260 seconds]
fikka has quit [Ping timeout: 268 seconds]
smurfrobot has quit [Ping timeout: 252 seconds]
vsync has quit [Quit: ZNC - http://znc.sourceforge.net]
fikka has joined #lisp
vsync has joined #lisp
atchoum has joined #lisp
tomsen has joined #lisp
Kevslinger has joined #lisp
lumm has quit [Read error: Connection reset by peer]
xaotuk has quit [Ping timeout: 268 seconds]
Oladon has joined #lisp
mange has joined #lisp
octobanana has quit [Ping timeout: 252 seconds]
light2yellow has quit [Quit: light2yellow]
fikka has quit [Ping timeout: 252 seconds]
<aeth> Any chance to get custom values for optimize? This is permited by the standard. http://www.lispworks.com/documentation/HyperSpec/Body/d_optimi.htm
<aeth> I would love to be able to force TCO and fast trig functions via (declare (optimize ...)). There are probably a few more legit optimizations that probably should be done that way.
<on_ion> hmm
<aeth> We were talking about this in the context of things that would be nice in a new revision of the spec a couple of days ago but I just realized that (declare (optimize (whatever ...))) doesn't have the issues of (declare (whatever ...)), i.e. the latter could conflict with user-defined types so adding them isn't a good idea
<aeth> On the subject of fast trig: Lots of people probably hate my code because I do (speed 3) anywhere where there is trig because I want fast trig rather than coerce-to-double-first trig that (iirc) SBCL does below speed 3. And forcing TCO is kinda obvious. For one, I could get rid of most of the cl-scheme runtime right there.
<on_ion> but (safe 3) == safety
<on_ion> i dont see how forcing speed for code that requires speed could inspire hate from another programmer
<on_ion> i dont see a way to retrieve the currently enforced value of declare =)
fikka has joined #lisp
<aeth> Well, the problem is that there are certain desirable optimizations, particularly around numbers where you want to keep things running the same everywhere if possible.
<aeth> And, also, of course, the whole TCO thing.
<aeth> There are probably a few more than I'm not aware of.
<aeth> You could go the opposite extreme or something and want the compiler to turn (* 0f0 some-float) into 0f0 even though that's not totally accurate.
<on_ion> hmm. implementations are free to define their own. perhaps you could add or modify things, to allow something like (declare (speed aeth_numbers)) ^_
nickenchuggets has quit [Read error: Connection reset by peer]
nickenchuggets has joined #lisp
Kundry_Wag has joined #lisp
<aeth> on_ion: Implementations are absolutely free to define their own, but without SBCL and CCL at a minimum buying into the idea, nothing will happen
<on_ion> no i mean make your own.
<on_ion> "implementations are free to... " --> so are users also free to ...
xh4 has quit [Remote host closed the connection]
xh4 has joined #lisp
Kundry_Wag has quit [Ping timeout: 256 seconds]
varjag has quit [Ping timeout: 240 seconds]
nickenchuggets has quit [Read error: Connection reset by peer]
<aeth> How would you define your own without modifying the implementation?
nickenchuggets has joined #lisp
nickenchuggets has joined #lisp
nickenchuggets has quit [Changing host]
kmurphy4 has quit [Quit: kmurphy4]
<aeth> Also, it looks like it's mandated to have 0-3 there. So even for things that could just be a t/nil flag, you'd have to do something with various number levels
smurfrobot has joined #lisp
Kaisyu has joined #lisp
EvW has quit [Ping timeout: 276 seconds]
EvW has joined #lisp
longshi has quit [Quit: WeeChat 2.1]
energizer has quit [Quit: Leaving]
smurfrobot has quit [Remote host closed the connection]
<on_ion> aeth: i thought CL implementations are fully-modifyable ?
<on_ion> the #1=(programmable . #1#) programming language
Trystam has joined #lisp
Tristam has quit [Ping timeout: 240 seconds]
Trystam is now known as Tristam
innovati has joined #lisp
pierpal has joined #lisp
pierpal has quit [Ping timeout: 260 seconds]
octobanana has joined #lisp
atchoum has quit [Ping timeout: 252 seconds]
skeuomorf has quit [Ping timeout: 256 seconds]
fikka has quit [Ping timeout: 245 seconds]
xh4 has quit [Remote host closed the connection]
xh4 has joined #lisp
skeuomorf has joined #lisp
octobanana has quit [Read error: Connection reset by peer]