Skip to content

Embed entity table at precompile time; require Julia 1.10; modernize CI - #21

Open
rssdev10 wants to merge 1 commit into
JuliaString:masterfrom
rssdev10:modernize-julia-1.10
Open

rssdev10 wants to merge 1 commit into
JuliaString:masterfrom
rssdev10:modernize-julia-1.10

Conversation

@rssdev10

@rssdev10 rssdev10 commented Oct 7, 2026

Copy link
Copy Markdown

The entity table was loaded from data/html.dat in init into a non-const, untyped global. Every lookup through HTML_Entities.default was type-unstable, the file had to be read on every load, and the package could not be compiled with juliac --trim.

This supersedes the approach on the fix/artifacts branch (an artifact for html.dat), which had no download source and so failed to load unless deps/build.jl had copied the file into ~/.julia/artifacts.

  • Load data/html.dat at precompile time into a const, concretely typed table stored in the package image. No runtime file I/O; works with juliac --trim=safe.
  • Parameterize HTML_Table on the offset type so the nam field is concrete.
  • Drop the RelocatableFolders dependency and the obsolete precompile() call; make VER const.
  • Require Julia 1.10; set StrTables compat to 1.0.1; add Test compat.
  • CI: test 1.10, 1 and pre on Linux, macOS and Windows with current action versions; upload coverage to Codecov; remove .drone.yml.
  • Add Dependabot for GitHub Actions and Julia compat updates.
  • Rewrite README with usage examples and current badges.

Created by Claude

The entity table was loaded from data/html.dat in __init__ into a
non-const, untyped global. Every lookup through `HTML_Entities.default`
was type-unstable, the file had to be read on every load, and the
package could not be compiled with `juliac --trim`.

This supersedes the approach on the fix/artifacts branch (an artifact
for html.dat), which had no download source and so failed to load
unless deps/build.jl had copied the file into ~/.julia/artifacts.

- Load data/html.dat at precompile time into a const, concretely typed
  table stored in the package image. No runtime file I/O; works with
  `juliac --trim=safe`.
- Parameterize HTML_Table on the offset type so the `nam` field is
  concrete.
- Drop the RelocatableFolders dependency and the obsolete
  __precompile__() call; make VER const.
- Require Julia 1.10; set StrTables compat to 1.0.1; add Test compat.
- CI: test 1.10, 1 and pre on Linux, macOS and Windows with current
  action versions; upload coverage to Codecov; remove .drone.yml.
- Add Dependabot for GitHub Actions and Julia compat updates.
- Rewrite README with usage examples and current badges.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant