Skip to content

Releases: avmnu-sng/quill-template-engine

Quill v1.0.0

Choose a tag to compare

@github-actions github-actions released this 08 Jul 16:19
d5b6665

Changelog

Other changes

  • ac5d449 bench: add committed benchstat baseline for bench:compare
  • c26dd0b bench: add jet and quicktemplate peers with 8-engine fairness
  • 69b417c bench: add measurement rigor, size scaling, and full-output fairness
  • f4f246b bench: add offline Phase 2a scenarios (filter/nested/cond/autoescape/stream)
  • 1e012f7 bench: add thirdparty peer legs for the filter and conditional scenarios
  • 77be13c bench: regenerate baseline.txt with a full count=10 run (#19)
  • 73df4cb build(bench): add benchmark task targets
  • cd3bbb2 ci(bench): add manual-dispatch benchmark workflow
  • 1ec18d7 docs(performance): document bench methodology, engines, and task targets
  • 4e8f62b lex: enforce single-fault contract; add lexer/parser fuzzing (#17)
  • d5b6665 v1.0.0: freeze the exported API (#20)

Quill v0.3.0

Choose a tag to compare

@github-actions github-actions released this 07 Jul 06:03

Changelog

Other changes

  • c8fd166 refactor: consolidate library packages under pkg/

Quill v0.2.0

Choose a tag to compare

@github-actions github-actions released this 06 Jul 17:55

Changelog

Features

  • a93bcc6 feat: expose quill.Version and validate the release tag against it

Bug fixes

  • 9d983ab fix(diagnostics): add error columns and locate unterminated openers
  • 92f13a2 fix(interp): clamp @tab level to the platform int range
  • 7465a93 fix(parse): make parenIsArrow O(1) and cap parser recursion depth

Other changes

  • ba16264 ci(codeql): filter example regex false positives by query id (#7)
  • 7bdeeac ci(codeql): re-arm integer-conversion check via a guarded IntCount helper
  • 7e84ed4 docs,examples: switch the recommended template extension to .quill
  • d19c3eb editors: add VS Code Quill grammar and .quill Linguist mapping
  • dae7967 refactor: nest internal engine packages under core/

Quill v0.1.0

Choose a tag to compare

@github-actions github-actions released this 04 Jul 15:09

Changelog

Features

  • 50b9b24 feat(check): add the gradual type checker as a front-end pass
  • 04ebaae feat(compile): compile @apply, matching execApply's spread args
  • 89bc108 feat(compile): compile @cache backed by a public RenderCache interface
  • bb7681f feat(compile): compile deferred slots @provide/@yield/slot()
  • 1da3083 feat(compile): compile static @embed by flattening the target
  • be695f3 feat(compile): compile-to-Go backend core
  • 87f87e2 feat(compile): inline slot-using partials into the caller render
  • c04c3f0 feat(composition): add @use traits, @cache region, and map destructuring
  • fef7827 feat(composition): add slots, call blocks, and recursive for
  • 69a2b36 feat(cover): add branch-aware template coverage core
  • a62dcf5 feat(cover): add quill cover CLI, API docs, and example
  • f860f5c feat(env): add WithCompiled dispatch, fingerprint gate, shadow verify
  • 2538c30 feat(escape): apply all six strategies in the @escape region
  • 9fcc9ff feat(ext): first-class extensions, composition, and typed helpers
  • 309711e feat(interp): stream RenderTo(io.Writer) behind a static slot-freedom gate
  • 5be9b9e feat(loader): add composable chain, prefix, fs, and func loaders
  • b964f26 feat(loop): add loop.prev/next/changed and fused @for..if filtering
  • a51facc feat(macro): add kwargs tail and inline registry tests
  • 113fcc5 feat(runtime): add native Go value passing via FromGo
  • e4a7927 feat(sandbox): enforce SecurityPolicy, @sandbox region, sandboxed include
  • d22f784 feat(set): add optional and elided destructuring slots
  • 0778b78 feat(stdlib): add attribute projection, named-test filters, grouping
  • f0a9c61 feat(stdlib): add columns, entries, sort_map, selectattr truthiness form
  • ad774a9 feat(stdlib): add scalar-kind tests, separator/cell, text shaping
  • d514a4e feat: add AST and Pratt parser for the core language
  • fb5db82 feat: add conformance suite, CLI, examples, matches and trims
  • b2a8af4 feat: add indentation functions, @tab region, and @log statement
  • e3c73a3 feat: add runtime value substrate, errors, and source packages
  • 73d9e7d feat: add tree-walking renderer, stdlib subset, loaders, and facade
  • 9cf92f8 feat: add two-mode TEXT/CODE lexer for the @-sigil default
  • 70117a1 feat: complete the spec-03 stdlib and evaluate arrow functions

Bug fixes

  • a419809 fix(compile): cut loop.changed memory at the @include boundary
  • 891964e fix(compile): discard the with-map temp so a no-read include/embed compiles
  • 3523d84 fix(compile): materialize enclosing loops across @include boundaries
  • e128781 fix(cover): do not seed macro-home top-level body
  • 033f548 fix(interp): keep fused loops out of the pool-safe classification
  • 4fd0da3 fix(interp): render slot-touching @cache regions fresh instead of memoizing
  • 6e354b0 fix(sandbox): gate string coercion at concat/filter sites and @apply arrows
  • e267e0a fix(stdlib): correct sort_map docstring to match stable-sort behavior
  • 06636b5 fix: align checker absence-suppression and ordering with runtime
  • 38eb962 fix: align random() with spec max param and add stdlib conformance
  • 87f5182 fix: clamp negative level in tab filter string form
  • 79408be fix: correct comment keep modifier and lone-@} line handling in lexer
  • aa3747d fix: correct typed-helper godoc and Merge enum-copy test
  • a5384ce fix: document coverage seeding template granularity boundary
  • 0b8ed7e fix: enforce int64 overflow, Int floor-div, named macro args, loop scope
  • 70466b3 fix: enforce sequence destructuring arity, tail, and nesting
  • d8761ec fix: feed slots across sub-renders and honor recursive @for filter
  • 8bb61d5 fix: forbid non-trailing optional destructuring slots
  • d13b581 fix: group_by keys by typed equality like unique
  • 8eed8f9 fix: guard nil *Array attribute access and pin runtime edges
  • bf4d986 fix: indent @tab first body line on mid-line entry
  • e3f7f90 fix: pass concrete Quill types through FromGo and order int map keys
  • 142fe37 fix: reject kwargs param on arrow parameter lists
  • 70a810f fix: resolve loop.changed inside fused filter against own frame
  • 4298027 fix: rewrite narrative docs and comments in current-state voice
  • c72312e fix: stop apply double-escaping and guard code-point escapers
  • 945d6cd fix: tighten level-10 non-assoc, string typing, arg ordering
  • d777d8e fix: validate literal regex patterns at compile time, fix jsonval key comment

Other changes

  • ce736ff bench: add compile-to-Go proof-of-concept ceiling for the loop
  • 06e6ee5 chore(taskfile): describe targets by what they do; wire cover:templates
  • 89f452a perf(compile): add Unit, multi-template compile with static flattening
  • 8b86794 perf(compile): inline KArray dotted-read fast path in exprAttr
  • 0b95597 perf(compile): inline loop metadata and iterate arrays without copying
  • 8751154 perf(compile): specialize typed emission, elide tab-free writer
  • fcf2747 perf(ext): add arity-known Fn1 fast call for zero-argument filter pipes
  • ad48729 perf(interp): allocate render scaffolding lazily on first use
  • 1b2356c perf(interp): compute loop.* metadata instead of a per-iteration map
  • d24c45c perf(interp): memoize static composition on the prepared Template
  • f3c16e1 perf(interp): pool loop snapshot buffers behind an escape gate
  • 2957dca perf(interp): reuse one loop object per pool-safe @for
  • bde5380 perf(interp): size output builder from remembered output length
  • bf2356e perf(runtime): copy-on-write arrays instead of eager deep-copy at scope entry
  • 4faedf1 perf(runtime): drop the redundant ints map and intern small int keys
  • c0f74f6 perf(runtime): gate int-key canonicalization to avoid discarded NumError
  • fa331ea perf(runtime): parent-linked scope frames replace per-entry context clone
  • c956493 perf(runtime): shrink loopInfo to the 64-byte size class
  • 3de0a30 perf(runtime): store scope frames in ordered slices with map spill
  • 487a85c perf(runtime): type-gate FromGo probe, cache struct plans
  • 7144df9 perf: memoize prepared templates in Environment.LoadTemplate
  • f8712c2 refactor(runtime): move the computed loop.* value from interp to runtime
  • 6924b23 style: clear all golangci-lint findings
  • 2c06c4a test(bench): add offline Quill-vs-stdlib render benchmark suite
  • e7090d9 test(bench): benchmark the real compiled loop render backend
  • aeead6a test(cover): pin coverage report formats with golden files