slang-users mailing list

[2004 Date Index] [2004 Thread Index] [Other years]
[Thread Prev] [Thread Next]      [Date Prev] [Date Next]

[slang-users] slang 2 development snapshot released


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]