[racket] ill-formed code (unexpected graph structure) with custom #lang

From: Dmitry Pavlov (dpavlov at ipa.nw.ru)
Date: Wed Feb 11 03:20:36 EST 2015

Matthew,

Thanks! You were right about the hash table issue, and your patch works.

Best regards,

Dmitry


On 02/10/2015 03:51 AM, Matthew Flatt wrote:
> I've pushed a repair to the bytecode writer to avoid this problem in
> the future.
>
> At Mon, 9 Feb 2015 16:56:26 -0700, Matthew Flatt wrote:
>> It looks like the module has associated language info that contains a
>> hash table, and the bytecode reader doesn't handle the hash table
>> properly in that context.
>>
>> You can work around the problem by choosing a different representation
>> of language info for "slon".
>>
>> At Sun, 08 Feb 2015 00:56:20 +0300, Dmitry Pavlov wrote:
>>> Hello,
>>>
>>> Racket seems to have an issue with programs compiled by raco make:
>>>
>>>
>>> $ racket test.slon
>>> OK
>>>
>>> $ raco make test.slon
>>> $ racket test.slon
>>> compiled/test_slon.zo: : read (compiled): ill-formed code (unexpected
>>> graph structure)
>>>     context...:
>>>      standard-module-name-resolver
>>>
>>> $ rm compiled/test_slon.zo
>>> $ racket test.slon
>>> OK
>>>
>>> "slon" is a custom language implemented in Racket. I am not sure if it
>>> matters. Anyway, as soon as I delete compiled/test_slon.zo, it starts to
>>> work, even with the "slon/compiled" and "slon/lang/compiled" directories
>>> left intact.
>>>
>>> The test_slon.zo file is 3 KB, the program does nearly nothing, and I
>>> have no idea what causes the error. Here is the compiled file (encoded
>>> in base64):
>>>
>>> http://pastebin.com/r1kCi5ki
>>>
>>> I am having this trouble in Racket 6.1.1.6, and had it with prior
>>> versions (but not all of them -- some time ago everything worked as
>>> expected, but I forgot which version that was).
>>>
>>> Is there anything I can do to help to track down the bug?
>>>
>>> Best regards,
>>>
>>> Dmitry
>>> ____________________
>>>    Racket Users list:
>>>    http://lists.racket-lang.org/users
>> ____________________
>>    Racket Users list:
>>    http://lists.racket-lang.org/users

Posted on the users mailing list.