/usr/share/racket/collects/setup/variant.rkt is in racket-common 6.3-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | #lang racket/base
(require setup/dirs
setup/cross-system
racket/promise)
(provide variant-suffix)
(define plain-mz-is-cgc?
(delay/sync
(cond
[(cross-installation?)
(eq? 'cgc (cross-system-type 'gc))]
[else
(let* ([dir (find-console-bin-dir)]
[exe (cond [(eq? 'windows (system-type)) "Racket.exe"]
[(equal? #".dll" (system-type 'so-suffix))
;; in cygwin so-suffix is ".dll"
"racket.exe"]
[else "racket"])]
[f (build-path dir exe)])
(and (file-exists? f)
(with-input-from-file f
(lambda ()
(regexp-match? #rx#"bINARy tYPe:..c"
(current-input-port))))))])))
(define (variant-suffix variant cased?)
(let ([r (case variant
[(3m script-3m) (or (get-3m-suffix)
(if (force plain-mz-is-cgc?) "3m" ""))]
[(cgc script-cgc) (or (get-cgc-suffix)
(if (force plain-mz-is-cgc?) "" "CGC"))]
[else (error 'variant-suffix "unknown variant: ~e" variant)])])
(if cased? r (string-downcase r))))
|