From eli at barzilay.org Thu Feb 2 15:11:33 2012 From: eli at barzilay.org (Eli Barzilay) Date: Thu, 2 Feb 2012 15:11:33 -0500 Subject: [Racket announcement] Racket v5.2.1 Message-ID: <201202022011.q12KBXVD013281@winooski.ccs.neu.edu> Racket version 5.2.1 is now available from http://racket-lang.org/ * Performance improvements include the use of epoll()/kqueue() instead of select() for the Racket thread scheduler, cross-module inlining of small functions, and the use of SSE instead of x87 for JIT-compiled floating-point operations on platforms where SSE is always available (including x86_64 platforms). A related change is the interning of literal numbers, strings, byte strings, characters, and regexps that appear in code and syntax objects. * DrRacket uses a set of composable ray-traced icons available from the new `images' library collection. * Typed Racket's `typecheck-fail' form allows macro creators to customize the error messages that Typed Racket produces. This is especially useful when creating pattern matching macros. * The performance of Redex's matcher has been substantially improved; depending on the model you should see improvements between 2x and 50x in the time it takes to reduce terms. * Plots look nicer and are more correct at very small and very large scales. New features include customizable dual axis ticks and transforms (e.g., log axes, date and currency ticks, axis interval collapse and stretch), stacked histograms, and 3D vector fields. The legacy `fit' function and libfit have been removed. * The `2htdp/universe' library's `big-bang' form supports an experimental game pad key handler. * The `db' library now supports nested transactions and PostgreSQL arrays. Bugs involving MySQL authentication and memory corruption in the SQLite bindings have been fixed. * The Macro Stepper tool in DrRacket no longer executes a program after expanding it. * In the DMdA teaching languages, infinite recursive signatures ("streams", for example) with no intervening `mixed' are now supported, and the signatures of record definitions without fields now have generators for use with `property'. * MysterX's ActiveX support is deprecated and will be removed in the next release. MysterX's core COM functionality will become deprecated in the next release, but COM functionality will be supported for the foreseeable future as a compatibility layer over a forthcoming `ffi/com' library. [Note that mirror sites can take a while to catch up with the new downloads.] Feedback Welcome, -- ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: http://barzilay.org/ Maze is Life! From matthias at ccs.neu.edu Mon Mar 26 10:45:27 2012 From: matthias at ccs.neu.edu (Matthias Felleisen) Date: Mon, 26 Mar 2012 10:45:27 -0400 Subject: [Racket announcement] Today's DrRacket problem Message-ID: <20336.33031.936261.432596@winooski.ccs.neu.edu> Dear Racket users, Many of you noticed that DrRacket v5.2.1 refused to launch today, March 26. We sincerely apologize for this inconvenience. The problem is due to a so-called "Easter egg", which is a visual surprise that one developer builds into the code for the others and our users -- a tradition going back to the early days of our project. The bug affects only DrRacket, no other Racket software. As far as version 5.2.1 is concerned, the bug will disappear tomorrow, but it will return later this year. For the upcoming release -- due out before the next "easter egg" date -- we will either install much more reliable test methods for the Easter eggs or we will remove them entirely. We intend to make a fixed version of 5.2.1 available later today. In the meantime, we offer the following workarounds for the DrRacket bug: * Revert to version 5.2: http://download.racket-lang.org/racket-v5.2.html * In your current installation of 5.2.1, navigate to the following folder: collects -> drracket -> private remove the file drracket-normal.rkt and replace it with the corrected copy at http://www.cs.utah.edu/plt/fix/drracket-normal.rkt * For those of you with commandline tool experience, download a Racket patch file from http://www.cs.utah.edu/plt/fix/patch-for-v5.2.1.plt navigate in your shell to the folder with the 5.2.1 executables, and install the patch with ./raco setup -A .... where .... specifies a path to the downloaded file. As much as we prepare and test these Easter eggs, software obeys only one law: what can go wrong will go wrong eventually. We definitely should have been more careful. Once again, we regret any problems we caused you today -- Matthias Felleisen, for PLT From eli at barzilay.org Mon Mar 26 16:44:10 2012 From: eli at barzilay.org (Eli Barzilay) Date: Mon, 26 Mar 2012 16:44:10 -0400 Subject: [Racket announcement] Fixed Racket v5.2.1 Installers Message-ID: <20336.54554.539338.864985@winooski.ccs.neu.edu> Dear Racketeers, We have just released a DrRacket version 5.2.1 that starts fine today. The fixed version has replaced the 5.2.1 installers. This version and the original 5.2.1 differ only in this one fix. -- ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: http://barzilay.org/ Maze is Life! From eli at barzilay.org Tue Aug 7 09:39:39 2012 From: eli at barzilay.org (Eli Barzilay) Date: Tue, 7 Aug 2012 09:39:39 -0400 Subject: [Racket announcement] Racket v5.3 Message-ID: <201208071339.q77Ddd7U006362@winooski.ccs.neu.edu> Racket version 5.3 is now available from http://racket-lang.org/ * Submodules are nested module declarations that can be loaded and run independently from the enclosing module. For an overview of submodules, see http://blog.racket-lang.org/2012/06/submodules.html * The futures visualizer is a graphical profiling tool for parallel programs using futures. The tool shows a detailed execution timeline depicting the migration of futures between threads, and gives detailed information about each runtime synchronization that occurred during program execution. In addition, `would-be-future' is a special type of future that always executes sequentially and records all potential barricades a regular future would encounter. * Optimization Coach (formerly Performance Report) reports information about Racket's inlining optimizations. Optimization Coach can be launched in any language through the View menu. * The new `images/flomap' library defines floating-point bitmaps and fast image processing operations on them. It is written in Typed Racket, so Typed Racket code may use it without the cost of contract checks. * The new `json' library supports parsing and generating JSON. (Originally based on Dave Herman's planet library.) * `racket/string' is extended with a set of simplified string manipulation functions that are more convenient than using regexps. `regexp-match*' and friends can now be used with new keyword arguments to return specific matched regexp group/s and gaps between matches. * The new `racket/generic' library allows generic function definitions, which dispatch to methods added to a structure type via the new `#:methods' keyword. * The `class' form supports declaring a method abstract. An abstract method prevents a class from being instantiated unless it is overridden. * The contract library comes with support for interfaces, generics, prompts, continuation-marks, and structs. * Most error messages use a new multi-line format that is more consistent with contract errors and accommodates more information. * Typed Racket supports function definitions with keyword arguments; the startup time of Typed Racket programs has been sharply reduced. * The new `ffi/com' library replaces MysterX; a compatibility `mysterx' library remains, but without ActiveX support. The new `ffi/unsafe/com' library offers a more primitive and direct way to use COM classes and methods. * There is now a very complete completion code for zsh. It is not included in the distribution though; get it at http://goo.gl/DU8JK (This script and the bash completions will be included in the standard installers in future versions.) --- DEPRECATION ---------------------------------------------------- Effective this release: - The `tex2page' and `combinator-parser' libraries have been moved from the Racket distribution to PLaneT: (require (planet plt/tex2page)) (require (planet plt/combinator-parser)) The following has been deprecated and will be removed in the January 2013 release: - the `planet' command-line tool; use `raco planet' instead. The following has been deprecated and will be removed in the August 2013 release: - the `mzlib/class100' library; use `racket/class' instead. Feedback Welcome, -- ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: http://barzilay.org/ Maze is Life! From eli at barzilay.org Wed Nov 7 17:16:14 2012 From: eli at barzilay.org (Eli Barzilay) Date: Wed, 7 Nov 2012 17:16:14 -0500 Subject: [Racket announcement] Racket v5.3.1 Message-ID: <201211072216.qA7MGE4K016585@winooski.ccs.neu.edu> Racket version 5.3.1 is now available from http://racket-lang.org/ Racket: * The `case' form dispatches on characters, fixnums, symbols, and keywords in logarithmic time. (Thanks to Jon Zeppieri.) * The new `racket/format' library provides new and improved string-formatting functions. * Logging tools include improved filtering support based on the name of a logger. A new `define-logger' form simplifies the use of named loggers. Forms such as `log-debug' now support string formatting. * The `for' forms now support `#:break' and `#:final' clauses. * The new PLTCOMPILEDROOTS environment variable configures the search path for compiled bytecode. DrRacket: * Check Syntax now summarizes the documentation (i.e., the blue boxes) for the identifier at the insertion point in the top-right corner of the definitions window. * Check Syntax now runs continuously for programs that declare their language within the source. This mode has been available for several of the past releases, but now enabled by default. * DrRacket can spell-check string constants (enable this in the Edit menu). Typed Racket: * Typed Racket interprets the `Any' type as a different contract. This may signal dynamic errors in some existing mixed typed/untyped programs. The normal fix is to replace a use of `Any' with a more specific types. * NaN is included in all of Typed Racket's floating-point types, which makes precise floating-point types easier to use. * Typed Racket supports a `cast' operation with support for higher-order types. * Typed Racket provides the `:query-type/args' and `:query-type/result' utilities to explore types at the REPL. Miscellaneous: * The `compatibility' collection provides features from Racket relatives, such as `defmacro' and mutable lists. These features are provided to ease porting code to Racket. Avoid them in modern Racket code. * Screenshots of the widgets provided by the Racket GUI library are included in the documentation. (Thanks to Diogo F. S. Ramos.) * FrTime was ported to racket `#lang'. (Thanks to Patrick Mahoney.) Deprecation: The following has been deprecated and will be removed in the January 2013 release: * the `planet' command-line tool; use `raco planet' instead. The following has been deprecated and will be removed in the August 2013 release: * the `mzlib/class100' library; use `racket/class' instead. Feedback Welcome, -- ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: http://barzilay.org/ Maze is Life!