Groups | Search | Server Info | Login | Register


Groups > comp.programming > #7877

ANN: TXR 180 released.

From Kaz Kylheku <686-678-9105@kylheku.com>
Newsgroups comp.unix.programmer, comp.programming
Subject ANN: TXR 180 released.
Date 2017-06-25 23:46 +0000
Organization Aioe.org NNTP Server
Message-ID <20170625163059.875@kylheku.com> (permalink)

Cross-posted to 2 groups.

Show all headers | View raw


I'm pleased to announce the 180th public release of the TXR
language.

Home: <http://www.nongnu.org/txr>.
Git: <http://www.kylheku.com/cgit/txr>.

TXR is comprised of a whole-document pattern matching language ("the
'TXR pattern language' or just 'TXR'") combined with an innovative Lisp
dialect ('TXR Lisp') which is used an extension language within TXR, or
standalone. TXR is loaded with features. The terse reference manual is
now pushing close to 600 pages.

Last I posted a Usenet announcement was for TXR 141.

There have been quite a few features and fixes over the thirty-nine
releases.

The most significant thing that has been brewing since 175 is FFI: the
foreign-function interface, which greatly broadens the range of
applications for which TXR may be used.

FFI means that TXR Lisp now can easily call functions in C libraries,
and also use C types for I/O or shared memory communication.

TXR's FFI supports by-value argument passing and returning. It supports
structs, arrays, and unions. It supports bitfields in 8, 16 and 32 bit
cell sizes. It supports enums and boolean types.
It also supports alignment directives: you can control the alignment of
any array element of structure member to match any packing scheme.

It also supports endian types: integral types in little and big endian
flavor. These can be used as functon arguments not only aggregate
members. If a C function requires a 32 bit integer in network byte
order, you can declare that argument as "be-uint32", and it's done;
no explicit byte order conversion required when calling that function.

Management of conversions between Lisp and C representations is
automatic, as is the management of temporary storage.

Here is the Rosetta Code "Windows Creation/X11" task, solved in TXR
Lisp, as a direct translation of the C solution:

http://www.nongnu.org/txr/rosetta-solutions-main.html#Window%20creation/X11

Here is a sample which reads a character from a <x, y> position of a
Windows console, using the Win32 Console API:

http://www.nongnu.org/txr/rosetta-solutions-main.html#Terminal%20control/Positional%20read

I have designed the FFI macro language of TXR to be so smooth, that code
using FFI for a given C library is nicer than the library-specific
wrapper modules for that library in other dynamic languges.

Cheers ...

-- 
TXR Programming Lanuage: http://nongnu.org/txr
Music DIY Mailing List:  http://www.kylheku.com/diy
ADA MP-1 Mailing List:   http://www.kylheku.com/mp1

Back to comp.programming | Previous | Next | Find similar


Thread

ANN: TXR 180 released. Kaz Kylheku <686-678-9105@kylheku.com> - 2017-06-25 23:46 +0000

csiph-web