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

From: Galler (lzgaller at optonline.net)
Date: Tue Jan 29 12:14:46 EST 2013

Neil,

I was surprised that flomap showed up at all. I'm not calling it 
explicitly (or to my knowledge implicitly)

Is there a technique to figure out what part of my code is dependent 
upon it?






On Tue, Jan 29, 2013 at 12:05 PM, Neil Toronto wrote:

> `images/flomap' doesn't pull any tricks like that. It's really, really 
> standard Typed Racket stuff, just a bunch of functions and about five 
> macros.
>
> Could it have to do with the fact that flomaps aren't serializable? 
> This is just a stab in the dark, though, because I have no idea what 
> could be causing it.
>
> There are two macros that expand to code that uses of `match-define', 
> in "images/private/flomap-pointwise.rkt". Is that a 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?
>
> I don't recall there being a missing require, or fixing it. That 
> doesn't mean it didn't happen, though...
>
> Neil ⊥
>
> On 01/29/2013 09:52 AM, Robby Findler wrote:
>> 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
>> <mailto: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
>>         <mailto: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 <mailto: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
>>
>>


Posted on the users mailing list.