Skip to content

Releases: Loara/lt3rawobjects

New release

17 Mar 11:56
Compare
Choose a tag to compare
  • you can adapt existing functions to accept members and constants names in order to avoid using _adr funtions anymore.
  • other bug fixes.

Generate new object commands

18 Feb 17:30
Compare
Choose a tag to compare
Pre-release

In this pre-release have been added the \object_*_generate functions that allows you to introduce variants of already existing commands that can accept object members and constants as their argument. The documentation has been upgraded but further work is needed.

Minimal objects are dropped from 2.3-beta so they're not available in this release.

Minimal objects preview

27 Dec 10:22
Compare
Choose a tag to compare
Pre-release

Hidden fields in standard objects are now arranged inside "hidden" embedded object /_I_/ (its name could change in future releases so your code mustn't rely on it). If you don't want to instantiate these fields you can create minimal objects as explained in official documentation.

These features are in an unstable state and will be more documented once the API stabilize.

Embedded objects and macros

09 Dec 11:47
Compare
Choose a tag to compare

New features has been added to this "minor" update:

  • macro elements: a macro is just any untyped control sequence inside an object, you can take its address (aka the control sequence name) with the \object_macro_adr function and expand/execute it with \object_macro_call.. Since macros are generic control sequences is up to the user to properly create them (with \def, \cs_new:Npn, \newcommand or any other suitable mechanism);
  • Embedded objects: You can put objects inside other objects in various ways, in this release you can do that with embedded objects too. The main advantage is that you can put an embedded object declaration inside the proxy with \proxy_put_embedded so that every object created by that proxy will have its own instance of embedded object automatically created. You can retrieve address of embedded objects with \object_embedded_adr function.

Bugfix

26 Nov 20:09
Compare
Choose a tag to compare

Some bugfix

Setting members and constants

26 Nov 16:09
Compare
Choose a tag to compare

With this minor update two new functions are added to lt3rawobjects: \object_member_set and \object_newconst. Both accept an additional value argument that will be placed inside the specified member variable/constant.

Methods and other improvments

03 Aug 09:50
Compare
Choose a tag to compare

With the 2.0 version some backward incompatible changes are added to this new version, in particular the internal organization of objects is adjusted. So objects created with a preceding version of this packages won't work very well with functions and other objects created with version 2.0 of lt3rawobjects. If after the upgrade you find undocumented issues please open a new issue or tell me more in a new discussion.

In this new version you can define also methods inside your objects. Methods are simply functions bounded to container objects like member variables. Currently methods can be only near constants or remote constants, but in future releases mutable methods may be introduced.

For this reason names of functions working with constant members are changed in order to better distinguish constant members and constant methods, For example inside library functions names keywords nconst and rconst are replaced respectively with ncmember and rcmember. Other modifications can be found inside the documentation page.

Other functionalities:

  • Functions \object_test_proxy to test if an object is generated from the specified proxy;
  • Constant reorganization;
  • Documentation improvement.

Update package date

11 Jul 12:40
Compare
Choose a tag to compare

Update the package date. This release is equivalent to 1.1

Constants and Anonymous allocation

11 Jul 10:49
b8fd15a
Compare
Choose a tag to compare
  • Near and remote constants. A near constant is a constant defined directly inside the objects whereas a remote constant is defined instead in its proxy generator, so it will be available for every generated object.
  • Anonymous allocation. If you don't want to specify an unique name for each of your generated objects you can perform an anonymous allocation: generate a new object name from the value of an integer variable which value is increased after, very useful if you need to instantiate many objects from the same proxy.
  • Some bugfixes.

Renaming package

30 Jun 08:53
Compare
Choose a tag to compare

Rename package from rwobj to lt3rawobjects.