libera/#clasp - IRC Chatlog
Search
14:48:37
drmeister
So that to figure out if a class x is descended from A you simply check if its stamp is between the stamp values of A-D
14:48:57
drmeister
And if a class x descended from B you check if its stamp is between the stamp values B-D
14:51:09
Bike
and i have no idea what the "analysis" structure it uses is, and what these other fields in the 'stamp' struct mean, and so on
15:03:42
Bike
and i guess that's because all subclasses of derivable cxx object have the same stamp, even though they can be different C++ classes
15:03:53
drmeister
You can bring this up in slime - it takes a little bit of prep though. I can walk you through it.
15:05:20
drmeister
The header stamp is primarily for the garbage collector. The stamp and the where-tag part of the header stamp tells you where to look for the stamp used for dispatch
15:35:20
Bike
defvirtual binds a useless call-next-method - is that something that we'd ever actually be able to have or want?
16:04:11
Bike
mm, well c++ doesn't have effective methods, so the "next" could involve more than one virtual function if there's multiple inheritance, for another thing
16:04:24
Bike
i guess we could keep track of superclasses ourselves and call functions that way, though
17:27:35
Bike
huh one of the pedantic compiler macro warnings i put in found something that looks like it could be a bug in the analyzer
17:28:41
Bike
https://github.com/clasp-developers/clasp/blob/main/src/lisp/modules/clasp-analyzer/clasp-analyzer.lisp#L1460-L1470 got a duplicate case entry
2:28:05
drmeister
Bike: If I have a vector with N elements and N threads where each thread updates its own element of the vector - is that going to work?
2:30:54
Bike
i think that practically speaking it will probably work, but ideally we should clue C++ in here
2:32:27
drmeister
I can do something more complicated where each thread puts updates into a queue but it seems straightforward to just update a counter in a vector.