Skip to content

Refactor implementation to load UCD at runtime #42

@christianparpart

Description

@christianparpart

Goals

  • reduce binary size
  • maintenance overhead for already installed systems

Drawbacks

This of course does not work for every UCD contents. All the tables can be easily loaded at runtime but if something's added that is currently translated into an enum class, that's still compile-time and cannot be runtime loaded, obviously.

Checklist

  • write C++ UCD codepoint_properties loader to populate UCD tables at runtime
  • install UCD data to /usr/share/libunicode/ucd (or similar)
  • change implementation to make use of the new tables. Also, ucd.h should then most likely remain static and version controlled. (Can it still be auto-generated or should it be hand-maintained?)

Implementation

I think the best would be to go with a double-layer principle, i.e. we still make use of mktables.py to create some .cpp & .h files, but have some of their table names flagged such that it's not populating them but use another API to access the runtime loaded ones instead.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions