[racket-dev] Can't Find a Workaround for Bug 11017 in DrRacket

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Tue Jul 20 16:16:41 EDT 2010

Sorry-- I should have been more clear: this looks like a bug and we'll
try to get it fixed.

Robby

On Tue, Jul 20, 2010 at 3:12 PM, Doug Williams
<m.douglas.williams at gmail.com> wrote:
> Since it is autogenerated code, most of the time it is just run once (via a
> shell call) and discarded - it's the results that are important and send
> back to the knowledge base. So, I don't need to keep the .zo files up to
> date. In fact, the only reason I ever execute the autogenerated code under
> DrRacket is when I'm debugging the code generator itself.
>
> However, we're now looking at using the generated models themselves in some
> more advanced parametric analysis. That's why I split the Monte Carlo code
> out separately and ran into the bug. The production system is still under
> V4.2.5 and doesn't have the problem - and it is strictly in the
> run-once-and-forget mode. I only ran into the problem on my laptop, which
> I'd rather not drop back to pre-V5.
>
> I'll see if disabling the automatic compilation also solves the problem.
>
> Doug
>
> On Tue, Jul 20, 2010 at 1:45 PM, Robby Findler <robby at eecs.northwestern.edu>
> wrote:
>>
>> Did you try disabling the automatic compilation (in the details
>> portion of the language dialog)? My guess is that that will make the
>> problem go away. (If so, you can also then start running "raco make
>> <filename.rkt>" in the shell to keep the .zo files up to date and save
>> on load times.)
>>
>> Robby
>>
>> On Tue, Jul 20, 2010 at 2:24 PM, Doug Williams
>> <m.douglas.williams at gmail.com> wrote:
>> > Okay, some more information.
>> >
>> > If I execute DrRacket with the Monte Carlo file, make sure Debugging is
>> > checked (in the Language dialog with Show Details), and hit Run, I get
>> > the
>> > error:
>> >
>> > string<?: expects type <string> as 1st argument, given: #f; other
>> > arguments
>> > were:
>> >
>> > "0fe14e326dff1551df22271bdae03080a46dff5a9cd41e2f58a86ac8158ca605f292b20a02896479"
>> >
>> > with no backtrace available.
>> >
>> > If I then select No debugging or profiling and hit Run, I get the error:
>> >
>> > ..\..\..\..\..\..\..\..\..\Program
>> > Files\Racket\collects\racket\private\sort.rkt:85:19: string<?: expects
>> > type
>> > <string> as 1st argument, given: #f; other arguments were:
>> >
>> > "082577093f20c187869d70b940a5b298cd5572084c12d02f2de08868342b8264c39b7fe111a38bf5"
>> >
>> > with a backtrace.
>> >
>> > If I then select Debugging and profiling and hit Run, it actually runs
>> > (although more slowly) and produces a profile.
>> >
>> > Interestingly, I can then go and check either Debugging or No debugging
>> > or
>> > profiling and it runs. But, if I exit and restart DrRacket it goes back
>> > to
>> > not working.
>> >
>> > Weird, huh?
>> >
>> > Doug
>> >
>> > On Tue, Jul 20, 2010 at 11:18 AM, Doug Williams
>> > <m.douglas.williams at gmail.com> wrote:
>> >>
>> >> I seem have hit the same (or related) bug that Laurent Orseau submitted
>> >> as
>> >> bug 11017 (but in a completely different context that might help track
>> >> it
>> >> down) and I haven't been able to find a workaround. The actual error
>> >> message
>> >> I get is:
>> >>
>> >> string<?: expects type <string> as 1st argument, given: #f; other
>> >> arguments were:
>> >>
>> >>
>> >>  "c29a751537a750b825f72c9ee37eea737a0f3a8b9cd41e2f58a86ac8158ca605f292b20a02896479"
>> >>
>> >> coming from somewhere in the bowels of DrRacket. I don't get the error
>> >> when using Racket (i.e., MzScheme). I'm not sure if this machine was
>> >> running
>> >> the stock V5.0 or a post-V5.0 nightly build that fixed a PLaneT problem
>> >> I
>> >> was having. But, the pre-release 5.0.1 build gives the same error. I
>> >> reloaded V4.2.5 and the code runs fine there.
>> >>
>> >> I was hoping that the string in the error message itself might give
>> >> someone in the know some idea of the problem.
>> >>
>> >> Unfortunately, this happens in a rather large autogenerated agent-based
>> >> simulation that isn't easily posted - although I can send the code and
>> >> the
>> >> development packages it uses to someone if they need it.
>> >>
>> >> A short extract of the 'main' program that runs:
>> >>
>> >> #lang scheme
>> >> ;;; Agent Generation from Templates - PRIME (AGenT') by SET Corporation
>> >> (an SAIC Company)
>> >> ;;; Autogenerated PLT Scheme source code
>> >> invest-in-pa-yangi-yangi-tucker---plausible-outcomes-212-main.ss
>> >> ;;; Generated Monday, July 19th, 2010 12:33:42pm
>> >>
>> >> (require (planet williams/madness/madness)
>> >>
>> >> "invest-in-pa-yangi-yangi-tucker---plausible-outcomes-212-arguments.ss"
>> >>
>> >>
>> >> "invest-in-pa-yangi-yangi-tucker---plausible-outcomes-212-argument-values.ss"
>> >>
>> >>
>> >> "invest-in-pa-yangi-yangi-tucker---plausible-outcomes-212-data-collection.ss")
>> >>
>> >> ... <about 1300 SLOC redacted>
>> >>
>> >> ;;;
>> >> ;;; Monte Carlo loop
>> >> INVEST-IN-PA-YANGI-YANGI-TUCKER---PLAUSIBLE-OUTCOMES
>> >> ;;;
>> >> (define (INVEST-IN-PA-YANGI-YANGI-TUCKER---PLAUSIBLE-OUTCOMES n)
>> >>   (with-new-simulation-environment
>> >>     (let ((aggregate-instance-index (make-hasheq)))
>> >>       (for ((i (in-range n)))
>> >>         (INVEST-IN-PA-YANGI-YANGI-TUCKER i aggregate-instance-index))
>> >>       (print-statistics aggregate-instance-index)
>> >>       (generate-exhibit-files aggregate-instance-index)
>> >>       (generate-results-XML aggregate-instance-index n))))
>> >>
>> >> ;;;
>> >> ;;; Execute Monte Carlo
>> >> ;;;
>> >>
>> >> (INVEST-IN-PA-YANGI-YANGI-TUCKER---PLAUSIBLE-OUTCOMES 10)
>> >>
>> >> ;;;
>> >> ;;; Module Contracts
>> >> ;;;
>> >>
>> >> (provide (all-defined-out))
>> >>
>> >> If I simply remove the call to
>> >> (INVEST-IN-PA-YANGI-YANGI-TUCKER---PLAUSIBLE-OUTCOMES 10) and move it
>> >> to
>> >> it's own package:
>> >>
>> >> #lang scheme
>> >> ;;; Agent Generation from Templates - PRIME (AGenT') by SET Corporation
>> >> (an SAIC Company)
>> >> ;;; Autogenerated PLT Scheme source code
>> >> invest-in-pa-yangi-yangi-tucker---plausible-outcomes-212-monte-carlo.ss
>> >> ;;; Generated Monday, July 19th, 2010 12:33:43pm
>> >>
>> >> (require
>> >> "invest-in-pa-yangi-yangi-tucker---plausible-outcomes-212-main.ss")
>> >>
>> >>
>> >> ;;;
>> >> ;;; Execute Monte Carlo
>> >> ;;;
>> >>
>> >> (INVEST-IN-PA-YANGI-YANGI-TUCKER---PLAUSIBLE-OUTCOMES 10)
>> >>
>> >> I get the error above. [Again, it runs under Racket (i.e., MzScheme).]
>> >>
>> >> Please let me know if there are some switches I can set or otherwise
>> >> provide additional information.
>> >>
>> >> Ah, I just ran it with "No debugging or profiling" checked and got some
>> >> additional information - seems interesting that I got more information
>> >> with
>> >> no debugging. But anyway the error printed is now
>> >>
>> >> ..\..\..\..\..\..\..\..\..\Program
>> >> Files\Racket\collects\racket\private\sort.rkt:85:19: string<?: expects
>> >> type
>> >> <string> as 1st argument, given: #f; other arguments were:
>> >>
>> >> "146047b7b2121bf8f7b15d7c2ef396b710f394474c12d02f2de08868342b8264c39b7fe111a38bf5"
>> >>
>> >> It also gave a backtrace that I copied and pasted into the attached
>> >> file.
>> >> [Was a better way to do that?]
>> >>
>> >> Doug
>> >>
>> >>
>> >
>> >
>> > _________________________________________________
>> >  For list-related administrative tasks:
>> >  http://lists.racket-lang.org/listinfo/dev
>> >
>
>


Posted on the dev mailing list.