Box2D Lite: A Scheme Physics Engine

(via ikarus)

Box2D is a physics engine written in C++ by Erin Catto:

http://www.box2d.org/

Box2D Lite is a simplified version that he posted to his blog once upon a time.

I’ve ported Box2D Lite to Ikarus. Here it is running the pyramid demo:

http://imgur.com/aXAY4

That’s a screenshot of the very first successful run. 🙂

Of course, I’ll be happy to release the code once the performance is cranked a bit.

Ed

More Scheme projects I would like to work on

Here are some more fun and/or interesting Scheme projects that I would like to work on (eventually, and in addition to these):

  • DrScheme: Add line numbers to the editor window
  • DrScheme: Execute code in editor in another Scheme system
  • Port SchemeUnit to R6RS Scheme
  • Scribble the SRFI docs
  • Write a debt-elimination application
  • A Scheme API for generating Graphviz diagrams
  • A Scheme API for managing complex SVN projects
  • Make Scheme screencasts
  • Brush up on the PLT Scheme GUI API
  • Research currency and produce a SRFI for it

Would you find value in a Scribbled version of the SRFI docs?

The Scheme SRFIs are a collection of useful and portable Scheme code meant to provide commonly used functionality not included in the specification. The standard documentation format is HTML. For example, here is SRFI 1. While this format works fine, I am wondering if a Scribbled version would be a useful addition. Scribble is the tool used to document PLT Scheme. Here is an example of how their documentation looks.

Doing so would be pretty easy by implementing it as a PLaneT package; the documentation itself could be distributed via PLaneT or a simple file download for anyone interested.

What do you think?

fmt 0.7 Released

fmtis

A library of procedures for formatting Scheme objects to text in various ways, and for easily concatenating, composing and extending these formatters efficiently without resorting to capturing and manipulating intermediate strings.

This release also addresses a long-time pet peeve of mine – you can now format exact non-integral rationals to arbitrary precision. Rationals provide extended precision, but until now it was always difficult to see that precision in a human-readable manner.

(via ikarus)

Implicitly Concurrent Scheme

Aubrey Jaffer, author of SCM and SLIB, wrote that:

There has been a lot of concern over how to harness the speed potential of multi-core processors without a disrupting reinvention of software engineering. Implicit concurrency is a solution.

His proposal for implementing this solution is a simple addition to the standard:

Implicitly-Concurrent-Scheme is a minor modification to Scheme Report semantics which allows, but does not require, both interpreters and compilers to simply parallelize the execution of programs. No new primitives are introduced. In order to write ICS programs which produce the same output irrespective of concurrent evaluation order requires a regime very similar to the that required of RnRS programs to produce the same output irrespective of serial evaluation order.

It has a pretty good selling point: no new language constructs. Everything works the way you already expect (unspecified order of evaluation == concurrent evaluation of arguments). Read everything in-between those quotes here

Nausicaa for R6RS Scheme

#+BEGIN_QUOTE

Nausicaa is a distribution of Scheme language libraries for R6RS Scheme implementations. Currently it attempts to support Ikarus, Larceny, Mosh and Ypsilon.

Nausicaa/Scheme is the core package; it provides foundation libraries and implements the infrastructure of the foreign functions interface. It comes in two flavors:

The full distribution, with documentation and foreign functions interface included. Its installation infrastructure requires a GNU+Linux system (for details see the “README.build” file).

The pure Scheme distribution, includes only the sources of the libraries, ready to be unpacked in their installation destination.

The latest release of the Nausicaa/Scheme package is available at:

<http://github.com/marcomaggi/nausicaa/downloads>

the home page of the Nausicaa project is at:

<http://marcomaggi.github.com/nausicaa.html>

development takes place at:

<http://github.com/marcomaggi/nausicaa/tree/master>

the documentation is available on line:

<http://marcomaggi.github.com/docs/nausicaa.html>

#+END_QUOTE

Read more from the original post here.