Rocksolid Light

News from da outaworlds

mail  files  register  groups  login

Message-ID:  

Clothes make the man. Naked people have little or no influence on society. -- Mark Twain


comp / comp.lang.tcl / ANNOUNCE: CFFI 2.0.3 released

SubjectAuthor
* ANNOUNCE: CFFI 2.0.3 releasedAshok
`- Re: ANNOUNCE: CFFI 2.0.3 releasedHarald Oehlmann

1
Subject: ANNOUNCE: CFFI 2.0.3 released
From: Ashok
Newsgroups: comp.lang.tcl
Organization: A noiseless patient Spider
Date: Thu, 5 Dec 2024 05:59 UTC
Path: eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: apnmbx-public@yahoo.com (Ashok)
Newsgroups: comp.lang.tcl
Subject: ANNOUNCE: CFFI 2.0.3 released
Date: Thu, 5 Dec 2024 11:29:48 +0530
Organization: A noiseless patient Spider
Lines: 107
Message-ID: <virfgi$1e8n5$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Thu, 05 Dec 2024 06:59:47 +0100 (CET)
Injection-Info: dont-email.me; posting-host="88c99fa1881cc1f7be0d4749b7d7077f";
logging-data="1516261"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19MNC6HrHLApKqGTXLcEN7M"
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:XOIXeKsh0idzXt7USXOrftNe6JM=
Content-Language: en-US
View all headers

First official (non-beta) release of CFFI 2.0.

Repository: https://github.com/apnadkarni/tcl-cffi

Docs: https://cffi.magicsplat.com/

Downloads: https://sourceforge.net/projects/magicsplat/files/cffi

CFFI is a Foreign Function Interface extension for Tcl 8.6 and 9.

## Changes in v2.0

### Platform and backends

- Support for Tcl 9

- The `dyncall` backend now requires dyncall 1.4 and adds support for
callbacks, variable arguments and passing of structs by value.

### Type declarations and annotations

- New class `Interface` for modeling COM objects.

- New class `Union` to support C unions.

- New base type `uuid`.

- Array type declarations can now use aliases as the base type.

- New `type` subcommands `tobinary` and `frombinary` to construct or
deconstruct a binary string for any type declaration.

- The `nullifempty` annotation may also be applied for types `bytes`,
`chars` and `unichars`.

- The `nullifempty` annotation may be used for optional `out` parameters
to indicate they are optional.

- Added `saveerrors` annotation to save errno and Win32 error values and
the `savederrors` command to retrieve them.

- New `discard` annotation to discard the result of a function call.

- New annotation `multisz` to support MULTI_SZ strings on Windows.

### Memory management

- New `memory` subcommands `towinstring`, `fromwinstring`, `tounistring`
and `fromunistring`.

- New command `memory arena` for stack-like memory allocation at script
level.

### Structs

- New option `-pack` for `Struct` to control alignment and padding.

- Added method `size` for structs and unions.

- Allow last field in a struct to be a variable size array.

### Enums

- Integer values for enum types that are bitmasks are no longer
automatically mapped to list of enum members. Note enum members are
still implicitly converted to integer values. *Incompatible change*

- New `enum` subcommand `alias` to couple an enum definition as an alias.

- New `enum` subcommand `names` to return names of enum members.

### Pointers

- `pointer castable` can now take multiple arguments.

- Pointer definitions within a struct or union have an implicit
`unsafe` annotation.

### Function definitions

- New syntax for comments within `functions` and `stdcalls` definitions.

- Output struct parameters can be passed as undefined variables.

- Annotation `retval` can be applied to parameters to `void` functions.

- Added option `-ignoremissing` to `Wrapper` methods `functions` and
`stdcalls` to not raise error in case of missing shared library
functions.

- Lengths of variable size array parameters can be passed through
`byref` or `inout` parameters.

- On error exceptions, the `errorCode` variable now includes the numeric
error code when one of the error handling annotations is present.

### Miscellaneous

- Enhanced `help` command.

- Built-in aliases are now loaded in the `::cffi::c` namespace and
implicitly included in the search path.

- Various [bug
fixes](https://github.com/apnadkarni/tcl-cffi/milestone/13?closed=1).

Subject: Re: ANNOUNCE: CFFI 2.0.3 released
From: Harald Oehlmann
Newsgroups: comp.lang.tcl
Organization: A noiseless patient Spider
Date: Thu, 5 Dec 2024 07:21 UTC
References: 1
Path: eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: wortkarg3@yahoo.com (Harald Oehlmann)
Newsgroups: comp.lang.tcl
Subject: Re: ANNOUNCE: CFFI 2.0.3 released
Date: Thu, 5 Dec 2024 08:21:48 +0100
Organization: A noiseless patient Spider
Lines: 7
Message-ID: <virkac$1f7mv$1@dont-email.me>
References: <virfgi$1e8n5$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Thu, 05 Dec 2024 08:21:48 +0100 (CET)
Injection-Info: dont-email.me; posting-host="06c3a575ba4389d4db04bb9be5ea5904";
logging-data="1547999"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1++JSg3F/oMqxa6K7dn+KLt"
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:dMECE60oEn73keH5I4ScSrJGePQ=
In-Reply-To: <virfgi$1e8n5$1@dont-email.me>
Content-Language: en-GB
View all headers

Am 05.12.2024 um 06:59 schrieb Ashok:
> First official (non-beta) release of CFFI 2.0.

Wow, so many changes and new features, really amazing !

Thanks Ashok,
Harald

1

rocksolid light 0.9.8
clearnet tor