Objective Caml is an implementation of the ML language, based on
the Caml Light dialect extended with a complete class-based object system
and a powerful module system in the style of Standard ML.
Objective Caml comprises two compilers. One generates bytecode
which is then interpreted by a C program. This compiler runs quickly,
generates compact code with moderate memory requirements, and is
portable to essentially any 32 or 64 bit Unix platform. Performance of
generated programs is quite good for a bytecoded implementation:
almost twice as fast as Caml Light 0.7. This compiler can be used
either as a standalone, batch-oriented compiler that produces
standalone programs, or as an interactive, toplevel-based system.
The other compiler generates high-performance native code for a number
of processors. Compilation takes longer and generates bigger code, but
the generated programs deliver excellent performance, while retaining
the moderate memory requirements of the bytecode compiler.
One recurring problem in modules that use Scalar::Util's weaken function is
that it is not present in the pure-perl variant.
While this isn't necessarily always a problem in a straight CPAN-based Perl
environment, some operating system distributions only include the pure-Perl
versions, don't include the XS version, and so weaken is then "missing" from
the platform, despite passing a dependency on Scalar::Util successfully.
Most notably this is RedHat Linux at time of writing, but other come and go
and do the same thing, hence "recurring problem".
The normal solution is to manually write tests in each distribution to ensure
that weaken is available.
This restores the functionality testing to a dependency you do once in your
Makefile.PL, rather than something you have to write extra tests for each
time you write a module.
It should also help make the package auto-generators for the various
operating systems play more nicely, because it introduces a dependency that
they have to have a proper weaken in order to work.
Python Paste brings consistency to Python web development and web
application installation, providing tools for both developers and
system administrators.
These provide several pieces of "middleware" (or filters) that can be
nested to build web applications. Each piece of middleware uses the
WSGI (PEP 333) interface, and should be compatible with other
middleware based on those interfaces.
This module associates a PID file with your script for the purpose
of keeping more than one copy from running (concurrency prevention).
It creates the PID file, checks for its existence when the script
is run, terminates the script if there is already an instance running,
and removes the PID file when the script finishes.
This module's objective is to provide a completely simplified
interface that makes adding PID-file-based concurrency prevention
to your script as quick and simple as possible; hence File::Pid::Quick.
For a more nuanced implementation of PID files, please see File::Pid.
savelogs is a flexible and robust log file archival system. Its
logic is simple: move (rename) the log file, filter data from
the log file, store the log file in an archive (via tar or
gtar), and compress the archive (via gzip or compress). After
successful compression, the original log file is deleted.
All of the above phases are optional. This means that you may
simply delete files if you wish. Or you may simply compress
existing log files. Or you may move files and add them to a tar
file but leave the tar file uncompressed, etc. You pick ;o)
savelogs has many options yet retains a high degree of dwimitude.
Mg is a small, fast, portable, and free (public domain) Emacs-like
editor maintained by the OpenBSD Project. It is intended for people
who can't, or don't want to, run the real GNU Emacs, or are not
familiar with the vi(1) editor.
Although it is intended to be largely compatible with GNU Emacs, Mg
doesn't have special modes for tasks other than editing plain text.
Moreover, since it is written entirely in C, there is no language in
which to write extensions in (read: no builtin Lisp interpreter).
If you are looking for something that looks like Emacs (don't want to
learn another editor) but don't have the resources to run the latter,
this may be what you're looking for.
Enjoy!
Dima Dorfman
dima@unixfreak.org
14 May 2001
This is version 6.1 of Rdist from USC. It is based on rdist from
4.3BSD (classic). It includes all fixes for all bugs known to the
CSRG Berkeley folks. It has been running at USC and numerous other
sites for some time now on a wide variety of platforms.
This version of rdist is not directly compatible with rdist
distributed with 4.3BSD and subsequent vendor releases, but does
indirectly provide full backward compatibility.
This version of rdist does not need to be setuid "root" at all. Rdist
now uses the rsh(1c) [remote command] program to make connections to
remote hosts, instead of making the connection directly. This
eliminates the need to be run as "root". Many thanks to Chris
Siebenmann <cks@utcc.utoronto.ca> and John DiMarco
<jdd@cdf.toronto.edu> who came up with an rsh version of rcmd() that
makes this possible.
A packet sniffer designed to run as a daemon with automatic log rotation.
It will also act as a software tap injecting packets onto a second
interface if configured as such.
Bison is a tool used to write parsers, such as the parser for GNU cc.
It is similar to Yacc, which is included in the base FreeBSD system.
The main difference between Bison and Yacc that I know of is that
Bison supports the @N construction, which gives you access to
the starting and ending line number and character number associated
with any of the symbols in the current rule.
Also, Bison supports the command `%expect N' which says not to mention
the conflicts if there are N shift/reduce conflicts and no reduce/reduce
conflicts.
The differences in the algorithms stem mainly from the horrible
kludges that Johnson had to perpetrate to make Yacc fit in a PDP-11.
Also, Bison uses a faster but less space-efficient encoding for the
parse tables (see Corbett's PhD thesis from Berkeley, "Static
Semantics in Compiler Error Recovery", June 1985, Report No. UCB/CSD
85/251), and more modern technique for generating the lookahead sets.
(See "Efficient Construction of LALR(1) Lookahead Sets" by F. DeRemer
and A. Pennello, in ACM TOPLS Vol 4 No 4, October 1982. Their
technique is the standard one now.)
deb2targz is a very small shell script for converting Debian Linux .deb packages
to a .tar.gz.