@mflatt one more question — how does the value of current-compile-machine-target
relate to the value of use-compiled-file-paths
? I assume that machine-independent compiled code should go in a different place than machine-dependent zo files, but how is that arranged?
Related to the above, I see that when run with -M
, racket (including racketcs
) doesn’t change use-compiled-file-paths
— this seems surprising at least for RacketCS.
Unrelated to the above, on pycket I still see exactly one call to compile-linklet
, with the name 'module
, when loading racket/base
with fully-built zo files. Adding logging to regular Racket suggests this doesn’t happen there, but I’m confused about how that could happen. The linklet is very simple, just (linklet ((.get-syntax-literal!) (.set-transformer!)) () (void) (void))
. This log output indicates the instances being created just before and after: [1543205002.070564] making instance : "/home/samth/sw/plt/racket/collects/racket/private/member.rkt"
[1543205002.070584] making instance : instance
[1543205002.070624] making instance : body-instance
[1543205002.070755] making instance : "/home/samth/sw/plt/racket/collects/racket/private/define-et-al.rk
t"
[1543205002.070771] making instance : instance
[1543205002.071093] making instance : body-instance
[1543205002.104487] compiling linklet : module (linklet ((.get-syntax-literal!) (.set-transformer!)) ()
(void) (void))
[1543205002.104726] making instance : data
[1543205002.104739] making instance : decl
[1543205002.104747] making instance : syntax-literal-data
[1543205002.105805] making instance : "/home/samth/sw/plt/racket/collects/racket/private/qq-and-or.rkt"
[1543205002.105831] making instance : instance
[1543205002.105888] making instance : body-instance
[1543205002.106607] making instance : "/home/samth/sw/plt/racket/collects/racket/private/cond.rkt"
Any idea where this could be coming from (or suggestions about how I can figure that out myself)?
The intent of -M
is to write to the place where “.zo” files normally go, and then a raco setup
without -M
will recompile them in place to native format.
I don’t immediately have a good idea about the mystery linklet – and my build is in a bad state at the moment, so it’s difficult to poke around