
does compile-zos
compile the dependencies too?

No, but compile-collection-zos
and compile-dierctory-zos
do. That’s not at all apparent from the documentation, and I’ll fix the docs.
Meanwhile, managed-compile-zo
is the main dependency-following function, also in its make-caching-managed-compile-zo
form. That’s what compile-collection-zos
and compile-dierctory-zos
use.

I see, thank you

compile-directory-zos
does go through dependencies, but a little too much now: By compiling a directory where I have rwx permissions, it cascades into directories where I don’t have write permission, and it fails while trying to create a subdirectory: /home/laurent/.racket/quickscript/user-scripts
(execute write read)
checking: /home/laurent/.racket/quickscript/user-scripts/add-frame-child.rkt
checking: /usr/share/racket/pkgs/errortrace-lib/errortrace/errortrace-key.rkt
failed reading /usr/share/racket/pkgs/errortrace-lib/errortrace/compiled/drracket/errortrace/errortrace-key_rkt.dep
old version #f for /usr/share/racket/pkgs/errortrace-lib/errortrace/errortrace-key.rkt...
maybe-compile-zo starting /usr/share/racket/pkgs/errortrace-lib/errortrace/errortrace-key.rkt
no source hash: /usr/share/racket/pkgs/errortrace-lib/errortrace/errortrace-key.rkt
compiling /usr/share/racket/pkgs/errortrace-lib/errortrace/errortrace-key.rkt
[ERROR] make-directory: cannot make directory
path: /usr/share/racket/pkgs/errortrace-lib/errortrace/compiled/drracket/
system error: Permission denied; errno=13
How does raco make
do that correctly then?

You may be seeing an interaction with DrRacket trying to compile files. Do you see the same thing if debugging is disabled in DrRacket?

More generally raco make
only avoids the problem if modules are up-to-date where you can’t write.

I’ve run into something that looks like it could be a bug in Racket CS. I have a mutable hash table with thousands of entries, but calling (hash-copy (expression that returns table))
returns a table with only the first 32 entries. I wasn’t seeing this behavior with BC.

That does sound like a bug. File a report here. If you can, include an example. https://github.com/racket/racket/issues

Ok, let me see if I can duplicate it with a minimal example.
