mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-18 18:40:22 +02:00
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
This commit is contained in:
parent
2d80426a3e
commit
f41cb00ce2
10 changed files with 149 additions and 38 deletions
6
src/vm.c
6
src/vm.c
|
@ -339,7 +339,7 @@ SCM_DEFINE (scm_vm_ip, "vm:ip", 1, 0, 0,
|
|||
#define FUNC_NAME s_scm_vm_ip
|
||||
{
|
||||
SCM_VALIDATE_VM (1, vm);
|
||||
return scm_ulong2num ((unsigned long) SCM_VM_DATA (vm)->ip);
|
||||
return scm_from_ulong ((unsigned long) SCM_VM_DATA (vm)->ip);
|
||||
}
|
||||
#undef FUNC_NAME
|
||||
|
||||
|
@ -349,7 +349,7 @@ SCM_DEFINE (scm_vm_sp, "vm:sp", 1, 0, 0,
|
|||
#define FUNC_NAME s_scm_vm_sp
|
||||
{
|
||||
SCM_VALIDATE_VM (1, vm);
|
||||
return scm_ulong2num ((unsigned long) SCM_VM_DATA (vm)->sp);
|
||||
return scm_from_ulong ((unsigned long) SCM_VM_DATA (vm)->sp);
|
||||
}
|
||||
#undef FUNC_NAME
|
||||
|
||||
|
@ -359,7 +359,7 @@ SCM_DEFINE (scm_vm_fp, "vm:fp", 1, 0, 0,
|
|||
#define FUNC_NAME s_scm_vm_fp
|
||||
{
|
||||
SCM_VALIDATE_VM (1, vm);
|
||||
return scm_ulong2num ((unsigned long) SCM_VM_DATA (vm)->fp);
|
||||
return scm_from_ulong ((unsigned long) SCM_VM_DATA (vm)->fp);
|
||||
}
|
||||
#undef FUNC_NAME
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue