On Thu 23 May 2013 06:05, Noah Lavine writes:
> An update: I just rebased wip-rtl-cps on top of wip-rtl-may-2013 and
> pushed. The most interesting thing was how trivial it was: all I had to
> do was make a one-line change in how I called `begin-program'.
Great, thank you! I'll take a look soon
On Wed 22 May 2013 23:13, l...@gnu.org (Ludovic Courtès) writes:
> Andy Wingo skribis:
>
>> This is the first time I've tried git-send-email, so perhaps something
>> goes wrong. In any case, the intention is to allow folks to comment
>> easily on the code; we'll see how that goes.
>
> Thanks for
On Wed 22 May 2013 22:39, l...@gnu.org (Ludovic Courtès) writes:
> Looks good. Would be nice to mention variable names too.
Will do.
> It seems elf.scm would benefit from byte structures similar to those
> announced by Taylan on guile-user. That’s more for aesthetics though,
> and definitely n
On Wed 22 May 2013 22:44, l...@gnu.org (Ludovic Courtès) writes:
>> -(define (fold2 proc ls s0 s1)
>> - (let lp ((ls ls) (s0 s0) (s1 s1))
>> -(if (null? ls)
>> -(values s0 s1)
>> -(receive (s0 s1) (proc (car ls) s0 s1)
>> - (lp (cdr ls) s0 s1)
>> -
>> (define (fo
Andy Wingo skribis:
> On Wed 22 May 2013 22:44, l...@gnu.org (Ludovic Courtès) writes:
>
>>> -(define (fold2 proc ls s0 s1)
>>> - (let lp ((ls ls) (s0 s0) (s1 s1))
>>> -(if (null? ls)
>>> -(values s0 s1)
>>> -(receive (s0 s1) (proc (car ls) s0 s1)
>>> - (lp (cdr ls)
On Wed 22 May 2013 22:56, l...@gnu.org (Ludovic Courtès) writes:
> Please move the descriptions as docstrings.
Done. I've added docstrings for this file in the patch that I'll push,
and taken the opportunity to simplify some other things. Attaching a
copy of the linker; it's easier to read as a
On Wed 22 May 2013 23:06, l...@gnu.org (Ludovic Courtès) writes:
>> +/* This function leaks the memory that it allocates. */
>> +static char*
>> +alloc_aligned (size_t len, unsigned alignment)
>
> What about using posix_memalign or similar?
Not present on many systems, and gnulib can't make a us
Andy Wingo skribis:
> On Wed 22 May 2013 22:56, l...@gnu.org (Ludovic Courtès) writes:
>
>> Please move the descriptions as docstrings.
>
> Done. I've added docstrings for this file in the patch that I'll push,
> and taken the opportunity to simplify some other things. Attaching a
> copy of the
Hi,
The following patchset does some refactorings to our VM, then in the
last patch adds the new RTL VM alongside the old one. It's mostly
finished, though you can see that some instructions can't be switched
over until the corresponding stubs (subr, continuation, etc) get
switched over.
Please
* libguile/vm-engine.h:
* libguile/vm-engine.c: Fold vm-engine.h into vm-engine.c.
* libguile/Makefile.am: Adapt.
---
libguile/Makefile.am |1 -
libguile/vm-engine.c | 378 +-
libguile/vm-engine.h | 403
* libguile/vm-engine.c: Some very minor cleanups: indenting, use of
VM_ASSERT, commenting.
---
libguile/vm-engine.c | 43 ++-
1 file changed, 18 insertions(+), 25 deletions(-)
diff --git a/libguile/vm-engine.c b/libguile/vm-engine.c
index cb92fc7..32787
* libguile/vm-engine.c (CONS): Remove. Callers should use scm_cons
instead, syncing registers beforehand.
(POP_LIST): Adapt, only synchronizing once.
(POP_LIST_MARK, POP_CONS_MARK): Remove unused macros.
* libguile/vm-i-scheme.c (cons):
* libguile/vm-i-system.c (push-rest, bind-rest): Adapt
* libguile/vm-engine.c: Remove the ability for the VM to check object
access, free variable access, and the ip. They were off by default.
Since they will be different in the RTL VM, their presence is just
making things confusing.
* libguile/vm.c: Remove corresponding error helpers.
---
lib
* libguile/vm-engine.c: Remove the register assignments inherited from
the 1990s. GCC does seem to allocate reasonably on systems with
enough registers (e.g. x86-64), and on system with too few (x86-32) we
disabled manual allocation. Anyway this code was never tested, so
it's better to le
* libguile/vm-engine.c (vm_engine): Allow the caller to pass arguments
on the stack.
---
libguile/vm-engine.c | 17 +
1 file changed, 13 insertions(+), 4 deletions(-)
diff --git a/libguile/vm-engine.c b/libguile/vm-engine.c
index b7e355d..77c2e46 100644
--- a/libguile/vm-engin
* libguile/vm-engine.c:
* libguile/vm-i-scheme.c:
* libguile/vm-i-system.c: CPP hygiene: the code that #defines, #undefs.
Makes things cleaner given the multiple inclusion dance we do.
---
libguile/vm-engine.c | 26 ++
libguile/vm-i-scheme.c | 24 ++-
* doc/ref/api-debug.texi (VM Hooks): Update documentation.
* libguile/vm.c (vm_dispatch_hook):
* libguile/vm-engine.c: Rework the hook machinery so that they can
receive an arbitrary number of arguments. The return and abort
hooks will pass the values that they return to their continuations.
* libguile/vm.c (resolve_variable): Slight refactor.
---
libguile/vm.c | 29 +
1 file changed, 13 insertions(+), 16 deletions(-)
diff --git a/libguile/vm.c b/libguile/vm.c
index f80d607..cbef0d9 100644
--- a/libguile/vm.c
+++ b/libguile/vm.c
@@ -600,30 +600,27 @@ sta
Andy Wingo skribis:
> On Wed 22 May 2013 23:06, l...@gnu.org (Ludovic Courtès) writes:
>
>>> +/* This function leaks the memory that it allocates. */
>>> +static char*
>>> +alloc_aligned (size_t len, unsigned alignment)
>>
>> What about using posix_memalign or similar?
>
> Not present on many sy
Andy Wingo skribis:
> * libguile/vm-engine.h:
> * libguile/vm-engine.c: Fold vm-engine.h into vm-engine.c.
>
> * libguile/Makefile.am: Adapt.
OK.
> * libguile/vm-engine.c (CONS): Remove. Callers should use scm_cons
> instead, syncing registers beforehand.
> (POP_LIST): Adapt, only synchron
Andy Wingo skribis:
> * libguile/vm-engine.c (vm_engine): Allow the caller to pass arguments
> on the stack.
OK.
> * libguile/vm-engine.c:
> * libguile/vm-i-scheme.c:
> * libguile/vm-i-system.c: CPP hygiene: the code that #defines, #undefs.
> Makes things cleaner given the multiple inclusi
Andy Wingo skribis:
> * doc/ref/api-debug.texi (VM Hooks): Update documentation.
>
> * libguile/vm.c (vm_dispatch_hook):
> * libguile/vm-engine.c: Rework the hook machinery so that they can
> receive an arbitrary number of arguments. The return and abort
> hooks will pass the values that th
Andy Wingo skribis:
> * libguile/vm.c (resolve_variable): Slight refactor.
OK.
Ludo’.
23 matches
Mail list logo