[racket-dev] Pre-Release Checklist for v5.3

From: Ryan Culpepper (ryan at cs.utah.edu)
Date: Wed Jul 25 15:52:25 EDT 2012

Well, the possible problem that I had in mind still should not cause 
behavior like that, at least not by itself. I would expect it to always 
fail trying to load a module in the racket/match implementation.

OTOH, if reverting the lazy-require addition fixes the problem, that 
suggests that the bug has something to do with the machinery that 
lazy-require uses (dynamic-require, racket/runtime-path, module path 
indexes, etc). And if it doesn't fix the problem, then hopefully it at 
least simplifies the example to be debugged.

A release build with this change should be available tomorrow morning.

Ryan


On 07/25/2012 02:27 PM, Doug Williams wrote:
> And, actually I was premature with the "I have a work around for
> Windows XP". Sometimes it runs, but usually it dies in weird and
> wonderful ways - sometimes with a Win32 error, sometimes with a seg
> fault during gc, sometimes with errors about undefined symbols various
> places. It's rather amusing to watch - but I assume memory is just
> being corrupted now instead of always dying the same way.
>
> Let me know when there is a version I can try again.
>
> Doug
>
> On Wed, Jul 25, 2012 at 12:16 PM, Ryan Culpepper<ryan at cs.utah.edu>  wrote:
>> I suspect the problem is caused by commit 8358420f, which changed match to
>> load part of its implementation lazily using lazy-require. Part of that
>> commit was reverted by 949d12e2, but possibly the use of lazy-require left
>> in is causing problems in some cases.
>>
>> I think it would be best to just fully revert the commit (8358420f) on the
>> release branch.
>>
>> Ryan
>>
>>
>>
>> On 07/25/2012 01:56 PM, Doug Williams wrote:
>>>
>>> It turns out that if I require racket/match explicitly it works.
>>> Although I shouldn't have to since racket/match is provided by #lang
>>> racket. So, I have a work around on Windows XP 32-bit. But it would be
>>> nice to get the problem fixed.
>>>
>>> On Wed, Jul 25, 2012 at 11:51 AM, Doug Williams
>>> <m.douglas.williams at gmail.com>  wrote:
>>>>
>>>> I used Create Executable in DrRacket. But, I just tried raco exe --gui
>>>> main.rkt to create it and get exactly the same error.
>>>>
>>>> On Wed, Jul 25, 2012 at 11:46 AM, Sam Tobin-Hochstadt<samth at ccs.neu.edu>
>>>> wrote:
>>>>>
>>>>> Is this application generated with 'raco exe'?  Or 'Create Executable'
>>>>> in DrRacket?
>>>>>
>>>>> On Wed, Jul 25, 2012 at 10:31 AM, Doug Williams
>>>>> <m.douglas.williams at gmail.com>  wrote:
>>>>>>
>>>>>> Some more information on the problem. The application runs fine with
>>>>>> the pre-release on Windows 7 - 64 bit.
>>>>>>
>>>>>> The code that is dying on Windows XP 32-bit is:
>>>>>>
>>>>>> ---
>>>>>>
>>>>>> (require racket/runtime-path)
>>>>>>
>>>>>> ...
>>>>>>
>>>>>> ;;;
>>>>>> (define-runtime-path subject-path "..\\Subjects.txt")
>>>>>>
>>>>>> ;;;
>>>>>> (define (load-subject-encodings)
>>>>>>     (let ((port (open-input-file subject-path #:mode 'text)))
>>>>>>       (set! subject-encodings
>>>>>>             (append
>>>>>>              default-subject-encodings
>>>>>>              (for/list ((line (in-lines port))
>>>>>>                         #:when (regexp-match? #px"^\"(.*)\"\\s*\"(.*)\""
>>>>>> line))
>>>>>>                (match line
>>>>>>                  ((pregexp "^\"(.*)\"\\s*\"(.*)\"" (list _ subject
>>>>>> encoding))
>>>>>>                   (list (pregexp (format "^(?i:~a)" subject))
>>>>>> encoding))))))
>>>>>>       (close-input-port port)))
>>>>>>
>>>>>> ...
>>>>>>
>>>>>> (define subject-encodings default-subject-encodings)
>>>>>>
>>>>>> (load-subject-encodings)
>>>>>>
>>>>>>    ...
>>>>>>
>>>>>> ---
>>>>>>
>>>>>> This code loads some data at load time. It does use match, which might
>>>>>> explain the message:
>>>>>>
>>>>>> standard-module-name-resolver: collection not found
>>>>>>     collection: "racket/match"
>>>>>>     in collection directories:
>>>>>>     context...:
>>>>>>      standard-module-name-resolver
>>>>>>      #%embedded:g13106:ground-truth-data: [running body]
>>>>>>      #%embedded:g13057:radar-data: [traversing imports]
>>>>>>      #%embedded:g8619:classifier-panel: [traversing imports]
>>>>>>      main: [traversing imports]
>>>>>>      loop
>>>>>>
>>>>>> [Exited. Close box or Ctrl-C closes the console.]
>>>>>>
>>>>>> I get when I run the compiled version. In DrRacket it dies with the
>>>>>> unhandled Win 32 exception.
>>>>>>
>>>>>> Doug
>>>>>>
>>>>>> On Wed, Jul 25, 2012 at 8:39 AM, Doug Williams
>>>>>> <m.douglas.williams at gmail.com>  wrote:
>>>>>>>
>>>>>>> The pre-release 32-bit version still fails for my large applications
>>>>>>> at work fails to execute in DrRacket - 32-bit Windows XP. I don't have
>>>>>>> the source or symbol tables loaded so the only message I get from the
>>>>>>> Visual Studio debugger is attached. This is the same problem I was
>>>>>>> having with the previous pre-release version a month or so ago.
>>>>>>>
>>>>>>> I can create an executable of the application. It fails because it
>>>>>>> doesn't find racket/match. I'll look into that further.
>>>>>>>
>>>>>>> Doug
>>>>>>>
>>>>>>>
>>>>>> _________________________
>>>>>>     Racket Developers list:
>>>>>>     http://lists.racket-lang.org/dev
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> sam th
>>>>> samth at ccs.neu.edu
>>
>>
>>


Posted on the dev mailing list.