<ixelp>
GitHub - robert-strandh/Constrictor: A library that implements the functionality of the Conses dictionary of the Common [...]
<beach>
I have only a few operators left to implement, but there is still work to do.
<beach>
Only a few operators have tests (from the ANSI test suite), which of course means that there are very likely bugs in the code of the operators I have implemented.
<beach>
I have provided some documentation strings, but the remaining ones should be provided as well.
<beach>
And some operators have compiler macros associated with the, especially if they have keyword arguments. Other operators might benefit from compiler macros as well.
<beach>
So feel free to propose contributions, at least of they are in the spirit of the existing code.
<beach>
Oh, and we need a way to configure the library at compile time to allow or disallow NIL as an element of an association list.
<masinter>
what is the 'Conses dictionary" of the Common Lisp standard?
NotThatRPG has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
NotThatRPG has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<masinter>
in which Common Lisp?
<Bike>
because it's undefined how dynamic bindings are inherited
<Bike>
on many implementations that will just use the global value of *x*
NotThatRPG has joined #commonlisp
<masinter>
you pretty much have to do dynamic binding for specials if you want threads
morganw has joined #commonlisp
<nij->
I see! Thank you :)
<nij->
I wonder.. for a lisp that runs on multiple core, how does the values of dynamic variables get passed at runtime?
<masinter>
in Medley, you walk up the stack looking for bindings or cached references to where the value is bound
<nij->
But the thread may live in a core whose stack doesn't have that "global variable".
<nij->
(I hope my question makes sense.)
attila_lendvai_ has joined #commonlisp
czy has quit [Remote host closed the connection]
attila_lendvai has quit [Ping timeout: 240 seconds]
<masinter>
variables are one of constant, special, global, local
<Bike>
global variables aren't in the stack, given that the stack is not global
<masinter>
you can have a dynamic variable that bottoms out
<masinter>
or tops out, depending on how you like to call growing your stack
<masinter>
. who @ cl:constantp is bound by any
waleee has joined #commonlisp
<masinter>
symbol-value vs. eval
<masinter>
oh dear
<masinter>
i'm wrong
tyson2 has joined #commonlisp
<nij->
hmm
<piethesailor>
Anyone use :lisp-stat?
MajorBiscuit has joined #commonlisp
hineios has quit [Quit: Ping timeout (120 seconds)]
hineios has joined #commonlisp
<piethesailor>
or used
MajorBiscuit has quit [Ping timeout: 264 seconds]
tevo has quit [Ping timeout: 240 seconds]
kevingal has quit [Ping timeout: 240 seconds]
tyson2 has quit [Ping timeout: 240 seconds]
Gleefre has joined #commonlisp
tedwing has quit [Ping timeout: 264 seconds]
mgl has joined #commonlisp
Brucio-61 has quit [Ping timeout: 260 seconds]
Brucio-61 has joined #commonlisp
Brucio-61 has quit [Ping timeout: 260 seconds]
czy has joined #commonlisp
<White_Flame>
nij-: often the dynamic binding slot for that symbol is checked in the TLS structure first, and if that's an unbound marker, it hits the global symbol value
<White_Flame>
I presume it's impossible to create a dynamic binding slot that is unbound?
<White_Flame>
whereas DEFVAR can do that for its global slot
Brucio-61 has joined #commonlisp
<gilberth>
What happens when I say (defvar *x* nil) (let (*x*) (makunbound '*x*) ...) ?
<White_Flame>
I would guess makunbound only its the global, but let me test
mgl has quit [Quit: Client closed]
<White_Flame>
huh, adding *x* on the end of that does signal an unbound var error
<White_Flame>
from inside the LET
<gilberth>
Sure. What did you expect? I mean, you just unbound it, didn't you?
<White_Flame>
and *X*'s outer value is retained after exiting the LET
<Bike>
the more direct way to add a local unbinding is (progv '(*x*) () ...)
<Bike>
the terminology here is kinda stupid.
<White_Flame>
yeah, it could be that SBCL's tag of 97 in unbound TLS slots might be a different unbound marker
<gilberth>
White_Flame: Yes, and other threads don't observe that MAKUNBOUND. At the end of day there is just a special unbound value that the symbol is set to.
akoana has joined #commonlisp
NicknameJohn has joined #commonlisp
remexre has quit [Ping timeout: 268 seconds]
mgl has joined #commonlisp
avocadoist has quit [Quit: Konversation terminated!]
avocadoist has joined #commonlisp
avocadoist has quit [Client Quit]
avocadoist has joined #commonlisp
shka has quit [Ping timeout: 240 seconds]
kevingal has joined #commonlisp
ec_ has quit [Ping timeout: 240 seconds]
ec_ has joined #commonlisp
euandreh has quit [Ping timeout: 240 seconds]
Kingsy has quit [Remote host closed the connection]
LW has joined #commonlisp
euandreh has joined #commonlisp
tevo has joined #commonlisp
mason has left #commonlisp [#commonlisp]
masinter has quit [Ping timeout: 240 seconds]
nij- has quit [Ping timeout: 240 seconds]
LW has quit [Quit: WeeChat 3.8]
masinter has joined #commonlisp
tedwing has joined #commonlisp
nij- has joined #commonlisp
attila_lendvai_ has quit [Ping timeout: 256 seconds]
dino_tutter has quit [Ping timeout: 265 seconds]
akoana has quit [Quit: leaving]
pve has quit [Quit: leaving]
NicknameJohn has quit [Ping timeout: 268 seconds]
dino_tutter has joined #commonlisp
lucasta has joined #commonlisp
edgar-rft has quit [Ping timeout: 240 seconds]
mgl has quit [Quit: Client closed]
edgar-rft has joined #commonlisp
dcb has joined #commonlisp
nij- has quit [Ping timeout: 256 seconds]
edgar-rft has quit [Ping timeout: 256 seconds]
edgar-rft has joined #commonlisp
piethesailor has left #commonlisp [ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.0.90)]
kevingal has quit [Ping timeout: 240 seconds]
kevingal has joined #commonlisp
tedwing has quit [Ping timeout: 265 seconds]
lucasta has quit [Remote host closed the connection]
_dcb_ has joined #commonlisp
_dcb_ has quit [Remote host closed the connection]