Yuma Release Notes ================== This file lists the changes in each beta release of Yuma, using the following key to identify each item: [New] -- a new feature has been added. [Fix] -- a bug or incomplete implementation has been fixed. [Chg] -- though an existing feature was working as intended, we have decided to change the behavior as described. [Kis] -- known issue; describes a problem we're aware of, but have not yet fixed. [Nte] -- NOTE: something important you should know about. Yuma 1.1 -------- [Fix] Fixed a bug in HTTPSocket.Post (and several similar socket methods) that could crash the server under heavy load. [Fix] Updated HTTPSocket and HTTPSecureSocket to use a timeout period in seconds rather than ticks. Note that HTTPSocket, HTTPSecureSocket, and SMTPSocket all have a default timeout period of 20 seconds and a maximum timeout period of 30 seconds. [New] Added automatic purging of old session files in both the Development and Enterprise servers. Here's how it works: at startup, and every five minutes after that, the "sessions" folder is scanned for files that haven't been touched in the last 15 minutes. Those are put onto a list to be checked in a low-priority background thread, and any found to be expired are deleted. This will keep your sessions folder clean without any noticeable impact on server performance. [New] Added improved exception handling to XMLNode. New ErrorCode and ErrorMessage properties will be populated when instantiating a new XMLDocument or XMLStyleSheet or calling LoadXML on either of those classes with either an invalid xml string or document with invalid xml content. Errors are also trapped when calling the XQL function on the XMLNode class. Yuma 1.0 -------- [Nte] Official release of Yuma 1.0. (No changes from 1.0fc1.) Yuma 1.0fc1 ----------- [Fix] Fixed a small bug in the -quickref function of the enterprise server, which caused it to erroneously report a "Close" method in the Session module. [Chg] Removed the expiration date from both Development and Enterprise server. [Chg] Added a license system to the Enterprise server. You will now need a license file, or else the Enterprise server will only run for 30 minutes at a time. (If you have purchased Yuma and do not have a license file, please contact us.) Yuma 1.0b10 ----------- [Fix] Changed XMLNode.Count to XMLNode.ChildCount. [Fix] Fixed a bug which could cause "invalid path" errors after directories containing Yuma files were deleted and re-created. Yuma 1.0b9 ---------- [Fix] Missing or incomplete methods on TextInputStream (e.g. Read and EOF) have now been implemented. [New] All framework classes that define a "Close" subroutine are now declared to implement the Closeable interface. [Fix] Fixed several methods in the MemoryBlock class that were returning the wrong data type. [Fix] Fixed the "quick reference" text to properly group and sort global methods (some of which were previously mixed in with unrelated classes). Yuma 1.0b8 ---------- [Nte] Extended the expiration date for the beta to June 30, 2008. Yuma 1.0b7 ---------- [Fix] Fixed a bug which caused a custom HTTP status to get "stuck" in the results for a particular page (for more details on this issue, see ). [Fix] Added a work-around for a Safari quirk where some files uploaded via a form would arrive without a Content-Type header, causing Yuma to treat them as direct input rather than file uploads. These cases are now caught and treated as file uploads (with a MIME type of application/octet-stream). [Fix] Fixed an error in the Installation-Apache2.txt file (which incorrectly named the fastcgi module "env" instead of "fastcgi"). [Fix] Fixed an error in yuma-apache2.conf which specified the wrong directory for the Rewrite module log file (such files are stored in /var/log/apache2 on Mac OS 10.5, not /var/log/httpd). [Fix] Fixed a bug which could cause the Yuma server to crash if a client requested a directory, when more than one default index file was defined, but no default index file was actually found. [Nte] Extended the expiration date for the beta to June 15, 2008. Yuma 1.0b6 ---------- [Nte] Extended the expiration date for the beta to May 31, 2008. [New] Added a version of mod_fastcgi.so for Mac (PPC). Yuma 1.0b5 ---------- [New] A new global method, "SetStatus( status As Integer)", has been added. This lets you override the default HTTP status (which is normally 200, unless you set a Location header, in which case it's 302) with any HTTP status code you wish. [New] A new property of the Session module, Session.MinutesToLive, determines how many minutes of inactivity in a session are tolerated before that session is terminated. The default value is 15. [New] The Request Info tab of the development server now shows the date/time that the selected request was received. [Fix] A bug was fixed that caused the auto-validation in the development server to sometimes report failure, even on perfectly valid pages. [Fix] Made the second parameter to RegEx.Replace optional, as it should be. (Note: the second parameter, startPosition, is zero-based; that is, specify 0 to start at the first character, 1 to skip the first character and start at the second, etc. The default value is 0.) [Fix] Fixed the inclusion of files from other include files (a relative #include path is now always processed relative to the file that included it, rather than to the "base" script file). [Fix] Changed the ServerParams reported by the Yuma Development Server to match standard Apache server parameters as much as possible. (See the BrowserDetection example, which now works the same in both environments.) Yuma 1.0b4 ---------- [Fix] Added the (previously overlooked) Dictionary.Values method. [Chg] Made the Preferences window in the Yuma Development Server resizeable. [Fix] Fixed the tab order of controls in the Preferences window. [Fix] Added accelerator keys to labels in the Preferences window (Windows and Linux only). [New] Setting the "Location" header (with SetHeader) now automatically changes the HTTP status code to 302. In other words, you can now redirect the client to another page just by setting Location. [Fix] Added support for ReplaceLineEndings which was previously not recognized by the compiler. [New] Added EndOfLine.HTML which has a value of "
". That is especially useful in conjunction with ReplaceLineEndings to emulate PHP's nl2br function. [Fix] Fixed the use of EndOfLine in comparisons and when concatenated to another string (both of which previously caused compile errors). Yuma 1.0b3 ---------- [Nte] Windows users must open the Preferences and re-select their Document Root folder. [Fix] Changed the way that paths are used on Windows; this fixes a problem where only Yuma files would be served by the dev server, and other files (e.g. plain text, HTML, or image files) were not served. [New] Added EncodeURLComponent and DecodeURLComponent global functions. [Fix] The Cookies dictionary was not previously populated in the dev server; now it is. [Fix] FolderItem.AbsolutePath now returns a URL-style path relative to the document root (just what GetFolderItem and New FolderItem expect). [Fix] GetFolderItem and New FolderItem now assume an initial slash even if you don't supply one (but please use proper form, "/path/to/file"). [Fix] The dev server no longer exits abruptly if you put an invalid path into the "Document Root" or "Include Folder" fields in the Preferences. [New] A new option, "Automatically Validate Each Response," has been added to the Preferences. When checked, each response will be sent through an HTML validator, and the result show in the "Valid" column of the request log with a green checkmark (passed) or red X (failed). If a response is marked as invalid in the request log, select the request you'd like to validate in the request log list and click the Validate button in the Reply Data tab. That will open your default browser to the W3C HTML Validator and load the reply data into your clipboard. Simply paste the reply data into the text field on the W3C site and press the Check button to see a detailed list of errors, complete with line numbers and tips for correcting each error. [Fix] Session IDs are now longer and more random, to make session hijacking significantly more difficult. [New] Added HTTPSocket class. [New] Added PostgreSQLDatabase class. [New] Added SQLiteDatabase class. (Note: To retain compatibility with desktop application code for REALbasic developers, the class may also be referenced as REALSQLDatabase.) [Fix] Fixed a problem where creating two Date objects within one second could actually give you two references to the same object. [Fix] Fixed several related problems with the XML classes that caused them to crash with more than casual use.