freenode/#clasp - IRC Chatlog
Search
16:10:12
drmeister
beach: I'll talk to you later. I wanted to talk with you about multiple entry points at some point - I think I need to implement multiple entry points first, then GCing of code and then image save/load. If I don't do GCing of code then image save/load will involve work that I'd just have to undo when we can GC code.
16:10:38
cracauer
Java hatred is usually from whatever library framework has to be used in a given organization. They are all too deep and too slow.
16:10:40
drmeister
Multiple entry points is a simpler thing to implement so I thought I'd do that first.
16:12:07
cracauer
However, in a place like Google you can't use exceptions with C++, which is another pain.
16:13:48
cracauer
They have too much code that is not exception safe, and using any given library you don't know whether it wraps around such code. So no exception usage for the entire C++ codebase.
16:14:41
cracauer
Which is OK pain if you are doing many RPC calls anyway and would manually transport errors either way.
16:19:15
cracauer
https://stackoverflow.com/questions/1853243/do-you-really-write-exception-safe-code#:~:text=To%20write%20exception%20safe%20code%2C%20you%20must%20know%20first%20what,%3A%3Apush_back%20can%20throw...
16:22:03
beach
I wonder how many of those "EH drawbacks" are due to unique features of C++, like manual memory management and such.
16:22:39
beach
Oops, I need to go fix dinner for my (admittedly small) family. I'll be back tomorrow.
18:16:11
drmeister
There's this comment. "The changes in foundation.lisp are no longer needed, but the one in inline still"
18:59:54
drmeister
So ./waf tests with the MPS version - if it passes all of the tests then finalizers are working?
19:01:43
drmeister
In MPS we get finalization messages from the MPS and I look up the object in a weak-key hash table.
19:04:12
drmeister
I need to have the testing code compiled if I execute the code in "sys:regression-tests;finalizers.lisp"
19:10:00
drmeister
kpoeck: When you mentioned "the size of a weak hash table should be a multiple of 16?" What was that in reference to?
19:10:21
drmeister
Because I'm still seeing a problem with weak hash tables and it might tie into their size.
19:10:42
drmeister
I'm getting this problem... ../../include/clasp/mps/code/buffer.c:575: MPS ASSERTION FAILED: SizeIsAligned(size, BufferPool(buffer)->alignment)
19:11:34
drmeister
Yeah - but there is additional stuff in the object that might mess up the alignment.
19:12:49
drmeister
https://github.com/clasp-developers/clasp/blob/master/include/clasp/gctools/gcalloc.h#L302
19:34:12
drmeister
I'm putting in this now in every case: (dotimes (i 10) (gctools:garbage-collect))
19:35:29
drmeister
I don't know if there are full or incremental with either GC. I just know what's in (gctools:garbage-collect)
23:38:47
drmeister
::notify kpoeck CONS cell finalizers should work - but they don't. Everything is being setup properly. The only thing I can think of is that the new 16-byte alignment for CONS cells is shifting the CONS cell address by 8 bytes and the finalizer code doesn't like that.
0:20:53
drmeister
::notify kpoeck MPS finalizers appear to work fine. Boehm has a problem with CONS finalizers and it may be an issue with their memory alignment and how they are allocated. This might be fixed when I switch back to 8-byte alignment for CONS cells. (Yes I'm thinking of doing that to get back one word/CONS cell).