[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

Hi,

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  
remarks/questions.
I start with a fresh yesterdays minimal source  
(min-racket-5.90.0.9-src.tgz), 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  
http://www.eecs.northwestern.edu/plt/snapshots/20130929-6d4ff30/catalog/
Resolving "compiler-lib" via https://pkg.racket-lang.org
Downloading checksum for compiler-lib
Downloading  
http://racket-packages.s3-us-west-2.amazonaws.com/pkgs/b824ed762533834659b5f0ee047deafb101acc74/compiler-lib.zip
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  
packets


* the snapshot catalog seems to be nonexistent
If i browse to  
http://www.eecs.northwestern.edu/plt/snapshots/20130929-6d4ff30/catalog/,  
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  
apt).


* raco pkg warnings
On every command i get
warning: tool "pkg" registered twice: "pkg" and  
#<path:/home/hamm_to/tmp/racket/_tmp/racket-5.90.0.9/collects/pkg>
warning: tool "setup" registered twice: "setup" and  
#<path:/home//hamm_to/tmp/racket/_tmp/racket-5.90.0.9/collects/setup>
warning: tool "link" registered twice: "link" and  
#<path:/home/hamm_to/tmp/racket/_tmp/racket-5.90.0.9/collects/setup>

/home/hamm_to/tmp/racket/_tmp/racket-5.90.0.9/ 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  
macro-debugger-text-lib
and they will be installed:
    parser-tools-lib
    unstable-list-lib
Resolving "parser-tools-lib" via  
http://www.eecs.northwestern.edu/plt/snapshots/20130929-6d4ff30/catalog/
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
;     
/volume/USERSTORE/hamm_to/tmp/racket-qnx/linux-racket-5.90.0.9/collects
;    /home/hamm_to/.racket/snapshot/collects
;     
/volume/USERSTORE/hamm_to/tmp/racket-qnx/linux-racket-5.90.0.9/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.

Tobias

Posted on the dev mailing list.