Menu

#9 (de)serialization breaks symenv

closed-fixed
nobody
None
7
2002-01-22
2002-01-22
No

The summary line is just a theory on the root cause of
the problem.

Here are the symptoms:

* start sisc
* evaluate a module definition like
(module baz (boo)
(define boo 1))

==> Error in putprop: got unexpected value
sisc.data.BuiltinProcedure

Doing the same in the bootstrap sequence, e.g. at the
end of init2.scm works fine.

My investigation has revealed that the error is caused
by an attempt to set a property in a symenv called
"#!d" (or something similiar). Doing a getprop on this,
e.g.
(getprop 'boo (string->symbol "#!d")))
results in
#<builtin procedure getprop>>
i.e. it looks like the getprop procedure is returned,
which is obviously wrong since the result should be #f
or a AssociativeEnvironment.

Doing a getprop on #!a...#!z mostly returns the getprop
procedure. However, during the bootstrap this returns #f.

This could be a bug in the macro expander.

However, my theory is that the symenv gets broken
during (de)serialization.

I've tried both serialization schemes and the result is
the same.

Discussion

  • Scott G. Miller

    Scott G. Miller - 2002-01-22
    • status: open --> closed-fixed
     
  • Scott G. Miller

    Scott G. Miller - 2002-01-22

    Logged In: YES
    user_id=25869

    Problem was that case-sensitive symbols were not being
    serialized/deserialized as such. Fixed.

     

Log in to post a comment.

MongoDB Logo MongoDB