freenode/#sicl - IRC Chatlog
Search
5:03:27
no-defun-allowed
Is SAVE-VALUES-INSTRUCTION supposed to be present in LIR? I suppose the same question holds for CATCH-INSTRUCTION too.
5:05:38
beach
The CATCH-INSTRUCTION will be turned into a named call, so a jump. It is therefore unchanged in LIR. Maybe the SAVE-VALUES-INSTRUCTION is the same. I forget.
5:06:57
no-defun-allowed
I encountered a SAVE-VALUES-INSTRUCTION during register allocation, and I couldn't find a method to process it in HIR-to-MIR or MIR-to-LIR.
5:07:49
beach
Assume it's going to turn into a named call, so don't do anything in terms of register allocation.
5:13:26
beach
I often can't remember which instructions I decided to implement as function calls, but the general rule is that if it is a complex instruction, then it will be a call.
5:54:57
no-defun-allowed
I also had to adjust register allocation for how HIR-to-MIR processes BIND-INSTRUCTION, which leaves it with no outputs. The same processing might be necessary for UNWIND-PROTECT-INSTRUCTION.
5:57:27
no-defun-allowed
Yes, but HIR-to-MIR inserts a RETURN-VALUE-INSTRUCTION with the dynamic environment as output after the BIND-INSTRUCTION (anticipating a function call), and leaves the original instruction output-less.
5:57:41
no-defun-allowed
That is in the sole method in Code/Compiler/HIR-to-MIR/augment-bind-instruction.lisp
5:58:50
beach
The plan is for the named-call instructions to be allowed to have outputs when the number of return values is fixed.
5:59:47
beach
The call-site manager will then make sure the trampoline snippet puts the return values in the right places.
6:00:42
no-defun-allowed
I see. This is new to me, as the comment suggests there will be cases with zero, one or two outputs, but only zero outputs are currently used and handled.
6:01:34
beach
Yes, I am sorry about that. I didn't have time to document my idea before I asked you to take on this task. My bad.
6:32:02
no-defun-allowed
Wow, I am somewhere up to loading Alexandria in E5 now. There is an unattributed lexical location while compiling alexandria-1/numbers.lisp.
6:48:46
no-defun-allowed
I would take a look at the visualiser to get some context, but it froze and then signalled a type error after that.
6:50:18
no-defun-allowed
At least I found out that the error happens with ALEXANDRIA:GAUSSIAN-RANDOM.
8:31:15
no-defun-allowed
I get the same error with (LOOP UNLESS T DO (PROGN)), which is quite strange.
8:43:10
beach
heisig: I think you are being a bit unfair to ASDF. It looks quite well written to me, at least what I have seen so far.
8:45:42
heisig
beach: I didn't mean to sound overly critical. I just think there are some ways it could be improved further.
8:48:54
heisig
In terms of functionality, mostly. I think Fare had a nice write-up of what could be improved there.