summaryrefslogtreecommitdiff
path: root/benchmark
Commit message (Expand)AuthorAgeFilesLines
* no disasm in measure.scm...* benchmark/measure.scm: Don't use (system vm disasm). Andy Wingo2009-02-011-2/+0
* remove a paranoid define; fix bitrot in measure.scm....* benchmark/measure.scm (measure): Fix bitrot. * libguile/vm.c (VM_ENABLE_STACK_NULLING): Undefine this, as it hasn't caught any errors in quite a while. Andy Wingo2009-01-121-3/+1
* late-variable-{ref,set} -> toplevel-{ref,set}...* benchmark/lib.scm: * libguile/vm-i-system.c (toplevel-ref, toplevel-set): * module/system/vm/assemble.scm (codegen): * module/system/vm/disasm.scm (code-annotation): s/late-variable/toplevel/. It's just a better name. Andy Wingo2008-11-201-1/+1
* build fixes...* benchmark/measure.scm: Update for module changes. * module/system/vm/Makefile.am: Update the set of modules needing compilation. * src/guile-vm.c: Bootstrap the VM, now that we have a function for it. * testsuite/Makefile.am: * testsuite/run-vm-tests.scm: Update to fix make check, broken since we merged with Guile. Andy Wingo2008-08-071-1/+1
* Updated loop disassembly...* benchmark/lib.scm: Update loop disassembly, with inlining. Neat! Andy Wingo2008-05-251-34/+30
* Speed up the self-tail-recursive case (1x->2x)...* benchmark/lib.scm: Add a comment, update the loop disassembly. Loop is now faster in the VM, thankfully. * src/vm_engine.h (CACHE_PROGRAM): Only release and regrab the object array handle if the program changed. That is to say, optimize the self-tail-recursive case. But perhaps the thing to optimize here are the procedure calls themselves. Worth looking at in the future. Andy Wingo2008-05-251-66/+53
* cleanups in syntax.scm...* benchmark/lib.scm (fibo): Make fibo actually a fibonacci sequence. * module/system/base/syntax.scm (system): Forward-declare all exports. (expand-symbol, slot): Rewrite expand-symbol to expand to a non-recursive invocation of `slot', so that in the future when we get rid of this syntax, the replacement will be more palatable to the eyes. Andy Wingo2008-05-021-3/+3
* * src/objcodes.c (make_objcode_by_mmap): Fixed the error type when the... object file is too small. * doc/guile-vm.texi: Documented `make-closure'. Improved the documentation of `load-program'. * testsuite: New directory. * configure.in: Added `testsuite/Makefile' to `AC_OUTPUT'. * Makefile.am (SUBDIRS): Added `testsuite'. * src/vm_engine.h (VM_CHECK_OBJECT): New option. (CHECK_OBJECT): New macro. * src/vm_system.c (object-ref): Use VM_CHECK_OBJECT. * module/system/vm/assemble.scm (preprocess): Commented out the debugging code. * benchmark/lib.scm (do-loop): New procedure. git-archimport-id: lcourtes@laas.fr--2005-mobile/guile-vm--mobile--0.6--patch-2 Ludovic Courtes2008-04-251-0/+7
* Fixed a stack leak. Now observing actual performance....* src/*.[ch]: Replaced `scm_mem2symbol' by `scm_from_locale_symboln' and `scm_ulong2num' by `scm_from_ulong'. * src/vm_system.c (tail-call): Fixed stack leak (SP lacked decrement by one more Scheme object in the tail-recursive case). * benchmark/measure.scm (measure): Make sure we are using the compiled procedure (i.e. a program object) when measuring. This yields better results than before. :-) * doc/guile-vm.texi: Augmented the instruction set documentation with branch instructions, `call' and `tail-call'. git-archimport-id: lcourtes@laas.fr--2004-libre/guile-vm--revival--0.6--patch-7 Ludovic Court`es2008-04-252-18/+39
* Improved the VM's efficiency. The VM is as fast as the interpreter. :-(...* benchmark/lib.scm: New file. * benchmark/measure.scm: New file. * README: Added useful pointers to various threads. * doc/guile-vm.texi: Fixed the description of `load-program' (it now expects _immediate_ integers). * src/*.[ch]: Use immediate integers whereever possible, as in the original code. For `CONS', use `scm_cell' rather than `scm_cons'. git-archimport-id: lcourtes@laas.fr--2004-libre/guile-vm--revival--0.6--patch-6 Ludovic Court`es2008-04-252-0/+168