Karl_Dscc has quit [Remote host closed the connection]
<Zhivago>
whoman: I would suggest the dot language of graphviz.
<whoman>
alright i will try that first
<whoman>
"The Common Lisp standard specifies the interface between a Lisp implementation and the editor it provides. The interface is a function called ED."
fikka has joined #lisp
<aeth>
Implementation-specific. Doesn't work in SBCL out of the box, but describe gives me enough information. Looks like in sbcl it uses *ed-functions*
raphaelss has quit [Remote host closed the connection]
bkst has joined #lisp
devon has quit [Ping timeout: 268 seconds]
<pjb>
whoman: see also hemlock
dec0n has quit [Read error: Connection reset by peer]
dec0n has joined #lisp
sjl has joined #lisp
<whoman>
ah yea! swi-prolog has a nice editor also
<jackdaniel>
hem, I've tried to start hemlock (both clx and tty) but it failed
<whoman>
well, we can run some things with cl-lib in emacs perhaps. =P
sjl has quit [Ping timeout: 268 seconds]
<pjb>
debugging is in order.
varjag has joined #lisp
EvW has joined #lisp
ak5 has joined #lisp
milanj__ has quit [Quit: This computer has gone to sleep]
mson has joined #lisp
EvW has quit [Ping timeout: 240 seconds]
milanj__ has joined #lisp
fikka has joined #lisp
mathi_aihtam has quit [Quit: mathi_aihtam]
joga has quit [Quit: rip]
Cymew has joined #lisp
jameser has joined #lisp
banjiewen has quit [Ping timeout: 240 seconds]
murii has joined #lisp
jameser has quit [Client Quit]
joga has joined #lisp
banjiewen has joined #lisp
smurfrobot has joined #lisp
mjl has quit [Ping timeout: 240 seconds]
smurfrobot has quit [Ping timeout: 248 seconds]
shka has quit [Ping timeout: 248 seconds]
mjl has joined #lisp
rann has quit [Ping timeout: 240 seconds]
rann has joined #lisp
jameser has joined #lisp
jameser has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Ven`` has joined #lisp
Ven`` has quit [Client Quit]
d4ryus1 is now known as d4ryus
orivej has quit [Ping timeout: 240 seconds]
<schweers>
minion: memo for phoe: I do read manuals from time to time in order to spot things I missed on earlier passes (or didn’t understand yet), but that setting was still not something I was aware of.
<minion>
Remembered. I'll tell phoe when he/she/it next speaks.
<borodust>
Xach: tried on a different machine (macbook pro 2012, no homebrew, no devtools, probably nothing that could potentially pollute environment) and guess what? it worked D:
<borodust>
Xach: on that note, I have another suggestion, but i need to get back to my dev machine to update the code (basically, just supress SBCL FPE check) and push it, so in a few hours
scymtym has joined #lisp
danieli has joined #lisp
danieli has quit [Changing host]
danieli has joined #lisp
vaporatorius has joined #lisp
vaporatorius has quit [Changing host]
vaporatorius has joined #lisp
vap1 has joined #lisp
mingus` has quit [Read error: Connection reset by peer]
troydm has quit [Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset]
troydm has joined #lisp
sjl has joined #lisp
jack_rabbit has quit [Ping timeout: 248 seconds]
sjl has quit [Ping timeout: 276 seconds]
milanj__ has joined #lisp
yangby has quit [Quit: Go out for a walk and buy a drink.]
red-dot has quit [Quit: Going offline, see ya! (www.adiirc.com)]
red-dot has joined #lisp
jack_rabbit has joined #lisp
raphaelss has joined #lisp
stara has joined #lisp
mathrick has quit [Read error: Connection reset by peer]
tomlukeywood has joined #lisp
raphaelss has quit [Remote host closed the connection]
<Xach>
well, something new in asdf has broken it, I think.
smurfrobot has joined #lisp
<knobo3>
I experience a big delay when restarting one of my caveman projects on my development server that runs sbcl 1.4.2
<knobo3>
Could be simple-date related, maybe.
<dim>
so you're saying basically that asdf tests happen in quicklisp and after release?
<knobo3>
Can I turn on some asdf debugging to see what is happening?
red-dot has quit [Quit: Going offline, see ya! (www.adiirc.com)]
dmiles has quit [Ping timeout: 240 seconds]
jmercouris has joined #lisp
margeas has quit [Quit: Konversation terminated!]
<Xach>
dim: I tried using asdf 3.3.1 to test things, but these problems did not immediately present themselves.
<Xach>
dim: that is, before sbcl adopted it.
<Xach>
dim: I don't know what the asdf release test process is
dmiles has joined #lisp
jdz has quit [Ping timeout: 240 seconds]
philosaur has quit [Quit: philosaur]
jmercouris has quit [Ping timeout: 255 seconds]
jameser has quit [Ping timeout: 240 seconds]
smurfrobot has quit [Remote host closed the connection]
jameser has joined #lisp
jdz has joined #lisp
milanj__ has quit [Quit: This computer has gone to sleep]
jmercouris has joined #lisp
Tobbi has joined #lisp
<jmercouris>
This isn't a strictly lisp question, but within my browser, I have a global-map (as in emacs), I've named it global-map for consistency with emacs, but I'm thinkig about making it *global-map* to be consistent with lisp
<Xach>
It's not even a question at all!
<jmercouris>
So do you think I should leave it as global-map or make it *global-map*?
<jmercouris>
Yes, sorry, I was still typing the second part
<ecraven>
well, does your other code have earmuffs? then go with *global-map*
<jmercouris>
Yeah, my other code has earmuffs, but I was thinking of making exceptions for emacs specific variables to avoid confusing people
<ecraven>
jmercouris: but wouldn't it be more confusing if it is inconsistent?
<jmercouris>
I think earmuffs for all global vars for more consistency is more important than confusing a few emacs users
<jmercouris>
ecraven: Yeah, it MIGHT be a little less confusing in the beginning for some familiar variables, but more confusing in the long run
smurfrobot has joined #lisp
<ecraven>
also, it's not emacs, is it? so unless you want to emulate more, I wouldn't care about just a few variables
<mercourisj>
sorry, my connection keeps dropping here
<mercourisj>
It's not emacs exactly, and emacs is in elisp, this is in lisp, so I should follow lisp convention
jmercouris has quit [Read error: Connection reset by peer]
<ecraven>
mercourisj: that would be what I'd think
<knobo3>
hmmm... That gist does not give much meaning.
<mercourisj>
ecraven: Thanks for the advice
<ecraven>
mercourisj: just my 2 cents
<mercourisj>
ecraven: No, I absolutely agree, it makes a lot of sense, and I hadn't thought of that before, so thank you
<ecraven>
mercourisj: was your browser the one that only runs on windows so far?
<TMA>
mercourisj: jmercouris: you can point emacs users to a file with a (define-symbol-macro global-map *global-map*) they can load if they wish
jmercouris has joined #lisp
<jmercouris>
unbelievable the connection here :| sorry about that!
<ecraven>
jmercouris: was your browser the one that only runs on windows so far?
<jmercouris>
ecraven: macOS, I'm working on the GTK port among stuff other stuff
<jmercouris>
I've written the code in a VERY portable way
<ecraven>
cool
<jmercouris>
It used to be in QT, but I hit a wall with performance on OSX
<ecraven>
are you using an existing web engine?
<jmercouris>
unfortunately, I opened my own can of cross-platform worms that I have to solve
<jmercouris>
ecraven: I'm using whatever web-engine is compiled on a given platform
<jmercouris>
In practice this means webkit for OSX, and webkit or webengine for linux
<jmercouris>
I will only personally support webkit on Linux though as I fundamentally do not trust google
smurfrobot has quit [Ping timeout: 248 seconds]
mercourisj has quit [Ping timeout: 260 seconds]
Amplituhedron has joined #lisp
<ecraven>
looking forward to trying it ;)
<jmercouris>
ecraven: Thank you! I hope not to dissapoint! :)
<ecraven>
;) always good to have more lispy choices
<jmercouris>
I can't argue with that!
<TMA>
mercourisj: jmercouris: you can point emacs users to a file with a (define-symbol-macro global-map *global-map*) they can load if they wish [this perhaps did not come through]
<jmercouris>
TMA: Ah, yes I did not see your message earlier, I guess I was disconnected at the time
<jmercouris>
TMA: so maybe some package they can install that loads a whole bunch of these expansions written out for common vars?
<jmercouris>
TMA: Maybe I didn't say that correctly, but something akin to package-install, where they can install something that makes "alias" from some special set of vars (emacs specific global ones) to the ear muff version?
<ecraven>
hm.. then people will write extensions that depend on one or the other
<jmercouris>
ah shit, yes, that is a problem isn't it :D
<ecraven>
well, it just means if you do this, you will have to live with it for some time ;)
<jmercouris>
I'm starting to feel like Linus now that I have actual users, I can't just break userspace whenever I feel like it
<jmercouris>
I guess that is why emacs has such weird default keybindings
<ecraven>
yea, once there are users, it's easy to break things for *someone*
june has joined #lisp
milanj__ has joined #lisp
<TMA>
jmercouris: something like an emacs-compatibility-layer, yes. I think that it might be a package that will be separate, contain the aliases and the users could just (use-package ...) it themselves
rumbler31 has joined #lisp
<TMA>
jmercouris: the support burden needs to be considered. Personally I am not convinced that a non-emacs application shall cater to such emacs-specific taste preferences.
dddddd has joined #lisp
_paul0 has joined #lisp
<pjb>
jmercouris: I would (defvar *global-map*) and (define-symbol-macro global-map *global-map*)
<TMA>
jmercouris: it will just invite "where is the rest of elisp?" and "why haven't you done it as an emacs package?" questions.
<pjb>
jmercouris: However, this would have the property of letting local bindings to global-map be lexical bindings. Perhaps not what you'd want.
<jmercouris>
TMA: Lol, that would be funny to see wouldn't it :D I'm already getting questions about Evil
<pjb>
(incf TMA)
<jmercouris>
pjb: Maybe I only provide the function and let the users reap what they sow :D?
<pjb>
yes, it would be better.
<pjb>
jmercouris: have a look at hemlock.
<jmercouris>
pjb: I've looked at the source extensively already actually :D when I was trying to figure out how to get to stop eating my commands when in the REPL, as well as how to support copy/paste integration
<pjb>
I would advise to stick to the *convention*. It will let you avoid losing hours debugging strange bugs.
paul0 has quit [Ping timeout: 260 seconds]
EvW has joined #lisp
<jmercouris>
pjb: I'll just pretend I'm not aware of the discrepancy and leave it as earmuffs for now then :P if some emacs user comes across this log at a later time, they can proceed at their own risk :D
xantoz has joined #lisp
rumbler31 has quit [Remote host closed the connection]
jameser has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Tobbi has joined #lisp
red-dot has joined #lisp
jmercouris has quit [Ping timeout: 240 seconds]
dtornabene has quit [Quit: Leaving]
jameser has joined #lisp
MrBismuth has joined #lisp
eSVG has joined #lisp
eudoxia has joined #lisp
MrBusiness has quit [Ping timeout: 255 seconds]
Bike has joined #lisp
knobo3 has quit [Ping timeout: 240 seconds]
Xof has joined #lisp
mondec``` has left #lisp ["ERC (IRC client for Emacs 25.1.1)"]
Jesin has quit [Quit: Leaving]
<Xach>
linedit is also busted by asdf 3.3.1
<schweers>
Do people actually use hemlock? I.e. is it in a usable state?
<minion>
schweers, memo from phoe: I know, I was kidding about the manuals. I keep on finding new gems and pearls inside ALEXANDRIA whose manual I've read tens of times and even inside CL.
vaporatorius has quit [Quit: Leaving]
<tfb>
schweers: CCL's editor is hemlock, so, yes (I don't know how far it has diverged from other hemlocks)
<jdz>
oleo: it's a nice feature of CL being able to override keyword parameters.
<Zhivago>
How do you know if something is a transpiler or not?
wigust has quit [Ping timeout: 240 seconds]
rippa has joined #lisp
<waynecolvin>
maybe (lisp-implimetation-type) ? I think that just gives the name
<Bike>
oleo: not that i work with logical pathnames much, but why *.*.*?
<jmercouris>
Zhivago: What do you mean? I have no idea if he wrote it in ruby and just committed the sed, or literally wrote it in sed, there's no way for me to know actually
wigust has joined #lisp
Jesin has quit [Quit: Leaving]
<Zhivago>
What I mean is how can you tell if a program is a transpiler or if it is a compiler?
knobo3 has quit [Ping timeout: 250 seconds]
Cymew has joined #lisp
<Bike>
the documentation suggests that the ruby file is a different implementation of the same thing (lisp via convoluted text editing)
paule32 has quit [Ping timeout: 255 seconds]
<waynecolvin>
maybe (disassemble function) ?
dec0n has quit [Read error: Connection reset by peer]
mercourisj has joined #lisp
<mercourisj>
Zhivago: My best guess (not being a compiler expert or anything) is that a transpiler goes from language a -> language b, whereas a compiler will go from language a -> machine code
<Zhivago>
How do you know which languages are machine code?
<eudoxia>
there is no principled distinction between a compiler and a transpiler tbh
<Zhivago>
Does a transpiler magically turn into a compiler if a new machine is developed?
Cymew has quit [Ping timeout: 258 seconds]
<mercourisj>
Zhivago: Can they persisted as 1 and 0 without an additional program?
<Zhivago>
Ah. It's an incoherent term used by idiots.
<Zhivago>
What machine codes are 'persisted as 1 and 0'?
jmercouris has quit [Ping timeout: 268 seconds]
<eudoxia>
you can e.g. compile a high-level language to an SSA, very asm-looking JavaScript
<waynecolvin>
transpilers are a specialized subset of compilers
<mercourisj>
Zhivago: I'm sorry you feel this way about me, I won't bother you anymore
<Zhivago>
wayne: So, how do you determine if a compiler is a transpiler or not?
Cymew has joined #lisp
<waynecolvin>
all compilers transform source code to object code, just sometimes the output is text files for further processing
<mercourisj>
There seems to be a very clear definition
dieggsy has quit [Quit: ERC (IRC client for Emacs 27.0.50)]
<Zhivago>
wayne: So, a compiler which outputs assembly is a transpiler? But a compiler which includes an assembler and outputs the result of assembly is a compiler?
<Zhivago>
mercourisj: We have compilers from one machine code to another. Therefore machine code is source code. Therefore all compilers are transpilers?
brendyn has quit [Ping timeout: 276 seconds]
smurfrobot has joined #lisp
norserob has quit [Quit: leaving]
Cymew has quit [Ping timeout: 248 seconds]
<waynecolvin>
and a CPU is a hardware interpreter
jmercouris has joined #lisp
<Bike>
this seems kind of tangential to the intended topic.
<waynecolvin>
what was the topic agan?
_cosmonaut_ has quit [Ping timeout: 240 seconds]
<Bike>
some sed lisp thing.
<Shinmera>
Which is also off-topic
<jmercouris>
Zhivago: See: "A source-to-source compiler translates between programming languages that operate at approximately the same level of abstraction, while a traditional compiler translates from a higher level programming language to a lower level programming language."
Cymew has joined #lisp
<Bike>
yeah. seizing on a word on the side is unnecessarily hostile, is all
mercourisj has quit [Ping timeout: 255 seconds]
<jmercouris>
Bike: Not only hostile, but incorrect
paule32 has joined #lisp
<Shinmera>
Can we just drop this
<Bike>
well, you brought it up, so if you want to argue about it go ahead i guess. except not since it's definitely off topic.
mercourisj has joined #lisp
smurfrobot has quit [Ping timeout: 255 seconds]
<Zhivago>
jmercouris: Ok, so would a lisp to C compiler be a compiler, but a lisp to C compiler be a transpiler?
<Zhivago>
Rather, C to lisp compiler be a transpiler?
<waynecolvin>
i'd kind of like to know HOW to compie lisp to C...
<Bike>
use ecl?
<Zhivago>
It's easy enough -- take a look at ECLS for an example.
<Bike>
the ecl internals manual also helpfully explains some things, e.g. how closures are implemented.
<_death>
"transpiler" is just javascript newspeak, they need to come up with new terms for everything because they lack historical education..
<jackdaniel>
right, yet this compiled code still depends in core library
<jackdaniel>
and many optimizations are performed on ecl size, so it's not naive transpilation
Cymew has quit [Ping timeout: 255 seconds]
<Zhivago>
Ah, so if you're clever about it, it's not a transpiler? :)
<jackdaniel>
well, all compilers are transpilers to machine code then
<waynecolvin>
lisp500 had a lisp-to-c compiler of sorts but i couldn't get it to work
<jackdaniel>
and all interpreters are transpilers to bytecode
<jackdaniel>
taking too broad definition makes the term meaningless
<Zhivago>
Well, not all interpreters use bytecode.
<Zhivago>
The term seems meaningless to start with.
jmercouris has quit [Ping timeout: 260 seconds]
ercourisjm has joined #lisp
<ercourisjm>
Can someone explain what (documentation) wants for "doc-type"? It says "symbol" in the CLHS, but I don't understand what they want
<Zhivago>
Apparantly a transpiler targets a language of the same level of abstraction and doesn't do many optimizations.
<jackdaniel>
I tend to disagree, but not enough to try prove my point
quazimodo has quit [Ping timeout: 240 seconds]
mercourisj has quit [Ping timeout: 248 seconds]
<_death>
ercourisjm: it depends what you want documentation for.. for example it could be the symbol FUNCTION or the symbol VARIABLE..
<Zhivago>
Although how we measure the level of abstraction or determing the critical level of optimization is unclear.
Cymew has joined #lisp
<jackdaniel>
right, that's closer to my representation of this word
<ercourisjm>
_death: Is there a list of FUNCTION, VARIABLE, etc that I can look up?
<mercourisj>
I've asked this quesiton awhile ago and looked through the IRC logs to try to find it but could not, what's the way to list all of the variables defied by defvar?
<Bike>
earmuffs are just a convention, but you could do that, yes.
<Younder>
and then.. filter
<mercourisj>
Bike: Right yeah, that's what I'm saying, it's my own program after all
Cymew has quit [Ping timeout: 268 seconds]
<mercourisj>
Shinmera: In your function, what does it mean for a symbol to special?
<_death>
(meta `(defvar ,(gensym))) ; do-all-symbols won't find it :)
jmercouris has quit [Ping timeout: 240 seconds]
<Bike>
mercourisj: globally proclaimed special, which is what defvar does.
<whoman>
i think gensym is doing it wrong
<Younder>
Look Lisp allows you to enter a string for documantaion. It is however optional and should be. But if the interface is documented it should be possible to figure out what function you want.
Cymew has joined #lisp
<whoman>
what is Look Lisp?
<Younder>
whoman, sigh Look.. Lisp
<Bike>
"look" is being used as a disjunct.
<whoman>
sigh Look ??
<Bike>
don't be asinine.
<whoman>
i know. pointing at missing comma or other kind of pause
orivej has quit [Ping timeout: 248 seconds]
<whoman>
.... asinine would be typing like a sloppy pig and expecting everyone to mentally compensate
jmercouris has joined #lisp
<jmercouris>
Shinmera: Okay, very cool, thank you for sharing!
<jmercouris>
I'm going to stay offline until my connection stops breaking, sorry for the lurker spam
<whoman>
and of course usually those times being the times under emotion or stress or anger, which never leads to clarity or understanding.
<Younder>
whoman, thx
<whoman>
i want to point out the word "inter-face".. =)
<Bike>
you can just say that directly.
<whoman>
not usually the kind of thing i would break my idle for sharing =)
arbv has quit [Remote host closed the connection]
mercourisj has quit [Ping timeout: 240 seconds]
<Younder>
spam in the can, woman, a scam.
Cymew has quit [Ping timeout: 240 seconds]
<whoman>
it is understood that listing symbols is how we inter-face with lisp. which is interesting because 'graphical' user inter-faces are probably less meaningfull due to not being as linguistic as text/repl/tui
Cymew has joined #lisp
<flip214>
I tried to subscribe to the elsconf ML; the confirmation link arrived within a minute, but there's no password or welcome message after ~15 minutes....
<flip214>
I hope someone is concerned about that! ;)
wigust has quit [Ping timeout: 240 seconds]
Jesin has joined #lisp
knobo3 has joined #lisp
<antoszka>
flip214: I don't think you actually need the password to use the ML.
<flip214>
antoszka: for reading the archives I need it.
<antoszka>
Ah, okay, guess I never needed to do that.
Cymew has quit [Ping timeout: 248 seconds]
<flip214>
Well, I'd like to get some more information, to present to my employer...
varjag has quit [Quit: ERC (IRC client for Emacs 24.5.1)]
jmercouris has quit [Ping timeout: 255 seconds]
Cymew has joined #lisp
moei has joined #lisp
knobo3 has quit [Ping timeout: 240 seconds]
<flip214>
ah, sorry for the noise. there's no automatic welcome mail, but "Awaiting moderator approval"
Cymew has quit [Ping timeout: 255 seconds]
osune has joined #lisp
warweasle is now known as warweasle_brb
mathi_aihtam has joined #lisp
wigust has joined #lisp
mak81[m] has joined #lisp
EvW has quit [Ping timeout: 240 seconds]
Guest94462 has quit [Remote host closed the connection]
mak81[m] has left #lisp ["User left"]
Guest94462 has joined #lisp
<Xach>
Shinmera: looks good, thanks
neoncontrails has joined #lisp
nowhere_man has quit [Remote host closed the connection]
fikka has joined #lisp
warweasle_brb is now known as warweasle
Cymew has joined #lisp
fikka has quit [Ping timeout: 258 seconds]
zmt00 has joined #lisp
Cymew has quit [Ping timeout: 260 seconds]
Amplituhedron has quit [Ping timeout: 248 seconds]
Cymew has joined #lisp
terpri` has joined #lisp
terpri has quit [Ping timeout: 248 seconds]
Kaisyu has quit [Quit: Connection closed for inactivity]
Karl_Dscc has joined #lisp
Karl_Dscc has quit [Remote host closed the connection]
mson has quit [Quit: Connection closed for inactivity]
Cymew has quit [Ping timeout: 248 seconds]
araujo has joined #lisp
varjag has joined #lisp
khisanth_ has quit [Ping timeout: 260 seconds]
devon has quit [Remote host closed the connection]
khisanth_ has joined #lisp
<borodust>
Xach: do you have a time for quick test?
<Xach>
borodust: sure
lnostdal has quit [Ping timeout: 240 seconds]
<borodust>
Xach: thanks much for all your time
<Xach>
Looking forward to playing with it, going to write some toys and see how it goes
hhdave has quit [Ping timeout: 255 seconds]
<borodust>
cool! enjoy :)
Cymew has joined #lisp
<borodust>
i'll update dist with the fix in the meantime
FreeBirdLjj has quit [Remote host closed the connection]
<Xach>
borodust: can you populate canonical-distinfo-url?
<borodust>
Xach: hmm, not sure how i should do that
Cymew has quit [Ping timeout: 264 seconds]
lnostdal has joined #lisp
SaganMan has quit [Quit: laters]
<Xach>
are your dists indelible? can you revert to previous dists by url?
Cymew has joined #lisp
<borodust>
nope, there's only one dist
<Xach>
then the canonical distinfo url is the same as the subscription url
<borodust>
like, i clean dist directory every time and put latest dist
<Xach>
ok. that is a different style from the "main" quicklisp dist
<borodust>
*instead
<borodust>
Xach: yeah, basically, i have no idea what i am doing
<Xach>
borodust: no worries! there are no docs yet for how to do it
* Xach
is working on some
Cymew has quit [Ping timeout: 240 seconds]
Cymew has joined #lisp
<Xach>
borodust: but for quicklisp, all new stuff is added, and the old stuff stays in place, and new dists point to a mix of old and new archives
<Xach>
so one distinfo.txt is updated to point to the new system / release indexes, but the old ones stay in place pointing at older stuff
<Xach>
but there is a second distinfo.txt that never changes that matches up to that particular set of stuff
FreeBirdLjj has joined #lisp
<borodust>
Xach: how do i tell quicklisp client to choose between dist versions?
strelox has quit [Remote host closed the connection]
dieggsy has quit [Remote host closed the connection]
ski has joined #lisp
fikka has quit [Ping timeout: 248 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
<gendl>
Hi, if I have an error object in a variable, how can I actually "throw" that error and land in the debugger?
<Shinmera>
SIGNAL/ERROR/WARN?
<Bike>
it's called signaling rather than throwing.
<gendl>
Bike: sorry. Ok.
<Bike>
if you aren't worried about any handlers, you can call invoke-debugger directly.
<gendl>
I have a handler-case like this:
<Bike>
but otherwise, ERROR signals and then invokes the debugger if there aren't handlers.
<gendl>
(handler-case (... some body...) (error (err) (signal err)))
<gendl>
can I do that?
<Bike>
sure.
<gendl>
I have an existing handler-case, I want to keep it mostly the same, but just have it signal the error right now for debugging purposes.
<jasom>
gendl: handler-bind will automatically resignal if you don't have a non-local exit; this is one of several differences between bind and case
<gendl>
In production it would do something different with that error.
jfb4 has quit [Ping timeout: 255 seconds]
<Bike>
jasom: this is slightly inaccurate- rather than resignalling, it just doesn't stop the existing signaling from continuing
<jackdaniel>
handler-bind doesn't unwind the stack (important note if you are interested in a backtrace)
<jasom>
Bike: correct
<Bike>
i mean, maybe the same result here, i don't know
<gendl>
yes, i'm interested in a backtrace.
<jasom>
gendl: if you want a backtrace for debugging you want handler-bind
<gendl>
Ok.
<jackdaniel>
nb, if you want to have backtrace and actually handle the error, you want handler-bind inside handler-case ;)
<gendl>
so I can't do what I'm trying to do by just tweaking this handler-case -
<jasom>
gendl: for logging backtraces http://shinmera.github.io/dissect/ has a pretty good out-of-the-box experience; you can literally just bind #'dissect:present and be done.
jfb4 has joined #lisp
<gendl>
jasom: thanks, I'll check it out.
<jasom>
gendl: handler-case will give you the backtrace for the scope in which the handler-case appears (the stack has already unwound to there by this point) handler-bind will have available the stacktrace at the point of the signal (the stack has yet to be unwound)
<gendl>
got it.
LocaMocha has quit [Ping timeout: 255 seconds]
<Shinmera>
As jasom mentioned, with dissect you can capture the stack information and pass it around as you want.
<jasom>
this is also why handler-bind doesn't silence the error; you need to manually unwind the stack (e.g. throw) , wherase handler-case has already unwound the stack for you.
milanj__ has quit [Quit: This computer has gone to sleep]
<k-stz>
In 64bit sbcl, fixnum are of size 2^63, this can be verified by adding `most-positive-fixnum' and `most-negative-fixnum'. That leaves a single bit (63+1) to be the lowtag identifying the type in memory.
<k-stz>
I try to understand how a single bit suffices for this, also reading the sbcl internals talks about lowtags. Where memory is dword (2x64bit) alligned and the least significant, low, 4bits of that alligned memory is used for type information.
<shka>
k-stz: either it is a fixnum or not?
<k-stz>
in sbcl all lips objects have type information in memory, so should't there be more bits to distinguish them all
<jsnell>
you can have different numbers of tag bits for different types
<shka>
well, to be fair i imagine that only fixnums and floats are worth inlining tag
<shka>
everything else is pretty much passed by reference anyway
<k-stz>
I have to admit I have no idea abou this stuff, so even basic stuff eludes me
<jsnell>
shka, that's just totally incorrect
<shka>
oh, ok
<shka>
jsnell: explain it, please
<jsnell>
k-stz: xxx0 are all fixnums; xxx1 are types of other values, with 3 bits to identify further
<jsnell>
shka: sorry,
<jsnell>
since literally everything you said is wrong, it's kind of hard to correct
<jsnell>
(and it's two bits for fixnums, so shame on me)
<k-stz>
So if i understand correctly: every pointer that starts with a 0, is identified to point to a fixnum, else the next 3 bits are read to identify other types. Now these 4bit-tag are already part of the pointer to the object in the lisp-heap, because they are dword aligned, the pointer doesn't need the lower 4 bits to distinguish the 16bytes within.
<k-stz>
*that _ends_ with a 0 bit
<shka>
jsnell: this looks fascinating
ski has quit [Ping timeout: 248 seconds]
damke has joined #lisp
<shka>
i was awed by sbcl ever since khoung blog post with forth implementation
<sjl>
k-stz: ending with a 0 doesn't mean it points to a fixnum -- it means the fixnum is immediately encoded in the other bits
<sjl>
there is no pointer
<k-stz>
sjl: ah that makes sense! because fixnums are supposed to guard against heap allocation
damke_ has quit [Ping timeout: 240 seconds]
<sjl>
if by "guard against" you mean "avoid", yes
<sjl>
e.g. in > (defun foo (x) (+ 7 x))
<k-stz>
sjl: thanks, I would have missed that
<sjl>
if I (disassemble 'foo) I get
<sjl>
; 1D: BF0E000000 MOV EDI, 14
xrash has joined #lisp
<sjl>
it moves the immediate value 14 into edi before calling the + function
<sjl>
because 111 is a raw 7, and 1110 is the tagged 7
<k-stz>
sjl: great example, thank you!
<Shinmera>
sjl: You can disassemble function objects too, so just (disassemble (lambda ..))
<sjl>
Shinmera: yeah, I forget why I was in the habit of not doing that
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
nowhere_man has joined #lisp
<pjb>
k-stz: there are other immediate values, notably characters.
<pjb>
with 8 remaining tag bits, you can have fun.
ski has joined #lisp
safe has joined #lisp
<k-stz>
that seems clever to me, is that common implementation practice? I guess the C malloc()/free() couple implementation might use those tricks too
<pjb>
Yes, almost all implementations use this kind of tricks.
<pjb>
In one or two old implementation, the type tag was relatively to a memory page, so all the object allocated in a given page were of the same type. But AFAIK, all implementations had immediate values, for optimization.
<osune>
I'm looking at database bindings for storing a little bit of data (3 - 4 relational tables ; ~ 300 rows each ). I would go for cl-sqlite but I've seen rucksack(http://quickdocs.org/rucksack/ ), too. Has somebody experience with this?
Cymew has joined #lisp
zooey has quit [Ping timeout: 248 seconds]
<jsnell>
pjb: yes, those are the exact sources that show that those Lisp implementations did not encode immediate values in pointer values via tagging
<pjb>
It had TAGMSK and $FIX and $FLOAT to distinguish between those two types.
<felideon>
I'm assuming you want to inherit PERSISTENT-STANDARD-OBJECT when you create your classes.
<osune>
you are assuming wrong cause I have no idea what you are talking about ! This is my first dip into persistance in common lisp beside from "write it to a file", so this symbol is unkown to me.
<osune>
sorry on second thought this reads harsher than joking
paule32 has quit [Ping timeout: 276 seconds]
khisanth_ has joined #lisp
<felideon>
osune: no worries, I mispoke. I should have said 'I would imagine having to inherit'
eudoxia has quit [Quit: Leaving]
<felideon>
osune: That class is defined by planks, which is why it is "unknown" to you.
<osune>
ahh I see. I think I start to understand the rucksack way first, from there I hope to understand what problem planks tries to solve. Thanks for your help
<jmercouris>
instead of do-symbols is there a list of symbols I can just access?
<Shinmera>
No
<jmercouris>
Damn, I was hoping to use map or filter
<Xach>
jmercouris: what do you mean by access?
<Shinmera>
(defun package-symbols (p) (let (l) (do-symbols (s p l) (push s l))))
<jmercouris>
Xach: Exactly what Shinmera just wrote
<Xach>
ok
<jmercouris>
I need to basically make autocomplete for my describe-symbol function in my browser and I was going to limit it to *earmuff* symbols, so I wanted to just have a filter
<jmercouris>
Shinmera: I'll just do something like that I guess, thanks
<jmercouris>
Another thing I've been thinking about lately is the elisp convention of (interactive) within a defun body making the command callable by the command system, is there a way I can achieve something similar in common lisp?
<pjb>
jmercouris: of course, you can filter the result of (package-symbols), but it would be faster to filter while do-symbols, or even, to use apropos-list.
<pjb>
but it's not conforming, the syntax in the first argument of apropos-list is implementation dependant.
<jmercouris>
pjb: I'd like to stick with things that are standard across implementations mostly
<jmercouris>
The thing about the (interactive) within the body of the defun is, I don't understand how I'd get a reference to the current function to register it, somehow I feel like this involves a part of lisp I am unfamiliar with so far
vtomole has joined #lisp
<pjb>
This is why you have to implement your own apropos-list or similar using do-symbols.
<Bike>
jmercouris: it'd be easier to define a, like, defun-interactive macro.
<pjb>
jmercouris: first, in CL it's written (declare (interactive)). emacs lisp has this special case declaration (interactive).
<pjb>
jmercouris: then, indeed, non-standard declarations must be processed by your own tools.
<Bike>
which you shouldn't bother trying, it sucks
<pjb>
So if you want it to be processed when you evaluate the defun form, it must be your own defun macro.
<Bike>
you could also have a table of interactivity information, like a hash table where the keys are functions, and have a like (register-interactive function specification-goes-here)
<jmercouris>
pjb: So you're saying something like (def-interactive something ())?
<pjb>
Otherwise, you can defmacro define-command or defcommand.
<jmercouris>
pjb: Ah, hmm seems very easy for me to make a mistake there
<pjb>
interactive functions are commands.
<jmercouris>
I like introducing new forms instead of shadowing wherever possible
<jmercouris>
I think defcommand is a good name/idea
<pjb>
Yes. I've done that already.
<jmercouris>
Bike: pjb: Thanks for the suggestions!
<pjb>
jmercouris: be careful in macros, try to avoid compilation-time stuff, since it makes it harder to compile-file.
<jmercouris>
Yeah, I will have to be careful, I've already really messed up my keybinding definition macro I think, I will probably have to redo it and simplify the definition of commands I think
<jmercouris>
It is way too obtuse, even when I am implementing new keybindings I am having to look up my own syntax
<pjb>
have a look at hemlock-interface:defcommand too.
<Bike>
stumpwm also has something like interactive.
<emaczen>
I'm getting different results between SBCL and CCL -- what are some common things to check?
<Xach>
emaczen: that is a pretty broad domain
<emaczen>
common things being caches, compiler settings etc...
<pjb>
For example, hemlock-interface:defcommand doesn't defun at compilation-time so the compiler cannot know that the command is a function, so if you try to call it in other code compiled, you will get a undefined function warning… This is bad.
<Xach>
emaczen: like arithmetic is differing?
<pjb>
But if you call the make-command function that follows at compilation-time it's bad too…
<emaczen>
Xach: No, just my code
<jmercouris>
I like the stumpwm API, maybe I will copy it
<emaczen>
Xach: I don't see why I would be getting different results?
<Xach>
emaczen: there are many differences, like in how random state works, the internal time units, etc. What kind of stuff does your code do?
mson has quit [Quit: Connection closed for inactivity]
<emaczen>
there is no randomness or time in my code
<emaczen>
I'm really just building a list
<emaczen>
and in SBCL the list has length 1210 and with CCL the length is 768
<jmercouris>
emaczen: are you running both pieces of code on the same machine?
<emaczen>
jmercouris: Yes
kokonaisluku has joined #lisp
<Bike>
i don't think we can answer this without some specifics of what the code does.
<Bike>
like. source.
waynecolvin has quit [Ping timeout: 255 seconds]
<Xach>
emaczen: is it a list of symbols?
hexfour has joined #lisp
<emaczen>
At the moment I'm mainly interested in looking at deleting caches or other compiler stuff that would be differnet between SBCL and CCL
<Bike>
might not even be relevant.
<emaczen>
I think I am loading the exact same code but am I? -- You know?
Karl_Dscc has quit [Remote host closed the connection]
<Bike>
files are only cached on your disk as fasls.
<whoman>
buildapp still in good use?
<Bike>
(load (compile-file "whatever.lisp")) will force recompilation and reload of whatever's on your disk.
<Xach>
whoman: I use it, but I think the built-in stuff in asdf does a lot of stuff and more portably too.
orivej has joined #lisp
<Bike>
alternately you could restart ccl and sbcl.
<whoman>
Xach, alright cool. (just looking to make custom toplevel/repl binary for slime.)
hexfive has quit [Ping timeout: 248 seconds]
<emaczen>
I've deleted ~/.cache/common-lisp/
<emaczen>
I've restarted both CCL and SBCL
<Bike>
so it's probably the same code.
<emaczen>
And I've been using (asdf:load-system :system :force t)
osune has joined #lisp
LiamH has joined #lisp
ryanbw has joined #lisp
dwts has joined #lisp
ym has joined #lisp
gingerale has joined #lisp
SAL9000 has joined #lisp
fouric has joined #lisp
naturalog has joined #lisp
TeMPOraL has joined #lisp
Walex has joined #lisp
micro has joined #lisp
Oddity has joined #lisp
gabot has joined #lisp
manualcrank has joined #lisp
Tristam has joined #lisp
cess11_ has joined #lisp
runejuhl has joined #lisp
antismap has joined #lisp
nullman has joined #lisp
dilated_dinosaur has joined #lisp
Aritheanie has joined #lisp
tessier has joined #lisp
<Bike>
something to notice here is that the caching is done by asdf rather than by your implementation.
<Bike>
so what else are you doing? calling any libraries that use implementation details? getting into the package system? what?
<Bike>
there are a million ways code could work differently between implementations
vtomole has quit [Changing host]
vtomole has joined #lisp
<emaczen>
Bike: I'm using a fair bit of macros,
<emaczen>
There is some gensyming
drcode has joined #lisp
<emaczen>
I still just find it hard to believe that the list can be 442 elements smaller
<osune>
did we have a netsplit ?
drcode has quit [Remote host closed the connection]
<Bike>
none of that is relevant
<Bike>
just tell us what you are doing
<Bike>
is it proprietary? what?
<emaczen>
It is too complicated both in ammount of code and in english description
drcode has joined #lisp
hhdave has joined #lisp
<Bike>
that's why i asked for possible implementation specific stuff
<emaczen>
Bike: I can't think of any implementation specific parts in my code
<emaczen>
Maybe I'll do a search just to verify
<Bike>
does it use any libraries?
<Bike>
it doesn't seem like you have a sense for what is implementation specific
vtomole has quit [Ping timeout: 260 seconds]
<emaczen>
Bike: No libraries other than :closer-mop which I load by default
<emaczen>
<emaczen>
always
Guest24518 has joined #lisp
<emaczen>
Give me a few examples of implementation specific attributes of common-lisp
hhdave has quit [Ping timeout: 255 seconds]
<Xach>
specialized array types
<Xach>
fixnum size
<Xach>
valid external formats
<Bike>
mop, which packages exist, number of symbols in packages other than CL
* Xach
ponders a fingerprinter based on checking all such things
<emaczen>
Is there something to check all packages loaded?
<Bike>
(list-all-packages)
rumbler3_ has joined #lisp
<Xach>
emaczen: it is cruel to string me along like this :( i am dying to know what is going on!
<Xach>
i would read 500 pages of code to figure out the puzzle
<Xach>
perhaps 5000
<emaczen>
Xach: Dang I'm getting lazy then...
<jasom>
also any symbols not in CL that are in CL-USER
<jasom>
e.g. cl-user:QUIT
SuperJen has joined #lisp
<emaczen>
Xach: I'm inspecting, trying to find reasonable discrepancies, taking educated shots in the dark!
kokonaisluku has quit [Quit: ChatZilla 0.9.93 [Firefox 52.5.0/20171117140933]]
<Xach>
emaczen: but no code sharing no matter what?
<Xach>
i don't mind, but it would help me stop caring
<emaczen>
Xach: not today
<Xach>
ok
* Xach
feels released
rumbler3_ has quit [Ping timeout: 255 seconds]
<jasom>
emaczen: what happens when you modify literals (if you use backtick you may have literals and not realize it)
Guest94462 has quit [Ping timeout: 240 seconds]
<emaczen>
jasom: Huh?
<jasom>
emaczen: e.g. (setf (cdr '(1 2 3)) nil) can be different between implementations
<jasom>
emaczen: with macros you can end up doing that accidentally pretty easily
<emaczen>
jasom: Oh so I should double check ` and ,?
<jasom>
emaczen: if sbcl has no style-warnings then you are less likely to be doing it though.
<pjb>
Indeed, on some implementation, it can fail because you try to modify read-only data.
<jasom>
and on other implementations it may cause all appearances of '(1 2 3) to behave like '(1) afterwards
<Bike>
undefined behavior more generally, of course
<Bike>
a good fraction of the million ways
jfb4 has quit [Ping timeout: 255 seconds]
jfb4 has joined #lisp
hhdave has quit [Ping timeout: 264 seconds]
<emaczen>
well, I may have narrowed it down to a specific function of mine, SBCL always returns the same thing, whereas CCL does not and CCLs return value is very different each time...
<emaczen>
I still have no idea why or which implementation defined feature is causing it, but I'm getting there
<Bike>
paste the function?
hhdave has joined #lisp
rumbler31 has quit [Ping timeout: 240 seconds]
Bike has quit [Ping timeout: 260 seconds]
<emaczen>
I will if I really can't figure it out -- if I pasted it, you would need a lot of other code still
<Xach>
we can do it!!
LiamH has quit [Quit: Leaving.]
rumbler31 has joined #lisp
varjag has quit [Quit: ERC (IRC client for Emacs 25.2.1)]
<rumbler31>
did he finally paste some code?
Jesin has quit [Quit: Leaving]
drcode has quit [Ping timeout: 240 seconds]
wigust has quit [Ping timeout: 240 seconds]
pierpa has joined #lisp
damke_ has joined #lisp
SuperJen has quit [Remote host closed the connection]
SuperJen has joined #lisp
damke has quit [Ping timeout: 240 seconds]
mson has joined #lisp
sjl has quit [Ping timeout: 250 seconds]
Bike has joined #lisp
<jmercouris>
How do I convert a symbol to a string?
<jmercouris>
I have something like do-symbols in a list of symbols, I want to turn that list of symbols to a list of strings
<Bike>
you can use symbol-name to get the name of the symbol as a string.
karswell has joined #lisp
<Bike>
do you need the name of the package also?
<jmercouris>
Bike: not for now, I'll just always assume the user is in my package
_rumbler31 has joined #lisp
osune has quit [Remote host closed the connection]
hhdave has quit [Read error: Connection reset by peer]
rumbler31 has quit [Ping timeout: 255 seconds]
wxie has joined #lisp
dieggsy has joined #lisp
_rumbler31 has quit [Ping timeout: 252 seconds]
dieggsy has quit [Client Quit]
dieggsy has joined #lisp
mathi_aihtam has quit [Quit: mathi_aihtam]
neuri8- has quit [Ping timeout: 240 seconds]
jmercouris has left #lisp ["Exit."]
Kaisyu has joined #lisp
pseudonymous has quit [Ping timeout: 240 seconds]
<Xach>
it is interesting that you can make a web browser without knowing how to get a symbol name as a string.
jmercouris has joined #lisp
<whoman>
we cant all make food but we can all eat it ?
wxie has quit [Quit: Bye.]
<jasom>
what does "foreign function syscall" imply in a sbcl profile result?
jmercouris has quit [Remote host closed the connection]
<jasom>
jmercouris: symbols are also string designators so you can just do e.g. (string 'foo)