Eli Barzilay | 2 Feb 21:11
Favicon
Gravatar

Racket v5.2.1

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
(Continue reading)

Eli Barzilay | 10 Nov 04:16
Favicon
Gravatar

Racket v5.2

Racket version 5.2 is now available from

  http://racket-lang.org/

Release Highlights:

* DrRacket comes with an experimental, on-line check syntax tool,
  although this new tool is disabled default.  See below for more
  information.

* The new `db' library offers a high-level, functional interface to
  popular relational database systems, including PostgreSQL, MySQL,
  and SQLite, as well as other systems via ODBC.

* A new XREPL collection provides convenient commands for a plain
  racket REPL.  It is particularly convenient for people who prefer
  console-based work and alternative editors.  See also the new
  chapter on command-line tools and other editors at the end of the
  Racket Guide.

* The `plot' collection has been reimplemented in Racket.  It now
  offers PDF output, log axes, histograms, and more.  Some code that
  uses `plot' will still work, and some will need light porting.
  The `plot/compat' module offers expedient backward compatibility.

* DrRacket uses more conventional key bindings: `C-t' creates a new
  tab, `C-w' closes the current one, and `C-r' runs the definitions.
  On Mac OS X, the Command key is used.  See "Defining Custom
  Shortcuts" in the DrRacket manual for an example that uses the old
  key bindings.
(Continue reading)

Eli Barzilay | 16 Aug 10:05
Favicon
Gravatar

Racket v5.1.3

Racket version 5.1.3 is now available from

  http://racket-lang.org/

This is a bugfix release, resolving the DrRacket issue with the
contour view.  In addition, two tex files with problematic licensing
were removed.

Feedback Welcome,
--

-- 
          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                    http://barzilay.org/                   Maze is Life!
Eli Barzilay | 3 Aug 21:36
Favicon
Gravatar

Racket v5.1.2

Racket version 5.1.2 is now available from

  http://racket-lang.org/

* The download page includes 64-bit installers for Mac OS X,
  Windows, and two Debian flavors.  Racket now supports OS X Lion.

* Racket now includes a new `racket/place' library to support
  parallelism, complementing `racket/future'.  Racket's parallel
  build process is now based on places instead of multiple OS
  processes.

  Places support share-nothing parallelism and message-passing
  communication.  Compared to futures, places are heavyweight, but
  they have a simpler performance model.

