Skip to content
This repository has been archived by the owner on Oct 1, 2023. It is now read-only.

Releases: ParadoxV5/FFI-UCtags

v1.1.0

15 Jun 17:39
f12765f
Compare
Choose a tag to compare

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

01 Jun 03:41
4bfc59d
Compare
Choose a tag to compare

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

18 May 23:11
46acaaa
Compare
Choose a tag to compare
v0.1.0 Pre-release
Pre-release

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 at require 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

v0.0.1

12 May 20:47
v0.0.1
f746dfe
Compare
Choose a tag to compare
v0.0.1 Pre-release
Pre-release

Project Preview. Functional, but has several limitations.
Changes from v0.0.0: Documentation! The README notes those limitations.

v0.0.0

04 May 01:59
afb177c
Compare
Choose a tag to compare
v0.0.0 Pre-release
Pre-release

Project Preview. Functional, but has several limitations. Zero documentation either.