Skip to content

SimCrux 1.1.0

Latest

Choose a tag to compare

@martin-robert-fink martin-robert-fink released this 19 Oct 16:46

The first feature release since 1.0. The free simcrux command-line runner now
ships as a ready-made download for macOS, Linux and Windows, so a CI job no
longer has to build it from source. Several tabs running regressions share one
simulator budget, a failed test keeps its logs and says why it failed, and the
results dashboard is easier to read and search. Two verdicts that reported a
pass when they should not have are fixed.

New

  • The simcrux CLI as a download. Each release now includes the headless
    runner as simcrux-cli-<version>-macos-arm64.zip (signed and notarized),
    -linux-x64.tar.gz and -windows-x64.zip, built from the same source and
    the same Flutter as the app. simcrux --version prints the version, and with
    Homebrew, brew install ferrite-engineering/tap/simcrux-cli installs it.
  • Licensing a build agent. simcrux license fingerprint prints the machine
    fingerprint a licence file is issued for, and simcrux license request --out <file> writes an offline activation request, so a dedicated CI machine can
    be licensed without ever running the desktop app.
  • One simulator budget across tabs. Regressions running in several tabs now
    draw from one shared limit instead of each starting its own set. Set it in
    Settings ▸ Simulators ▸ Simulator processes at once, across all tabs
    (default 4).
  • A failed test keeps its logs and says why. Its captured output is written
    as sim_stdout.log and sim_stderr.log in its work directory, the exports
    carry those paths, and when the simulator gives no reason the failure
    message is the first line of the test's own output that reads as one.
  • A results dashboard that is easier to work with. Columns resize by
    dragging a header divider and show their full values on hover; each run in
    a seed sweep is labelled "name · seed N" and the filter finds a run by its
    seed; the "+N new" counters narrow the table to the tests they count; a
    filter that hides every result says so and offers Clear filters; and the
    Log panel starts collapsed, opening the first time you select a test, which
    leaves room for many more rows.
  • A project can declare its identity. An optional top-level project_id:
    in simcrux.yaml names the project wherever it is checked out.
  • The team database (Enterprise) pools on project_id, so two engineers
    with the same repository at different paths, and a CI job pushing with
    --project, finally share one history.
  • Cleaner flakiness verdicts (Pro). A test that passed and then started
    failing, with no flip-flopping, is shown as BROKEN rather than FLAKY.
  • GitHub pull request annotations (Pro) are posted as one check run per
    batch, and a rate-limited request is retried after the delay GitHub asks for.
  • Organization policy (Enterprise) honors defaultSimulator,
    simulatorBinaryPolicy (an allow-list of simulators) and ciGateThreshold.
  • Cross-probing is free in every edition, sending as well as receiving, and
    the Cross-Probe panel names the peer product.
  • Crash detection. If a desktop session ends without a clean exit, the next
    launch sends one event that says so. It carries nothing beyond the standard
    fields usage statistics already send, and it follows the same setting in
    Settings ▸ Privacy: with usage statistics off, nothing is sent.
  • No identifier while usage statistics are off. With them off, the app
    keeps no installation identifier; turning them back on creates a new one.
    On first launch, the default now reads your operating system's region
    setting as well as its language.

Fixed

  • Icarus tests that call $error and then $finish fail. They were
    reported as passing, because vvp exits cleanly after them.
  • --fail-on-regression cannot pass by default. In a build without the
    regression comparison engine, including the free CLI, the gate now fails
    with exit code 2 and says why, instead of reporting a pass it never checked.
  • Log retention keeps failures first, so an early failure's log is no
    longer evicted to make room for recent passes.
  • "Sources changed" keeps coming on macOS after the system's file watch
    goes quiet; each source file is also checked every second.
  • A tab restored at launch re-reads its project once the licence is known,
    so a Pro seed sweep is no longer dropped with a "requires SimCrux Pro"
    warning beside the PRO badge.
  • Open testbench source works when SimCrux starts from Finder or the Dock,
    and says so when the editor cannot be started.
  • Workspace restore and save failures are shown to you instead of only
    being logged.
  • Cross-probing opens a SimCrux configuration as a configuration tab rather
    than in the text editor, and the dashboard's test-name filter shows changes
    made from elsewhere.
  • Project files are checked more strictly. A sources: entry that begins
    with - is refused rather than passed to the simulator as an option, a
    distributed-execution test id is limited to characters every scheduler
    takes literally, and a RISC-V formal demo case whose trace points outside
    its task directory is refused.
  • Escape closes an open menu or dialog instead of being taken by an
    app-wide shortcut.

Also

  • Interface polish across the app: two open files with the same name show the
    folder that tells them apart; the "source changed" prompt is the same banner
    in every EDACrux app and can be declined; Split Pane Right needs two tabs
    to split; a narrow sorted column no longer overflows its header; command
    palette shortcut hints are readable on the selected row; focus rings no
    longer crowd their text; an empty panel tells a screen reader what belongs
    there; and on macOS the window reopens where you left it, on the same
    display.
  • The Linux packages register SimCrux's file types, and the Windows
    uninstaller removes the install folder it leaves behind.
  • Cross-probing between EDACrux apps now proves the identity of both ends
    without sending the connection token over the wire. 1.0 apps still connect.
  • Built with Flutter 3.47.5.
  • Other performance and quality enhancements.

Download: https://simcrux.app/download