Search
Sunday, 22nd of October 2017, 14:37:53 UTC
14:38:04
stassats
an unwind-protect slows down the code quite a bit
14:40:34
stassats
but this is basically akin to UNBIND, no full blown UWP needed, because of the stated reasons
14:41:05
stassats
it'll get cleaned up on unwinds, just need to reset NSP on non-local exits
14:41:25
stassats
i just need to introduce a new cleanup form kind, save NSP and clean it up
14:44:31
stassats
if done right, even the non NLX case will get faster, since multiple NSP restores can be rolled into one
16:59:44
stassats
nsp-protect is proving to be difficult
16:59:57
stassats
can't easily pass the saved lvar through all the ir stages
17:57:09
stassats
after adjusting ir1-convert-combination-args to use lvar, i think i got it
20:20:51
stassats
huh, the same clean up may be emitted twice
20:21:13
stassats
that breaks my solution, sigh
20:25:13
stassats
(defun x (a) (let (*) (if a 10 20))) unbinds twice
20:26:23
stassats
not running twice, but two sequences doing the same thing
21:28:41
stassats
saved by the code freeze
21:48:48
stassats
rethinking the whole approach, instead of trying to make a really specific nsp-protect, maybe i can have simple-unwind-protect, which acts like special bindings, without establishing catch or unwind blocks, just executing code on RETURN-FROM
21:48:55
stassats
might be useful for something else
22:31:03
stassats
if i could figure out how to do that...
Monday, 23rd of October 2017, 2:37:53 UTC