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

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Tue Jan 29 12:20:33 EST 2013

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> 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
>>> <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
>>>
>>>
>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20130129/1dce49fc/attachment.html>

Posted on the users mailing list.