ServerJS/System: Difference between revisions
< ServerJS
Jump to navigation
Jump to search
m (→Show of Hands: reformatted) |
m (→System Interface Proposal A: updated to reflect the current color choices.) |
||
| Line 1: | Line 1: | ||
= System Interface Proposal A = | = System Interface Proposal A = | ||
All platforms support a free variable, " | All platforms support a free variable, "system", that is an object that may contain the following attributes. The "system" variable may be either a global variable, an argument to every module factory function, or inserted into a module scope by some other means. "system" may be used for dependency injection in sandboxes, so it may be frozen. Therefore, the variable must not be reassigned, or modified in interoperable modules, although it may be mutable and reassignable in particular platforms. | ||
If " | If "system" contains any of the following names, they must have the corresponding meaning: | ||
* stdin: the standard input stream, an object with the same API as a file opened with the mode "r" with no encoding. | * stdin: the standard input stream, an object with the same API as a file opened with the mode "r" with no encoding. | ||
* stdout: the standard output stream, an object with the same API as a file opened with the mode "w" with no encoding. | * stdout: the standard output stream, an object with the same API as a file opened with the mode "w" with no encoding. | ||
* stderr: the standard error stream, an object with the same API as a file opened with the mode "w" with no encoding. | * stderr: the standard error stream, an object with the same API as a file opened with the mode "w" with no encoding. | ||
* | * env: an Object containing posix-style or CGI environment variables. | ||
* | * args: an Array containing the command line arguments for the invoking arguments, not including the interpreter/engine but including the path to the program as it was executed. | ||
* fs: a file default file system root object conforming to the File System API | * fs: a file default file system root object conforming to the File System API | ||
Revision as of 19:26, 8 April 2009
System Interface Proposal A
All platforms support a free variable, "system", that is an object that may contain the following attributes. The "system" variable may be either a global variable, an argument to every module factory function, or inserted into a module scope by some other means. "system" may be used for dependency injection in sandboxes, so it may be frozen. Therefore, the variable must not be reassigned, or modified in interoperable modules, although it may be mutable and reassignable in particular platforms.
If "system" contains any of the following names, they must have the corresponding meaning:
- stdin: the standard input stream, an object with the same API as a file opened with the mode "r" with no encoding.
- stdout: the standard output stream, an object with the same API as a file opened with the mode "w" with no encoding.
- stderr: the standard error stream, an object with the same API as a file opened with the mode "w" with no encoding.
- env: an Object containing posix-style or CGI environment variables.
- args: an Array containing the command line arguments for the invoking arguments, not including the interpreter/engine but including the path to the program as it was executed.
- fs: a file default file system root object conforming to the File System API
Show of Hands
arguments:
- A arguments
- Ondrej Zara
- Wes Garland
- Daniel Friesen
- B args
- Tom Robinson,
- Kevin Dangoor,
- Hannes Wallnoefer,
- Michael O'Brien,
- Chris Zumbrunn,
- Robert Thurnher
- C argv
- Tom Robinson
- Kris Kowal
environment:
- 1 env
- Ondrej Zara
- Tom Robinson
- Kris Kowal
- Kevin Dangoor
- Hannes Wallnoefer
- Michael O'Brien
- Chris Zumbrunn
- Robert Thurnher
- 2 environ
- 3 environment
- Wes Garland
system:
- I sys
- Tom Robinson,
- Kris Kowal
- II System
- Ondrej Zara
- III system
- Ondrej Zara,
- Kevin Dangoor,
- Hannes Wallnoefer,
- Chris Zumbrunn,
- Robert Thurnher
module or free variable:
- Z as a free variable
- Kris Kowal
- Ihab Awad
- Y as a module
- Hannes Wallnoefer