[racket] raco exe difficutly with Release 5.3.1 & stateless web server

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Tue Jan 29 11:52:24 EST 2013

raco exe works by traversing the requires of the modules it is embedding,
putting all of that bytecode (usually bytecode, but not always) into the
application and then setting up low-level hooks when the exe is run so that
requires of the embedded modules are redirected to the bytecode that is
embedded.

This process can be defeated by using dynamic-require, say, or generally by
requiring a module that a traversal of the require hierarchy cannot "see".

hth,
Robby


On Tue, Jan 29, 2013 at 10:31 AM, Galler <lzgaller at optonline.net> wrote:

> Some additional detail:
>
> 1) the flomap exception below shows up when attempting to run compiled
> code in both releases 5.3 and 5.3.1
>
> 2) the application works in both releases of DrRacket, behavior only
> occurs when compiled via raco exe behavior which makes me think (as Robby
> pointed out) the same libraries aren't being shared between DrRacket and
> raco exe (is this possible???)
>
> 3)  I'm still working on isolating and localizing the fault, including
> compiling and running parts of the application separately.
>
> The issue is (with high prob.) is in a module using #lang web server
> sitting at the top of my hierarchical stack of modules.
>
> To verify this, I've compiled the non-#lang web server modules under raco
> exe (5.3.1) and exercised them without difficulty.
>
> I'll keep going on this, but as a troubleshooter, it seems like item #2
> and that the issue is with flomap and #lang web server above might be
> dispositive towards identifying the problem
>
>
>
>
>
>
> On Tue, Jan 29, 2013 at 7:44 AM, Jay McCarthy wrote:
>
>  [Adding Neil] Do you know what commit fixed the missing require
>> for-syntax in flomap?
>>
>> Jay
>>
>> On Mon, Jan 28, 2013 at 12:09 PM, Galler <lzgaller at optonline.net> wrote:
>>
>>> I wasn't able to isolate out the code that was causing the exception.
>>>
>>> Below is the stack trace.  This problem does not occur when running the
>>> app
>>> in DrRacket (the app works fine there),
>>>
>>> but appears after having compiled the application via raco exe, when the
>>> server is handling a response.
>>>
>>>
>>>
>>> Exception
>>>
>>> The application raised an exception with the message:
>>>
>>> link: namespace mismatch;
>>>  reference to a module that is not available
>>>   reference phase: 1
>>>   referenced module: "c:\program
>>> files\racket\collects\images\**private\flomap-struct.rkt"
>>>   referenced phase level: 0
>>>   reference in module: '#%embedded:g13787:flomap-**stats
>>>   in: flomap?
>>>
>>> Stack trace:
>>>
>>> [running body] at:
>>>   line #f, column #f, in file #%embedded:g13787:flomap-stats
>>> loop at:
>>>   line 605, column 8, in file c:\program
>>> files\racket\collects\racket\**private\serialize.rkt
>>> deserialize at:
>>>   line 600, column 2, in file c:\program
>>> files\racket\collects\racket\**private\serialize.rkt
>>> request->continuation at:
>>>   line 111, column 0, in file c:\program
>>> files\racket\collects\web-**server\lang\web.rkt
>>> <unknown procedure> at:
>>>   line 57, column 10, in file c:\program
>>> files\racket\collects\web-**server\lang\web.rkt
>>> <unknown procedure> at:
>>>   line 213, column 3, in file c:\program
>>> files\racket\collects\web-**server\lang\abort-resume.rkt
>>> <unknown procedure> at:
>>>   line 58, column 2, in file c:\program
>>> files\racket\collects\web-**server\dispatchers\dispatch-**servlets.rkt
>>> select-handler/no-breaks at:
>>>   line 161, column 2, in file c:\program
>>> files\racket\collects\racket\**private\more-scheme.rkt
>>> <unknown procedure> at:
>>>   line 96, column 6, in file c:\program
>>> files\racket\collects\web-**server\private\dispatch-**server-unit.rkt
>>>
>>
>>
>>
>> --
>> Jay McCarthy <jay at cs.byu.edu>
>> Assistant Professor / Brigham Young University
>> http://faculty.cs.byu.edu/~jay
>>
>> "The glory of God is Intelligence" - D&C 93
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20130129/90c28b4d/attachment.html>

Posted on the users mailing list.