libera/#sbcl - IRC Chatlog
Search
9:56:07
Shinmera
Update on Switch: "We have discussed this internally and we are not able to allow JIT on our hardware, even if only on the development side."
9:57:03
Shinmera
Guess that means the only option left is to try and build on ARM64/Linux and then manually massage the ELF core to work on the Switch. Sigh.
10:00:05
Shinmera
So next step would be figuring out how to get a basic ELF core binary going on Linux that doesn't require JIT to start up.
11:13:40
sm2n
I don't know how or when it happened or who did it, but for the last little while sbcl has been throwing a standard error on heap exhaustion rather than dropping into ldb, which is really great. I just want to say that's helped me on more than one occasion, so thank you to whoever did that
12:28:58
flip214
current git head throws a lot of notes for local-time... (only) one example is at https://paste.debian.net/hidden/7d12c56c/
12:29:44
flip214
perhaps the note could be modified to read ", not a (OR DOUBLE-FLOAT SINGLE-FLOAT ...)", ie. compressing all these notes into one
13:22:11
scymtym
that would change the meaning since the optimization requires a subtype of one of the listed types, not a subtype of their union
13:32:00
scymtym
| normally has multiple escape syntax. i don't think such a one-off special notation helps
14:54:37
mrcom
karlosz: Seeing the "can't dump" msgs on sbcl 2.2.4. Wasn't seeing it on 2.1.something.
14:55:47
mrcom
karlosz: However, upon reflection I've been depending upon implementation details. Using DEFCONST means it's fair game to be treated as a literial, correct?
14:59:02
mrcom
karlosz: But what I really want, and have been depending upon, is that FOO-CONST is a singleton instance of a FOO structure. I want (EQ x FOO-CONST) to work.
15:46:55
stassats
sm2n: nothing has changed. a lisp error means there's no more space when allocating
15:47:32
stassats
a heap exhausted crash means during garbage collection it can't copy non-garbage to a new location
15:49:40
stassats
can't make the dynamic space disjoint, can't always extend the current dynamic space
15:50:56
luis
I was thinking we could just reserve the hard limit, but signal a lisp error when committing beyond the soft limit.
15:53:00
luis
well, at least we get a chance to log the error, maybe even recover if a future GC manages to get heap usage below the soft limit
15:57:27
luis
I also want non-copying compaction when memory usage approaches 50% :D, but having a soft limit around 50% would be better than nothing!
16:08:40
|3b|
could the GC just pretend any object that it didn't have room to copy was pinned, then signal an error after the GC finished?
16:16:59
luis
does that give any chance of recovery in a scenario where a restart kills enough objects?
16:20:41
stassats
but they are like to be old, so old generations would need to be moved, which usually take up more space
16:36:21
luis
oh hey. I seem to somehow have gotten repeated handling of stack overflows working on win32! yay
16:40:49
luis
I'd paste proof on plaster.tymoon.eu but my brain can't unscramble the word flmiay right now
16:50:57
karlosz_
since that behavior is less surprising then having your situation sometimes work, sometimes not (because if you had referenced foo-const after the first non-constant-reference literal use of foo-const, it wouldn't work and you wouldnt be able to externalize the object
17:10:22
karlosz
Shinmera: shame about the JIT, but it seems like they at least debated the possibility of adding it
17:12:54
karlosz_
anyway, no JIT should still be OK. i've been messing around with the GC/safepoint mechanism on Windows recently a bit
17:14:08
karlosz_
even making the register values known to the GC is handled on the win32 backend in a way that will work on NX. windows basically shoves registers on the stack in exactly the way we talked about at els
17:15:24
karlosz
so the plan was to bootstrap on another arm machine, and transport the core, fixup some runtime values, and go
17:16:20
karlosz
the runtime on the host would need to be similar enough that the core would still be compatible with the switch
17:18:14
Shinmera
Core still has to be ELFinated and fused to the runtime as well, since we can't mmap it in either.