[racket] raco distribute problem

From: D. LoBraico (d at lobraico.com)
Date: Wed Apr 24 21:14:39 EDT 2013

Great! Thanks again for taking the time. I'll give the patch a go.

-Dominick

Matthew Flatt writes:

> Thanks! I've pushed a repair.
>
> The problem was in the way that `raco distribute' updates an
> executable's path to the Racket implementation. The path is in an
> particular ELF section, and the section's size wasn't updated in the
> header if the data was resized.
>
> I had trouble replicating the problem because, in my configuration, the
> relevant path didn't get larger in the `raco distribute' step.
>
> At Wed, 24 Apr 2013 11:47:16 -0500, Dominick LoBraico wrote:
>> Hi Matt,
>> 
>> Thanks for your response! I'm sorry that I never got back to you, it looks
>> like my gmail filters shuttled this away without my noticing.
>> 
>> I'm attaching client.rkt for your reference. If you'd like the entire
>> program, I could get that to you as well, just let me know.
>> 
>> best,
>> Dominick
>> 
>> 
>> On Wed, Apr 10, 2013 at 8:34 AM, Matthew Flatt <mflatt at cs.utah.edu> wrote:
>> 
>> > This problem looks familiar, but I think I wasn't able to replicate it
>> > when I last tried, and I'm not able to replicate it now (even using
>> > `funcitonal-command').
>> >
>> > Could you send me "client.rkt", or some sharable variant that has the
>> > same problem?
>> >
>> > Also, are you using a 32-bit or 64-bit build on Linux?
>> >
>> > Thanks!
>> >
>> > At Mon, 08 Apr 2013 17:00:29 -0500, "D. LoBraico" wrote:
>> > > I have a command-line application that I have been compiling with Racket
>> > > 5.3.3 as follows:
>> > >
>> > > raco exe client.rkt
>> > > raco distribute client-dist client
>> > >
>> > > This creates a client-dist directory that I can then use to distribute
>> > > my work to other machines running the same operating system. Up until
>> > > this point I have been doing this on Mac OS X with no trouble. Now I am
>> > > trying to replicate this process on a Linux machine. I run the same
>> > > steps on a Linux box and have what appears to be the same client-dist
>> > > directory.
>> > >
>> > > The difference, is that for some reason the version compiled on Linux
>> > > does not work! That is to say, the binary in client-dist/bin does not
>> > > function (even on the original machine that it was compiled on) in the
>> > > same way as the binary that resulted from `raco exe
>> > > client.rkt`. Specifically, it seems as if the executable thinks that it
>> > > is getting more command-line arguments than it is. I modified my code to
>> > > print all of the command-line arguments in hopes of getting some insight
>> > > into this and get this:
>> > >
>> > > $ /tmp/client-dist/bin/client "test"
>> > > client: expects no arguments on the command line, given 3 arguments:
>> > "test"
>> > >
>> > > I suspect that whatever those 2 invisible arguments are is causing me
>> > > trouble, but I can't for the life of me figure out where they are coming
>> > > from. In case it is relevant, I am using the functional-command package
>> > > from PLaneT for command-line parsing.
>> > >
>> > > Any ideas?
>> > >
>> > > best,
>> > > Dominick
>> > > ____________________
>> > >   Racket Users list:
>> > >   http://lists.racket-lang.org/users
>> >
>> 
>> ------------------------------------------------------------------------------
>> [application/octet-stream "client.rkt"] [~/Desktop & open] [~/Temp & open]


Posted on the users mailing list.