Re: struct optimizations

2010-01-25 Thread Ludovic Courtès
Hello, Andy Wingo writes: > Some comments: > > -#define SCM_VTABLE_FLAG_RESERVED_0 (1L << 5) > -#define SCM_VTABLE_FLAG_RESERVED_1 (1L << 6) > +#define SCM_VTABLE_FLAG_SIMPLE (1L << 5) /* instances of this vtable > have only "pr" fields */ > +#define SCM_VTABLE_FLAG_SIMPLE_RW (1

Re: struct displacements

2010-01-25 Thread Ludovic Courtès
Hey, Andy Wingo writes: > On Mon 25 Jan 2010 14:44, l...@gnu.org (Ludovic Courtès) writes: > >> Andy Wingo writes: >> >>> - GC_REGISTER_DISPLACEMENT (2*sizeof(scm_t_bits)); /* for the self >>> data pointer */ >>> - GC_REGISTER_DISPLACEMENT (2*sizeof(scm_t_bits) >>> -

Re: r6rs standard libraries

2010-01-25 Thread Ludovic Courtès
Hello Guilers, Andy Wingo writes: > On Sun 24 Jan 2010 18:53, Julian Graham writes: > >> As mentioned in an earlier email [0], I've been working on >> implementations for the libraries that make up the so-called R6RS >> Standard Libraries [1], along with test suites. Where possible, I've >> tr

Re: struct displacements

2010-01-25 Thread Andy Wingo
Hi Ludo' :) On Mon 25 Jan 2010 14:44, l...@gnu.org (Ludovic Courtès) writes: > Andy Wingo writes: > >> - GC_REGISTER_DISPLACEMENT (2*sizeof(scm_t_bits)); /* for the self data >> pointer */ >> - GC_REGISTER_DISPLACEMENT (2*sizeof(scm_t_bits) >> -+ scm_tc

Re: r6rs standard libraries

2010-01-25 Thread Andy Wingo
Hi, On Sun 24 Jan 2010 18:53, Julian Graham writes: > As mentioned in an earlier email [0], I've been working on > implementations for the libraries that make up the so-called R6RS > Standard Libraries [1], along with test suites. Where possible, I've > tried to wrap existing Guile functionalit

Re: struct displacements

2010-01-25 Thread Ludovic Courtès
Hello, Andy Wingo writes: > - GC_REGISTER_DISPLACEMENT (2*sizeof(scm_t_bits)); /* for the self data > pointer */ > - GC_REGISTER_DISPLACEMENT (2*sizeof(scm_t_bits) > -+ scm_tc3_struct); /* for the vtable data > pointer */ > + /* The first word of

Re: struct optimizations

2010-01-25 Thread Ludovic Courtès
Hi Andy, Andy Wingo writes: > Some comments: > > -#define SCM_VTABLE_FLAG_RESERVED_0 (1L << 5) > -#define SCM_VTABLE_FLAG_RESERVED_1 (1L << 6) > +#define SCM_VTABLE_FLAG_SIMPLE (1L << 5) /* instances of this vtable > have only "pr" fields */ > +#define SCM_VTABLE_FLAG_SIMPLE_RW

struct optimizations

2010-01-25 Thread Andy Wingo
Hi Ludovic, Great work on the struct optimizations! Some comments: -#define SCM_VTABLE_FLAG_RESERVED_0 (1L << 5) -#define SCM_VTABLE_FLAG_RESERVED_1 (1L << 6) +#define SCM_VTABLE_FLAG_SIMPLE (1L << 5) /* instances of this vtable have only "pr" fields */ +#define SCM_VTABLE_FLAG_

struct displacements

2010-01-25 Thread Andy Wingo
Hello Ludovic, - GC_REGISTER_DISPLACEMENT (2*sizeof(scm_t_bits)); /* for the self data pointer */ - GC_REGISTER_DISPLACEMENT (2*sizeof(scm_t_bits) -+ scm_tc3_struct); /* for the vtable data pointer */ + /* The first word of a struct is equal to `SCM