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

From: Neil Toronto (neil.toronto at gmail.com)
Date: Tue Jan 29 13:44:45 EST 2013

If it helps, you can search for modules that use `images/icons' or 
`images/logos'. The functions they export render things first as 
flomaps, then convert them to bitmaps.

Neil ⊥

On 01/29/2013 11:22 AM, Galler wrote:
> Ok. Let me expend some time tracking down the flomap dependencies and
> we'll reconvene discussion when/if I can get reproducibility.
>
> Thanks much.
>
>
>
>
>
>
> On Tue, Jan 29, 2013 at 12:20 PM, Robby Findler wrote:
>
> Open your main file in DrRacket and use the Racket|Module Browser menu
> item.
>
> Robby
>
>
> On Tue, Jan 29, 2013 at 11:14 AM, Galler < _lzgaller at optonline.net_
> <javascript:parent.wgMail.openComposeWindow('lzgaller at optonline.net')>>
> wrote:
> 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_
> <javascript:parent.wgMail.openComposeWindow('lzgaller at optonline.net')>
> <mailto: _lzgaller at optonline.net_
> <javascript:parent.wgMail.openComposeWindow('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_
> <javascript:parent.wgMail.openComposeWindow('lzgaller at optonline.net')>
>          <mailto: _lzgaller at optonline.net_
> <javascript:parent.wgMail.openComposeWindow('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_
> <javascript:parent.wgMail.openComposeWindow('jay at cs.byu.edu')><mailto:
> _jay at cs.byu.edu_
> <javascript:parent.wgMail.openComposeWindow('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
>
>
> <http://faculty.cs.byu.edu/~jay>
>


Posted on the users mailing list.