[racket] raco distribute problem

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Wed Apr 24 21:00:31 EDT 2013

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.