36 KiB
Changelog
Diagnose unknown class field types
claro typechecknow rejects class fields such asHAS score BANANAwith a beginner-facing diagnostic that names the class and field, lists supported type examples, and suggests using a Claro type.
Validate compatibility duplicate-parameter diagnostics
- Added focused coverage proving that compatibility
TAKES/LEARNEDfunctions reject repeated parameter names with the same repair-oriented diagnostic as modern functions. - Added the fixture to the complete typecheck diagnostic validation matrix.
Validate compatibility unknown inline method-field annotations
- Added focused coverage proving that compatibility
TAKES/LEARNEDmethods reject unknown inline field annotations with the same repair-oriented diagnostic as modern methods.
Diagnose unknown inline method-field annotations
claro typechecknow rejects unknown inline field annotations such asBANANAand suggests the class-declaredHAStype.- Added focused negative coverage to the complete typecheck validation matrix.
Align inline method-field annotations with class fields
claro typechecknow compares an inline method assignment annotation with the class field declared byHAS.- A mismatch such as
SET score TEXT 10inside a method forHAS score NUMBERexplains both types and suggests the class-declared type. - Added positive and negative fixtures to the complete typecheck validation matrix.
Validate compatibility inline method-field annotations
-
Added matching positive and negative coverage for
TEACH ... TAKES .../LEARNEDmethods. -
Release validation now protects the same class-declared-type diagnostic for older compatibility lessons.
-
Added focused modern-method coverage for the learner-facing diagnostic produced when an undeclared field is assigned from an expression whose type is not inferable yet.
Unreleased
-
Method-body
CHECK TYPEdiagnostics now name the current class method when a declared field is checked against the wrong type, with focused positive and negative validation coverage. -
Typecheck diagnostics for typed method-body field assignments now name the class method and arithmetic operation when a known TEXT operand is used in a NUMBER field update.
Compatibility method field-assignment diagnostics
- Added focused positive and negative typecheck fixtures for older
TEACH ... TAKES .../LEARNEDmethods that assign to typed class fields. - Release validation now preserves the learner-facing
Class.methodname in these compatibility diagnostics.
Validate compatibility method multiplication diagnostics
- Added focused negative typecheck coverage proving that the older
TAKES/LEARNEDmethod syntax identifies a TEXT operand in a NUMBER multiplication return and explains the required operand type. - Wired the fixture into the standalone typecheck validator and
claro validate.
Validate compatibility method division diagnostics
- Added focused negative typecheck coverage proving that the older
TAKES/LEARNEDmethod syntax identifies a TEXT operand in a NUMBER division return and explains the required operand type. - Wired the fixture into the standalone typecheck validator and
claro validate.
Validate compatibility method subtraction diagnostics
- Added focused negative typecheck coverage proving that the older
TAKES/LEARNEDmethod syntax identifies a TEXT operand in a NUMBER subtraction return and explains the required operand type. - Wired the fixture into the standalone typecheck validator and
claro validate.
Validate compatibility method addition diagnostics
- Added focused negative typecheck coverage proving that the older
TAKES/LEARNEDmethod syntax identifies a TEXT operand in a NUMBER addition return and explains the required operand type. - Wired the fixture into the standalone typecheck validator and
claro validate.
Validate compatibility method addition returns
- Added focused positive typecheck coverage proving that the older
TEACH ... TAKES ... RETURNS NUMBER/LEARNEDmethod syntax accepts a numeric addition return afterCHECK TYPEestablishes the parameter type. - Wired the fixture into the standalone typecheck validator and
claro validate.
Validate compatibility method multiplication returns
- Added focused release validation for compatibility (
TAKES/LEARNED) methods returning numeric multiplication results.
Validate compatibility method subtraction returns
- Added focused positive typecheck coverage proving that the older
TEACH ... TAKES ... RETURNS NUMBER/LEARNEDmethod syntax accepts a numeric subtraction return afterCHECK TYPEestablishes the parameter type. - Wired the fixture into the standalone typecheck validator and
claro validate.
Validate numeric function subtraction returns
- Added focused positive typecheck coverage proving that a typed function can return a numeric subtraction expression after
CHECK TYPEestablishes its parameter type. - Wired the fixture into the standalone typecheck validator and
claro validate.
Validate division return diagnostics
- Added focused
claro typecheckcoverage proving that a typed function returningamount / "oops"identifies division, the requiredNUMBERoperands, and the offendingTEXTvalue. - Wired the negative fixture into the complete typecheck validator and
claro validatecoverage.
Validate numeric function return expressions
- Added a focused positive typecheck fixture proving that a typed function can return a numeric multiplication expression after
CHECK TYPEestablishes its parameter type. - Wired the fixture into the standalone typecheck validator and
claro validate.
Advertise typed-language keywords to IDE helpers
- Added
RETURNS,CHECK, andTYPEtoclaro idekeyword metadata so editor integrations can recognize the current typed function and type-checking syntax. - Extended the IDE metadata validator and documented the updated completion surface.
Validate the complete typecheck matrix
claro validatenow runs the complete focused typecheck fixture matrix, including method-call, alias, return, and expression fixtures that were previously covered only by the standalone diagnostic validator.
Validate compatibility method return types
- Added focused coverage proving that the older
TEACH ... TAKES ... RETURNS TYPE/LEARNEDmethod syntax receives the same learner-facing return-type diagnostic as modern methods. - Added the compatibility method fixture to the complete typecheck diagnostics validator.
Validate incomplete method return paths
- Added focused typecheck coverage proving that a typed method with an incomplete conditional return reports the same learner-facing missing-path diagnostic as a typed function.
- Added the method fixture to both
claro validateand the complete typecheck diagnostics validator.
Validate compatibility function return types
- Added focused coverage proving that the older
TEACH ... TAKES ... RETURNS TYPE/LEARNEDsyntax receives the same learner-facing return-type diagnostic as modern functions. - Added the compatibility fixture to both
claro validateand the complete typecheck diagnostics validator.
Validate unknown method return types
- Added focused
claro typecheckregression coverage for an object method declaring an unsupportedRETURNStype such asBANANA. - The release validator now checks function and method unknown-return-type diagnostics separately.
Diagnose unknown declared return types
claro typechecknow reports a learner-facing error when a function or object method declares an unsupportedRETURNStype such asBANANA.- Added focused negative-fixture coverage and release-validator coverage for the invalid declaration.
Diagnose empty typed returns
claro typechecknow reports a beginner-facing error when a function or method declaresRETURNS TYPEbut usesRETURNwithout a value.- Added a focused negative fixture and release-validation coverage for the missing return expression.
Check typed parameter expressions in returns
claro typechecknow carries a function or method parameter'sCHECK TYPEmetadata into later return-expression inference.- Added positive and negative arithmetic return fixtures for functions and object methods so a declared return type cannot silently accept an expression whose parameter type is already known.
Check simple function return types
- Added
TEACH name ... RETURNS TYPEsyntax for a focused static return check. claro typechecknow reports the expected and inferred types when aRETURNexpression does not match.- Added positive and negative fixtures and wired both into
claro validateand the complete typecheck diagnostics validator.
Diagnose explicitly typed unknown object fields
- Added focused typecheck coverage for
SET player.level NUMBER 3whenPlayerdeclares nolevelfield. claro typechecknow gives the same beginner-facing missing-HAShint for explicitly typed unknown fields as it does for untyped field assignments.
Reject unlisted typecheck fixtures
tools/validate_typecheck_diagnostics.pynow discoverstests/typecheck_*.clarofiles and fails when a fixture is missing from the validator's positive or negative lists.- This keeps new learner-facing typecheck examples from silently escaping release validation.
Explain text operands in object-field addition
- Added focused typecheck coverage for
SET player.score player.name + 1. claro typechecknow names theTEXToperand and explains that addition into aNUMBERfield needs numeric values, matching the existing subtraction, multiplication, and division diagnostics.
Complete numeric object-field arithmetic coverage
- Added a focused positive typecheck fixture for numeric subtraction in an object field.
- Added the fixture to both the complete typecheck diagnostics validator and
claro validate, keeping valid subtraction beside the existing division/multiplication positives and text-operand diagnostics.
Complete typecheck fixture validation
- Added regression coverage requiring the focused typecheck validator to list every
typecheck_*.clarofixture, plus the existing object-field validation script. - Added the two previously omitted positive fixtures so
tools/validate_typecheck_diagnostics.pynow exercises the complete typecheck fixture set.
CI release-gate validator hardening
- Added focused regression coverage for the workflow validator.
tools/validate_ci_workflow.pynow checks release commands inside actualrunsteps, so commented-out commands cannot make CI coverage appear complete.- The validator now requires its own executable CI command, protecting the workflow coverage check from being removed silently.
Object-alias field CHECK TYPE diagnostics
- Added focused typecheck coverage for
CHECK TYPE alias.field IS TYPEafter a simple object alias. claro typechecknow compares an aliased object's declared field type with the requestedCHECK TYPEtype.
Nested container type validation
- Added a focused nested-container typecheck example for adding a typed map to a typed list.
- Updated container matching so
LIST OF MAPaccepts map values with their own type metadata while preserving existing list/map mismatch diagnostics.
Object-field expression validation
-
Added positive and negative typecheck fixtures for assigning object fields from another field and from an arithmetic field expression.
-
Added both fixtures to
claro validateand the focused typecheck diagnostics validator. -
Added a focused negative fixture for the reverse expression mismatch: storing a numeric expression in a
TEXTobject field now remains covered by the release validation matrix. -
claro package doctornow rejects duplicatemanifest-version:fields inclaro.projectinstead of accepting the first value and overlooking ambiguous project metadata. -
claro package doctornow rejects duplicate package entries inclaro.lockinstead of allowing ambiguous lockfile data. -
claro package doctornow rejects duplicatename:entries in a package manifest instead of accepting ambiguous package identity data. -
claro package doctornow rejects duplicatechecksum:entries in a package manifest instead of accepting ambiguous integrity data. -
claro package doctornow rejects listed package manifests whoseversion:only starts with the supported local package version, such asversion: 10. -
claro package doctornow rejects listed package manifests whosesource:only starts with the supported local source, such assource: local-extra. -
claro package doctornow rejects project files whosemanifest-version:only starts with the supported value, such asmanifest-version: 10.
v1.18.26-dev exact package manifest-version validation
- Added package-security coverage for a manifest version that only starts with the supported version, such as
manifest-version: 10for the currentmanifest-version: 1format. - Changed
claro package doctorto compare the completemanifest-version:value instead of accepting a version as a substring.
v1.18.26-dev exact package checksum validation
- Added package-security coverage for a manifest checksum with valid digest text followed by extra data.
- Changed
claro package doctorto compare the completechecksum:field instead of accepting a checksum as a substring.
v1.18.26-dev exact package manifest-name validation
- Added package-security coverage for a manifest name that only starts with the expected package name, such as
name: math-tools-extrafor packagemath-tools. - Changed
claro package doctorto compare the completename:value, preventing prefix matches from being accepted as valid manifests.
v1.18.26-dev package list unsafe-name diagnostic
- Added focused package-security validation for
claro package listwhenclaro.projectalready contains an unsafe package name such as../bad. - Changed
claro package listto fail with the existing beginner-facingBAD package name: ...diagnostic instead of displaying unsafe entries as normal package names.
v1.18.26-dev missing unchecked function argument diagnostic
- Added a focused negative
claro typecheckfixture for calling a simple function without its declared argument, such asTEACH greet namefollowed byDO greet. - Improved the static arity check so simple functions without
CHECK TYPEhints still report a beginner-facing missing-argument diagnostic. - Wired the fixture into the typecheck diagnostics validator and
claro validate.
v1.18.26-dev CI release validation coverage
- Added
tools/validate_ci_workflow.pyto assert that Forgejo/Gitea CI keeps running Claro's current release gates. - Updated
.forgejo/workflows/ci.ymlto runclaro validate, typecheck diagnostics validation, version convention validation, and the CI workflow coverage check in addition to the existing smoke tests. - Documented the CI coverage validator in the testing docs and current status/roadmap notes.
v1.18.26-dev unknown object-field expression diagnostic
- Added a focused negative
claro typecheckfixture for assigning an expression with no inferable static type to an undeclared object field, such asSET player.level score + 1afterNEW Player player. - Replaced the internal
ANYplaceholder in that diagnostic with the beginner-facing guidance:Check the field name or add the field to the class with the right type. - Wired the fixture into both the typecheck diagnostics validator and
claro validate.
v1.18.26-dev object field CHECK TYPE TEXT positive validation
- Added a dedicated positive
claro typecheckfixture for direct object-field metadata checks:CHECK TYPE player.name IS TEXTis accepted afterNEW Player playerandSET player.name "Ada"when the class declaresHAS name TEXT. - Wired the fixture into both the typecheck diagnostics validator and
claro validate; no production typechecker behavior change was needed because the existing direct object-field metadata path already accepts the TEXT check.
v1.18.26-dev object field CHECK TYPE NUMBER positive validation
- Added a focused positive
claro typecheckfixture for direct object-field metadata checks:CHECK TYPE player.score IS NUMBERis accepted afterNEW Player playerandSET player.score 10when the class declaresHAS score NUMBER. - Wired the fixture into both the typecheck diagnostics validator and
claro validate; no production typechecker behavior change was needed because the existing direct object-field metadata path already accepts the NUMBER check.
v1.18.26-dev standard-library reliability update
- Added a tested
lib/collections.claromodule with list and map helpers. - Made the existing
lib/path.claroimport provide working native helpers for joining and inspecting paths. - Added golden tests for both modules.
- Normalized CRLF/LF golden-test expectations so
claro testreflects interpreter behavior across Windows and Unix checkouts. - Replaced stale standard-library command claims with current, runnable documentation.
v1.18.26-dev object field CHECK TYPE unknown YESNO validation
- Added a focused negative
claro typecheckfixture for direct object-field metadata checks against an undeclared YESNO field:CHECK TYPE player.enabled IS YESNOafterNEW Player playerwhen the class only declaresHAS ready YESNO. - Wired the fixture into both the typecheck diagnostics validator and
claro validate; no production typechecker behavior change was needed because the existing direct object-fieldCHECK TYPEunknown-field diagnostic already reports the learner-friendly YESNO suggestion.
v1.18.26-dev object field CHECK TYPE unknown TEXT validation
- Added a focused negative
claro typecheckfixture for direct object-field metadata checks against an undeclared TEXT field:CHECK TYPE player.nickname IS TEXTafterNEW Player playerwhen the class only declaresHAS name TEXT. - Wired the fixture into both the typecheck diagnostics validator and
claro validate; no production typechecker behavior change was needed because the existing direct object-fieldCHECK TYPEunknown-field diagnostic already reports the learner-friendly TEXT suggestion.
v1.18.26-dev object field CHECK TYPE unknown-field diagnostic
- Added a focused negative
claro typecheckfixture for direct object-field metadata checks against an undeclared field:CHECK TYPE player.level IS NUMBERafterNEW Player playerwhen the class only declaresHAS score NUMBER. - Improved the narrow direct object-field
CHECK TYPEdiagnostic so simple unknown fields name the object class and suggest the matchingHAS level NUMBERdeclaration.
v1.18.26-dev object field CHECK TYPE NUMBER negative validation
- Added a focused negative
claro typecheckfixture for direct object-field metadata checks:CHECK TYPE player.score IS TEXTis rejected afterNEW Player playerandSET player.score 10when the class declaresHAS score NUMBER. - Wired the fixture into both the typecheck diagnostics validator and
claro validate; no production typechecker behavior change was needed because the existing direct object-field metadata diagnostic already reports the learner-friendly NUMBER mismatch.
v1.18.26-dev object field CHECK TYPE YESNO negative validation
- Added a focused negative
claro typecheckfixture for direct object-field metadata checks:CHECK TYPE player.ready IS TEXTis rejected afterNEW Player playerandSET player.ready YESwhen the class declaresHAS ready YESNO. - Wired the fixture into both the typecheck diagnostics validator and
claro validate; no production typechecker behavior change was needed because the existing direct object-field metadata diagnostic already reports the learner-friendly YESNO mismatch.
v1.18.26-dev object field CHECK TYPE TEXT negative validation
- Added a focused negative
claro typecheckfixture for direct object-field metadata checks:CHECK TYPE player.name IS NUMBERis rejected afterNEW Player playerandSET player.name "Ada"when the class declaresHAS name TEXT. - Wired the fixture into both the typecheck diagnostics validator and
claro validate; no production typechecker behavior change was needed because the existing direct object-field metadata diagnostic already reports the learner-friendly mismatch.
v1.18.26-dev object field CHECK TYPE TEXT/YESNO validation
- Added a focused positive
claro typecheckfixture for direct object-field metadata checks:CHECK TYPE player.name IS TEXTandCHECK TYPE player.ready IS YESNOafterNEW Player playerand direct field assignments. - Wired the fixture into both the typecheck diagnostics validator and
claro validate; no production typechecker change was needed because the existing direct object-field metadata path already accepts these checks.
v1.18.26-dev object field unknown YESNO diagnostic validation
- Added a focused negative
claro typecheckfixture for direct object-field assignment to an undeclared field with a YESNO value:NEW Player playerfollowed bySET player.ready YESwhen the class only declaresHAS score NUMBER. - Wired the YESNO-valued unknown-field fixture into both the typecheck diagnostics validator and
claro validate; no production typechecker change was needed because the existing narrow direct object-field diagnostic already reported the learner-friendly message.
v1.18.26-dev object field unknown TEXT diagnostic validation
- Added a focused negative
claro typecheckfixture for direct object-field assignment to an undeclared field with a TEXT value:NEW Player playerfollowed bySET player.nickname "Ace"when the class only declaresHAS score NUMBER. - Wired the TEXT-valued unknown-field fixture into both the typecheck diagnostics validator and
claro validate; no production typechecker change was needed because the existing narrow direct object-field diagnostic already reported the learner-friendly message.
v1.18.26-dev object field unknown-field diagnostic
- Added a focused negative
claro typecheckfixture for direct object-field assignment to an undeclared field:NEW Player playerfollowed bySET player.level 3when the class only declaresHAS score NUMBER. - Improved the narrow direct object-field diagnostic so simple unknown fields explain the missing field name and suggest adding a matching
HASdeclaration.
v1.18.26-dev object field TEXT negative validation
- Added a focused negative
claro typecheckfixture for direct object-field assignment with a TEXT field:NEW Player playerfollowed bySET player.name 123when the class declaresHAS name TEXT. - Wired the TEXT wrong-type fixture into both the typecheck diagnostics validator and
claro validate, completing NUMBER/TEXT/YESNO negative coverage for the current narrow direct object-field diagnostic foundation.
v1.18.26-dev object field YESNO negative validation
- Added a focused negative
claro typecheckfixture for direct object-field assignment with a YESNO field:NEW Player playerfollowed bySET player.ready "yes"when the class declaresHAS ready YESNO. - Wired the YESNO wrong-type fixture into both the typecheck diagnostics validator and
claro validate, complementing the existing NUMBER wrong-type diagnostic and NUMBER/TEXT/YESNO positive field fixtures.
v1.18.26-dev object field YESNO positive validation
- Added a focused positive
claro typecheckfixture for direct object-field assignment with a YESNO field:NEW Player playerfollowed bySET player.ready YESwhen the class declaresHAS ready YESNO. - Wired the YESNO object-field fixture into both the typecheck diagnostics validator and
claro validate, complementing the existing NUMBER/TEXT positive fixtures and wrong-type field diagnostic fixture.
v1.18.26-dev object field TEXT positive validation
- Added a focused positive
claro typecheckfixture for direct object-field assignment with a TEXT field:NEW Player playerfollowed bySET player.name "Ada"when the class declaresHAS name TEXT. - Wired the TEXT object-field fixture into both the typecheck diagnostics validator and
claro validate, complementing the existing NUMBER positive fixture and wrong-type field diagnostic fixture.
v1.18.26-dev object field positive validation
- Added a focused positive
claro typecheckfixture for direct object-field assignment:NEW Player playerfollowed bySET player.score 10when the class declaresHAS score NUMBER. - Wired the positive object-field fixture into both the typecheck diagnostics validator and
claro validate, complementing the existing wrong-type field diagnostic fixture.
v1.18.26-dev object field assignment diagnostics
- Added a narrow
claro typecheckdiagnostic for direct wrong-type object field assignment afterNEW Class object, such asSET player.score "ten"whenHAS score NUMBERis known. - Wired the new negative fixture into typecheck validation while keeping the existing object method positive/negative checks and object-field runtime fixture green.
- Documented the narrow object-field diagnostic scope in beginner-facing status and static typing docs.
v1.18.26-dev object method parameter diagnostics
- Extended the narrow
CHECK TYPEargument diagnostic foundation to simple object methods such asDO player.add "five"whenplayerwas created withNEW Player player. - Added focused positive and negative typecheck fixtures for object method parameter diagnostics and wired them into package/typecheck validation.
- Documented the current method-parameter diagnostic behavior in the README, current status, roadmap, and advanced static typing guide.
v1.18.26-dev multi-parameter function diagnostics
- Extended the function-argument typecheck foundation so both
DOand compatibilityCALL ... WITHcalls can report checked parameter mismatches. - Added multi-parameter positive and negative fixtures that verify each wrong argument gets a clear parameter-specific diagnostic.
- Included the function argument fixtures in
claro validateso package validation covers the diagnostic foundation directly.
v1.18.26-dev typed function diagnostic foundation
- Added a narrow
claro typecheckfoundation for function argument diagnostics: if a function body declares a parameter expectation withCHECK TYPE parameter IS TYPE, calls to that function are checked against the expected argument type. - Added positive and negative fixtures for the function-argument diagnostic path.
- Extended
tools/validate_typecheck_diagnostics.pyto verify both the new friendly error and a matching successful call.
v1.18.26-dev learner documentation status cleanup
- Grouped the README documentation map by current feature status so new learners can see what is ready, what is foundation-level, and what is still planned or experimental.
- Added a learner-first trust order to
docs/CURRENT_STATUS.md. - Marked
docs/FUTURE_FEATURES_ROADMAP.mdas a historical implementation plan plus remaining ideas, with completed slices separated from still-planned work.
v1.18.26-dev documentation audit consistency update
- Clarified that
docs/DOCUMENTATION_AUDIT_v1.18.26.mdis a historical snapshot from the first documentation cleanup pass. - Pointed current readers toward
CURRENT_STATUS.md,ROADMAP.md, and the README documentation map before the original audit problem list.
v1.18.26-dev type mismatch diagnostics update
- Improved
claro typecheckmessages so scalar, list, map, andCHECK TYPEmismatches use one beginner-friendlyType mismatch/Type check failedstyle. - Diagnostics now name the variable/container, the expected type, and the detected value type in plain language.
- Added
tools/validate_typecheck_diagnostics.pyand wired it intotools/validate_v1_17.py. - Strengthened
tools/validate_v1_17.pyso it rebuildsclaro.exebefore validation instead of trusting a stale binary. - Updated advanced static typing docs with the clearer diagnostic examples.
v1.18.26-dev package manifest and security foundation update
- Promoted the next development slice to
Claro v1.18.26. - Added
manifest-version: 1toclaro.projectand localclaro.packagefiles. - Added deterministic package checksums to local package manifests and
claro.lock. - Hardened
claro package doctorso it validates package manifests and checksums. - Added
tools/validate_package_security.pyand wired it intotools/validate_v1_17.py.
v1.18.26-dev cooperative concurrency foundation update
- Added beginner-friendly
YIELDandTASK STATUS name AS variablesupport. - Documented deterministic cooperative concurrency in
docs/CONCURRENCY.md. - Added
tests/40_tasks_status.claroandtools/validate_concurrency.py. - Improved unfinished block diagnostics so missing task endings say the opened block needs
ENDTASK. - Wired concurrency validation into
tools/validate_v1_17.py.
v1.18.26-dev LSP diagnostics helper update
- Replaced the old completion-word-only
support/lsp/claro_lsp_stub.pywith a command-based helper. - Added JSON
metadata,completions, anddiagnosticshelper modes. - Diagnostics now combine
claro checkandclaro typecheckoutput into editor-friendly JSON objects. - Added
tools/validate_lsp_helper.pyand wired it intotools/validate_v1_17.py. - Expanded
docs/IDE.mdwith LSP/helper usage.
v1.18.26-dev IDE foundation update
- Expanded
claro ideinto valid editor metadata JSON withfile_extensions,commands,snippets, anddiagnostics. - Added typed container names to IDE metadata, including
LIST OF TEXTandMAP OF NUMBER. - Added
tools/validate_ide_metadata.pyand wired it intotools/validate_v1_17.py. - Added
docs/IDE.mdfor editor integration guidance.
v1.18.26 development foundation
- Added static checking for typed lists such as
LIST OF TEXT. - Added static checking for typed maps such as
MAP OF NUMBER. - Added
tests/typecheck_container_good.claroandtests/typecheck_container_bad.claro. - Added
docs/FUTURE_FEATURES_ROADMAP.mdcovering IDE, registry, concurrency, GUI/game, web, and optimization tracks. - Added
docs/ADVANCED_STATIC_TYPING.md.
Claro v1.18.26 - SDL Documentation Correction
- Clarified that SDL 1.2 is not included in the stable executable.
- Removed the misleading
claro package add sdlREADME example. - Marked
examples/experimental_sdl/as future/experimental examples only.
Claro v1.18.26 - Stable Test Runner Fix
- Promoted the package to stable
Claro v1.18.26. - Fixed Windows
claro testso it discovers and runs the full golden test suite. - Normalized runtime error paths to forward slashes for cross-platform expected-output stability.
- Validated version, full tests, package validation, and networking example.
Claro v1.18.26 - Networking Reliability Release
- Updated visible version string to
Claro v1.18.26. - Hardened the networking foundation while keeping plain-text commands.
- Added offline-safe
claro://network test URLs so tests and lessons do not need internet access. - Improved
HTTP GET:HTTP GET "claro://hello" AS pageHTTP GET "claro://hello" AS page STATUS status
- Added
HTTP STATUS "url" AS code. - Added
HTTP SAVE "url" TO "file" AS code. - Added
HTTP CHECK "url" AS safe. - Added
LASTHTTPfor the latest HTTP status code. - Added URL safety checks before shelling out to
curl. - Added
examples/networking.claro. - Added network tests:
tests/38_network_mock.clarotests/39_http_save.claro
- Added docs:
docs/V1_17_NETWORKING.mddocs/V1_17_VALIDATION.md
- Added
tools/validate_v1_17.py.
Claro v1.15.26 - Objects and Classes Hardening
- Updated visible version string to
Claro v1.15.26. - Hardened
CLASS,HAS,NEW, and object field behavior. - Added class method support with simple syntax such as
DO player.show. - Added typed field defaults when creating objects.
- Added runtime checks for typed object fields such as
player.score NUMBER. - Added object helper commands:
OBJECT CLASS player AS kindandOBJECT FIELDS player AS fields. - Improved nested block matching so classes can contain methods that end with plain
END. - Updated validation to include the object/class example.
- Added object method and object field type regression tests.
Claro v1.14.26 - Static Type Hardening
- Updated visible version string to
Claro v1.14.26. - Added
claro typecheck FILEfor simple static type checking before a script runs. - Added runtime type helpers:
TYPE OF value AS nameandCHECK TYPE value IS TYPE. - Added typed input forms such as
ASK "How old are you?" age NUMBER. - Added simpler object creation form
NEW Player playerwhile keepingNEW Player AS player. - Added
examples/type_hardening.claroandexamples/typed_ask.claro. - Added typecheck fixtures and validation docs for v1.14.26.
Claro v1.10.26 - First Stable v1 Foundation
- Promoted Claro from final candidate to the first stable v1 foundation release.
- Updated visible version string to
Claro v1.10.26. - Updated package docs from RC9/final-candidate language to stable-release language.
- Kept the beginner-first syntax:
SET name TO "Jon"SET name "Jon"ASK "What is your name?" nameENDas a simple block closer.
- Kept compatibility forms such as
ASK ... AS,ENDIF,DONE, andLEARNED. - Kept simple functions:
TEACH greet nameDO greet "Jon"
- Kept the practical scripting base:
- command-line arguments
- environment lookup
- files and folders
- text helpers
- list helpers
- random numbers
- command output capture
- JSON
- imports
- TRY/CATCH
- Kept project and tool commands:
claro helpclaro examplesclaro doctorclaro validateclaro replclaro new MyProjectclaro runclaro package init|add|listclaro ide
- Added stable-release docs:
docs/STABLE_RELEASE.mddocs/V1_10_VALIDATION.mddocs/POST_1_0_ROADMAP.md
- Added
tools/validate_v1_10.py. - Validation result:
PASS: 0 failure(s).
Claro v1.09.26 RC9 - Final Candidate
- Updated visible version string to
Claro v1.09.26. - Kept normal development in the
v1.xx.yyversion line. - Added final-candidate validation with
claro validate. - Added/kept package health commands:
claro helpclaro examplesclaro doctorclaro validate
- Added simple beginner function syntax:
TEACH greet nameDO greet "Jon"
- Preserved older function syntax:
TEACH greet TAKES nameCALL greet WITH "Jon"
- Added project helper command:
claro new MyProjectclaro runto runmain.claro
- Added REPL command:
claro repl
- Added text polish helpers:
TEXT STARTS ... WITH ... ASTEXT ENDS ... WITH ... ASTEXT REPLACE ... FROM ... TO ... AS
- Added examples and tests for simple functions and text polish.
- Added final release checklist and RC9 validation notes.
Claro v1.06.26 - Simple Learner Scripting Release
- Updated visible version string to
Claro v1.06.26. - Added official Claro logo under
assets/Claro_Logo.jpg. - Added
docs/BRANDING.md. - Added simple beginner syntax support:
SET name "Jon"SET name TO "Jon"SET name to "Jon"ASK "What is your name?" nameENDas a beginner-friendly block closer.
- Preserved older RC syntax for compatibility.
- Added command-line argument access, environment lookup, folder/file helpers, command output capture, random numbers, text helpers, and list helpers.
- Added tests for simple syntax,
END, practical files/folders, text helpers, and list helpers.
Earlier release candidates
Earlier RCs built the current beginner scripting foundation: output/input, variables, math, conditionals, loops, lists, maps, functions, files, JSON, imports, TRY/CATCH, examples, lessons, checker support, formatter support, and test support.