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

From: Galler (lzgaller at optonline.net)
Date: Tue Jan 29 13:22:08 EST 2013

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 <http://faculty.cs.byu.edu/~jay>

        "The glory of God is Intelligence" - D&C 93

  <http://faculty.cs.byu.edu/~jay>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20130129/62d5ffbb/attachment-0001.html>

Posted on the users mailing list.