Racket (formerly PLT Scheme) is a programming language suitable for implementation tasks ranging from scripting to application development, including GUIs, Web services, etc. It includes the DrRacket programming environment, a virtual machine with a just-in-time compiler, tools for creating stand-alone executables, the Racket Web server, extensive libraries, documentation for both beginners and experts, and more. It supports the creation of new programming languages through a rich, expressive syntax system. Example languages include Typed Racket, ACL2, FrTime, and Lazy Racket.
New libraries: math, file/untar, file/untgz, file/unzip, and data/bit-vector. A new 'lazy-require' form. Extensions to 'racket/generic' and 'openssl'. A new package system (in beta). A more responsive GUI. auto-parens has been improved. Scribble can render markdown. Documentation cross-reference information is stored in an SQLite3 database. TR-friendly 'plot/typed' and delimited continuation.
This release adds improved performance of Redex's matcher, an improved "plot" library, nicer-looking plots, customizable dual axis ticks/transforms, stacked histograms, and 3D vector fields. Performance improvements include using epoll()/kqueue(), cross-module inlining, and using SSE for JIT-compiled floating-point operations. Literal strings, regexps, etc. are interned. DrRacket uses composable ray-traced icons, and Typed Racket allows customizing type errors in macros. "2htdp/universe" supports an experimental game pad key handler. The "db" library now supports nested transactions and PostgreSQL arrays.
This release adds an online check syntax in DrRacket, the new db library interfaces PostgreSQL, MySQL, SQLite, and ODBC, XREPL (providing convenient plain REPL commands), a reimplemented and extended "plot" library, DrRacket use of more conventional keys ("C-t" for a new tab and "C-r" to run), a "raco link" command which registers a directory as a collection, Typed Racket (providing performance debugging support), more intuitive type printouts, functions with optional arguments, Redex (supporting specifying judgment forms, including type systems and operational semantics), and various fixes and improvements.