* The syntax-certificate system has been replaced by a syntax-taint
  system.  Both certificates and taints were designed to protect
  otherwise inaccessible bindings from abuse when they appear in
  macro expansions.  Taints are simpler and lighter, and the switch
  closes known holes in the certificate system.  Macros that are not
  implemented with `syntax-rules' or `define-syntax-rule', however,
  must explicitly use `syntax-protect' to protect their expansions
  from abuse.

* The `net/url' library supports HTTPS connections, but beware that
  by default all sites are accepted (equivalent to ignoring a
  browser's warnings about untrusted certificates).

* Error messages in the student languages use a simplified
(Continue reading)

Eli Barzilay | 30 Apr 09:07
Favicon
Gravatar

Racket v5.1.1

Racket version 5.1.1 is now available from

  http://racket-lang.org/

* The new `racket/stream' library provides `stream-first',
  `stream-rest', a lazy `stream-cons', and so on.  Streams are a
  subtype of sequences, so they work in `for' forms.  Some sequence
  generators, such as `in-range', now produce streams.  A
  `racket/sequence' library replaces the old `racket/stream'
  library.

* The new `racket/syntax' library contains facilities useful for
  writing macros.  The new `syntax/srcloc' and `syntax/location'
  libraries provide support for manipulating source locations.

* The `racket/gui' library now supports multi-column list boxes and
  scrolling panels.

* The new `ffi/file' library is useful for writing foreign library
  bindings that cooperate with Racket's security guard mechanism.

* Generators from the `racket/generator' library can now have formal
  arguments that are used when the generator is fired up.

* Single-precision floating-point support is now enabled by default.
  Single-precision floats print differently from their default
  double-precision counterparts, new primitives convert between the
  two precisions, and new reader syntax supports single-precision
  literals.

(Continue reading)

Sam Tobin-Hochstadt | 11 Mar 18:59
Favicon
Gravatar

Announcing the first Racket Days

		       Calling All Racketeers!

PLT is pleased to announce the date of the first Racket Days:

        23 & 34 July 2011

The meeting will take place at Northeastern University in Boston, MA.
It will be an opportunity for developers, researchers, and educators
using Racket, DrRacket, Program By Design, and related technologies to
come together to share plans, ideas, and enthusiasm.  To make it
accessible, we will not charge any registration fees; we'll also serve
you breakfast and lunch.

Racket Days will feature presentations by key members of the
development team, including Matthew Flatt on the future of Racket and
Matthias Felleisen on the Program By Design curriculum.

Most importantly, though, we also want it to feature you.  We are
interested in presentations of any length on using Racket in
industrial software development, academic research, or education -- as
well as anything that we haven't thought of.  All sorts of
presentations are welcome, from extended tutorials to short demos to
experience reports.  Be creative!

To obtain a slot on the program, please send a title and a brief
abstract on what you would like to present to:

   Sam Tobin-Hochstadt <racket-days@...>

Specify how much time you would like for your presentation (anything as
(Continue reading)

Eli Barzilay | 15 Feb 04:34
Favicon
Gravatar

Racket v5.1

Racket version 5.1 is now available from

  http://racket-lang.org/

The most significant change in version 5.1 is a rewrite of the GUI
library:

  http://blog.racket-lang.org/2010/12/racket-version-5.html

Unix/X users will see the biggest difference with this change,
because DrRacket and all Racket GUI programs now take on the desktop
theme for menus, buttons, and other GUI widgets.

In the long run, Racket GUI programs on all platforms will improve
as a result of the library rewrite.  In the short run, beware that
this first release of a new library will inevitably include a new
set of bugs.

Version 5.1 changes in more detail:

* The `racket/draw' library -- which implements the drawing half the
  GUI toolkit -- can be used independent of the `racket/gui/base'
  library and without a graphics display (e.g., without an X11
  connection).

  The new library has one small incompatibility with the old GUI
  toolbox: 'xor drawing is no longer supported.  The new library has
  many additional features: rotation and general affine
  transformations, PDF and SVG drawing contexts, gradients, and
  alpha-channel bitmaps.
(Continue reading)

Eli Barzilay | 7 Nov 06:22
Favicon
Gravatar

[Racket announcement] Racket v5.0.2

Racket version 5.0.2 is now available from

  http://racket-lang.org/

* Typed Racket's optimizer is now turned on by default; error
  messages have been simplified and clarified.

* Contracts: contracts on mutable containers allow functions or
  other higher order values, and contracts are checked when updating
  or dereferencing the containers.  The new contracts are slower
  than the old ones, so the old check-once functionality is still
  available.

  A new dependent function contract combinator, `->i', properly
  assigns blame for contracts that violate themselves and the
  generated wrappers are more efficient than `->d'.  (Although it
  does more checking so your contracts may be faster or slower).

  See the docs for `box/c', `hash/c', `vector/c', `vectorof' and
  `->i' for more details.

* The `when', `unless', `cond', `case', and `match' forms (in
  `racket/base' and derived languages) now allow immediate internal
  definitions.

* Web server: the formlets library provides more HTML form elements;
  `make-xexpr-response' supports a preamble for DTD declarations;
  `serve/servlet' supports stateless servlets.

* New WebSocket implementation, see `net/websocket' for details.
(Continue reading)

Tobias Wrigstad | 17 Sep 17:38
Picon
Picon
Favicon

[Racket announcement] STOP'11 Call for Papers


                         Call for Papers
                Script to Program Evolution (STOP)
                           at POPL 2011
                    Jan 29th, 2011, Austin, TX

Recent years have seen increased use of scripting languages in
large applications. Scripting languages optimize development time,
especially early in the software life cycle, over safety and
robustness.

As the understanding of the system reaches a critical point and
requirements stabilize, scripting languages become less appealing.
Compromises made to optimize development time make it harder to
reason about program correctness, harder to do semantic-preserving
refactorings, and harder to optimize execution speed. Lack of type
information makes code harder to navigate and to use correctly. In
the worst cases, this situation leads to a costly and potentially
error-prone rewrite of a program in a compiled language, losing
the flexibility of scripting languages for future extension.

Recently, pluggable type systems and annotation systems have been
proposed.  Such systems add compile-time checkable annotations
without changing a program's run-time semantics which facilitates
early error checking and program analysis.  It is believed that
untyped scripts can be retrofitted to work with such systems.
Furthermore, integration of typed and untyped code, for example,
through use of gradual typing, allows scripts to evolve into safer
programs more suitable for program analysis and compile-time
optimizations.  With few exceptions, practical reports are yet to
(Continue reading)


Gmane