Skip to content

Releases: ntntlang/ntnt

NTNT v0.4.0

09 Mar 03:00
43bfe48

Choose a tag to compare

v0.4.0: Type Safety Modes — Two Axes of Type Control

11 commits | 45 files changed | +2,647 / -961 lines | 960 tests passing

Highlights

Two independent axes for type control:

  • Runtime (NTNT_TYPE_MODE): strict (crash on mismatch) / warn (log + continue, default) / forgiving (silent)
  • Lint (NTNT_LINT_MODE): default / warn (--warn-untyped) / strict (--strict)

World-class error messages — file:line, source snippets, expected/got context, fix hints:

error[E003]
  --> /path/to/file.tnt:3
  = Type error: Cannot apply '-' to String and Int
   |
   2 | let y = 42
   3 | let result = x - y
   |
  expected: compatible types for '-'
     found: String - Int

New type syntax:

  • T? shorthand for Optional<T>
  • Type aliases: type Handler = (Request) -> Response
  • Array types: [Int], [String]
  • Generics: fn identity<T>(x: T) -> T with full unification in the type checker

Bug fixes:

  • Runtime errors now show accurate line numbers (was missing for all declaration-level errors)
  • Parser EOF errors show correct line (was line 0)
  • lib/route/middleware modules now have identical execution contexts (fixes stdlib imports in lib files)
  • Lint correctly processes Located-wrapped declarations

Breaking changes

None. All new behavior is opt-in.

Full changelog

See PR #19 for the complete breakdown.

What's Changed

  • v0.4.0: Type Safety Modes — Two Axes of Type Control (DD-009) by @larimonious in #19

Full Changelog: v0.3.17...v0.4.0

NTNT v0.3.17

08 Mar 01:38
dad6f4f

Choose a tag to compare

What's Changed

Full Changelog: v0.3.16...v0.3.17

NTNT v0.3.16

28 Feb 02:15
c961b7e

Choose a tag to compare

What's Changed

  • v0.3.16: template partials, static file cache/ETag, builtins, entries() fix, runtime line numbers by @larimonious in #15

Full Changelog: v0.3.15...v0.3.16

NTNT v0.3.15

25 Feb 01:41
e93c46c

Choose a tag to compare

What's Changed

  • DX Improvements: consistency, robustness, and developer experience by @larimonious in #10

Full Changelog: v0.3.14...v0.3.15

NTNT v0.3.14

18 Feb 22:29

Choose a tag to compare

What's Changed

Full Changelog: v0.3.13...v0.3.14

What's Changed

Full Changelog: v0.3.13...v0.3.14

NTNT v0.3.13

16 Feb 11:35

Choose a tag to compare

What's Changed

  • feat: Auth module + KV store + function name cleanup by @larimonious in #6

Full Changelog: v0.3.12...v0.3.13

What's Changed

  • feat: Auth module + KV store + function name cleanup by @larimonious in #6

Full Changelog: v0.3.12...v0.3.13

NTNT v0.3.12

15 Feb 23:38

Choose a tag to compare

What's Changed

  • fix: escape pipe characters in Global Builtins table signatures by @larimonious in #5

New Contributors

Full Changelog: v0.3.11...v0.3.12

NTNT v0.3.11

03 Feb 19:54

Choose a tag to compare

NTNT v0.3.10

02 Feb 05:39

Choose a tag to compare

Full Changelog: v0.3.9...v0.3.10

NTNT v0.3.9

01 Feb 19:35

Choose a tag to compare

Full Changelog: v0.3.8...v0.3.9