ANNOUNCE: Picolibri version 0.2
===============================
As part of my ongoing work on the Cloverfield project, I am pleased to
announce
the second version of Picolibri, a port of Picol 0.1.22 to the Colibri
library
(currently at version 0.14)
CHANGES SINCE VERSION 0.1
=========================
1. [string tolower|toupper|totitle] now use Unicode locale thanks to the new
CoATL library.
2. New [regexp] command based on CoATL's regular expression support (a
port of
Henry Spencer's library used in Tcl 8.5).
WHAT IS CLOVERFIELD?
====================
Wiki page:
http://wiki.tcl.tk/Cloverfield
WHAT IS PICOL?
==============
Picolibri started as a minimalist Tcl interpreter written by Salvatore
Sanfilippo, written in 550 lines and code. It was further enhanced by
Richard
Suchenwirth to include modern Tcl features such as apply.
Wiki page:
http://wiki.tcl.tk/Picol
" SS: Picol (
http://antirez.com/page/picol) is a Tcl interpreter in
500 lines
of C code! If you like it vote my entry on reddit here
http://programming.reddit.com/info/1aft9/comments (the reddit url
changed
because of a reddit bug).
RS Since 2007-04-01, I'm playing with Picol at home - it's been a
long while
that I prefer to do a breakfast fun project in C :) Basically I'm
adding
features to bring it closer to Tcl (7.x - everything is a string
really).
Linecount is at about 1700 now. Latest additions focused on 8.5
features
like apply (see below), {*}, in/ni etc.
DISCLAIMER: This is an educational toy model only, it is weaker and
slower
that real Tcl. I'm not planning to add regexp, Unicode, full expr
parsing
etc... But it's great for experimenting with C, I've had weeks of
fun with
it. "
See also the provided README.txt for complete details about Salvatore &
Richard
work.
WHAT IS COLIBRI?
================
Wiki page:
http://wiki.tcl.tk/Colibri (outdated)
SF.net project page:
https://sourceforge.net/projects/tcl9/files/colibri/
" Colibri is an abstract data type infrastructure. It features:
- Extensible data type sytem dubbed "words"
- Fast and efficient cell-based allocator
- Automatic memory management thanks to an exact (AKA accurate or
precise),
generational, copying, mark-and-sweep, garbage collector "
WHAT IS PICOLIBRI?
==================
Picolibri is a straight port of Picol (in its current version 0.1.22) to the
Colibri library (version 0.14), replacing plain C strings with Colibri
ropes,
and malloc'd memory management with automatic garbage collection. It
also relies
on the CoATL library (version 0.1) for some features such as case
conversion and
regular expressions. The modified source is about 80 lines longer than the
original (1761 vs 1701 for picol.c, and 147 vs. 127 for picol.h), but this
includes extra features such as regexps. Most changes involve replacing
C calls
such as strlen by their Colibri counterparts, mostly through macros for
readability, and also providing string to Colibri structure conversions
(ropes,
lists, maps...).
Picolibri is mostly an experiment to demonstrate and evaluate the
usability of
Colibri and CoATL in real word applications, and especially in the
context of
interpreted languages. It greatly helped identify weaknesses and lacks of
feature in the Colibri interface (especially regarding high level string
handling), as well as define the CoATL interface for advanced features.
However
it is quite usable as such (and no less usable than the original Picol); it
provides a fairly complete Tcl interpreter in a very small footprint and
with
minimal code: source code is about 1900 lines of C code in two files,
and the
resulting Windows binary is 60kB along with the 85kB Colibri DLL plus
the 767kB
CoALT library (mostly due to the included Unicode data). While not
production
quality, it proved a decent educational toy to play & experiment with.
WHERE CAN IT BE FOUND?
======================
The modified Picol source is part of the Colibri source distribution here:
http://sourceforge.net/projects/tcl9/files/colibri/colibri0.14/colibri0.14.src.zip/download
A pre-compiled Windows library is available here, it includes the
command-line
executable along with Colibri DLL and the original Picol scripts:
http://sourceforge.net/projects/tcl9/files/colibri/colibri0.14/picolibri0.2.win32.zip/download
LICENSE
=======
The license is the same as for Tcl.