Skip to content

Releases: ReeceGilbert/Nearoh-Coding-Language

Nearoh v0.3.0 - Imports, Diagnostics, and Regression Testing

18 May 00:49
Immutable release. Only release title and notes can be modified.
937555c

Choose a tag to compare

GitHub shows v0.2.0 focused on dictionaries/maps, so v0.3.0 should focus on the infrastructure jump we just made. ([GitHub][1])

Use this as the release body:

Nearoh v0.3.0 - Imports, Diagnostics, and Regression Testing

Nearoh v0.3.0 is a major stabilization release focused on turning multi-file execution, imports, diagnostics, and testing into real language infrastructure.

This release moves Nearoh beyond simple import execution and adds a tracked import system with duplicate-import skipping, circular import detection, path normalization, file-relative imports, source-aware runtime diagnostics, and a regression test runner.

Major Changes

Tracked Import System

Nearoh now tracks imported files at runtime.

Implemented behavior:

  • Imported files are tracked by normalized path
  • Duplicate imports are skipped
  • Circular imports are detected cleanly
  • Imported source, tokens, diagnostics, and AST data are owned by the runtime while needed
  • Imports now behave more like real language infrastructure instead of simple file execution

Example:

import "examples/import_once_helper.nr"
import "./examples/import_once_helper.nr"
import "examples\\import_once_helper.nr"

print(get_helper_value())

Expected output:

helper loaded
123

The helper file only executes once.

File-Relative Imports

Imports can now resolve relative to the file doing the importing.

Example:

examples/modules/main.nr
examples/modules/utils.nr
# examples/modules/main.nr
import "utils.nr"

print(module_value())

Expected output:

module utils loaded
456

This makes Nearoh modules more portable and prepares the language for larger multi-file projects.

Circular Import Detection

Circular imports now fail cleanly instead of recursing or behaving unpredictably.

Example:

# import_cycle_a.nr
import "import_cycle_b.nr"

# import_cycle_b.nr
import "import_cycle_a.nr"

Expected error:

Runtime error at examples/import_cycle_a.nr line 1 col 1: Circular import detected.

Source-Aware Runtime Diagnostics

Runtime errors now know which file they came from.

This is especially important for imported files.

Example:

# examples/modules/bad_main.nr
import "bad_utils.nr"
# examples/modules/bad_utils.nr
print(missing_value)

Expected error:

Runtime error at examples/modules/bad_utils.nr line 1 col 7: Undefined variable.

This is a major step toward a future Nearoh IDE/editor because errors can now point to the correct file, line, and column.

Better Import Read Errors

Missing import errors now show the attempted path.

Example:

import "missing_utils.nr"

Expected error:

Runtime error at examples/modules/missing_main.nr line 1 col 1: Could not read imported file: examples/modules/missing_utils.nr

Regression Test Runner

Nearoh now includes a PowerShell regression test runner:

.\run_tests.ps1

The test runner supports:

  • Normal pass tests
  • Expected-failure tests
  • Circular import failure checks
  • Imported-file diagnostic checks
  • Missing import path error checks

This gives the project a stronger safety net before larger features are added.

New / Updated Example Coverage

This release adds and validates examples for:

  • Duplicate import skipping
  • Path normalization
  • File-relative imports
  • Nested imports
  • Circular import detection
  • Imported-file runtime errors
  • Missing import errors

Why This Release Matters

Nearoh v0.3.0 is not just a feature release. It is a foundation release.

Imports, diagnostics, and tests are the systems needed before building larger language features, standard libraries, and the future Nearoh IDE.

This release makes Nearoh more stable, more debuggable, and more ready for real multi-file projects.

Current Status

Nearoh currently includes:

  • Lexer
  • Parser
  • AST system
  • Runtime evaluator
  • Variables
  • Functions
  • Classes and objects
  • Methods and constructors
  • Lists
  • Dictionaries / maps
  • Indexing and index assignment
  • Control flow
  • Built-in functions
  • File I/O builtins
  • Multi-file imports
  • Import tracking
  • Runtime diagnostics with file/line/column
  • Regression testing

Still Future Work

Planned future improvements include:

  • Namespaced modules
  • Cleaner module ownership and exports
  • More runtime safety
  • Expanded standard library utilities
  • Better parser/runtime diagnostics
  • Dedicated Nearoh editor / IDE
  • Native bridge work for graphics, input, timing, files, and lower-level system

Nearoh v0.2.0 - Dictionaries and Core Data Structure Expansion

04 May 00:18
Immutable release. Only release title and notes can be modified.
95c7b02

Choose a tag to compare

Nearoh now supports dictionaries / maps as a first-class runtime data structure.

This release adds dictionary literals, dictionary indexing, dictionary index assignment, and len() support for dictionaries.

Example:

person = {
    "name": "Reece",
    "age": 21
}

print(person["name"])
print(person["age"])

person["age"] = 22
print(person["age"])
print(len(person))

Expected output:

Reece
21
22
2

Nearoh v0.1.0 - Objects, Lists, and Iteration

22 Apr 23:50
Immutable release. Only release title and notes can be modified.
abc1f9e

Choose a tag to compare

First milestone release.

Implemented:

  • Classes
  • init
  • Object fields
  • Lists
  • for-in loops
  • Functions
  • Runtime execution