Releases: ParadoxV5/FFI-UCtags
v1.1.0
v1.1 is a minor update that builds publishes some small but significant feature additions off the v1.0 groundwork.
Feature changes
- #1 It can read (simple) enums now!
- #6 and function and variable definitions too (although headers are supposed to be all declarations (prototypes) and no implementations)
- #8 Get u-ctags to expand macros
- #7 #13 Typedef-struct/union fixes
- Struct/Union Pointer detection fix (a concrete example that clear documentation does not mitigate human negligence 😅)
- Struct/unions no longer prefer names of their pointers’ typedefs
Technical changes
- (Mostly cosmetic)
README.md
and YARDoc corrections - The
#stack
now also tracks namespace nesting - Typedef-struct/union/enum reading has moved from
#find_type
to the better home#composite_type
and also checked in#extract_type
v1.0.0
v1.0 is mainly a technical overhaul to bring the project to a steady state. Going from v0 to v1 also means our subject is no longer experimental!
Feature changes
All this refactoring also unlocks potentials previously chained by short-sighted designs.
- Support structs/unions with uncapitalized names (inc. anonymous structs/unions)
- Support typedef-structs/unions (’twas broken in a dozen places in v0)
- Support nested struct/union
- Module builder pattern
Before = FFI::UCtags.call … class Before ANSWER = 42 end After = FFI::UCtags.call … do self::ANSWER = 42 end
More impactful feature improvements will come in the next minor update or two.
Technical changes
It looks like the whole thing has been rewritten from scratch! Although only the code structure is. The commit logs have the details; in summary:
- What was previously the instance level is now together with the class level – including the namespace attribute.
- The new instance level supersedes the experimental
Builder
helper. - The constant fetching mechanism is now functional rather than inherited.
- The case block of the main function is now split into its own function plus a couple of subroutines.
- A new mechanism for struct/unions supports and enhances typedef-structs/unions.
- The member queue is now a proc-array pair rather than a clunky trio of arrays.
- That queue mentioned by the previous bullet point is now multi-levelled to enable building inner structs/unions.
- And last but not least – added more code comments and more logging, plus
README.md
and Yardoc updates.
Moreöver, now that v1 has laid some reliable groundwork, to-do items will be GitHub issues rather than dumped on a hard-to-find page, and I too will use a branch-merge workflow.
v0.1.0
Project Preview; pushing some features early before the v1.0.0
refactor that’s coming right up.
Feature changes
- Now supports multi-keyword integer types (e.g.,
unsigned int
) - Now raises
LoadError
atrequire
if it cannot identify u-ctags
Technical changes
- Invokes u-ctags verbosely (
-V
) if the$DEBUG
global variable is flagged - Code comments and doc amendments