libera/#clasp - IRC Chatlog
Search
16:22:33
drmeister
Playback: Every cycle it will read a PC and stack pointer and compare it to the current PC and stack pointer.
16:51:22
drmeister
I think I should throw an exception and unwind the stack when there is a mismatch rather than just return.
16:52:58
Bike
what's the ninja target to build cboehm (i.e. not precise)? is it just "cboehm", like i'd do ninja -C build cboehm?
17:38:33
drmeister
I can record (fib 20) and when I play it back like a dozen times - no difference.
18:00:52
drmeister
I'll turn off optimization for bytecode_vm and then I'll be able to see more values.
19:00:33
drmeister
It will record that into the vm log and when you play it back it better match or it throws an exception.
19:05:08
drmeister
It means that when the VM ran the first time it recorded that 0x70 was returned by a function call and this time around 0xfffffffffffffffc was returned.
19:10:24
drmeister
I think the first time it returned the correct value and I think the second time it got the wrong arguments.
19:16:59
drmeister
You can keep adding VM_RECORD_PLAYBACK(value,name) macros and record more and more of the evaluation that gets matched to current values when you play it back.
19:30:23
drmeister
../src/core/bytecode.cc:235:vm_record_playback Mismatch between recorded vm_call_receive_one_arg0 0x74 and current 0x8
19:35:36
Bike
oh, i put that into the function descriptions because i thought without a function name printing bytecode functions would crash
19:37:20
drmeister
It's getting the argument 0x8 now but when it was recorded it got the function argument 0x74
19:57:10
Bike
i think the static analyzer is running serially. it used to work in parallel, didn't it?
19:58:16
yitzi
We started on parallel, but I don't think we finished. The building of [abc]clasp is parallel, but the analyzer is series
20:04:22
yitzi
You can set the default target to boehm by adding `:default-target "cclasp-boehm"` to your config.sexp if you want.
20:05:50
Bike
i thought i remembered this taking "only" a few hours before, and the scroll going by faster
20:12:20
yitzi
Bike: Apparently, I put a note in koga https://github.com/clasp-developers/clasp/blob/ecb185da2507fd01ceeddaecc861a0eb2c253c45/src/koga/scripts.lisp#L115-L126
20:24:09
Bike
vm.reg returns the address of the nth local. then * dereferences it. then the value gets pushed to the stack.
20:26:51
drmeister
It should be a CONS cell - correct? This is does not have cell ellision incorporated yet.
20:31:40
drmeister
Yes, you put all the lexical values in cons cell don't you? Do you follow a ref by some other instruction to get the lexical value?
21:07:39
Bike
i'm getting an error that there is no method for cscrape::tag% for a cscrape::exposed-internal-class for a class i just wrote
22:22:30
Bike
drmeister: actually not sure why i even wrote that since we could pass nil directly...
22:23:05
Bike
bytecode compiler envs are now set up enough that the compiler works with them and macroexpand works with them
22:34:41
drmeister
(setf (fdefinition 'fib) (compile-to-vm::bcompile '(lambda (n) (if (eql n 1) (progn (gctools:garbage-collect) 0) (if (eql n 2) 1 (+ (fib (- n 1)) (fib (- n 2))))))))
23:38:29
drmeister
It looks like putting the side stack at the top of the main stack is a better idea.
23:41:20
drmeister
I'm going to clean up the VM logging machinery and merge these changes into the VM branch later this evening.
23:50:55
Bike
i didn't change anything in the actual bytecode interpreter besides interchanging the arguments to cell-set
0:12:20
karlosz
i wonder what a good name is for the operation X <n> that just wraps the value at frame slot n and puts it in a cell
0:45:12
karlosz
also i seem to need to kill the whole clasp directory every time i want to update it. i got an issue with no applicable error on (#<CSCRAPE::EXPOSED-INTERNAL-CLASS core::BytecodeCmpVarInfo_O>).
0:52:51
yitzi
karlosz: Not sure if Bike ran the analyzer. That error happens when it needs to be run. You should just do boehm instead.
1:03:39
yitzi
That error seems to always mean the same thing. Maybe we should put a handler in for it and just print "Run the static analyzer!"
1:04:48
Bike
::notify karlosz the env structures replace the ones in compile.lisp. i pushed how it looks in the clasp branch of cvm (didn't want to make main even messier than it was)
1:08:44
yitzi
The analyze script does essentially `koga && ninja analyze && koga --extensions=cando && ninja analyze` ... but it does it in a separate build directory so you don't mess up your current one.
1:24:48
Bike
it ought to work as well as it did yesterday (plus the cell elision is in the compiler)
1:25:34
Bike
tomorrow i will finish up macrolet, and then combined with unwind-protect -> funwind-protect it should be able to handle the full language (though not some of clasp's exztension special operators, we'll have to see how that goes)
1:25:56
Bike
::notify karlosz they were written in anticipation of the eventual port of the compiler to C++
1:27:38
Bike
oh, and i still need to implement the long prefix, but honestly we probably don't even need it to build clasp
1:28:28
Bike
and we'll have to fix a few little bugs in the compiler, like let* binds all specials after all lexicals
1:40:07
Bike
we should be able to try what you said about putting it in before cmprepl before the end of the week, i think. tomorrow, if i work out macrolet quickly