At Fri, 27 Mar 2015 16:42:03 -0700 (PDT), John Carmack wrote:
> I want to be able to build simple (windows) utilities for other team
> members that don't have Racket installed. The archive-with-dlls
> option is better than nothing, but it would be a whole lot better to
> have a single statically linked exe. In this case, it is a 13 MB
> executable, and only 5 MB of dlls.
> 
> Are there fundamental challenges to doing that?

5MB of DLLs sounds like a minimal set: libracket3m, libiconv, and
liblongdouble. Assuming that you don't need text-encoding conversions
or 80-bit floating-point operations, then the run-time system can do
without the latter two DLLs. Linking the content of the remaining
libracket3m DLL and the main "Racket.exe" executable is not difficult
--- except that the build process for Windows is convoluted.

Here are v6.1.1 builds of "Racket.exe" that incorporate the libracket3m
DLL's content, so they need only system DLLs:

 http://www.cs.utah.edu/~mflatt/tmp/win-v6.1.1/

You should be able to drop the 64-bit one (I assume) in place your
installation's "Racket.exe" (which, again, I assume is v6.1.1). Then
Racket-generated executables will start with the replacement
"Racket.exe", so they won't depend on "libracket3mXXXX.dll"; you can
discard the "lib" directory that's generated next to the executable.


In case anyone is interested, I've enclosed the patch that I used to
build those executables.


> What goes in the plt directory of the archive, anyway?  It is an empty 
> directory tree for this particular executable.

Extra files that are referenced by forms like `define-runtime-path` and
would go in the "plt" subdirectory. Unless I'm forgetting something,
though, there's no reason for the directory to exist if it's going to
be empty, and I'll fix that.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Attachment: single-exe.patch
Description: Binary data

Reply via email to