Skip to content

Releases: MagnusOpera/FScript

0.38.2

15 Feb 22:23

Choose a tag to compare

  • Fixed release-prepare changelog rendering so the post-release initialization bullet stays under ## [Unreleased] instead of being appended to the released section.
  • Initialize post-0.38.1 unreleased section.

Full Changelog: 0.38.1...0.38.2

0.38.1

15 Feb 22:18

Choose a tag to compare

  • Fixed release preparation to auto-seed ## [Unreleased] with a post-release initialization bullet so changelog CI checks continue to pass after tagging.
  • Initialize post-0.38.0 unreleased section.

Full Changelog: 0.38.0...0.38.1

  • Initialize post-0.38.1 unreleased section.

0.38.0

15 Feb 22:18

Choose a tag to compare

  • Restricted make release-prepare to stable versions only (major.minor.build) and removed -next support from release docs and validation.
  • Added REPL documentation under guides and architecture, and updated the getting-started tutorial to include a REPL check right after install.
  • Added make release-prepare to automate changelog versioning, compare link generation, release commit, and local tag creation.
  • Release tag workflow now populates draft release notes from the matching CHANGELOG.md version section and fails fast when it is missing or invalid.
  • Initialize post-0.37.0 unreleased section.
  • Added CLI stdin execution support so scripts can be piped to fscript (including -r/--root overrides).
  • Added fscript version command to print the current CLI version.
  • Added interactive CLI REPL mode when running fscript without arguments.
  • Updated REPL multiline submission to require double-Enter for pending blocks and improved function display with typed signatures.
  • Fixed block semantics to reject trailing let-only blocks without a final expression (for example let a = let f x = ...) and require an explicit return expression.

Full Changelog: 0.37.0...0.38.0

0.37.0

15 Feb 17:14

Choose a tag to compare

  • Added resolver-backed import loading APIs (parseSourceWithIncludesResolver and ScriptHost.loadSourceWithIncludes) for hosts that load scripts from non-file sources.

Full Changelog: 0.36.0...0.37.0

0.36.0

15 Feb 13:28

Choose a tag to compare

  • Fixed LSP go-to-definition for alias-qualified function calls (for example Helpers.append_part).

Full Changelog: 0.35.0...0.36.0

0.35.0

14 Feb 22:44

Choose a tag to compare

  • Fixed LSP completion insertion for dotted prefixes so selecting Option.map after Option. no longer duplicates the qualifier.
  • Switched import syntax to import "path.fss" as Alias and removed from import grammar.
  • Updated LSP type display/navigation to hide internal import prefixes and use source aliases (for example Common.ProjectInfo).
  • Renamed sample includes-and-exports.fss to imports-and-exports.fss and updated docs links.

Full Changelog: 0.34.0...0.35.0

0.34.0

14 Feb 21:06

Choose a tag to compare

  • Removed F# sources from src/FScript.LanguageServer* by moving LSP semantic modules into FScript.CSharpInterop and keeping FScript.LanguageServer as C# host.
  • Replaced FScript.LanguageServer.Tests project with a C# test project and C# LSP test harness to remove F# compile cost from LanguageServer test builds.
  • Deleted obsolete F# LanguageServer test sources after C# test project migration.
  • Renamed FScript.CSharpInterop/LanguageServerLegacy to FScript.CSharpInterop/LanguageServer to reflect the new primary architecture.
  • CI now runs branch update builds on PR synchronize events while keeping ci-main scoped to main pushes to avoid duplicate runs.
  • Enabled F# preview parallel compilation globally, disabled deterministic builds, and removed global RuntimeIdentifiers to reduce CI build latency.
  • Added FScript.CSharpInterop as a stable bridge for parse/infer/runtime-extern/stdlib-source services and wired LanguageServer through it.
  • Added FScript.LanguageServer host executable as the migration entrypoint for C#-owned LSP startup.
  • Added a first native C# LSP server core (JSON-RPC transport, initialize/shutdown, text sync, and stdlib-source request) with dedicated integration tests.
  • Extended the native C# LSP core with diagnostics publishing and viewAst/viewInferredAst command handling.
  • Switched C# LSP host to full-method dispatch parity via shared handlers, made it the default test target, and updated extension/tag packaging to use FScript.LanguageServer.dll.
  • Replaced the F# LSP server executable with FScript.LanguageServer (C#) and moved F# LSP logic into FScript.LanguageServer.Core.
  • Fixed imported qualified type annotations (for example common.ProjectInfo) in parser/type inference to prevent false type mismatches.
  • Fixed LSP inlay hints to ignore spans from other files so included symbols no longer leak labels into unrelated declarations.
  • Enforced string-only map keys across type inference, evaluation, samples, and LSP type rendering (removed int|string key-domain displays).
  • Fixed map-pattern inlay hints to infer key/value/tail bindings (string, int, int map) instead of unknown.

Full Changelog: 0.33.0...0.34.0

0.32.0

14 Feb 17:06

Choose a tag to compare

0.32.0

  • Replaced #include with import and removed script-level module declarations.
  • Imported files are now exposed through filename-derived modules (for example shared.fss -> shared.*).
  • Updated parser/runtime/LSP/docs/tests for the new import/module semantics.
  • Removed unused top-level binding diagnostics from LSP.
  • Clarified AGENTS.md so every direct commit to main must include an Unreleased changelog entry, including docs/process/policy updates.

Full Changelog: 0.31.0...0.32.0

0.31.0

14 Feb 15:55

Choose a tag to compare

  • Enforced warning-as-error globally via Directory.Build.props (TreatWarningsAsErrors=true).
  • Fixed LSP compiler warnings (exhaustive SInclude matches and null-safe stdlib resource stream handling).

Full Changelog: 0.30.0...0.31.0

0.30.0

14 Feb 15:28

Choose a tag to compare

  • Added contributor policy in AGENTS.md for build/test/non-regression workflow.
  • Added CI changelog gate requiring one-line ## [Unreleased] entries for functional PR changes.
  • Reorganized documentation into docs/specs, docs/architecture, and curated root docs/ guides.
  • Added docs indexes (docs/README.md, docs/specs/README.md, docs/architecture/README.md) and linked README/tutorial to the new structure.
  • Added docs/specs/lsp-inlay-hints.md and mandated specification maintenance in AGENTS.md.
  • LSP now injects runtime extern schemes for document typing, enabling host functions (Fs.*, Regex.*, etc.) and showing injected signatures in hover/completion/signature help.
  • LSP definition/type-definition navigation now targets included declaration files (URI derived from symbol source span) instead of always the current file.
  • LSP now resolves record field labels inside function return record literals to the function’s declared/inferred return type (including include-provided type definitions).
  • Suppressed misleading top-level unused diagnostics for underscore helper/include files (for example _helpers.fss).
  • LSP hover/signature for injected stdlib functions now shows named arguments (for example Option.map mapper/value labels).
  • LSP definition on injected stdlib functions now opens readonly virtual stdlib sources (fscript-stdlib:///Option.fss, List.fss, Map.fss).

Full Changelog: 0.29.0...0.30.0