Trlc

Latest version: v2.0.0

Safety actively analyzes 688867 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 3 of 4

1.1.2

* [LRM, TRLC] Also allow `:` and `;` as a tuple field separators.

1.1.1

* [LRM, TRLC] New (backwards-incompatible) keywords: `tuple`,
`separator`, `freeze`, `abstract`, and `final`. New punctuation:
``.

* [LRM, TRLC] Support for tuple types: these are algebraic datatypes
that also support user-defined syntax. The main use case is
versioned identifiers, e.g. allowing you to write `1234542` for
example to refer to a codebeamer item 12345 at version 42. Instead
of only allowing this use-case, tuples should be a widely applicable
generic datatype, for specifying e.g. coordinates, qualified
information, complex numbers, vectors, etc.

Have a look at the new [Tuples Tutorial](TUTORIAL-TUPLES.md) for
some examples.

* [LRM, TRLC] Support for freezing record components: you can now
declare that a particular component is always a certain value for
all instances of that record type. This is not the same as a
"default" value, instead that value can never be changed,
overwritten, or unfrozen again.

Have a look at the updated [Catch-all base types
tutorial](TUTORIAL-OPTIONAL-BASE.md) for an example.

* [LRM, TRLC] Support for abstract and final types: abstract must be
extended before they can be used, and final types cannot gain new
components.

Have a look at the new [Advaned tips &
tricks](TUTORIAL-ADVANCED-TYPES.md) tutorial for examples.

* [TRLC] Introducing the tuple type required significant
reorganisation of the AST, to mark this significant backwards
incompatible change we have increased the minor version instead of
just the patch version. The key incompatible changes are:

* New base-class for record types and tuple types, called
`Composite_Type`.

* Components and fields now share the same type
`Composite_Component`.

* New base-class `Typed_Entity` for entities with a type, in which
case the type is stored in the `n_typ` attribute. The entities
`Quantified_Variable`, `Composite_Component` (previously
`Record_Component`), `Enumeration_Literal_Spec`, and
`Record_Object` are now typed entities, and their inconsistent
attribute for their type is now `n_typ` consistently.

* Renamed `n_record` to `n_type` for `Composite_Component` (formally
`Record_Component`).

* [TRLC] Fix unary operators in array aggregates; this used to crash
the tools and now works as expected.

* [TRLC] Fix anchoring of some error messages which incorrectly linked
to the declaration of `x` instead of the part of the expression
where `x` was used.

* [TRLC] Warning and error messages that show source context now strip
leading spaces to preserve space.

* [TRLC] User defined types (records, enumerations, and tuples) now
all subclass from `Concrete_Type` in the API which provides a useful
new function: `fully_qualified_name()` which returns something like
`package.typename`. These types are now also python hashable, so you
can create dictionaries and sets with them without issues.

1.0.13

* [TRLC] Do not enter (sub-)directories named `bazel-*`. This
behaviour can be turned off by using the new option
`--include-bazel-dirs`.

* [TRLC] Add new option `--show-file-list` which dumps, on success,
all files processed by the tool.

* [TRLC] Error messages now show all files relative to the current
working directory.

1.0.12

* [TRLC, LRM] New type `Decimal` which allows you to specify values
such as `0.1` with infinite precision. These are a subset of
rational numbers.

* [TRLC, LRM] New implicitly declared built-in functions `Integer` and
`Decimal` which can be used to convert a value to an `Integer` and
`Decimal` respectively. The language does not support implicit
conversion, you will have to make sure all types are converted
correctly yourself.

* [TRLC, LRM] new type `Markup_String` which is a special kind of
`String` that behaves in exactly the same way. However you reference
other TRLC records directly: `for example see [[potato,
package.wibble]]`. These references are checked and validated by
TRLC.

1.0.11

* [TRLC] You can now provide more than one directory on the
command-line to process, as well as individual files. If no files or
directories are provided the default is now to analyse the currenty
directory `.` including all sub-directories.

* [TRLC] In error messages that reference another file+location more
of the path is now shown to help you find the problem. For example
instead of `previous definition at foo.rsl:1` you now would get
`previous definition at potato/foo.rsl:1`.

1.0.10

* [TRLC] Fix issue where TRLC could sometimes return 0 instead of 1 if
there were non-fatal errors.

* [TRLC] Fix missing array length checks. Arrays now correctly have
their desired size enforced.

Page 3 of 4

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.