- Subject: [slang-users] slang 2 development snapshot released
- From: "John E. Davis" <davis@xxxxxxxxxxxxx>
- Date: Mon, 4 Oct 2004 01:37:43 -0400
A development snapshot of slang 2 is available from
<ftp://space.mit.edu/pub/davis/slang/2.0-devel/slang-pre2-r0.tar.gz>.
Its MD5 checksum is ee3e94399257be71fee8bdf17b144a72. A brief
synopsis of what to expect in this release is appended below.
There are still a few wish-list items that I would like to accomplish
before officially releasing version 2. For the most part these items
are internal to the interpreter and should not affect the slang 2 API
in any significant way. In addition the library still needs testing
on non-Unix systems. Nevertheless I feel that this snapshot is ripe
for use by those who are currently making use of version 1 and would
like to start migrating towards version 2.
At the moment, the slang 2 documentation is incomplete. The API
underwent a number of significant changes and I have not yet
documented many of the new functions. Nevertheless, the documentation
that exists should be enough to get started.
Sometime in the next week or so, I will release a new version of jed
that has been ported to slang 2. I have also made slang-2 specific
patches available to the current slrn developer. Hence, slang-2 aware
applications are already on the horizon.
Again, keep in mind that this is a development snapshot and probably
has a few wrinkles that still need ironed out.
Thanks,
--John
-----------------------------------------------------------------------
Version 2 NEWS:
* A number of interfaces have had API changes:
SLsmg
SLregexp
SLsearch
SLrline
SLprep
See UPGRADE.txt if you use any of these.
* UTF-8 encoded strings are now supported at both the C library level
and in the interpreter.
* Error handling by the interpreter has been rewritten. Now
applications may define application-specific error codes.
* The library may be compiled with large-file-support.
* make install-elf now compiles and installs slsh and the slang modules.(Unix)
Interpreter NEWS:
* The number of available data types supported by the interpreter has
been increased from 255 to 65535.
* List_Type has been added to the language, e.g.,
x = {1, 2.7, "foo", [1:10]};
will create a (heterogeneous) list of 4 elements.
* try/catch/throw/finally exception handling has been added.
ERROR_BLOCKS are now deprecated.
* Operator overloading for user-defined types. For example it is
possible to define a meaning to X+Y where X and Y are defined as
typedef struct { x, y, z } Vector;
define vector (x,y,z) { variable v = @Vector; v.x=x; v.y=y; v.z=z;}
X = vector (1,2,3);
Y = vector (4,5,6);
* A string literal may contain a suffix to indicate whether or not it is
binary or whether the backslash character is meaningful, e.g,
"C:\foo\bar"R --> R: raw string, \ is meaningless
"C:\\foo\\bar"Q --> Q: quoted string, \ is meaningful
"C:\\foo\\bar"B --> B: binary string (BString_Type)
* Syntactic sugar for "method" calls, e.g., instead of:
(@s.method)(s, args);
one may use
s.method(args);
This should make "object-oriented" code somewhat more readable.
* _for and foreach statements made somewhat more user-friendly. It is now
possible to use
_for i (1, 10, 1) { statements; }
as an alternative for
_for (1, 10, 1) { i = (); statement; }
Similarly,
foreach X (foo) {statements;}
in now supported.
* A number of new intrinsics including:
hypot, atan2, floor, ceil, round, isnan, isinf
_min, _max, _diff
__is_callable, __is_numeric, __is_same, __class_type, __class_id
_ispos, _isneg, _isnonneg
The functions fpu_clear_except and fpu_test_except may be used to
clear and examine the floating point unit exception bits.
Functional forms of the binary operators:
_op_plus, _op_minus, _op_times, _op_divide, _op_eqs, _op_neqs,
_op_gt, _op_ge, _op_lt, _op_le, _op_pow, _op_or, _op_and, _op_band,
_op_bor, _op_xor, _op_shl, _op_shr, _op_mod,
* Division by zero for floating point numbers is nolonger trapped.
* Support for "long long" integers has been added:
X = 18446744073709551615ULL;
* A new function called _eqs has been added. It performs a different
function from __eqs, which has now been renamed to __is_same to
avoid confusion. Confused?
* Keymaps support a reference to slang functions, e.g.,
setkey (&my_func, "^A");
_______________________________________________
To unsubscribe, visit http://jedsoft.org/slang/mailinglists.html
[2004 date index]
[2004 thread index]
[Thread Prev] [Thread Next]
[Date Prev] [Date Next]