lucasb has quit [Quit: Connection closed for inactivity]
buffergn0me has quit [Ping timeout: 245 seconds]
pfdietz has quit [Ping timeout: 260 seconds]
analogue has quit [Quit: Leaving]
quazimodo has joined #lisp
pjb has quit [Ping timeout: 264 seconds]
<Ober>
lot of new failures
rople has joined #lisp
buffergn0me has joined #lisp
ahungry has joined #lisp
shifty has joined #lisp
rople has quit [Ping timeout: 276 seconds]
rople has joined #lisp
ahungry has quit [Ping timeout: 268 seconds]
buffergn0me has quit [Ping timeout: 245 seconds]
igemnace has joined #lisp
igemnace has quit [Read error: Connection reset by peer]
mindthelion has joined #lisp
techquila has quit [Ping timeout: 250 seconds]
toorevitimirp has joined #lisp
igemnace has joined #lisp
dale has quit [Ping timeout: 276 seconds]
Necktwi has joined #lisp
Josh_2 has quit [Remote host closed the connection]
dale has joined #lisp
zmv has quit [Remote host closed the connection]
techquila has joined #lisp
dale has quit [Read error: Connection reset by peer]
dale has joined #lisp
marusich has joined #lisp
mindthelion has quit [Ping timeout: 265 seconds]
igemnace has quit [Remote host closed the connection]
notzmv has joined #lisp
toorevitimirp has quit [Ping timeout: 268 seconds]
toorevitimirp has joined #lisp
catalinbostan has joined #lisp
catalinbostan has quit [Read error: Connection reset by peer]
Arcaelyx has quit [Quit: Arcaelyx]
Bike has quit [Quit: Lost terminal]
Josh_2 has joined #lisp
agspathis has joined #lisp
Arcaelyx has joined #lisp
Lord_of_Life_ has joined #lisp
Lord_of_Life has quit [Ping timeout: 240 seconds]
Lord_of_Life_ is now known as Lord_of_Life
Berra has joined #lisp
<Berra>
I want to evaluate some x and then quasiquote what it evaluated to. Is this possible?
<Josh_2>
with a macro?
<Berra>
Josh_2: Hm, right so no way with just primitive quoting and eval?
mathrick has quit [Ping timeout: 264 seconds]
<Josh_2>
aren't you better off just putting the result in a list?
<Berra>
Josh_2: Then the AST wouldn't be isomorphic to what I'm trying to parse afaik
<Josh_2>
alrighty
<Berra>
It feels frustrating, I would just like to be able to define a continuation to that evaluation and quote that.
<Berra>
But any evaluation that I try to quote obviously also quotes that evaluation. There must be something I'm missing.
learning has joined #lisp
toorevitimirp has quit [Ping timeout: 240 seconds]
toorevitimirp has joined #lisp
<Josh_2>
Berra: I'm sorry but that's a bit above my pay grade xD If you wait a little while beach will probably be up and I'm sure he will be able to help if no one else has by then
lxbarbosa has quit [Remote host closed the connection]
<Berra>
Josh_2: Alright, thanks for the help anyhow.
sauvin has quit [Read error: Connection reset by peer]
toorevitimirp has quit [Ping timeout: 268 seconds]
toorevitimirp has joined #lisp
sauvin has joined #lisp
learning has quit [Remote host closed the connection]
<Berra>
Something like `',x works because the unescape still evaluates x because that's not prevented by the quote. But ``,x does not work, because the outermost quasiquote won't evaluate the escaped x because of the innermost one.
<Berra>
``,,x almost does what I want, but I don't understand why so I need to read more about quasiquote escapes..
torbo has quit [Remote host closed the connection]
toorevitimirp has quit [Ping timeout: 265 seconds]
toorevitimirp has joined #lisp
<Berra>
If x evaluates to y then ``,,x yields `,y which is isomorphic to y I think...
<Berra>
What I want to know is if it's just isomorphic or actually equal.
lxbarbosa has joined #lisp
<beach>
Good morning everyone!
mathrick has joined #lisp
Arcaelyx has quit [Quit: Arcaelyx]
ahungry has joined #lisp
buffergn0me has joined #lisp
<Berra>
It would be easy if I allowed myself to evaluate the quoting semantics in parsing, but that's incorrect, right?
<no-defun-allowed>
Yes, that would be incorrect.
<no-defun-allowed>
(let ((x 2)) `,x) would not work as the reader does not have access to the lexical environment.
<no-defun-allowed>
However, I don't think the representation of backquote is defined, so you could simplify it to (let ((x 2)) x).
<Berra>
What I'm trying to do is that I want to parse a Lisp and I want to parse it into an actual Lisp AST, since the parsing is done by a Lisp. But I'm running into this problem.
<no-defun-allowed>
Hm, so you'd like to read `x and get (quasiquote x) or something like that?
<Berra>
no-defun-allowed: Something like that, yes. But since `x represents the actual parsing of a datum (x) in this case, I need to evaluate x since the quote is not supposed to be quote x but instead that that datum is.
<Berra>
x represents say (cons x1 x2) so I need to parse into `(cons x1 x2) and not `x
<no-defun-allowed>
I think what you're asking for is different than CL quasiquote then, and I barely understand that quasiquote.
<Berra>
Ok, that's my fault. I entered #lisp because yeah- but I'm actually writing the parser in a subset of Scheme
<no-defun-allowed>
And that quasiquote is the same as Scheme quasiquote, but the representation in Scheme is defined.
<Berra>
no-defun-allowed: Will have a read and see if things become clearer
<no-defun-allowed>
Everyone that isn't Berra should mentally replace any `define` in that article with `defvar`, but it just describes what to translate in English to list building functions, so you should be okay.
<Berra>
Great stuff, thanks
vlatkoB has joined #lisp
ahungry has quit [Remote host closed the connection]
Kaisyu7 has quit [Quit: ERC (IRC client for Emacs 26.3)]
<Berra>
Problem is just those mappings really. But the representation is tripping me up. The article makes perfect sense from the perspective of interpretation and code generation, but I should refrain from such semantics in parsing right?
<Berra>
Maybe I cannot avoid doing either of two things. Either create an arbitrary representation for quotation that isn't the defacto one in the Lisp I'm wiring my parser in.
<Berra>
Or do part of the quote evaluation as I'm parting.
<no-defun-allowed>
Yeah, that translation step would be somewhere in the interpreter.
<Berra>
'('my-quasiquote x)
<no-defun-allowed>
You might write a macro for QUASIQUOTE which translates its body to that list building code.
mathrick has quit [Ping timeout: 250 seconds]
<Berra>
Thinking more about it right now I'm thinking that I can't use any of the quotation semantics of the Lisp I'm parsing with.
dale has quit [Quit: My computer has gone to sleep]
Kaisyu7 has joined #lisp
Kaisyu7 has quit [Client Quit]
manualcrank has quit [Quit: WeeChat 1.9.1]
agspathis has quit [Quit: ERC (IRC client for Emacs 27.0.50)]
makomo has joined #lisp
ltriant has quit [Quit: leaving]
<Berra>
no-defun-allowed: Well so yeah I think I need to forgo using quoting in my AST representation of the Lisp I'm parsing and just create my own symbols to represent quoting.
<Berra>
no-defun-allowed: But it still annoyed me a bit that I could figure out how to do the quoting as a continuation
<Berra>
Closest was ``,,x -> `y
<Berra>
``,, -> `,y
EvW has joined #lisp
milanj has quit [Quit: This computer has gone to sleep]
clothespin has joined #lisp
shka_ has joined #lisp
anewuser has joined #lisp
toorevitimirp has quit [Ping timeout: 265 seconds]
toorevitimirp has joined #lisp
Kaisyu7 has joined #lisp
makomo has quit [Ping timeout: 240 seconds]
toorevitimirp has quit [Ping timeout: 240 seconds]
hiroaki_ has quit [Ping timeout: 268 seconds]
JohnMS_WORK has joined #lisp
JohnMS_WORK has quit [Read error: Connection reset by peer]
shka_ has quit [Ping timeout: 276 seconds]
toorevitimirp has joined #lisp
anewuser has quit [Quit: anewuser]
JohnMS_WORK has joined #lisp
EvW has quit [Ping timeout: 245 seconds]
jonatack has quit [Quit: jonatack]
Lycurgus has joined #lisp
scymtym has quit [Ping timeout: 265 seconds]
varjag has joined #lisp
ralt has joined #lisp
khisanth_ has quit [Ping timeout: 250 seconds]
karlosz has quit [Quit: karlosz]
duuqnd has joined #lisp
frgo has quit [Ping timeout: 268 seconds]
manualcrank has joined #lisp
kajo has quit [Ping timeout: 246 seconds]
khisanth_ has joined #lisp
karlosz has joined #lisp
toorevitimirp has quit [Ping timeout: 240 seconds]
mindthelion has joined #lisp
techquila has quit [Ping timeout: 240 seconds]
gravicappa has joined #lisp
toorevitimirp has joined #lisp
buffergn0me has left #lisp ["ERC (IRC client for Emacs 26.2)"]
schjetne has joined #lisp
scymtym has joined #lisp
decent-username has joined #lisp
toorevitimirp has quit [Ping timeout: 268 seconds]
karlosz has quit [Quit: karlosz]
schjetne has quit [Ping timeout: 240 seconds]
frgo has joined #lisp
schjetne has joined #lisp
manualcrank has quit [Quit: WeeChat 1.9.1]
frgo has quit [Ping timeout: 265 seconds]
schjetne has quit [Ping timeout: 265 seconds]
toorevitimirp has joined #lisp
schjetne has joined #lisp
milanj has joined #lisp
toorevitimirp has quit [Ping timeout: 240 seconds]
toorevitimirp has joined #lisp
schjetne has quit [Ping timeout: 240 seconds]
Kaisyu7 has quit [Remote host closed the connection]
space_otter has joined #lisp
Kaisyu7 has joined #lisp
schjetne has joined #lisp
hhdave has joined #lisp
jprajzne has joined #lisp
toorevitimirp has quit [Ping timeout: 268 seconds]
toorevitimirp has joined #lisp
hhdave has quit [Ping timeout: 268 seconds]
Mandus has quit [Read error: Connection reset by peer]
Mandus has joined #lisp
schjetne has quit [Ping timeout: 265 seconds]
srji has quit [Ping timeout: 240 seconds]
<thijso>
bjorkintosh: yes, ECL on android, using EQL5-Android (port of EQL5 for android, which is Qt5 for CL). It works, mostly, but there are still a lot of issues with it (such as segfaults...)
<thijso>
LdBeth: I think I saw you had a fork of clfswm on github? Do you use it?
toorevitimirp has quit [Ping timeout: 245 seconds]
toorevitimirp has joined #lisp
schjetne has joined #lisp
heisig has joined #lisp
schjetne has quit [Ping timeout: 276 seconds]
schjetne has joined #lisp
schjetne has quit [Ping timeout: 268 seconds]
toorevitimirp has quit [Ping timeout: 240 seconds]
toorevitimirp has joined #lisp
schjetne has joined #lisp
schjetne has quit [Ping timeout: 240 seconds]
toorevitimirp has quit [Ping timeout: 240 seconds]
toorevitimirp has joined #lisp
raghavgururajan has quit [Read error: Connection reset by peer]
schjetne has joined #lisp
toorevitimirp has quit [Ping timeout: 245 seconds]
decent-username has quit [Ping timeout: 246 seconds]
toorevitimirp has joined #lisp
schjetne has quit [Ping timeout: 245 seconds]
scymtym has quit [Ping timeout: 245 seconds]
toorevitimirp has quit [Remote host closed the connection]
quazimodo has quit [Ping timeout: 240 seconds]
toorevitimirp has joined #lisp
quazimodo has joined #lisp
Lycurgus has quit [Quit: Exeunt]
toorevitimirp has quit [Remote host closed the connection]
dddddd has quit [Remote host closed the connection]
toorevitimirp has joined #lisp
zotan has quit [Quit: ZNC 1.6.5+deb1+deb9u2 - http://znc.in]
zotan has joined #lisp
Mandus has quit [Ping timeout: 268 seconds]
cosimone has joined #lisp
toorevitimirp has quit [Ping timeout: 265 seconds]
duuqnd has quit [Ping timeout: 268 seconds]
frgo has joined #lisp
frgo has quit [Remote host closed the connection]
frgo has joined #lisp
frgo has quit [Remote host closed the connection]
frgo has joined #lisp
Mandus has joined #lisp
schjetne has joined #lisp
schweers has joined #lisp
space_otter has quit [Remote host closed the connection]
schjetne has quit [Ping timeout: 250 seconds]
pjb has joined #lisp
milanj has quit [Quit: This computer has gone to sleep]
ludston has joined #lisp
quazimodo has quit [Ping timeout: 240 seconds]
hjudt has quit [Quit: leaving]
hjudt has joined #lisp
zdm has joined #lisp
schjetne has joined #lisp
duuqnd has joined #lisp
FreeBirdLjj has joined #lisp
ljavorsk has joined #lisp
orivej has joined #lisp
schjetne has quit [Ping timeout: 250 seconds]
ljavorsk has quit [Ping timeout: 245 seconds]
milanj has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
duuqnd has quit [Ping timeout: 240 seconds]
ljavorsk has joined #lisp
ebrasca has joined #lisp
rople has quit [Ping timeout: 265 seconds]
ggole has joined #lisp
<flip214>
how would a CFFI callback function refer to variables in some outer lisp function? I've got a void* available that gets passed around, but I see no mention in CFFI about getting a closure or so.
pioneer42 has joined #lisp
schjetne has joined #lisp
ljavorsk has quit [Ping timeout: 245 seconds]
bitmapper has joined #lisp
<p_l>
hmm, LispWorks personal is going to be useless on new Macs
cosimone has quit [Quit: Terminated!]
pioneer42 has left #lisp [#lisp]
<Shinmera>
flip214: you'll want to keep a table of your own that lets you get an object from that pointer/whatever.
<Shinmera>
the callback has to be toplevel, so you have to synchronise over global state.
<Shinmera>
sorry.
reggie__ has joined #lisp
shifty has quit [Ping timeout: 265 seconds]
reggie_ has quit [Ping timeout: 240 seconds]
shifty has joined #lisp
zdm has left #lisp ["nil"]
quazimodo has joined #lisp
duuqnd has joined #lisp
<lxbarbosa>
Python 3.8 is out and now it almost is becoming a subset of Lisp :D (positional only parameters and assignment expressions)
<lxbarbosa>
almost ...
<Shinmera>
Thank god Python is off-topic.
<lxbarbosa>
lol
<flip214>
Shinmera: thanks! I'd have hoped for some "easy" way ;)
<Shinmera>
Ain't hard, just annoying.
<Shinmera>
But that's C for ya
<flip214>
Shinmera: hmmm... no. CFFI could allow to use a void* to "get back" to the lisp closures (as long as the implementation supports that too, of course)
EvW has joined #lisp
schjetne has quit [Ping timeout: 276 seconds]
ludston has quit [Ping timeout: 268 seconds]
lucasb has joined #lisp
schjetne has joined #lisp
kajo has joined #lisp
<p_l>
theoretically it could provide callback to a closure in general, but yeah, implementation support needed
Lycurgus has joined #lisp
Bike has joined #lisp
shifty has quit [Ping timeout: 240 seconds]
m00natic has joined #lisp
EvW has quit [Ping timeout: 250 seconds]
Lycurgus has quit [Ping timeout: 250 seconds]
schjetne has quit [Ping timeout: 276 seconds]
schjetne has joined #lisp
cosimone has joined #lisp
lxbarbosa has quit [Remote host closed the connection]
quazimodo has quit [Ping timeout: 265 seconds]
quazimodo has joined #lisp
gxt has joined #lisp
gravicappa has quit [Ping timeout: 240 seconds]
gravicappa has joined #lisp
quazimodo has quit [Ping timeout: 240 seconds]
sellout-1 has joined #lisp
sellout- has quit [Ping timeout: 240 seconds]
Arcaelyx has joined #lisp
Berra has quit [Remote host closed the connection]
nika_ has quit [Read error: Connection reset by peer]
schweers has quit [Ping timeout: 264 seconds]
<p_l>
it has a bit more
<p_l>
but it's stretched across multiple methods
stepnem has joined #lisp
TexadimirLeanin has joined #lisp
varjag has quit [Quit: ERC (IRC client for Emacs 25.2.2)]
<TexadimirLeanin>
If I already know about c++ and c and have messed with emacs for a couple years now, how long does it take to learnt he language basics of elisp?
<TexadimirLeanin>
can you learn the language syntax and concepts of elisp in a couple days or is this a longer journey?
<Josh_2>
TexadimirLeanin Sorry, this is the IRC channel for Common Lisp, not elisp... but lisps syntax is pretty different, it won't take long to use it but I'd say it will take longer to 'get it'
<p_l>
I recommend sticking for few weeks writing some programs, then figuring if it's still a problem. and by weeks I mean weeks measured by "every weekday I wrote a small program"
decent-username has quit [Remote host closed the connection]
ljavorsk has joined #lisp
schweers has joined #lisp
schweers has quit [Client Quit]
housel has quit [Ping timeout: 245 seconds]
schjetne has joined #lisp
<p_l>
TexadimirLeanin: the point is to spend some time immersing in the language, to verify that first impression (which is invariably based on existing programming experience) doesn't cloud perception
housel has joined #lisp
<TexadimirLeanin>
p_L Josh_2 i see, this is what i suspected from what i could gleam off of my emacs config file...
notzmv has quit [Remote host closed the connection]
FreeBirdLjj has joined #lisp
slyrus_ has quit [Ping timeout: 265 seconds]
FreeBirdLjj has quit [Ping timeout: 240 seconds]
housel has quit [Ping timeout: 264 seconds]
jasom has joined #lisp
housel has joined #lisp
Oladon_work has joined #lisp
m00natic has quit [Remote host closed the connection]
clothespin has joined #lisp
karlosz has joined #lisp
jgkamat has quit [Ping timeout: 265 seconds]
<thijso>
How can I substitute a different function only if that different function (in a different package) is defined? I tried something like: (when (find-package 'dht-test) (setf (symbol-function '%debuglog) #'dht-test:%debuglog)) but then it complains about there not being a package called dht-test during compilation. This is in ECL, btw
<Bike>
instead of #'dht-test:%debuglog, (fdefinition (find-symbol "%DEBUGLOG" "DHT-TEST")), i guess
<Xach>
thijso: you could defer...like bike said
<thijso>
Ah, thanks
<thijso>
I was looking how I could do (symbol-function .. in a certain package, but that doesn't exist. Thanks, Bike
<Bike>
symbol function works with a symbol, so you just need to have the right symbol
<thijso>
yay, that seems to work
<thijso>
so (symbol-funtion (find-symbol ..)) would also work?
<thijso>
just to understand
gareppa has joined #lisp
jgkamat has joined #lisp
<Bike>
yes, fdefinition is like symbol-function except that it can also deal with setf functions.
Lycurgus has quit [Quit: Exeunt]
TexadimirLeanin has left #lisp ["no reason"]
quantico has joined #lisp
<quantico>
hi, i understand this may be the wrong place entirely to ask, but does anyone have an idea on how i may run this lisp program?
<LdBeth>
> Programmer B feels honor-bound to retain the existing abstraction, but since isn't exactly the same for every case, they alter the code to take a parameter, and then add logic to conditionally do the right thing based on the value of that parameter.
<LdBeth>
sometimes I feel I'm the Programmer B when I use a class from a CL lib
hiroaki_ has quit [Ping timeout: 246 seconds]
<Shinmera>
Sorry to hear that.
<aeth>
CL isn't a particuarly noun-based language, and deep inheritance hierarchies don't seem to be too common. The last time I used inheritance at all, it was for gray streams
<aeth>
I'm guessing CLIM is probably the major use of inheritance in CL
<Shinmera>
???
gjvc has joined #lisp
<gjvc>
i got "Lisp in small pieces" today
clothespin has quit [Ping timeout: 240 seconds]
<aeth>
Shinmera: Compare an average CLOS system to an average Java or C++ system. In the latter, you're far more likely to have to rely on flow charts of interactions between heavy inheritance-using classes, while in the former you're probably going to be working mainly with generics that are almost indistinguishable from regular functions. And quite often you're supposed to use :before/:after/:around on those to customize, instead of inheritance.
<aeth>
At least ime
<gjvc>
aeth sounds about right to me
<aeth>
Shinmera: The main place where I've personally used inheritance heavily is in the way trivial-gray-streams works (which might be one reason why they're not universally liked), and I suspect CLIM is similar but I haven't used it yet.
<aeth>
Sorry for writing it poorly the first time around, I'm exhausted
<aeth>
What I mean about noun-based is that in Java/C++/etc., your APIs are often noun-oriented, while even in CLOS-heavy CL, your APIs are probably still verb-oriented (in this case generic functions rather than regular functions)
<Shinmera>
I'm more confused about your assumption that CLIM is the only real user of inheritance hierarchies.
<aeth>
Shinmera: I didn't say "the only real user", I said "the major use" as in "the most elaborate". I haven't read any documentation as elaborate as CLIM for anything else quite like that, but feel free to show me something else.
<aeth>
It has been a while, though. Is CLIM composition over inheritance? I would be shocked.
<Shinmera>
Mixins and the resulting hierarchies are not an uncommon strategy at all
<jackdaniel>
clim is mostly arranged around protocols
<selwyn>
what is objectionable in trivial-gray-streams?
sjl has quit [Quit: WeeChat 2.3-dev]
<aeth>
Is there a better example for elaborate use of inheritance then?
<Shinmera>
selwyn: Some of the generic functions are in the CL pcakage, others are not.
<Shinmera>
selwyn: It's slow.
<Shinmera>
selwyn: That's about it
<jackdaniel>
protocol classes indeed are meant to be inherited from, but that is more a signal, that this class implements said protocol
<aeth>
If CLIM doesn't count then it's literally just gray streams as far as elaborate inheritance goes, at least what I've encountered personally.
<jackdaniel>
unless you inherit from standard-foo (instead of the protocol class foo), you need to implement foo's protocols all by yourself
<aeth>
(And gray streams aren't that elaborate.)
<aeth>
selwyn: It's controversial enough of an API to have at least one (probably more) alternative, as well as not being added to the base language itself (I think it was a proposal, wasn't it?)
<selwyn>
i think it was
<Shinmera>
I don't think I've ever heard of an alternative
<jackdaniel>
trivial gray streams were a rejected proposal but are useful enough to be included in most implementations
<jackdaniel>
some slowness may come from the gf dispatch, but other than that it is the programmer fault if they are slow
<aeth>
Shinmera: SBCL has three extensions included, including gray streams and simple streams, where the latter is an alternative to the former. http://www.sbcl.org/manual/#Streams
<Shinmera>
Ah, interesting.
<aeth>
Where there's two there's probably many, so I wouldn't be surprised if there's a few more on some dark corner of the Internet, perhaps from the mid 90s
<aeth>
Those are the only ones I'm aware of, though