jackdaniel changed the topic of #commonlisp to: Common Lisp, the #1=(programmable . #1#) programming language | Wiki: <https://www.cliki.net> | IRC Logs: <https://irclog.tymoon.eu/libera/%23commonlisp> | Cookbook: <https://lispcookbook.github.io/cl-cookbook> | Pastebin: <https://plaster.tymoon.eu/>
Gleefre has quit [Remote host closed the connection]
Gleefre has joined #commonlisp
tibfulv has quit [Remote host closed the connection]
tibfulv has joined #commonlisp
cosmeve has quit [Ping timeout: 255 seconds]
yitzi has quit [Remote host closed the connection]
cosmeve has joined #commonlisp
cosmeve has quit [Ping timeout: 255 seconds]
cosmeve has joined #commonlisp
Lord_of_Life has quit [Ping timeout: 240 seconds]
Lord_of_Life has joined #commonlisp
cosmeve has quit [Ping timeout: 272 seconds]
cosmeve has joined #commonlisp
anticomputer has quit [Remote host closed the connection]
anticomputer has joined #commonlisp
cosmeve has quit [Ping timeout: 255 seconds]
cosmeve has joined #commonlisp
bjorkintosh has quit [Ping timeout: 252 seconds]
waleee has quit [Ping timeout: 246 seconds]
waleee has joined #commonlisp
yottabyte has quit [Quit: Connection closed for inactivity]
cosmeve has quit [Ping timeout: 260 seconds]
cosmeve has joined #commonlisp
cosmeve has quit [Ping timeout: 240 seconds]
dcb has quit [Quit: MSN Messenger 4.0.5]
cosmeve has joined #commonlisp
habamax has quit [Ping timeout: 264 seconds]
tyson2 has quit [Remote host closed the connection]
waleee has quit [Ping timeout: 255 seconds]
habamax has joined #commonlisp
thuna` has quit [Remote host closed the connection]
tyson2 has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
Pixel_Outlaw has quit [Quit: Leaving]
Pixel_Outlaw has joined #commonlisp
azimut has quit [Ping timeout: 252 seconds]
anticomputer_ has joined #commonlisp
azimut has joined #commonlisp
anticomputer has quit [Ping timeout: 252 seconds]
Pixel_Outlaw has quit [Quit: Leaving]
dinomug has joined #commonlisp
Gleefre has quit [Ping timeout: 245 seconds]
cosmeve has quit [Ping timeout: 264 seconds]
shka has joined #commonlisp
cosmeve has joined #commonlisp
danse-nr3 has joined #commonlisp
msavoritias has joined #commonlisp
LW has joined #commonlisp
Cymew has joined #commonlisp
Inline has joined #commonlisp
rgherdt has joined #commonlisp
cosmeve has quit [Ping timeout: 255 seconds]
cosmeve has joined #commonlisp
notzmv has quit [Ping timeout: 240 seconds]
pve has joined #commonlisp
cosmeve has quit [Ping timeout: 255 seconds]
bilegeek has quit [Quit: Leaving]
cosmeve has joined #commonlisp
zaymington has joined #commonlisp
cosmeve has quit [Ping timeout: 255 seconds]
cosmeve has joined #commonlisp
danse-nr3_ has joined #commonlisp
rgherdt has quit [Remote host closed the connection]
rgherdt has joined #commonlisp
thollief has joined #commonlisp
danse-nr3 has quit [Ping timeout: 260 seconds]
danse-nr3 has joined #commonlisp
danse-nr3_ has quit [Quit: Leaving]
awkravchuk has joined #commonlisp
bendersteed has joined #commonlisp
habamax has quit [Quit: ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.1)]
danse-nr3 has quit [Read error: Connection reset by peer]
danse-nr3_ has joined #commonlisp
bendersteed has quit [Quit: bendersteed]
bendersteed has joined #commonlisp
azimut has quit [Remote host closed the connection]
rtypo has quit [Ping timeout: 260 seconds]
lucerne has quit [Ping timeout: 255 seconds]
azimut has joined #commonlisp
rgherdt has quit [Ping timeout: 248 seconds]
loke has quit [Ping timeout: 240 seconds]
cosmeve has quit [Ping timeout: 272 seconds]
cosmeve has joined #commonlisp
igemnace has quit [Remote host closed the connection]
Pirx has joined #commonlisp
bendersteed has quit [Remote host closed the connection]
bendersteed has joined #commonlisp
loke has joined #commonlisp
<Pirx> good morning
varjag has joined #commonlisp
cosmeve has quit [Ping timeout: 255 seconds]
rogersm has quit [Quit: Leaving...]
cosmeve has joined #commonlisp
loke has quit [Ping timeout: 255 seconds]
zaymington has quit [Remote host closed the connection]
zaymington has joined #commonlisp
cosmeve has quit [Ping timeout: 255 seconds]
cosmeve has joined #commonlisp
rgherdt has joined #commonlisp
bendersteed has quit [Quit: bendersteed]
mgl has joined #commonlisp
rgherdt_ has joined #commonlisp
dino_tutter has joined #commonlisp
cosmeve has quit [Ping timeout: 255 seconds]
rgherdt has quit [Ping timeout: 246 seconds]
cosmeve has joined #commonlisp
cosmeve has quit [Ping timeout: 258 seconds]
attila_lendvai has joined #commonlisp
cosmeve has joined #commonlisp
loke has joined #commonlisp
notzmv has joined #commonlisp
danse-nr3_ has quit [Ping timeout: 240 seconds]
azimut has quit [Ping timeout: 252 seconds]
loke has quit [Ping timeout: 272 seconds]
liminality has joined #commonlisp
bendersteed has joined #commonlisp
herjazz has joined #commonlisp
gko`` has quit [Read error: Connection reset by peer]
_cymew_ has joined #commonlisp
dinomug has quit [Remote host closed the connection]
luna-is-here has quit [Ping timeout: 245 seconds]
danse-nr3_ has joined #commonlisp
luna-is-here has joined #commonlisp
kstuart has joined #commonlisp
simendsjo has joined #commonlisp
loke has joined #commonlisp
luna-is-here has quit [Ping timeout: 255 seconds]
loke has quit [Ping timeout: 260 seconds]
LW has quit [Quit: WeeChat 3.8]
habamax has joined #commonlisp
cosmeve has quit [Read error: Connection reset by peer]
karlosz has joined #commonlisp
luna-is-here has joined #commonlisp
anticrisis has quit [Read error: Connection reset by peer]
cosmeve has joined #commonlisp
pawa2 has joined #commonlisp
lucerne has joined #commonlisp
Gleefre has joined #commonlisp
cosmeve has quit [Ping timeout: 255 seconds]
cosmeve has joined #commonlisp
liminality has quit [Ping timeout: 255 seconds]
liminality has joined #commonlisp
loke has joined #commonlisp
loke has quit [Ping timeout: 255 seconds]
yitzi has joined #commonlisp
cognemo has quit [Remote host closed the connection]
cognemo has joined #commonlisp
cognemo has quit [Remote host closed the connection]
danse-nr3__ has joined #commonlisp
cognemo has joined #commonlisp
danse-nr3_ has quit [Read error: Connection reset by peer]
cognemo has quit [Remote host closed the connection]
cognemo has joined #commonlisp
cognemo has quit [Remote host closed the connection]
cognemo has joined #commonlisp
cognemo has quit [Remote host closed the connection]
cognemo has joined #commonlisp
danse-nr3__ has quit [Ping timeout: 258 seconds]
<Inline> morning
cognemo has quit [Remote host closed the connection]
<beach> Hello Inline.
<Inline> hello beach
jonatack has quit [Ping timeout: 258 seconds]
cognemo has joined #commonlisp
cognemo has quit [Remote host closed the connection]
habamax has quit [Remote host closed the connection]
cognemo has joined #commonlisp
cognemo has quit [Remote host closed the connection]
loke has joined #commonlisp
loke has quit [Ping timeout: 255 seconds]
cognemo has joined #commonlisp
cognemo has quit [Remote host closed the connection]
tyson2 has joined #commonlisp
jonatack has joined #commonlisp
<edgar-rft> (declaim (inline morning))
cosmeve has quit [Ping timeout: 255 seconds]
Gleefre has quit [Remote host closed the connection]
Gleefre has joined #commonlisp
dirtcastle has quit [Ping timeout: 258 seconds]
deadmarshal has quit [Ping timeout: 240 seconds]
<Pirx> good morning
<Pirx> oops
bendersteed has quit [Quit: bye]
cosmeve has joined #commonlisp
Gleefre has quit [Remote host closed the connection]
loke has joined #commonlisp
Gleefre has joined #commonlisp
seok has joined #commonlisp
loke has quit [Ping timeout: 258 seconds]
<seok> The term hash table refers to data structures which implements key-value data structures through use of hash function matching on the keys. Is there a term which is more general to this kind of structures which not only refers to such implementations but all kinds of structures which describes hierarchal objects referenced by keys, including arrays
<seok> (refers by number), classes and other key-value implements like dictionaries
<bike> what's hierarchical about them?
rgherdt_ has quit [Remote host closed the connection]
<seok> well you have the origin object, such as the hash table, and children objects which can be referenced by keys on the origin object
<seok> Is that not a hierarchal structure?
<seok> although you can have looping references, we could say those are special cases
<bike> well, if that's hierarchical pretty much any kind of data structure would be, is all
<seok> It would seem so
<bike> you say "hierarchical" and i think something with multiple defined levels of hierarchy, like a tree
<Shinmera> pointer soup? :)
<seok> A tree is indeed a hierarchy, but in a way, isn't every data structure a tree?
rgherdt has joined #commonlisp
<Shinmera> no
<seok> what's not a tree?
<Shinmera> a cycle
<bike> arrays?
<seok> well lists are trees in lisp, and they can be cyclic lists
<Shinmera> no
<Shinmera> a tree by definition is acyclic
<Shinmera> if you change what that definition is you're speaking a different language
<seok> ok, we could limit trees to structures that do not have cyclic references, and if we say only these kinds of structures are hierarchal, then my initial question would be wrongly worded as I referred to hash tables as a kind of hierarchal structure
<Shinmera> i have no idea what you're going on about in general or what the point of this is meant to be
dino_tutter has quit [Ping timeout: 264 seconds]
<Shinmera> or how it relates to lisp
<Shinmera> for that matter
<seok> its a conceptual topic that would be used in lisp, are those off limits?
<Shinmera> it seems like an exercise in semantic pedantry, which I would hope is off topic since it's tedious and little else
<Shinmera> but again I have no idea what you're going on about or why
avocadoist has joined #commonlisp
<bike> i don't think there si any commonly used term to encompass both associative arrays and regular arrays while excluding other containers like sets.
<seok> Hm ok
loke has joined #commonlisp
<Pirx> "indexed list" works for hashlists and arrays (difference is hashtables are not ordered)
random-nick has joined #commonlisp
triffid has joined #commonlisp
dirtcastle has joined #commonlisp
deadmarshal_ has joined #commonlisp
bjorkintosh has joined #commonlisp
bjorkintosh has joined #commonlisp
danse-nr3 has joined #commonlisp
bendersteed has joined #commonlisp
loke has quit [Ping timeout: 255 seconds]
herjazz has quit [Quit: leaving]
phantomics has joined #commonlisp
<phantomics> Does anyone know what's going on with this? (let ((*readtable* (copy-readtable *readtable* nil))) (set-macro-character #\~ handler-function nil *readtable*) (slot-value *readtable* 'sb-impl::extended-char-table))
<phantomics> It gives me a 0-member hash table (note this is SBCL-specific)
<phantomics> I'm trying to create a reader macro for a character but it doesn't work and my (set-macro-character) doesn't seem to cause any change in the readtable
notzmv has quit [Ping timeout: 260 seconds]
<beach> It should.
<yitzi> Why are you using slot-value? Why not just call get-macro-character?
deadmarshal_ has quit [Ping timeout: 240 seconds]
dirtcastle has quit [Ping timeout: 260 seconds]
cosmeve has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
ec has quit [Ping timeout: 252 seconds]
<phantomics> get-macro-character returns it, but evaluating code inside the (let) form still doesn't work as if the reader macro is enabled
<beach> phantomics: The entire form is read before *READTABLE* is bound.
ec has joined #commonlisp
zxcvz has joined #commonlisp
<phantomics> If I throw an (eval "...") into the form it doesn't get applied
<phantomics> In practice what I do is I have a macro that builds the (let) form around an invocation of (asdf:load-system something)
<beach> phantomics: Did you see what I wrote?
<beach> phantomics: You may try using (READ-FROM-STRING "...") inside the LET.
<phantomics> Yes, I know the form is read without the readtable being changed, but if use a macro to wrap a (let) form around an invocation of (asdf:load-system ...) then the compilation of its code isn't using the macro as far as I can see
<phantomics> Now I'm doing a (load) in there and it's appearing to work. I'll see if I can make it work in practice
<beach> phantomics: Are you sure your files got recompiled, so that the FASL was not used?
<phantomics> That may have been it
alphacentauri has quit [Ping timeout: 255 seconds]
cognemo has joined #commonlisp
<beach> Was it?
simendsjo has quit [Ping timeout: 272 seconds]
seok has quit [Quit: Client closed]
seok has joined #commonlisp
thonkpod has quit [Ping timeout: 258 seconds]
thonkpod has joined #commonlisp
dirtcastle has joined #commonlisp
deadmarshal_ has joined #commonlisp
deadmarshal_ has quit [Ping timeout: 245 seconds]
dirtcastle has quit [Ping timeout: 252 seconds]
loke has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
<Shinmera> ASDF massages the readtable
<Shinmera> you should use named-readtables and add an in-readtable to the top of each of your source files.
loke has quit [Ping timeout: 245 seconds]
<phantomics> Hmm, that's not going to scale to my use case, the idea is creating a reader macro that can be applied to any system without needing to change the system
<phantomics> Hence my approach of doing (let ((*readtable* changed-readtable)) (asdf:load-system system-name))
<mfiano> Also note that user code needs to switch the readtable too
<phantomics> One other thing, is there a good straightforward way of checking whether a character is eligible for use in an unescaped symbol? So far I'm just checking for membership in '(#\ #\Tab #\Newline #\Return)
<phantomics> The idea in my system is that the readtable will be switched during a specific step in the build process
<mfiano> For the symbol question, see the reader algorithm in clhs
jrm has quit [Quit: ciao]
luna-is-here has quit [Ping timeout: 260 seconds]
<yitzi> phantomics: Some of the implementations have pretty complex tests for that. Here is a basic one that is pretty untested: https://github.com/s-expressionists/Incless/blob/c198fdfb93a287baf124488dbf719f8d68e38cf8/src/symbol.lisp#L69-L84
jrm has joined #commonlisp
rgherdt_ has joined #commonlisp
<phantomics> Neat, thanks
dcb has joined #commonlisp
<mfiano> Good implementation there.
rgherdt has quit [Ping timeout: 272 seconds]
<yitzi> thx
jrm has quit [Quit: ciao]
<mfiano> Ah
<mfiano> Problem
<yitzi> oh?
<mfiano> (quote-symbol-p "1.12\34")
jrm has joined #commonlisp
varjag has quit [Quit: ERC (IRC client for Emacs 27.1)]
<mfiano> Let me wake up a bit before I comment further :)
<yitzi> Did you mean two backslashes there? One will just result in "3"
<yitzi> Or just that it returns NIL?
<mfiano> Yes, typo, sorry. Looks good.
alphacentauri has joined #commonlisp
<mfiano> Is it expected that the representation for a number could return either?
<yitzi> I dunno. I am wondering if the decimal place is confusing it.
<mfiano> Not sure it really matters, because of how the reader is specified
<mfiano> but "1.2d0" vs "1.2D0" for example.
lispmacs[work] has quit [Remote host closed the connection]
<yitzi> Looks like there is a bug for the decimal: https://plaster.tymoon.eu/view/3976
danse-nr3 has quit [Read error: Connection reset by peer]
danse-nr3 has joined #commonlisp
liminality has quit [Ping timeout: 255 seconds]
loke has joined #commonlisp
rgherdt_ has quit [Ping timeout: 260 seconds]
dirtcastle has joined #commonlisp
deadmarshal has joined #commonlisp
rgherdt has joined #commonlisp
Gleefre has quit [Remote host closed the connection]
Gleefre has joined #commonlisp
_cymew_ has quit [Ping timeout: 240 seconds]
remexre has quit [Ping timeout: 240 seconds]
loke has quit [Ping timeout: 255 seconds]
luna-is-here has joined #commonlisp
yitzi has quit [Remote host closed the connection]
liminality has joined #commonlisp
Pixel_Outlaw has joined #commonlisp
pawa2 has quit [Quit: leaving]
Gleefre has quit [Remote host closed the connection]
Gleefre has joined #commonlisp
notzmv has joined #commonlisp
dirtcastle has quit [Ping timeout: 240 seconds]
azimut has joined #commonlisp
deadmarshal has quit [Ping timeout: 248 seconds]
loke has joined #commonlisp
danse-nr3 has quit [Ping timeout: 264 seconds]
remexre has joined #commonlisp
danse-nr3 has joined #commonlisp
bendersteed has quit [Quit: bendersteed]
loke has quit [Ping timeout: 255 seconds]
danse-nr3 has quit [Remote host closed the connection]
danse-nr3 has joined #commonlisp
mgl has quit [Ping timeout: 246 seconds]
limiduality has joined #commonlisp
cage has joined #commonlisp
Spawns_Carpeting has quit [Quit: ZNC 1.8.2+deb2+b1 - https://znc.in]
liminality has quit [Ping timeout: 258 seconds]
_whitelogger has joined #commonlisp
awkravchuk has quit [Quit: KVIrc 5.0.1 Aria http://www.kvirc.net/]
Brucio-61 has quit [Remote host closed the connection]
deadmarshal_ has joined #commonlisp
dirtcastle has joined #commonlisp
Gleefre has quit [Remote host closed the connection]
Gleefre has joined #commonlisp
Brucio-61 has joined #commonlisp
danse-nr3 has quit [Ping timeout: 260 seconds]
yitzi has joined #commonlisp
seok has quit [Quit: Client closed]
seok has joined #commonlisp
MoxiePug has joined #commonlisp
loke has joined #commonlisp
MoxiePug has quit [Quit: Leaving]
<Pixel_Outlaw> I'm relatively new to threads in Common Lisp, are there rough edges to watch out for given they were not in the original spec? Is stuff like Let and friends safe for threads?
contrapunctus has quit [Ping timeout: 258 seconds]
<bike> Pixel_Outlaw: sure. keep in mind that special variable bindings are thread local but the global variable is shared (and so you should only access it synchronized)
contrapunctus has joined #commonlisp
simendsjo has joined #commonlisp
<Pixel_Outlaw> Thanks for the insight. :)
loke has quit [Ping timeout: 245 seconds]
Brucio-61 has quit [Remote host closed the connection]
Brucio-61 has joined #commonlisp
seok has quit [Quit: Client closed]
seok has joined #commonlisp
jello_pudding has quit [Ping timeout: 272 seconds]
seok has quit [Quit: Client closed]
seok has joined #commonlisp
jello_pudding has joined #commonlisp
rtypo has joined #commonlisp
msavoritias has quit [Remote host closed the connection]
amb007 has quit [Ping timeout: 240 seconds]
amb007 has joined #commonlisp
contrapunctus has left #commonlisp [#commonlisp]
contrapunctus has joined #commonlisp
loke has joined #commonlisp
amb007 has quit [Ping timeout: 264 seconds]
_cymew_ has joined #commonlisp
_whitelogger has joined #commonlisp
loke has quit [Ping timeout: 260 seconds]
avocadoist has quit [Ping timeout: 264 seconds]
mgl has joined #commonlisp
avocadoist has joined #commonlisp
anticrisis has joined #commonlisp
<bjorkintosh> hmm. is nodgui a good way to do GUIs in cl?
thuna` has joined #commonlisp
alphacentauri has quit [Quit: WeeChat 4.0.5]
alphacentauri has joined #commonlisp
tibfulv has quit [Remote host closed the connection]
tibfulv has joined #commonlisp
contrapunctus has left #commonlisp [#commonlisp]
Everything has left #commonlisp [#commonlisp]
<Gleefre> I wrote a macro MLET that is (kinda) same to MACROLET as FLET is to LABELS. Is there any existing library that provides such a macro?
<Gleefre> My version is here: https://plaster.tymoon.eu/view/3977#3977
<Gleefre> I'm asking mostly because I'm not sure it works without bugs, as it uses &environment argument to macro (twice!), macro-function and embeds a function object as a literal object into code during macroexpansion...
<Pixel_Outlaw> bjorkintosh, I've done a bit of LTK which is fine for simple forms but not good for speedy raster rendering. I think it might be built on it as a Tcl thing.
amb007 has joined #commonlisp
<Pixel_Outlaw> If you're doing form bassed stuff and just want callbacks TCL can be OKish. If you need fast realtime rendering and more threaded structure other toolkits might be better.
<bjorkintosh> Pixel_Outlaw, 'other' being?
<Pixel_Outlaw> Something like GTK or similar. Though I think there are currently portability problems if I recall.
<Pixel_Outlaw> Something about a main thread locking/freezing on Windows.
<bjorkintosh> ah great.
<Pixel_Outlaw> However, since the TK stuff is message based you can always just send raw TK and have the latest features provided by Tk.
<Pixel_Outlaw> I would just never use it for realtime drawing and such because the canvas widget expects to store and render geometric shapes ... slowly.
<bjorkintosh> oh this is a GUI app I'm thinking of, not a drawing app.
<Pixel_Outlaw> But if you're recreating some data collection tool it's nice-enough-p.
<bjorkintosh> more on the WIMPy side of things than the CAD/Paint side.
Cymew has quit [Ping timeout: 245 seconds]
<Pixel_Outlaw> Should be OK for that.
loke has joined #commonlisp
anticomputer_ has quit [Ping timeout: 252 seconds]
anticomputer has joined #commonlisp
zxcvz has quit [Quit: zxcvz]
cage has quit [Remote host closed the connection]
loke has quit [Ping timeout: 258 seconds]
<Pixel_Outlaw> Oh, one other thing. I believe destroying child nodes in the GUI are not provided by default in the CL wrapper and I had to look up that stuff. If you want a dynamic gui (populating options and removing them) you might have to look up the Tk command and send it directly.
ezakimak_ has quit [Quit: No Ping reply in 180 seconds.]
<Pixel_Outlaw> You need to "destroy" those not "delete" them.
ezakimak has joined #commonlisp
thollief has quit [Quit: Leaving]
alphacentauri has quit [Quit: WeeChat 4.0.5]
alphacentauri has joined #commonlisp
yitzi has quit [Remote host closed the connection]
seok has quit [Quit: Client closed]
seok has joined #commonlisp
hrberg has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
hrberg has joined #commonlisp
lagash has quit [Remote host closed the connection]
lagash has joined #commonlisp
Inline has quit [Quit: Leaving]
mgl has quit [Ping timeout: 255 seconds]
kstuart has quit [Remote host closed the connection]
Inline has joined #commonlisp
triffid has quit [Remote host closed the connection]
triffid has joined #commonlisp
_cymew_ has quit [Ping timeout: 258 seconds]
dino_tutter has joined #commonlisp
Gleefre has quit [Remote host closed the connection]
Gleefre has joined #commonlisp
triffid has quit [Quit: triffid]
amb007 has quit [Ping timeout: 248 seconds]
amb007 has joined #commonlisp
jmdaemon has joined #commonlisp
pve has quit [Quit: leaving]
loke has joined #commonlisp
simendsjo has quit [Ping timeout: 255 seconds]
akoana has joined #commonlisp
rgherdt has quit [Ping timeout: 240 seconds]
karlosz has quit [Quit: karlosz]
loke has quit [Ping timeout: 258 seconds]
attila_lendvai has quit [Ping timeout: 248 seconds]
habamax has joined #commonlisp
jmdaemon has quit [Ping timeout: 264 seconds]
jmdaemon has joined #commonlisp
mgl has joined #commonlisp
loke has joined #commonlisp
Pirx has quit [Ping timeout: 255 seconds]
tyson2 has joined #commonlisp
limiduality has quit [Ping timeout: 272 seconds]
dino_tutter has quit [Ping timeout: 264 seconds]
Gleefre has quit [Remote host closed the connection]
Gleefre has joined #commonlisp
Gleefre has quit [Ping timeout: 245 seconds]
Gleefre has joined #commonlisp
Gleefre has quit [Remote host closed the connection]
herjazz has joined #commonlisp
Gleefre has joined #commonlisp
loke has quit [Ping timeout: 272 seconds]
akoana has quit [Quit: leaving]
random-nick has quit [Ping timeout: 255 seconds]
tibfulv has quit [Remote host closed the connection]
tibfulv has joined #commonlisp
<Gleefre> Hm, is there some way to define a macro accessor with "custom" defmacro like let-over-lambda's defmacro! ?
<Gleefre> An example would be (defmacro xx () '*x*) - XX is setfable here, as it will macroexpand into *X* which does represent a place.
<Gleefre> But (lol:defmacro! xx2 () '*X*) would result in an unsetfable macro as it will macroexpand into (LET () *X*) which is not setfable :(
tibfulv has quit [Remote host closed the connection]
tibfulv has joined #commonlisp
amb007 has quit [Ping timeout: 240 seconds]
amb007 has joined #commonlisp
markb1 has quit [Ping timeout: 248 seconds]
markb1 has joined #commonlisp
jmdaemon has quit [Ping timeout: 260 seconds]
yitzi has joined #commonlisp
<ixelp> CLHS: Macro DEFINE-SETF-EXPANDER
Gleefre has quit [Ping timeout: 245 seconds]
cosmeve has joined #commonlisp
loke has joined #commonlisp
Gleefre has joined #commonlisp
<Gleefre> moon-child: Thanks for responce! I tried to come up with a way of using define-setf-expander here, but failed.
<Gleefre> In particular it seems that you cannot use it on symbols in CL package :/
<moon-child> that's right, you are not allowed to redefine things in the cl package
<bike> Gleefre: you can define a setf expander for xx2 regardless of how xx2 itself is defined, is the point.
<bike> if you want "defmacro! but works for setf" that's basically a matter of defmacro! being written appropriately
<Gleefre> bike: Aha, I see, I though for some reason that the xx2 will expand first in any case.
<bike> defining a setf expander for let is not the best path forward, if that's what you tried to do
<bike> nope, setf is specifically defined to go for macroexpansion last
<Gleefre> Hm, I suppose it should be possible to write a simple "wrapper" to let - say %let, that macroexpands to let but has a setf-expander
<bike> clhs 5.1.2.7
<bike> god damn robots
<Gleefre> Although my original problem was with macrolet rather than let, so I should be able to make it work even if it has bindings by applying macroexpand-all first.
<yitzi> bike: I think you need two colons in front now.
<yitzi> ::clhs 5.1.2.7
<ixelp> CLHS: Section 5.1.2.7
loke has quit [Ping timeout: 260 seconds]
<bike> thanks
<yitzi> np
<yitzi> I seem to recall that specbot is broke ... or something.
<moon-child> well that's ... one way to do it
<Gleefre> So it seems like that should work, right? https://plaster.tymoon.eu/view/3978#3978
<moon-child> I guess...
<Gleefre> I should be able to successfully macroexpand-all & discard macrolet + bindings part in define-setf-expander, if I'm not mistaken
cosmeve has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<Gleefre> ... Although it seems that it would only work if the macroexpand-all uses the environment object :/
<Gleefre> At least it doesn't work on CLISP for example
<Gleefre> Oh, CLISP's macroexpantion doesn't have the macrolet part
mgl has quit [Ping timeout: 255 seconds]
<Gleefre> It seems that calling macroexpand-all on macrolet doesn't guarantee anything :/ CCL returns (progn ...), ABCL - (locally ...), most implementations return (macrolet ...), CLISP returns just the body...
<bike> this is probably not the best way to do whatever you're trying to do. defmacro! already is pretty sketchy
<Gleefre> Well, I started talking about defmacro! because thought that it was a simpler case