Skip to content

Numlex 4.9.0

Choose a tag to compare

@Qulierm Qulierm released this 13 Sep 17:06
· 20 commits to main since this release

Numlex 4.9.0

This is the largest Numlex release yet: a one-time welcome, a complete date and
time suite, finance calculations, PDF export and printing, and a plain-text
structure for tags, subtotals and statistics. Everything stays local, strict and
offline where the data allows it.

First launch

  • A genuinely new install opens on a one-time native calculation bloom: ten
    real calculations in the app's own editor palette gather around the app icon,
    settle into the official slogan, and end with a single Get Started button.
  • With Reduce Motion the final screen is shown immediately, with no staged
    animation, and the notebook is usable right away.
  • Existing installs are never re-onboarded: any prior store, rate cache, weather
    cache or location cache counts as an existing install, so upgrades go straight
    to the notebook.
  • The welcome sequence runs once per install. It is not a re-runnable feature.

Dates and times

  • Calendar arithmetic on plain month names, with today / tomorrow /
    yesterday and compound periods such as March 12 + 3 weeks 2 days.
  • Compound duration literals (1 h 45 min, 1 day 2 hours 30 min), natural
    duration display, and duration-aware section and footer totals.
  • Clock arithmetic and laptime: 3:30pm + 2 hours 15 minutes,
    7:30am to 8:45pm, 3:30pm as laptime.
  • Timezones on a bundled, hash-verified offline catalog: time in Paris,
    2am PST to GMT, 6pm Sydney in Chicago, time differences, plus custom
    aliases under Settings → Dates & Times.
  • Timestamps and ISO 8601 in both directions, including the documented
    millisecond threshold and strict errors for invalid or DST-gap values.
  • Timespan notation for time-dimension results, globally, per answer, or with
    an explicit as timespan.
  • Video timecode and frames: 03:10:20:05 at 30 fps + 50 frames,
    30 fps × 3 minutes, 15.6k frames / 24 fps.
  • Work calendars: workday and business-day queries, hours per workday, and
    public-holiday data for 25 countries from 2019 to 2035, bundled offline and
    failing closed outside its coverage.
  • Special dates: Easter (Gregorian computus), Christmas, and days until ….

Units and wording

  • Spelled per rates, derived units, safe speed aliases, and a source-aware
    ms target, so unit phrases read naturally without changing existing forms.

Money and finance

  • Compound interest and investment phrases, ROI, annualized ROI / CAGR, and
    present value.
  • Loans and mortgages: payment, principal, interest and total paid, with the
    documented average-per-period convention.
  • Configured sales tax / VAT / GST from versioned, hash-verified presets, with
    the documented "unset vs manual 0%" distinction for the United States.
  • Estimated 2026 income tax for ten countries (US, GB, AU, CA, DE, FR, NL, IN,
    RU, JP) from official 2026 schedules. These are coarse national estimates for
    a single individual — not tax advice — and the app documents each table's
    approximations and excludes state/provincial taxes, credits and contributions.
  • BLS CPI-U inflation: continuous 1913–2025 annual data plus a provisional 2026
    point and an explicit-rate future form, all offline and versioned.
  • Currency operands keep the existing strict money rules; a missing rate pair is
    always the explicit "Rates unavailable" state.

Tags, subtotals and statistics

  • A trailing #tag marks rows for total of #tag, average of #tag,
    count of #tag and median of #tag.
  • An exact --- divider starts a new section; subtotal (optionally with a
    percentage or a name) sums the current section, and grand total sums the
    successful subtotals — a failed or overflowed subtotal never counts.
  • Add Subtotal (⌘T) and Add Grand Total (⌘⇧T) insert commands into a
    blank or strict empty-assignment line; double-clicking an empty answer row does
    the same; Convert to Normal Line turns a subtotal row into a plain number.
  • New functions: count, median, sample stdev (n−1) and rand, alongside
    the natural forms median of …, count of …, standard deviation of … and
    random number between X and Y.
  • rand is execution-aware dynamic: stable within its epoch, rerolled by a
    semantic edit or Recalculate Dynamic Values (⌘R), copyable but never
    tokenizable and never part of the Previous Answer chain. PDF export freezes
    the current epoch.

Footer Total

  • Right-click the floating Total to choose Sum, Average, Count or
    Median; the choice is app-global and persisted, and derived aggregate rows
    never contribute.
  • The Total bubble hides its label and gap when width is tight while the footer
    geometry stays stable.

PDF export and printing

  • File → Export Sheet as PDF… and File → Print… (⌘P) render one
    immutable snapshot of the evaluated sheet through one deterministic paginated
    renderer — the live editor, caret, selection, highlights and tokens are never
    touched.
  • Session-only options: font family, face and size; syntax highlighting; the
    original source line numbers; the footer Total; hiding // comments and
    leading # markers; and an inclusive line range.
  • Answer tokens keep their real capsule labels, highlights are preserved, rows
    wrap safely, and the exported footer uses the current footer statistic over
    the exported rows only.
  • Writes are atomic, an empty range disables the action with an explanation, and
    the whole path is fully offline.

Functions

  • The shared registry now has 27 built-in functions, including the new
    count, median, stdev (sample) and rand, with the same strict call,
    arity and domain rules as before.

Updates

Secure in-app updates are unchanged: HTTPS-only feed, EdDSA-signed archives
verified before extraction, Sparkle 2.9.6, and the automatic-check preference
owned by Sparkle itself. 4.8.0 was the first updater-enabled release, so 4.8.x
users receive 4.9.0 in the app; users on 4.7.0 or earlier install this release
manually once from the .dmg and update in-app afterwards.

Privacy

Numlex is local-first. Sheets and settings stay in
~/Library/Application Support/Numlex; the timezone, holiday, sales-tax,
income-tax and CPI datasets are bundled, versioned and hash-verified; PDF export,
printing and (where possible) every calculation work offline. The network surface
remains the explicit allowlist: the hourly currency-rate refresh, weather in …
lookups you type, and place lookups for geography lines. No analytics, no GPS and
no cloud sync.

Installation

  • macOS 26 or later, Apple Silicon (arm64).
  • Download Numlex-4.9.0-macOS-arm64.dmg, open it and drag Numlex.app into
    Applications.
  • The app is ad-hoc signed and not notarized (a deliberate choice for this
    project). On first launch, Control-click the app and choose Open, or allow
    it under System Settings → Privacy & Security → "Open Anyway".
  • Verify the download:
    shasum -a 256 -c SHA256SUMS and compare against the release page.