USING: errors gadgets-tracks generic hashtables help io kernel math memory sequences words ; ARTICLE: "changes" "Changes in the latest release" { $heading "Factor 0.83" } { $subtopic "First class quotations" { $list "Support for cons cells and linked lists has been removed from the core language." "Quotations are now a first-class array-like type with the same literal syntax that linked lists used to have." { "A few quotation construction words such as " { $link curry } ", " { $link unit } " and " { $link alist>quot } " have been moved to the " { $snippet "kernel" } " vocabulary." } } } { $subtopic "UI" { $list "New apropos tool." "New word browser tool." { "New " { $link track } " gadget replaces the old " { $snippet "splitter" } "; it behaves similarly but supports more than two children." } "Key down and key up gestures have been made separate." "Window positions and contents are now saved in the image." "You can now paste from the clipboard using Control-V (Mac OS) or by middle-clicking (X11)." "The UI now uses 2-dimensional rather than 3-dimensional co-ordinates, since the third dimension was never used." "Beginnings of an MVC framework taking some cues from functional reactive programming." } } { $subtopic "Documentation" { $list "Better looking markup output." "Expanded and improved documentation." "Full-text search." } } { $subtopic "Mac OS X-specific" { $list "Factor now runs on Intel-based Macs." { "Redesigned Cocoa binding. Messages are now sent via the " { $snippet "->" } " parsing word, for example:" { $code "NSObject -> alloc -> init" } } "Files can be run by dropping them on the Factor icon in the dock" { "Services support; if you drop " { $snippet "Factor.app" } " in your " { $snippet "Applications" } " directory, you will be able to evaluate Factor code from other applications." } "File->Run command." } } { $subtopic "Core language changes" { $list { "The " { $snippet "reverse-slice" } " word has been removed; call " { $link } " instead." } { "The " { $link sum } " and " { $link product } " words have been moved into the core." } { "New " { $link remove-hash* } " word removes the former value." } { "C library interface now features full support for " { $snippet "ushort*" } " UTF-16 strings." } { "Restartable errors are now supported; throw them using " { $link condition } ", and invoke restarts in the listener using " { $link :res } "." } { { $link with-stream-table } " word for tabular formatting." } { "Style stack and associated words such as " { $snippet "format*" } " have been removed in favor of a better abstraction, " { $link with-style } " and " { $link with-stream-style } "." } } } { $subtopic "Contributed libraries" { $list { "There is a new mechanism for loading contributed libraries that correctly handles dependencies; see " { $link "modules" } "." } "Factory window manager updates (Eduardo Cavazos)" { "New " { $snippet "slate" } " gadget for easier graphical output for simulations and demos. (Eduardo Cavazos)" } "Automata and boids demos. (Eduardo Cavazos)" { "More concise syntax for variables in " { $snippet "contrib/vars.factor" } ". (Eduardo Cavazos)" } } } { $subtopic "HTTP server" { $list "Improved AJAX outliners in the help responder can now be collapsed." { "Files with the " { $snippet ".fhtml" } " extension are run through the " { $snippet "embedded.factor" } " module; snippets of Factor code between " { $snippet "<%" } " and " { $snippet "%>" } " are evaluated and their output intermingled with the HTML text." } } } { $heading "Factor 0.82" } { $list "New code generator framework in compiler" "Floating point operations are now open-coded, resulting in a performance gain" { "Remove " { $snippet "unswons" } " word" } "Implement value type struct inputs to callbacks on AMD64" "Fix some Unix I/O bugs" "Standard OS X-style menu bar in the Cocoa UI (Kevin Reid)" "Objective C methods defined in Factor can now return C structures by value" } { $heading "Factor 0.81" } { $subtopic "UI" { $list "Replaced SDL backend code with Mac OS X (Cocoa), X11 and Windows implementations" { "The UI now starts by default under X11 if " { $snippet "$DISPLAY" } " is set" } "Multiple windows are now supported" "New browser gadget supports history and multiple views of an object" "Preferred size cache to speed up gadget layout" "Better-looking outliners" } } { $subtopic "Help system" { $list { "Help cross-referencing implemented - the " { $snippet "links-in." } " and " { $snippet "links-out." } " words are analogous to " { $link usage. } " and " { $snippet "uses." } } { "New documentation covers development tools and C library interface" } } } { $subtopic "Core language" { $list "Stack underflow and overflow errors are not reported as such, and not generic \"signal 11\" errors (Adam Langley)" { "The " { $link standard-combination } " word now takes a stack position, not a picker quotation, and delegation is now supported for words which dispatch on a stack location other than the top" } { "New " { $link exchange } " word" } { "More useful " { $link heap-stats. } " output now shows count/allocation statistics per-class, instead of per-type" } { "Factor now looks for a " { $snippet "factor.image" } " in the same directory as the runtime executable on Mac OS X and Windows, if you don't specify an image name parameter on the command line" } } } { $subtopic "Portability" { $list "Solaris x86 port (Patrick Mauritz)" } } { $subtopic "Compiler" { $list "Compiler no longer splits all branches, reducing compile time and generated code size" } } { $subtopic "C library interface" { $list "Structs can now be passed by value to C functions" { "Callbacks from C code to Factor are now supported - see " { $link "alien-callback" } } { "Improved support for passing UTF16 strings to and from C functions (" { $snippet "ushort*" } " type)" } { "The " { $snippet "BEGIN-ENUM:" } " and " { $snippet "BEGIN-UNION:" } " parsing words have been annexed in favor of new, more consise syntax - see " { $link POSTPONE: C-ENUM: } " and " { $link POSTPONE: C-UNION: } } } } { $subtopic "Objective C library interface" { $list "Objective C classes can now be subclassed" "Objective C exceptions are now caught and reported as Factor exceptions" "Objective C messages returning structs by value are now supported" } } { $subtopic "Contributed libraries" { $subtopic { "External process interface - " { $snippet "contrib/processes.factor" } } { $list "This is a new library" } } { $subtopic { "Partial continuations - " { $snippet "contrib/partial-continuations.factor" } } { $list "This is a new library (Chris Double)" } } { $subtopic { "HTTP server - " { $snippet "contrib/httpd/" } } { $list "File responder fixes" "Inspector responder fixes" "Continuation responder fixes (Chris Double)" { "Add templating engine in " { $snippet "embedded.factor" } " (Alex Chapman)" } } } { $subtopic { "XML parser - " { $snippet "contrib/xml.factor" } } { $list "Various updates for recent Factor changes" "Improved XML output capabilities" } } { $subtopic { "Factory window manager - " { $snippet "contrib/factory/" } } { $list "Many updates" } } { $subtopic { "Cryptography library - " { $snippet "contrib/crypto/" } } { $list "Added Base64 encoding (Doug Coleman)" "Added Blum Blum Shub random number generator (Doug Coleman)" "Added CRC32 checksum (Doug Coleman)" } } { $subtopic { "Space invaders/Intel 8080 emulator - " { $snippet "contrib/space-invaders/" } } { $list "Updated to use Factor UI instead of SDL (Chris Double)" } } } ;