Hi Julian,

On Sun 19 Sep 2010 02:20, Julian Graham <jool...@gmail.com> writes:

>    (define (record-internal? obj)
> -    (and (struct? obj)
> -      (let* ((vtable (struct-vtable obj))
> -             (layout (symbol->string
> -                      (struct-ref vtable vtable-index-layout))))
> -        (and (>= (string-length layout) 4)
> -             (let ((rtd (struct-ref obj record-index-rtd)))
> -               (and (record-type-descriptor? rtd)))))))
> +    (and (struct? obj) (eq? (struct-vtable obj) record-vtable)))

Is it possible to keep the current flat record layout, and change this
check to be:

  (define (record-internal? obj)
    (and (struct? obj)
         (eq? (struct-vtable (struct-vtable obj))
              record-type-vtable)))

What kind of performance do you get there?

Andy
-- 
http://wingolog.org/

Reply via email to