add (system-type 'word)
Returns 32 or 64 to indicate whether Racket is running as a 32-bit program or a 64-bit program.
This commit is contained in:
parent
aa27011f34
commit
4a57db4448
|
@ -18,9 +18,9 @@ contain a null character; the environment variable named by
|
||||||
@racket[name] is set to @racket[value]. The return value is
|
@racket[name] is set to @racket[value]. The return value is
|
||||||
@racket[#t] if the assignment succeeds, @racket[#f] otherwise.}
|
@racket[#t] if the assignment succeeds, @racket[#f] otherwise.}
|
||||||
|
|
||||||
@defproc[(system-type [mode (or/c 'os 'gc 'link 'so-suffix 'machine)
|
@defproc[(system-type [mode (or/c 'os 'word 'gc 'link 'so-suffix 'machine)
|
||||||
'os])
|
'os])
|
||||||
(or/c symbol? string? bytes?)]{
|
(or/c symbol? string? bytes? exact-positive-integer?)]{
|
||||||
|
|
||||||
Returns information about the operating system, build mode, or machine
|
Returns information about the operating system, build mode, or machine
|
||||||
for a running Racket.
|
for a running Racket.
|
||||||
|
@ -34,6 +34,10 @@ In @indexed-racket['os] mode,
|
||||||
@item{@indexed-racket['macosx]}
|
@item{@indexed-racket['macosx]}
|
||||||
]
|
]
|
||||||
|
|
||||||
|
In @indexed-racket['word] mode, the result is either @racket[32] or
|
||||||
|
@racket[64] to indicate whether Racket is running as a 32-bit program
|
||||||
|
or 64-bit program.
|
||||||
|
|
||||||
In @indexed-racket['gc] mode,
|
In @indexed-racket['gc] mode,
|
||||||
the possible symbol results are:
|
the possible symbol results are:
|
||||||
|
|
||||||
|
|
|
@ -2572,6 +2572,9 @@
|
||||||
(test #t symbol? (system-type 'link))
|
(test #t symbol? (system-type 'link))
|
||||||
(test #t relative-path? (system-library-subpath))
|
(test #t relative-path? (system-library-subpath))
|
||||||
|
|
||||||
|
(test #t pair? (memv (system-type 'word) '(32 64)))
|
||||||
|
(test (fixnum? (expt 2 32)) = (system-type 'word) 64)
|
||||||
|
|
||||||
(test #t 'cmdline (let ([v (current-command-line-arguments)])
|
(test #t 'cmdline (let ([v (current-command-line-arguments)])
|
||||||
(and (vector? v)
|
(and (vector? v)
|
||||||
(andmap string? (vector->list v)))))
|
(andmap string? (vector->list v)))))
|
||||||
|
|
|
@ -1146,7 +1146,8 @@
|
||||||
(-> (-val 'gc) (Un (-val 'cgc) (-val '3m)))
|
(-> (-val 'gc) (Un (-val 'cgc) (-val '3m)))
|
||||||
(-> (-val 'link) (Un (-val 'static) (-val 'shared) (-val 'dll) (-val 'framework)))
|
(-> (-val 'link) (Un (-val 'static) (-val 'shared) (-val 'dll) (-val 'framework)))
|
||||||
(-> (-val 'so-suffix) -Bytes)
|
(-> (-val 'so-suffix) -Bytes)
|
||||||
(-> (-val 'machine) -String))]
|
(-> (-val 'machine) -String)
|
||||||
|
(-> (-val 'word) -PosInt))]
|
||||||
[system-language+country (-> -String)]
|
[system-language+country (-> -String)]
|
||||||
[system-library-subpath (->opt [(Un (-val #f) (-val 'cgc) (-val '3m))] -Path)]
|
[system-library-subpath (->opt [(Un (-val #f) (-val 'cgc) (-val '3m))] -Path)]
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
Version 5.3.1.10
|
Version 5.3.1.10
|
||||||
Added phantom byte strings
|
Added phantom byte strings
|
||||||
|
Added 'word mode to system-type
|
||||||
|
racket/gui: added display-changed to frame%
|
||||||
|
|
||||||
Version 5.3.1.9
|
Version 5.3.1.9
|
||||||
Changed case to use equal? instead of eqv?
|
Changed case to use equal? instead of eqv?
|
||||||
|
|
|
@ -2349,9 +2349,14 @@ static Scheme_Object *system_type(int argc, Scheme_Object *argv[])
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sym = scheme_intern_symbol("word");
|
||||||
|
if (SAME_OBJ(argv[0], sym)) {
|
||||||
|
return scheme_make_integer(sizeof(void*)*8);
|
||||||
|
}
|
||||||
|
|
||||||
sym = scheme_intern_symbol("os");
|
sym = scheme_intern_symbol("os");
|
||||||
if (!SAME_OBJ(argv[0], sym)) {
|
if (!SAME_OBJ(argv[0], sym)) {
|
||||||
scheme_wrong_contract("system-type", "(or/c 'os 'link 'machine 'gc 'so-suffix)", 0, argc, argv);
|
scheme_wrong_contract("system-type", "(or/c 'os 'word 'link 'machine 'gc 'so-suffix 'word)", 0, argc, argv);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user