Search
16:52:34
drmeister
Yeah - the _O of Lisp_O is an ancient artifact.
16:53:36
drmeister
The scraper code generator probably can't handle multiple top classes because I never needed it.
16:53:45
drmeister
Change it so it can - it needs to now.
16:54:26
drmeister
I think you gather up the top classes by crawling up to roots from every class and then build a separate hierarchy for each one.
16:54:40
drmeister
Uh - wait - we record the top class in the sif file now don't we?
16:55:13
drmeister
A bunch of new changes dropped for MachO in llvm13 - I'm checking them out in our future branch.
17:30:04
drmeister
Yes TAGS:ROOT-CLASS describes the root class
17:30:19
drmeister
You will see (TAGS:ROOT-CLASS . "core::T_O")
17:30:30
drmeister
(TAGS:ROOT-CLASS . "clang::RecursiveASTVisitor<asttooling::AstVisitor_O>")
17:30:47
drmeister
(TAGS:ROOT-CLASS . "core::Lisp_O")
17:31:01
drmeister
(TAGS:ROOT-CLASS . "gctools::GCContainer")
17:31:45
drmeister
clang::RecursiveASTVisitor<asttooling::AstVisitor_O> is another odd ball.
20:48:10
Bike
i now have some kind of code generating, just by ignoring it when a class has no superclass
20:48:20
Bike
i guess to test it i should just throw it in as clasp_gc.cc
20:48:59
Bike
one thing - there's this thing in scraper generated code that errors if USE_ANALYSIS is defined - i guess i should delete that now
20:58:52
Bike
hopefully nothing horrible will happen if i conflate GC_DECLARE_FORWARDS and DECLARE_FORWARDS
21:22:12
drmeister
I think I found a bug in luabind that I propagated into clbind.
21:25:07
drmeister
Yep - that's what it looks like.
21:25:51
drmeister
Let's see if I can find it by going back to the luabind source.
21:26:48
drmeister
Here - note how they swap the order of the arguments 'distance' and 'offset'
21:26:57
drmeister
https://github.com/luabind/luabind/blob/master/src/inheritance.cpp#L93
21:27:32
drmeister
You pass xxx.put(...,distance,offset)
21:27:50
drmeister
And the cache_entry ctor goes cache_entry(offset,distance)
21:28:13
drmeister
Then here... https://github.com/luabind/luabind/blob/master/src/inheritance.cpp#L193
21:28:24
drmeister
They have: m_cache.put(src, target, dynamic_id, object_offset, cache::invalid, -1);
21:29:24
drmeister
So cache::invalid only makes sense if it's passed as a 'ptrdiff_t offset' - but here it's being passed as 'size_t distance'
21:30:41
drmeister
Nobody has touched the code in 7 years - but an issue was opened 28 days ago to request a transfer of ownership.
21:35:55
drmeister
I can identify function calls now with cxx-refactor.
21:47:28
drmeister
https://www.irccloud.com/pastebin/L9tZmTo9/
21:48:03
drmeister
https://www.irccloud.com/pastebin/FpvATNau/
21:48:34
drmeister
If you look those up - like: /home/meister/Development/clasp/include/clasp/gctools/smart_pointers.h:768:60
21:48:56
drmeister
https://github.com/clasp-developers/clasp/blob/main/include/clasp/gctools/smart_pointers.h#L900
21:49:06
drmeister
bool objectp() const { return this->generalp() || this->consp(); };
21:49:20
drmeister
I'm looking for invocations of the consp() method.
22:05:37
drmeister
I can get the start and end source position of an AST node.
22:05:54
drmeister
I think we are in business for source-to-source translation.
22:06:35
drmeister
What would be the first thing you would change in Clasp?
22:07:15
drmeister
I would change _Nil<xxx>() to Nil<xxx>()
22:11:28
Bike
initial underscores would be a big one yeah
3:04:13
beach
Good morning everyone!