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

From: Neil Toronto (neil.toronto at gmail.com)
Date: Tue Jan 29 12:05:22 EST 2013

`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.