1 Language Model
2 Syntactic Forms
3 Datatypes
4 Structures
5 Classes and Objects
6 Units
7 Contracts
8 Pattern Matching
9 Control Flow
10 Concurrency
11 Macros
12 Input and Output
13 Reflection and Security
14 Operating System
15 Memory Management
16 Running PLT Scheme
Bibliography
Index
On this page:
getenv
putenv
system-type
system-language+ country
system-library-subpath
version
banner
current-command-line-arguments
current-thread-initial-stack-size
vector-set-performance-stats!
Version: 4.0.2

 

14.6 Environment and Runtime Information

(getenv name)  (or/c string? false/c)

  name : string?

Gets the value of an operating system environment variable. The name argument cannot contain a null character; if an environment variable named by name exists, its value is returned (as a string); otherwise, #f is returned.

(putenv name value)  boolean?

  name : string?

  value : string?

Sets the value of an operating system environment variable. The name and value arguments are strings that cannot contain a null character; the environment variable named by name is set to value. The return value is #t if the assignment succeeds, #f otherwise.

(system-type [mode])  (or/c symbol? string? bytes?)

  mode : (one-of 'os 'gc 'link 'so-suffix 'machine) = 'os

Returns information about the operating system, build mode, or machine for a running Scheme.

In 'os mode, the possible symbol results are:

In 'gc mode, the possible symbol results are:

In 'link mode, the possible symbol results are:

Future ports of Scheme may expand the list of 'os, 'gc, and 'link results.

In 'so-suffix mode, then the result is a byte string that represents the file extension used for shared objects on the current platform. The byte string starts with a period, so it is suitable as a second argument to path-replace-suffix.

In 'machine mode, then the result is a string, which contains further details about the current machine in a platform-specific format.

(system-language+country)  string?

Returns a string to identify the current user’s language and country.

Under Unix and Mac OS X, the string is five characters: two lowercase ASCII letters for the language, an underscore, and two uppercase ASCII letters for the country. Under Windows, the string can be arbitrarily long, but the language and country are in English (all ASCII letters or spaces) separated by an underscore.

Under Unix, the result is determined by checking the LC_ALL, LC_TYPE, and LANG environment variables, in that order (and the result is used if the environment variable’s value starts with two lowercase ASCII letters, an underscore, and two uppercase ASCII letters, followed by either nothing or a period). Under Windows and Mac OS X, the result is determined by system calls.

(system-library-subpath [mode])  path?

  mode : (one-of 'cgc '3m #f) = (system-type 'gc)

Returns a relative directory path. This string can be used to build paths to system-specific files. For example, when Scheme is running under Solaris on a Sparc architecture, the subpath starts "sparc-solaris", while the subpath for Windows on an i386 architecture starts "win32\\i386".

The optional mode argument specifies the relevant garbage-collection variant, which one of the possible results of (system-type 'gc): 'cgc or '3m. It can also be #f, in which case the result is independent of the garbage-collection variant.

(version)  (and/c string? immutable?)

Returns an string indicating the currently executing version of Scheme.

(banner)  (and/c string? immutable?)

Returns an immutable string for Scheme’s start-up banner text (or the banner text for an embedding program, such as MrEd). The banner string ends with a newline.

(current-command-line-arguments)

  (vectorof (and/c string? immutable?))

(current-command-line-arguments argv)  void?

  argv : (vectorof (and/c string? immutable?))

A parameter that is initialized with command-line arguments when Scheme starts (not including any command-line arguments that were treated as flags for the system).

(current-thread-initial-stack-size)  exact-positive-integer?

(current-thread-initial-stack-size size)  void?

  size : exact-positive-integer?

A parameter that provides a hint about how much space to reserve for a newly created thread’s local variables. The actual space used by a computation is affected by just-in-time (JIT) compilation, but it is otherwise platform-independent.

(vector-set-performance-stats! results [thd])  void?

  

results

 

:

 

(and/c vector?

       (not/c immutable?))

  thd : (or/c thread? false/c) = #f

Sets elements in results to report current performance statistics. If thd is not #f, a particular set of thread-specific statistics are reported, otherwise a different set of global statics are reported.

For global statistics, up to 10 elements are set in the vector, starting from the beginning. (In future versions of Scheme, additional elements will be set.) If results has n elements where n < 8, then the n elements are set to the first n performance-statistics values. The reported statistics values are as follows, in the order that they are set within results:

For thread-specific statistics, up to 4 elements are set in the vector: