[racket-dev] package system, minimal builds and more

From: Tobias Hammer (tobias.hammer at dlr.de)
Date: Tue Oct 1 09:20:59 EDT 2013


i played a bit with the new package system, minimal installs and cross  
compiling. It works pretty good but i have a few problems and  
I start with a fresh yesterdays minimal source  
(min-racket-, build it (natively for linux) and try to  
install packages.

(Given in no particular order)

* compiler-lib install fails with the following error
./bin/raco pkg install -i compiler-lib
Resolving "compiler-lib" via  
Resolving "compiler-lib" via https://pkg.racket-lang.org
Downloading checksum for compiler-lib
raco pkg install: package conflicts with existing installed
   package: compiler-lib
   module path: compiler/option

As its needed by racket-doc and similar it blocks install of a lot of  

* the snapshot catalog seems to be nonexistent
If i browse to  
i always get a 404. Is this intended?

* redownload after fail
the package manager seems to download every packet again after a failed  
install or user interruption. Would it be worth to reuse the once  
downloaded zips if the checksum is the same (similar to the behavior of  

* raco pkg warnings
On every command i get
warning: tool "pkg" registered twice: "pkg" and  
warning: tool "setup" registered twice: "setup" and  
warning: tool "link" registered twice: "link" and  

/home/hamm_to/tmp/racket/_tmp/racket- is the used installation.

* sometimes installations fail without a reason or hangs
./bin/raco pkg install -i xrepl
The following uninstalled packages are listed as dependencies of  
and they will be installed:
Resolving "parser-tools-lib" via  
Resolving "parser-tools-lib" via https://pkg.racket-lang.org
Resolving "parser-tools-lib" via https://planet-compat.racket-lang.org
raco pkg install: cannot find package on catalogs
   package: parser-tools-lib

rerunning the command and it suddenly works.

* monolithic math
currently math is one big package and installing it pulls in nearly  
everything through the docs. Is it planned to split it into -lib and -doc?

* cross compiling and installing
is it possible to install packages as part of the bootstrap process? the  
problem i have is that the build machine is a regular linux but the cross  
compile target is constrained in that it cannot install packages (no  
internet, no writable discs, ...). But i can't install via raco because  
racket is compiled for that target it does not run on linux.
I can currently work around this by installing a linux racket with same  
version, installing there and then copying share/, but thats somewhat ugly.

* More verbose require error
If i require something nonexistent i get an exception like
(require fdfsdfsdf)
; readline-input:4:8: collection not found
;   for module path: fdfsdfsdf
;   collection: "fdfsdfsdf"
;   in collection directories:
;    /home/hamm_to/.racket/snapshot/collects
;    /home/hamm_to/.racket/snapshot/collects
;    ... [22 additional linked and package directories]

Is it possible to somehow show these additional 22 entries? Maybe not in  
the error but from raco?

I know these are a lot of things and some might be obvious or result from  
misunderstanding or missing something. So thanks for enlightening answers  
to any of these.


Posted on the dev mailing list.