(last updated 2009-10-15) Name : John Fultz Email : jfultz&wolfram.com MIME media type name : Application MIME subtype name : Vendor Tree - vnd.wolfram.mathematica.package Required parameters : None Optional parameters : One optional parameter, version, which will take a value of two integers (a major version number and a minor version number) separated by a decimal point. E.g., . Encoding considerations : 8bit This media type may require encoding on transports not capable of handling 8 bit text. Security considerations : The purpose of Mathematica package files is to contain source code for execution in Mathematica. As a result of executing the code, you can do anything Mathematica can do, which includes changing the file system and launching processes. However, the default launching mechanisms for package files cause them to be opened in an editor in source form. The code can only be executed by explicit user command. A Mathematica package file may be encrypted using the Encode function of the Mathematica language. The resulting file will be executable in Mathematica using the Get or Needs functions, but it will no longer be editable or viewable by any means. Attempting to open such a file in the user interface would show only the encrypted form. The code cannot be viewed, although any side effects of executing the code will be discernible by inspecting the state of the Mathematica kernel after executing the code. The Encode function may optionally be provided an arbitrary string which will act as a key. Only users who have this key will be able to execute the content by invoking the Get function with that key. The file may also be encoded for a particular machine. This is done by using a relatively unique (but not guaranteed unique) hash called the "MathID" of the target machine as part of the Encode operation. As of the time of this writing, this is the complete set of features Mathematica packages support to ensure authorship, integrity, or privacy. It is, in principle, possible to extend the format in a backwardly compatible way to include other, more flexible features which would insure authorship and integrity. As a result, the feature set may improve in the future without requiring the registration of a new media type. Interoperability considerations : The Mathematica package file can be executed by Mathematica on any platform. Package files support a Unicode representation in 7-bit form. However, it's also possible to use the native system character encoding in a package file. If this is done, then parts of the file may execute incorrectly on a platform which uses a different native system character encoding. Published specification : The syntax for the file is the Mathematica syntax, as described in the documentation for Mathematica. Applications which use this media : Mathematica, Mathematica Player Pro Additional information : 1. Magic number(s) : None 2. File extension(s) : .m 3. Macintosh file type code : Creator: OMEG, Type: TEXT 4. Object Identifiers: none Mathematica is an interpreted language. Mathematica package files are the canonical raw source files for that language. Person to contact for further information : 1. Name : Wolfram Research, Inc. 2. Email : info&wolfram.com Intended usage : Common Author/Change controller : Wolfram Research, Inc. 100 Trade Center Drive Champaign, IL 61820-7237 (file created 2009-10-15)