In short, OOC is an Internet based project providing an Oberon-2
development platform. It consists of
* an optimizing compiler,
* a number of source code and compiler related tools,
* a set of standard library modules, and
* a reference manual.
oo2c is the first complete working compiler of the OOC project.
Instead of translating Oberon-2 modules to machine code, it generates
code for the most portable assembler in existence: ANSI-C. The
compiler was initially intended as a prototype backend for OOC, which
could then be used to evaluate and debug the frontend and the
optimization modules. However, it is now a full-fledged development
system, and among other things, it is being used to develop native
code OOC backends.
Yabasic implements the most common and simple elements of the basic language;
It comes with goto/gosub, with various loops, with user defined subroutines
and Libraries. Yabasic does monochrome line graphics and printing.
Yabasic runs under Unix and Windows; it is small (around 200KB) and free.
Changes to the Mercury language:
* Support for constrained polymorphic modes.
* Addition of state variable syntax.
* Improved support for higher-order functions.
* Predicate and function equivalence type and mode declarations.
* Support for defining predicates or functions
using different clauses for different modes.
* Support for Haskell-like "@" expressions.
* Generalized foreign language interface.
Changes to the Mercury compiler:
* A new `--make' option, for simpler building of programs.
* A new `--smart-recompilation' option, for fine-grained dependency tracking.
* A new optional warning: `--warn-non-tail-recursion'.
* A new optimization: `--constraint-propagation'.
* A new optimization: `--loop-invariants'.
* Support for arbitrary mappings from module name to source file name.
Portability improvements:
* Mac OS X is now supported "out-of-the-box".
* On Windows we now support generating non-Cygwin executables.
* Better conformance to ANSI/ISO C.
Changes to the compiler back-ends:
* The native code Linux/x86 back-end is now "release quality".
* The .NET CLR back-end is much improved.
Major improvements to the Mercury debugger, including:
* Support for source-linked debugging using vim (rather than emacs).
* Command-line completion.
* Ability to display values of higher-order terms.
* Declarative debugging.
* Support for transparent retries across I/O.
A new profiler, which we call the Mercury deep profiler or mdprof:
* Supports both time and memory profiling.
* Gathers information about individual call sites as well as procedures.
* Eliminates the assumption that all calls to a procedure have equal cost.
* Allows users to explore the gathered data interactively with a web browser.
Numerous minor improvements to the Mercury standard library.
A new testing tool in the extras distribution.
Blitz++ is a C++ class library for scientific computing which provides
performance on par with Fortran 77/90. It uses template techniques to
achieve high performance. The current versions provide dense arrays
and vectors, random number generators, and small vectors and matrices.
Blitz++ is distributed freely under an open source license, and
contributions to the library are welcomed.
ickle is an ICQ2000 Client using the GTK+ graphical toolkit. It aims to
bring all the useful features of ICQ2000 to non-windows users, such as
SMS messaging.
Contributed by blef@users.sourceforge.net via pkgsrc-wip.
The Matrix Template Library is a C++ class library for basic linear
algebra. The MTL is designed for high-performance while at the same
time taking advantage of the generic programming paradigm (ala the
STL) to allow much greater flexibility and breadth of
functionality. Many new and advanced programming techniques were used
in the construction of this library.
The MTL is a low level library in the sense that the user must be
conscious of the matrix type being used, and that all computationally
expensive operations are explicit. The MTL is not a C++
Matlab. Nevertheless, the interface is designed to be simple and easy
to use.
The matrix types provided include compressed sparse row/column,
banded, packed, diagonal (and tridiagonal), envelope, array of
pointers, and of course dense matrices. All matrix types share a
common and easy to use interface.
The algorithms consist of the traditional basic linear algebra
routines (from the BLAS level-1 to 3) which includes matrix and vector
arithmetic as well as operations such as backward substitution and
norm calculations.
Erlang is a programming language which has many features more commonly
associated with an operating system than with a programming language:
concurrent processes, scheduling, memory management, distribution,
networking, etc.
The initial open-source Erlang release contains the implementation of
Erlang, as well as a large part of Ericsson's middleware for building
distributed high-availability systems.