55
edits
m (→System Interface Proposal A: updated to reflect the current color choices.) |
|||
(19 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
= System Interface | = System Interface = | ||
All platforms support a | All platforms must support a module, "system", that may contain the following attributes. | ||
If "system" contains any of the following names, they must have the corresponding meaning: | If "system" contains any of the following names, they must have the corresponding meaning: | ||
Line 9: | Line 9: | ||
* 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. | * 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. | * 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. See also the [[ServerJS/Command Line|Command Line page]]. | ||
* | |||
Any names not mentioned here or amended into this specification later should begin with "x" and a vendor-specific label as a prefix, like system.xCajaDomita. This will permit the future standardization of additional names as needed. Please request additional standard names below. | |||
= Compliant Implementations = | |||
* [http://github.com/tlrobinson/narwhal/ Narwhal] | |||
* [http://flusspferd.org/ Flusspferd] (in 0.7) | |||
* [http://github.com/hns/helma-ng/ Helma NG] (in 0.4) | |||
= Additional proposed names = | |||
The following names have been proposed but not ratified for inclusion in the System proposal. | |||
* print: The "system" MAY have a "print" function that forwards its thisp and arguments to "system.stdout.print" with lazy binding (meaning that, if system.stdout is replaced, print MUST forward to the new stdout). | |||
* log: The "system" MAY have a "log" function that accepts a "message" and an optional "label" String. | |||
** The label MAY be one of "log", "debug", "warn", "error", "pass", "fail". | |||
** Any other, unspecified label MUST be in lower-case and begin with "x" and a vendor-specific label like "x-v8cgi-database". | |||
* platform: the "system" MAY contain a string with its vendor-specific platform name. | |||
* global: the "system" MAY contain a reference to the global object. | |||
== Removed proposals == | |||
* fs: a file default file system root object conforming to the File System API | |||
system | * print (proposal A): The "system" MAY have a "print" function that accepts a "message" and an optional "label" String. | ||
* | ** The label MAY be one of "log", "warn", "error", "pass", "fail". | ||
* | ** Any other, unspecified label MUST be in lower-case and begin with "x" and a vendor-specific label like "x-v8cgi-database". | ||
** | ** '''Counter-argument''' This is infact not printing, but logging. 1) there is lots of logging frameworks, 2) it probably doesn't belong on sys, certainl not called ''print'' | ||
* | *** '''Counter-argument''' However, ''print'' has meant to write a line to stdout in many languages. That it would frequently be used for logging in non-stdio contexts is not necessarily relevant. | ||
* | |||
* | |||
** | |||
= Show of Hands = | |||
[[ServerJS/System/ArchivedShowOfHands]] | |||
== Relevant Discussions == | == Relevant Discussions == | ||
* [http://groups.google.com/group/serverjs/browse_thread/thread/4f6c16e2f4c14c25/7c10fe164ead35c0?lnk=gst Module System feedback] | * [http://groups.google.com/group/serverjs/browse_thread/thread/4f6c16e2f4c14c25/7c10fe164ead35c0?lnk=gst Module System feedback] | ||
* [http://groups.google.com/group/serverjs/browse_thread/thread/749c3777f62cf34 System API Proposal] |
edits