NotThatRPG_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
mange has joined #commonlisp
amb007 has joined #commonlisp
rkazak has quit [Ping timeout: 260 seconds]
amb007 has quit [Ping timeout: 245 seconds]
dajole has joined #commonlisp
rkazak has joined #commonlisp
nuitsamedi has joined #commonlisp
samedi has quit [Ping timeout: 248 seconds]
zenmov has joined #commonlisp
rkazak has quit [Ping timeout: 276 seconds]
rkazak has joined #commonlisp
nuitsamedi has quit [Quit: Leaving]
nuitsamedi has joined #commonlisp
nuitsamedi is now known as samedi
random-nick has quit [Ping timeout: 245 seconds]
rkazak has quit [Ping timeout: 246 seconds]
NotThatRPG has joined #commonlisp
NotThatRPG has quit [Client Quit]
kurfen_ has joined #commonlisp
kurfen has quit [Ping timeout: 276 seconds]
chum-cha has joined #commonlisp
eddof13 has joined #commonlisp
rkazak has joined #commonlisp
kmroz has quit [Ping timeout: 245 seconds]
ebrasca has quit [Ping timeout: 245 seconds]
kmroz has joined #commonlisp
Everything has quit [Quit: leaving]
cow_2001 has quit [Quit: ✡]
cow_2001 has joined #commonlisp
NotThatRPG has joined #commonlisp
rkazak has quit [Ping timeout: 260 seconds]
eddof13 has quit [Quit: eddof13]
amb007 has joined #commonlisp
amb007 has quit [Ping timeout: 260 seconds]
brokkoli_origin has quit [Ping timeout: 245 seconds]
brokkoli_origin has joined #commonlisp
GalaxyNova has quit [Remote host closed the connection]
vardhan has joined #commonlisp
pranav has quit [Remote host closed the connection]
rkazak has joined #commonlisp
pranav has joined #commonlisp
rkazak has quit [Ping timeout: 248 seconds]
chum-cha has quit [Ping timeout: 245 seconds]
NotThatRPG has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
NotThatRPG has joined #commonlisp
puke has joined #commonlisp
gorignak has joined #commonlisp
NotThatRPG has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
rkazak has joined #commonlisp
zlqrvx has quit [Ping timeout: 252 seconds]
<phantomics>
Does anyone know what determines the package creating the context when you (load) a file? I tried loading one and printing (package-name *package*) in the loaded code and it was common-lisp-user
<phantomics>
Then I tried (let ((*package* (find-package :name))) (load ...)) and it hadn't changed. I also tried reading and evaling the individual sexprs from the file in the same (let) form, same result
zlqrvx has joined #commonlisp
rkazak has quit [Ping timeout: 245 seconds]
samedi has quit [Quit: Leaving]
<beach>
phantomics: It is the package from which the file was loaded.
<beach>
I mean, the package that was the current package when the file was loaded.
<phantomics>
Ok, the loading happened in a file that belonged to the desired package, but somehow printing *package* produces common-lisp-user
<phantomics>
The file doesn't have the .lisp extension but I can't see how that would cause this
<beach>
I can't repeat that. If I load a file while the current package is (say) FOO, the value of *PACKAGE* is that FOO package when the file is loaded.
<beach>
Now, the package used when the file is loaded is not necessarily the current package when the loading code is read.
<phantomics>
I'll see if I can replicate this with a minimal config, the file contains one big macro
<beach>
So it must be that the loading code modifies the current package while the file is loaded.
<phantomics>
There's a chain of macroexpansions leading up to this, must be something happening in that process
<beach>
Must be.
<phantomics>
Thanks for confirming what I thought about (load)
King_julian has quit [Read error: Connection reset by peer]
Noisytoot has joined #commonlisp
rkazak has joined #commonlisp
rainthree has joined #commonlisp
mwnaylor has quit [Ping timeout: 246 seconds]
rkazak has quit [Ping timeout: 248 seconds]
<selpoke>
are there any common lisp implementations or extensions that make it possible to make a structure inherit from a subclass of standard-class?
<selpoke>
i am writing a protocol and it would be nice to have a struct inheriting from the protocol class somehow
random-nick has joined #commonlisp
<jackdaniel>
it isn't
<selpoke>
:( i expected as much
<jackdaniel>
instances of standard-class can be redefined, so the memory layout is fundamentally incompatible
<selpoke>
ok
<beach>
jackdaniel: What makes you say that the memory layout is incompatible?
<jackdaniel>
in a structure once the allocation and order of slots is decided it can't be changed, especially when another structure "includes" our
<beach>
But it could still have the same memory layout.
<jackdaniel>
OK, technically that would not be non-conforming
<beach>
Why "technically"?
<jackdaniel>
because structures can be specified to be represented as specialized vectors of elements, so either you screw up the upgraded array type, or you do some silly things with standard classses
<jackdaniel>
s/classses/classes/
khrbtxyz has quit [Ping timeout: 272 seconds]
khrbtxyz has joined #commonlisp
<beach>
That's a strange argument, because structs can be represented as lists as well, and lists and vectors are incompatible. I thought we were talking about structs as represented neither by vectors not by lists.
<jackdaniel>
if we talk about compatibility between objects A and B, we need to account for all variants of either? oh well, I have better things to do now, so have it your way
<beach>
selpoke: It is, but it will likely never be finished.
<selpoke>
oh dear
<beach>
selpoke: My favorite coauthor was essential for continuing, and she now has better things to do. It happens.
<scymtym>
i think xof had ideas for structure classes as subclasses of standard classes (or the other way around)
<beach>
selpoke: In SICL, you won't be able to inherit from a standard class, but you will be able to do something like (defclass my-struct () (...) (:metaclass structure-class)) and stucture instances are instances of subclasses of STANDARD-OBJECT, so they have the same layout. But most implementations will not represent struct instances as standard objects.
<beach>
selpoke: And the reason for that is performance; Common Lisp structures were defined that way so that you won't need an indirection the way you do for standard objects.
<selpoke>
i see
<scymtym>
aren't there ways to implement standard objects mostly without indirection in the sense that change-class introduces a temporary indrection and the next gc removes it again? i think hayley or dougk or both mentioned something like that
<beach>
That's entirely possible.
<beach>
I haven't looked into such possibilities.
<selpoke>
i would like to have a performant implementation of my protocol in addition to one that is easily verified to be correct
<selpoke>
but i think another solution is needed
<selpoke>
maybe sealing the slots or something
rkazak has quit [Ping timeout: 264 seconds]
rkazak has joined #commonlisp
gnoo has quit [Read error: Connection reset by peer]
gnoo has joined #commonlisp
rkazak has quit [Ping timeout: 246 seconds]
gorignak has joined #commonlisp
decweb has joined #commonlisp
gorignak has quit [Read error: Connection reset by peer]
jadzi has joined #commonlisp
reb has quit [Remote host closed the connection]
notzmv has quit [Ping timeout: 252 seconds]
puke has quit [Ping timeout: 260 seconds]
rkazak has joined #commonlisp
notzmv has joined #commonlisp
chomwitt has joined #commonlisp
rkazak has quit [Ping timeout: 260 seconds]
rainthree has joined #commonlisp
semarie has quit [Remote host closed the connection]
pranav has quit [Remote host closed the connection]
NotThatRPG has joined #commonlisp
rkazak has quit [Ping timeout: 248 seconds]
euandreh1 is now known as euandreh
gorignak has quit [Quit: quit]
gorignak has joined #commonlisp
rkazak has joined #commonlisp
gorignak has quit [Quit: quit]
gorignak has joined #commonlisp
zwr has quit [Read error: Connection reset by peer]
rkazak has quit [Ping timeout: 260 seconds]
eddof13 has joined #commonlisp
zwr has joined #commonlisp
shawnw has joined #commonlisp
fuzy has joined #commonlisp
gorignak has quit [Quit: quit]
gorignak has joined #commonlisp
jay_bird has joined #commonlisp
rkazak has joined #commonlisp
jay_bird has quit [Remote host closed the connection]
dnhester26 has joined #commonlisp
gorignak has quit [Quit: quit]
gorignak has joined #commonlisp
jonatack has quit [Ping timeout: 265 seconds]
triffid has quit [Remote host closed the connection]
jonatack has joined #commonlisp
triffid has joined #commonlisp
Perflosopher has quit [Quit: Ping timeout (120 seconds)]
gorignak has quit [Quit: quit]
Perflosopher has joined #commonlisp
gorignak has joined #commonlisp
rkazak has quit [Ping timeout: 252 seconds]
wacki has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
notzmv has quit [Ping timeout: 260 seconds]
gorignak has quit [Quit: quit]
gorignak has joined #commonlisp
drbdf has quit [Ping timeout: 248 seconds]
gorignak has quit [Quit: quit]
gorignak has joined #commonlisp
vardhan has quit [Ping timeout: 248 seconds]
pranav has joined #commonlisp
gorignak has quit [Quit: quit]
gorignak has joined #commonlisp
rkazak has joined #commonlisp
gorignak has quit [Quit: quit]
rkazak has quit [Ping timeout: 248 seconds]
gorignak has joined #commonlisp
gorignak has quit [Quit: quit]
vardhan has joined #commonlisp
gorignak has joined #commonlisp
rkazak has joined #commonlisp
dnhester26 has quit [Remote host closed the connection]
dnhester26 has joined #commonlisp
dnhester26 has quit [Client Quit]
gorignak has quit [Quit: quit]
gorignak has joined #commonlisp
wacki has joined #commonlisp
shka has quit [Ping timeout: 255 seconds]
gorignak has quit [Quit: quit]
gorignak has joined #commonlisp
rkazak has quit [Ping timeout: 260 seconds]
JuanDaugherty has joined #commonlisp
gorignak has quit [Quit: quit]
gorignak has joined #commonlisp
jadzi has joined #commonlisp
scymtym has quit [Quit: Application exit]
gorignak has quit [Quit: quit]
gorignak has joined #commonlisp
notzmv has joined #commonlisp
Lord_of_Life_ has joined #commonlisp
gorignak has quit [Quit: quit]
Lord_of_Life has quit [Ping timeout: 265 seconds]
gorignak has joined #commonlisp
shka has joined #commonlisp
Lord_of_Life_ is now known as Lord_of_Life
vardhan has quit [Ping timeout: 252 seconds]
rkazak has joined #commonlisp
varjag has joined #commonlisp
varjag has quit [Remote host closed the connection]
vardhan has joined #commonlisp
amb007 has quit [Ping timeout: 245 seconds]
amb007 has joined #commonlisp
gorignak has quit [Quit: quit]
gorignak has joined #commonlisp
gorignak has quit [Quit: quit]
gorignak has joined #commonlisp
scymtym has joined #commonlisp
rkazak has quit [Ping timeout: 276 seconds]
jadzi has quit [Ping timeout: 264 seconds]
overclucker has joined #commonlisp
gorignak has quit [Quit: quit]
gorignak has joined #commonlisp
cage has joined #commonlisp
cage has quit [Excess Flood]
cage has joined #commonlisp
gorignak has quit [Quit: quit]
gorignak has joined #commonlisp
JuanDaugherty has quit [Quit: JuanDaugherty]
rkazak has joined #commonlisp
gorignak has quit [Quit: quit]
gorignak has joined #commonlisp
rkazak has quit [Ping timeout: 260 seconds]
Equill has joined #commonlisp
kabriel has joined #commonlisp
skempf has quit [Ping timeout: 276 seconds]
gorignak has quit [Quit: quit]
gorignak has joined #commonlisp
kabriel has quit [Client Quit]
rkazak has joined #commonlisp
gorignak has quit [Quit: quit]
gorignak has joined #commonlisp
gorignak has quit [Quit: quit]
gorignak has joined #commonlisp
rkazak has quit [Ping timeout: 272 seconds]
rkazak has joined #commonlisp
gorignak has quit [Quit: quit]
gorignak has joined #commonlisp
gorignak has quit [Quit: quit]
gorignak has joined #commonlisp
eddof13 has quit [Quit: eddof13]
gorignak has quit [Quit: quit]
gorignak has joined #commonlisp
gorignak has quit [Quit: quit]
gorignak has joined #commonlisp
wacki has quit [Read error: Connection reset by peer]
wacki has joined #commonlisp
mishoo has quit [Ping timeout: 260 seconds]
gorignak has quit [Quit: quit]
gorignak has joined #commonlisp
eddof13 has joined #commonlisp
gorignak has quit [Quit: quit]
gorignak has joined #commonlisp
gorignak has quit [Quit: quit]
gorignak has joined #commonlisp
mwnaylor has joined #commonlisp
<aeth>
structs are either entirely pointless and there for legacy compatibility reasons, or they're there because they're useful for certain kinds of optimizations... the latter is more useful to assume even if an implementation doesn't do it
simendsjo-web has joined #commonlisp
<aeth>
pretty much every CL optimization is optional, but I write code assuming it's all done.
kevingal has joined #commonlisp
<aeth>
however, the possibility of implementing standard-objects the same way as efficient structure-objects and then somehow removing any performance penalty is an interesting one... well, besides the method accessor dispatch
gorignak has quit [Quit: quit]
gorignak has joined #commonlisp
<aeth>
for now, if you want to mix and match structs and standard-objects, I think composition is the way to go? put one as a slot of the other.
simendsjo-web has quit [Remote host closed the connection]
simendsjo_ has joined #commonlisp
mathrick has quit [Ping timeout: 260 seconds]
shka has quit [Quit: Konversation terminated!]
simendsjo_ is now known as simendsjo
gorignak has quit [Quit: quit]
gorignak has joined #commonlisp
cage has quit [Quit: rcirc on GNU Emacs 29.4]
<jackdaniel>
selpoke: regarding shilling a common superclass for both standard class and structure class, perhaps abusing non-portably compute-class-precedence-list is a way to go, i.e by inserting the protocol class as the second element