<bjorkintosh>
the combination of commonlisp and c++ right drmeister?
<drmeister>
In a docker image, on linux and my backtraces there are sh*t
<drmeister>
Yes
<jack_rabbit>
Looks like a GC or escape analysis issue,
<bjorkintosh>
which subset of c++ are you using?
<drmeister>
No subset - all of it.
<jack_rabbit>
says me, knowing almost exactly nothing about what I'm looking at.
<bjorkintosh>
Whoa!!
* jack_rabbit
thinks bjorkintosh was making a joke. :)
<drmeister>
No - more likely it's (pathname (probe-file xxxx)) and xxxx is not found.
fikka has joined #lisp
<drmeister>
If I knew what xxxx was I'd be a whole lot happier.
<bjorkintosh>
nah man. c++ is a multiparadigm language.
<jack_rabbit>
drmeister, Why does that result in a stack-frame pointer error?
<bjorkintosh>
I wondered if he was using the C part or the Template or the OO bits or these days, even the functional part
<drmeister>
Because I'm jitting code and llvm jitted code doesn't play well with backtraces.
<drmeister>
on linux
<drmeister>
in docker containers.
<jack_rabbit>
bjorkintosh, My favorite joke has become that C++ is now functional, but just barely. ;)
<jackdaniel>
drmeister: that'd make a good urban legend: programmer starts debugging particularily hard bug -when he's done and comes out of his basement nothing is the same, he can't recognize anything from both real and virtual world
<jackdaniel>
nobody remembers him
<jackdaniel>
apparently debugging lisp took a little longer than he thought
<drmeister>
How do I debug a problem when quicklisp is building code?
<bjorkintosh>
hah.
<bjorkintosh>
but should it be?
<jack_rabbit>
jackdaniel, I like this very much.
<jack_rabbit>
jackdaniel, like when doomsdayers come out of their bunkers...
<drmeister>
It's not happening on macOS. Grrrr
<jack_rabbit>
What's that movie?
<jack_rabbit>
bjorkintosh, unfortunately, if history is anything to go by, both C++ and Java will probably continue to bolt semantics for whatever the latest trend is.
fikka has quit [Ping timeout: 240 seconds]
<jack_rabbit>
*bolt on*
<jack_rabbit>
Not that functional programming is itseld a trend, but it is currently trendy.
<jack_rabbit>
itself* damn it...
<bjorkintosh>
yes jack_rabbit. it's a record of the most popular trends.
<bjorkintosh>
archivists will one day simply have to look at the different c++ versions to determine what the cutting edge in computer science was.
<bjorkintosh>
Right? Right? (right??)
<jack_rabbit>
lol
fikka has joined #lisp
damke has quit [Ping timeout: 264 seconds]
damke has joined #lisp
Lord_Nightmare has quit [Ping timeout: 256 seconds]
milanj has quit [Quit: This computer has gone to sleep]
logicmoo has quit [Read error: Connection reset by peer]
Kundry_Wag has quit [Ping timeout: 255 seconds]
<Shinmera>
Does anyone have a collection of implementation-dependent tests to determine whether a symbol denotes a type? I know how to test for conditions, structures, and standard-objects, but not types otherwise.
fikka has joined #lisp
logicmoo has joined #lisp
fikka has quit [Ping timeout: 256 seconds]
dddddd has joined #lisp
scymtym has quit [Ping timeout: 260 seconds]
FreeBirdLjj has joined #lisp
fikka has joined #lisp
Bike has joined #lisp
fikka has quit [Ping timeout: 256 seconds]
makomo_ has quit [Ping timeout: 260 seconds]
fikka has joined #lisp
milanj has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
<pierpa>
is (SUBTYPEP symbol T) enough? If not, what do you need it for?
scymtym has joined #lisp
<Bike>
that's difficult. implementations can vary which types are also classes, and how they do type macroexpansion, and so on
k-stz has joined #lisp
<Bike>
typexpand was already annoying to do across implementstions, as i remember
python476 has quit [Ping timeout: 268 seconds]
sindan has joined #lisp
pythosnek has joined #lisp
scymtym_ has joined #lisp
pythosnek has quit [Quit: ERC (IRC client for Emacs 25.3.1)]
python476 has joined #lisp
<Shinmera>
pierpa: I don't think that's guaranteed to provide anything useful.
makomo_ has joined #lisp
rpg has joined #lisp
<Shinmera>
I need it in order to determine whether a type-definition should be emitted in my documentation system.
fikka has joined #lisp
scymtym has quit [Ping timeout: 255 seconds]
<Shinmera>
Bike: Right. I don't even need to type expand though, just to know whether a symbol names a type at all.
<beach>
Shinmera: Are you putting together one of those TRIVIAL- libraries?
<Shinmera>
No, it's for Staple.
<Shinmera>
But if others would find it useful, I could.
<Bike>
it sounds like you only need to know about user deftypes, in which case typexpand would do it
<beach>
It sounds like it would be a very useful library to have. And it would include TYPE-EXPAND.
<pierpa>
Guarantee or not, why an implementation shouldn't be reasinable?
<Bike>
my introspect-environment has typexpand, but only on a couple implementations
<Bike>
(you only need ccl::%deftype-expander, ofc)
<Shinmera>
pierpa: subtypep is a much more complex operation than simply testing whether a type exists.
<pierpa>
Subtypep of t?
damke_ has quit [Ping timeout: 264 seconds]
<Shinmera>
it could return T for subtypep for inexistent types too
<Shinmera>
at least if I remember correctly.
Folkol has joined #lisp
disumu has joined #lisp
<pierpa>
I can't see anything allowing this in the hs. Just reread to be sure.
<Bike>
is there anything disallowing it?
<pierpa>
Yes, the hs
<Bike>
how's that?
<Bike>
it doesn't mention any errors, it just says the arguments are type specifiers, which means using non type specifiers is UB, rather than defined to be an error
<pierpa>
Because of my interpretation of the English words contained in the hs
dcluna has quit [Ping timeout: 240 seconds]
dcluna has joined #lisp
rpg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
orivej has quit [Ping timeout: 255 seconds]
fikka has quit [Ping timeout: 260 seconds]
fikka has joined #lisp
fikka has quit [Ping timeout: 256 seconds]
jjkola has joined #lisp
<jjkola>
hi
<beach>
Hello jjkola
fikka has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #lisp
fikka has quit [Ping timeout: 256 seconds]
nika has joined #lisp
fikka has joined #lisp
galdor has quit [Quit: WeeChat 1.8]
fikka has quit [Ping timeout: 240 seconds]
nika has quit [Ping timeout: 248 seconds]
nika has joined #lisp
EvW1 has joined #lisp
quazimodo has quit [Ping timeout: 248 seconds]
fikka has joined #lisp
quazimodo has joined #lisp
attila_lendvai has quit [Read error: Connection reset by peer]
Kevslinger has joined #lisp
Kundry_Wag has joined #lisp
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
attila_lendvai has joined #lisp
fikka has quit [Ping timeout: 248 seconds]
Kundry_Wag has quit [Ping timeout: 260 seconds]
attila_lendvai has quit [Read error: Connection reset by peer]
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
attila_lendvai has joined #lisp
attila_lendvai has quit [Read error: Connection reset by peer]
SuperJen has joined #lisp
Jen has quit [Read error: Connection reset by peer]
damke_ has joined #lisp
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
attila_lendvai has joined #lisp
Jen has joined #lisp
damke has quit [Ping timeout: 264 seconds]
nika has quit [Ping timeout: 256 seconds]
attila_lendvai has quit [Read error: Connection reset by peer]
damke_ has quit [Ping timeout: 264 seconds]
SuperJen has quit [Ping timeout: 255 seconds]
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
attila_lendvai has joined #lisp
damke_ has joined #lisp
ebrasca has quit [Remote host closed the connection]
fikka has joined #lisp
Jen has quit [Read error: Connection reset by peer]
Jen has joined #lisp
fikka has quit [Ping timeout: 264 seconds]
lemoinem has quit [Ping timeout: 264 seconds]
lemoinem has joined #lisp
attila_lendvai has quit [Quit: Leaving.]
puchacz has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
<puchacz>
hi, in sbcl, if sb-ext:process-exit-code returns nil, does it mean process either crashed or is still running?
<puchacz>
(linux)
nika has joined #lisp
fikka has joined #lisp
Colleen has quit [Ping timeout: 256 seconds]
Colleen has joined #lisp
fikka has quit [Ping timeout: 248 seconds]
damke_ has quit [Ping timeout: 263 seconds]
jibanes has quit [Ping timeout: 240 seconds]
jibanes has joined #lisp
damke has joined #lisp
milanj has quit [Read error: Connection reset by peer]
FreeBirdLjj has joined #lisp
milanj has joined #lisp
wigust has joined #lisp
logicmoo has quit [Ping timeout: 256 seconds]
<k-stz>
puchacz: why not just test it? there are calls to query it, like `process-status'
damke has quit [Ping timeout: 264 seconds]
<k-stz>
lastly there is an irc channel dedicated to #sbcl
<puchacz>
k-stz: thanks for the info on new channel :)
<puchacz>
yeah, I tested it and it seems to behave this way
fikka has joined #lisp
<puchacz>
actually it seems that it is nil only when it is still running
gacepa has joined #lisp
nika has quit [Ping timeout: 260 seconds]
damke has joined #lisp
Kundry_Wag has joined #lisp
makomo_ has quit [Ping timeout: 264 seconds]
<k-stz>
puchacz: if you check out the sbcl source, the exit-code is just a slot in a "process defstruct", which is nil on initilazation. The code also looks easy to understand at first glance
logicmoo has joined #lisp
Kundry_Wag has quit [Ping timeout: 240 seconds]
oleo2 has joined #lisp
damke_ has joined #lisp
malice has joined #lisp
damke has quit [Ping timeout: 264 seconds]
damke has joined #lisp
oleo2__ has joined #lisp
milanj has quit [Read error: Connection reset by peer]
oleo2 has quit [Ping timeout: 276 seconds]
damke_ has quit [Ping timeout: 264 seconds]
milanj has joined #lisp
lnostdal has joined #lisp
smokeink has quit [Ping timeout: 260 seconds]
oleo2__ has quit [Remote host closed the connection]
<puchacz>
k-stz: thanks again
puchacz has quit [Quit: Konversation terminated!]
pmetzger has joined #lisp
puchacz has joined #lisp
<puchacz>
how can I add 2 reader features please? I would like #+(linux sbcl)
<Fare>
puchacz: it is not currently supposed to work
<Fare>
puchacz: the way it works is you put (declaim (optimize (speed 3))) in every file where you want that setting.
<puchacz>
Fare: in sbcl? I am trying to do it in lispworks
<puchacz>
sbcl is fine speedwise as it is
<Fare>
OR you use an around-compile handler in ASDF to (proclaim '(optimize (speed 3))) around the compilation of your files.
<puchacz>
Fare: sounds better
energizer has quit [Quit: Leaving]
<puchacz>
how do I do it pls?
<Fare>
note the difference between declaim and proclaim
<puchacz>
I don't understand these things :(
<puchacz>
this is why I wrote "declare" above
<puchacz>
declare is for function bodies only, isn't it?
<|3b|>
DECLARE is for forms that accept DECLARE :p
<puchacz>
and proclaim and declaim?
<|3b|>
(functions, LOCALLY, LET, etc)
<|3b|>
those are global
<|3b|>
one is a function, other is macro with compile-time side effects
<Fare>
go read the CLHS about the difference and/or experiment at the REPL.
makomo has joined #lisp
<puchacz>
ok, and this compiler hook?
<puchacz>
it certainly sounds better than modifying all the files in quicklisp
<puchacz>
and then modifying them back if I want to debug after all
makomo_ has quit [Ping timeout: 248 seconds]
* |3b|
would first try just deleting .fasl cache, declaim speed or whatever, and load the system and see if it actually gets noticeably faster before doing complicated things to make it permanent
<puchacz>
|3b| fasl deleted, but where to put (declaim (optimize (speed 3)) if it is supposed to be in every file?
<|3b|>
i mean just at repl
<puchacz>
ah
sword has joined #lisp
<puchacz>
sounds like I want (eval-when (:execute :compile-toplevel :load-toplevel) (proclaim '(optimize (speed 3))))
<puchacz>
in .lispworks
<Bike>
that's just declaim
<puchacz>
it says "is always in force unless locally shadowed."
<Bike>
(macroexpand-1 '(declaim (optimize speed))) => equivalent to what you wrote
<puchacz>
Bike: so why Fare said I should do it in every file?
wigust has joined #lisp
Achylles has quit [Remote host closed the connection]
<Bike>
fare was talking in the context of a handler function
<Bike>
in which case it's executing like anything else so you don't need eval-when stuff
<puchacz>
so if I (declaim (optimize (speed 3))) in .lispworks in cl-user package, will it just work globally "unless shadowed" somewhere?
<puchacz>
then remove .fasls and restart
<pjb>
yes.
<puchacz>
thanks
<puchacz>
I will try :)
<pjb>
I would do: (declaim (optimize (speed 3) (space 3) (debug 0) (safety 3)))
<pjb>
If you're crazy, you mean do: (declaim (optimize (speed 3) (space 3) (debug 0) (safety 0)))
<pjb>
I should write "Crazy", instead of "crazy" :-)
<puchacz>
pjb: I want to see how fast lispworks can go. by default 32 bit linux lispworks is much slower than 64 bit linux sbcl.
* |3b|
wouldn't change space debug or safety :p
<|3b|>
(at least without specific testing)
<pjb>
You'd have to test, it depends on the implementatioan.
<|3b|>
yeah
<pjb>
But usually debug 0 and space 3 allows it to generate faster code.
<puchacz>
I thought space vs speed is a famous tradeoff....
<puchacz>
so if I just say speed 3, it will do whatever is needed
<pjb>
It is, but for code, smaller code means fewer memory accesses, and therefore more speed.
<puchacz>
ok, I will try
<pjb>
now, space is both code size and run-time space, which may be a little oxymoronic.
<pjb>
smaller code = simplier code = bigger data. If you optimize for smaller data you may need to use bigger code…
<pjb>
they should have specified code-size and data-size instead of space…
* |3b|
notes that salza2 (used by zip) already has some OPTIMIZE SPEED declarations, so global setting might not help it much
<puchacz>
|3b| yes, but I noticed that slowness is also in my html processing
<puchacz>
parsing, serializing
Bindler` has joined #lisp
Fare has quit [Ping timeout: 256 seconds]
Fare has joined #lisp
fikka has quit [Ping timeout: 248 seconds]
<puchacz>
these declarations are not helping much
<Fare>
puchacz: what are you doing?
<puchacz>
doing a lot of HTML processing. maybe I "broke" lispworks by replacing standard functions by unicode functions
<puchacz>
something I need to check
damke has quit [Ping timeout: 264 seconds]
tomlukeywood has joined #lisp
fourier has joined #lisp
tomlukeywood has quit [Client Quit]
<puchacz>
in one HTML the difference is massive. in the other - not so much. so my unicode "fix" has definitely something to do with it
<puchacz>
I did (:shadowing-import-from #:unicode-hack #:char-equal #:char-not-equal ....)
<puchacz>
and so on
<puchacz>
and inside :unicode-hack, it maps to lispworks:unicode-both-case-p etc.
<puchacz>
lispworks has unicode aware functions, but under different names
fikka has joined #lisp
Ralaver_Master is now known as TCZ
fikka has quit [Ping timeout: 276 seconds]
TCZ has quit [Quit: Leaving]
<puchacz>
I just need to drill down to individual steps I guess. unzipping, parsing html, processing, serializing.....
<puchacz>
and I really want unicode
segmond has joined #lisp
<jeosol>
Morning everyone. Blessed is he who hacks lisp ...
<asarch>
How would you declare a function like: (get-coords #'sin 10) (get-coords #'cos 15)?
<asarch>
(defun get-coords (x y) (x y)) I get: undefined function: X
<malice>
use funcall
<malice>
(funcall x y)
<asarch>
Thank you!
<asarch>
Thank you very much :-)
<malice>
Common Lisp is Lisp-2, meaning that it has two namespaces; values and functions rest in different namespaces
<malice>
your code would be valid in scheme(the function call part)
<malice>
since it has one namespace for both
<malice>
in Common Lisp, if you store function as a value of a symbol, you need to use funcall
<asarch>
I see
<malice>
No problem.
<asarch>
Thank you very much once again :-)
fikka has joined #lisp
fourier has quit [Ping timeout: 276 seconds]
Kundry_Wag has joined #lisp
<Fare>
puchacz, if you care about raw speed, maybe you should stick to SBCL
<puchacz>
Fare: delivery is much worse
Bindler` has quit [Read error: Connection reset by peer]
Bindler has joined #lisp
<puchacz>
I use sbcl for server, but I have a fantasy of stand alone applications
Karl_Dscc has joined #lisp
<Fare>
puchacz: what about producing a statically-linked executable with SBCL ?
<Fare>
cffi has the basic capability for it
<puchacz>
Fare: not for android I take?
<Fare>
and/or bazel
<Fare>
oh, android.
nmajo has quit [Ping timeout: 256 seconds]
<puchacz>
but for windows and linux, if it is possible, I may want to explore
<puchacz>
Fare: shall I google for bazel?
<Fare>
I suppose you could produce sbcl output for android, though the interface would be in a separate java binary
<Fare>
bazelisp
<Fare>
though it doesn't seem to be maintained
<puchacz>
this is how lispworks works anyway
<puchacz>
your app is in .so but you have to call java and be callable from java
<puchacz>
ah, not maintained :(
<puchacz>
I think realistically I need to use lispworks if I want standalone apps
<Fare>
ecl ?
<puchacz>
never tried
<puchacz>
I know maxima on android uses ecl
Kundry_Wag has quit [Ping timeout: 240 seconds]
<Fare>
I never used ecl on android
<Fare>
and on laptop lispworks is nicer for interactive use
<pjb>
asarch: (defun get-coords (x y) (list x y)) or (defun get-coords (f x) "Calls f with x as argument." (funcall f x))
<aeth>
Most packaged games (e.g. game jams, etc.) tend to use SBCL, except for on Android.
<puchacz>
Fire: lispworks is good enough, I think I can force some performance out of it.
<puchacz>
aeth: really? I did not know they existed
<Fare>
lispworks compiles fast. The code it produces is OK.
<puchacz>
aeth: any specific examples you can think of?
<puchacz>
aeth: thanks, I will check how they are built
<puchacz>
Fare: did you notice that lispworks without "patching" like I did does not use unicode across standard string and character functions?
amerlyq has quit [Ping timeout: 256 seconds]
dented42 has joined #lisp
amerlyq has joined #lisp
pierpa_ has joined #lisp
vtomole has quit [Ping timeout: 260 seconds]
asarch has quit [Ping timeout: 256 seconds]
amerlyq has quit [Ping timeout: 240 seconds]
equwal has joined #lisp
equwal has quit [Ping timeout: 276 seconds]
nmajo has joined #lisp
equwal` has joined #lisp
krwq has joined #lisp
equwal` has quit [Ping timeout: 240 seconds]
equwal` has joined #lisp
Fare has quit [Ping timeout: 248 seconds]
equwal` has quit [Remote host closed the connection]
galdor has joined #lisp
<puchacz>
also, pjb - why is it "Crazy" to switch safety to 0? is it possible that (+ 5 nil) will return a value for example?
fikka has quit [Ping timeout: 264 seconds]
<aeth>
puchacz: In SBCL, setting safety to 0 removes type checks and bounds checks. Other implementations might behave similarly, or might ignore a safety 0 and always enforce safety.
<puchacz>
aeth: so accessing index of vector out of bounds will not signal anything, just return a value? or store a value?
equwal has joined #lisp
<_death>
it may signal a HAVE-A-GOOD-DAY condition
<puchacz>
(that's for bound checks) and for type checks, it will get an area in memory, say it is "integer" and like in C - no matter what there was, I will get an integer
<aeth>
The problem is with something like this: (setf (aref foo 42) #xffffff)
<Bike>
it could crash
<aeth>
Now you're setting arbitrary memory
<aeth>
(assuming foo is size 3 or something)
<puchacz>
aeth: ok, so I will not change safety :)
<aeth>
well, safety 1 is probably what you think safety 0 should be
<puchacz>
it is implementation dependant anyway, so I take your word for sbcl, and I may check with lispworks support what they mean by 0 or 1
<puchacz>
Bike: crashing is not as bad as continuing to operate incorrectly
<Bike>
the point is there's a lot of things it could do
<puchacz>
yes, I got it now
<puchacz>
sbcl will crash on any uncaught signal/error whatever if you disable debugger, which is what I do for server
<puchacz>
and this is what we want, no? something unexpected, restart sbcl, rather than hang on [1] to use value [2] to abort etc.
<puchacz>
there is nobody to hit 1 or 2
<puchacz>
do you agree with this for server?
<puchacz>
(and it runs in screen)
<pierpa_>
lispworks describes very well what they do in their excellent documentation
<aeth>
If you're going to make assumptions that work some places but not others #+foo is probably a good idea
<puchacz>
pierpa_ tks, I may check but so far I estabilished that even with speed 3 my program is way too slow, so I need to dig into details....
<pierpa_>
right. But no need to ask their support
<aeth>
puchacz: Try pre-allocating things before loops
<aeth>
Repeatedly making garbage can really slow things down.
<puchacz>
I use this cxml-20110619-git for HTML processing. Maybe I should try plump?
<epony>
ongoing joke: Sun, Apr 01 Apple Computer founded, 1976
Karl_Dscc has quit [Ping timeout: 260 seconds]
Karl_Dscc has joined #lisp
vtomole has joined #lisp
nmajo has quit [Ping timeout: 255 seconds]
<pierpa_>
That's 42 years ago. Maybe *this* was the question?
nmajo has joined #lisp
lnostdal_ has joined #lisp
lnostdal has quit [Ping timeout: 240 seconds]
<epony>
Must have been a Thursday.
<puchacz>
pierpa_: do you use lispworks?
attila_lendvai has joined #lisp
<pierpa_>
puchacz: currently not, in the past yes.
<puchacz>
pierpa_: did you have to hack / patch unicode?
<puchacz>
my way works but it slows things down a lot
<pierpa_>
can't help about this, sorry
<puchacz>
ok, no worries
terpri has quit [Ping timeout: 255 seconds]
thallia has joined #lisp
varjag has joined #lisp
attila_lendvai has quit [Read error: Connection reset by peer]
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
attila_lendvai has joined #lisp
Bindler has quit [Remote host closed the connection]
malice has quit [Ping timeout: 260 seconds]
orivej has quit [Ping timeout: 256 seconds]
shka_ has quit [Ping timeout: 256 seconds]
attila_lendvai has quit [Read error: Connection reset by peer]
fikka has joined #lisp
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
attila_lendvai has joined #lisp
attila_lendvai has quit [Read error: Connection reset by peer]
attila_lendvai has joined #lisp
angavrilov has quit [Remote host closed the connection]
nowhereman_ has joined #lisp
nowhere_man has quit [Ping timeout: 260 seconds]
amerlyq has joined #lisp
phax has joined #lisp
attila_lendvai has quit [Read error: Connection reset by peer]
comborico1611 has joined #lisp
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
attila_lendvai has joined #lisp
phax has quit [Quit: phax]
jjkola has quit [Quit: Ex-Chat]
amerlyq has quit [Ping timeout: 264 seconds]
attila_lendvai has quit [Read error: Connection reset by peer]
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
attila_lendvai has joined #lisp
svetlyak40wt has quit [Ping timeout: 256 seconds]
Pixel_Outlaw has joined #lisp
wigust has quit [Ping timeout: 268 seconds]
mikecheck has left #lisp ["part"]
varjag has quit [Ping timeout: 248 seconds]
DVSSA has quit [Ping timeout: 256 seconds]
svetlyak40wt has joined #lisp
svetlyak_ has joined #lisp
svetlyak_ is now known as svetlyak40wt_
fikka has quit [Ping timeout: 240 seconds]
Ven`` has joined #lisp
Ven` has joined #lisp
fikka has joined #lisp
svetlyak40wt has quit [Ping timeout: 240 seconds]
Kundry_Wag has joined #lisp
Bindler has joined #lisp
Ven`` has quit [Ping timeout: 260 seconds]
Ven` has quit [Ping timeout: 260 seconds]
igemnace has joined #lisp
onion has quit [Read error: Connection reset by peer]
Ven`` has joined #lisp
Kundry_Wag has quit [Ping timeout: 248 seconds]
DVSSA has joined #lisp
Ven`` has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Ven`` has joined #lisp
attila_lendvai has quit [Read error: Connection reset by peer]
fikka has quit [Ping timeout: 260 seconds]
energizer has joined #lisp
energizer has quit [Remote host closed the connection]
<pjb>
puchacz: yes, I would expect some implementation to return something strange for (+ 5 nil) with (optimize (safety 0)). Happily, abcl, clisp, ccl, ecl or sbcl still signal a type error. But ISTR that some commercial implementation would just crash or return garbage.
<pjb>
basically, safety 0 means: do like C compilers do…
<pjb>
Hence the *C*razy.
fikka has joined #lisp
TCZ has joined #lisp
Ven`` has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
TCZ has quit [Client Quit]
Ven`` has joined #lisp
svetlyak40wt_ has quit []
<aeth>
pjb: (+ 5 nil) will probably be an error. (defun foo (x) (declare (optimize (speed 3) (safety 0))) (+ 5 x)) (foo nil) might not be an error. Looks like it is still an error in SBCL, though.
<aeth>
I suppose it's a matter of if it can be detected at compile time or not. safety 0 is probably more about runtime safety.
<aeth>
Oh, okay, I simply didn't tell it to trust x. (defun foo (x) (declare (optimize (speed 3) (safety 0))) (declare (fixnum x)) (+ 5 x)) (foo nil) => 268959760
frgo has joined #lisp
<aeth>
Surprisingly, this also is unsafe even though bar isn't safety 0 and SBCL knows the function signature of foo requires a fixnum: (defun bar () (foo nil))
<Shinmera>
It was abandoned because it didn't catch on.
<frgo>
So, ASDF. ok.
<Shinmera>
Well it was meant to supersede ASDF.
<frgo>
I know. That's why I asked.
<aeth>
What I'd like to see in a build system is a build system that can put everything into one compilation unit (which is typically one file) for a final executable distribution. There seems to be three levels of compiler information: internal to a function, internal to a compilation unit (normally a file), and everything else. One compilation unit might generate more efficient *and* safer code.
<aeth>
(At the cost of inflexibility: you'd have to recompile the whole thing at once)
<scymtym>
frgo: iirc, for the parallel build component mentioned there, poiu, some work has been done relatively recently to integrate it into asdf. i don't remember the outcome, though
<Shinmera>
aeth: ASDF can concatenate all sources for you.
<aeth>
Shinmera: great, does anyone do this when building an executable?
<Shinmera>
aeth: Not for an executable, but for things that should be shippable as source I do.
<frgo>
scymtym: oh - thanks for the pointer.
<random-nick>
a part of sqlite3's build process is merging all of the files into one big file
<random-nick>
they do it mainly for performance reasons
<random-nick>
but it's also easier to distribute the source when it's just one big file
<aeth>
It might make a big difference in my game engine, which for practical purposes is split into many files that aren't that big
<aeth>
It doesn't do that all of the time, does it?
<Shinmera>
does what all the time
<aeth>
It would make development much harder, but the final result potentially much faster.
<aeth>
The build/make thing
Administrator has joined #lisp
Administrator is now known as Guest6885
<Shinmera>
it does it whenever you run make
<aeth>
Is make run all of the time through Quicklisp or is it a packaging step?
<Shinmera>
loading and make-ing a system are different things.
<aeth>
Where is the result of make? I can't seem to find it
<Shinmera>
in the source directory
<aeth>
ah, I see, it makes a new .lisp
<aeth>
Oh, wow, it even loads all of the dependencies
<aeth>
I see. It was probably instant because I have an SSD. The expected delay is when compiling that new, large file.
Guest6885 is now known as Guest6888
Guest6888 has quit [Client Quit]
onion has joined #lisp
onion is now known as whoman
whoman is now known as onion
<drmeister>
What is DRIBBLE for? Does it serve a purpose anymore?
<Shinmera>
recording a repl session to file.
<drmeister>
Does it do anything for SLIME?
<Shinmera>
probably only really useful if you're stuck on a TTY.
Karl_Dscc has quit [Read error: Connection reset by peer]
<Bike>
it's pretty obsolete
amerlyq has joined #lisp
Baggers has left #lisp ["rcirc on GNU Emacs 25.2.2"]
comborico1611 has quit [Quit: Konversation terminated!]
csteven has joined #lisp
thallia has quit [Ping timeout: 240 seconds]
<pjb>
drmeister: in the unix philosophy, you would use something like: tty-rec clasp ; but in the lisp philosophy, it's batteries included ;-)
<pjb>
drmeister: slime runs the commands in separate threads, it doesn't use the implementation REPL. To provide a conforming REPL, slime would have to implement its own dribble mechanism.
<pjb>
drmeister: I don't think it's obsolete. It's useful for example, when you develop. You will keep trying your code at the REPL. If you took care to call dribble to save it to a file, you can then take this file and extract from it your tries to write a test for your new code.
random-nick has quit [Remote host closed the connection]
<pjb>
It's also like .bash_history. Sometimes you want to check out what you did back in time.
<pjb>
I used to call dribble in my rc file, recoding all my lisp sessions.
dented42 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
parjanya has quit [Ping timeout: 256 seconds]
earl-ducaine has quit [Ping timeout: 260 seconds]
<equwal>
pjb: How do you use Lisp if not with slime?
<equwal>
Or did, as it may be.
earl-ducaine has joined #lisp
csteven has quit [Read error: Connection reset by peer]
earl-ducaine has quit [Ping timeout: 248 seconds]
earl-ducaine has joined #lisp
Fare has joined #lisp
Quetzal2 has quit [Read error: Connection reset by peer]
dddddd has quit [Remote host closed the connection]
<pjb>
equwal: before slime, I used it with inferior-lisp and my own emacs commands for C-x C-e.
<pjb>
equwal: there was also ilisp; in both cases, inferior-lisp uses the native repl directly, so dribble works.
DVSSA has quit [Ping timeout: 248 seconds]
Fare has quit [Ping timeout: 268 seconds]
TCZ has joined #lisp
<_death>
pjb: well, unix has the "script" command
TCZ has quit [Client Quit]
patrixl has quit [Ping timeout: 276 seconds]
<pierpa_>
people don't realize there was cl before slime :)
damke has joined #lisp
markong has quit [Ping timeout: 260 seconds]
damke_ has joined #lisp
damke has quit [Ping timeout: 264 seconds]
Kaisyu has joined #lisp
Administrator has joined #lisp
Administrator is now known as Guest77776
<z3t0>
hi
<z3t0>
can someone point me to some source code for a fairly small project that demonstrates recommended ways for organizing projects?
Kundry_Wag has joined #lisp
Kaisyu7 has joined #lisp
<pjb>
z3t0: there's no recommended way, no straightjacket. Small projects can be stored in a single file. Bigger projects need more organization, that will depend on the size and structure of the project.
<pjb>
z3t0: the only thing nowadays, is that it's convenient to provide an asd file so that we may easily compile, load and test your project.