Releases: MagnusOpera/FScript
Releases · MagnusOpera/FScript
0.38.2
- Fixed
release-preparechangelog 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
- 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
- Restricted
make release-prepareto stable versions only (major.minor.build) and removed-nextsupport 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-prepareto automate changelog versioning, compare link generation, release commit, and local tag creation. - Release tag workflow now populates draft release notes from the matching
CHANGELOG.mdversion 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/--rootoverrides). - Added
fscript versioncommand to print the current CLI version. - Added interactive CLI REPL mode when running
fscriptwithout 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 examplelet a = let f x = ...) and require an explicit return expression.
Full Changelog: 0.37.0...0.38.0
0.37.0
- Added resolver-backed import loading APIs (
parseSourceWithIncludesResolverandScriptHost.loadSourceWithIncludes) for hosts that load scripts from non-file sources.
Full Changelog: 0.36.0...0.37.0
0.36.0
- 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
- Fixed LSP completion insertion for dotted prefixes so selecting
Option.mapafterOption.no longer duplicates the qualifier. - Switched import syntax to
import "path.fss" as Aliasand removedfromimport grammar. - Updated LSP type display/navigation to hide internal import prefixes and use source aliases (for example
Common.ProjectInfo). - Renamed sample
includes-and-exports.fsstoimports-and-exports.fssand updated docs links.
Full Changelog: 0.34.0...0.35.0
0.34.0
- Removed F# sources from
src/FScript.LanguageServer*by moving LSP semantic modules intoFScript.CSharpInteropand keepingFScript.LanguageServeras C# host. - Replaced
FScript.LanguageServer.Testsproject 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/LanguageServerLegacytoFScript.CSharpInterop/LanguageServerto reflect the new primary architecture. - CI now runs branch update builds on PR
synchronizeevents while keepingci-mainscoped tomainpushes to avoid duplicate runs. - Enabled F# preview parallel compilation globally, disabled deterministic builds, and removed global RuntimeIdentifiers to reduce CI build latency.
- Added
FScript.CSharpInteropas a stable bridge for parse/infer/runtime-extern/stdlib-source services and wired LanguageServer through it. - Added
FScript.LanguageServerhost 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/viewInferredAstcommand 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 intoFScript.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|stringkey-domain displays). - Fixed map-pattern inlay hints to infer key/value/tail bindings (
string,int,int map) instead ofunknown.
Full Changelog: 0.33.0...0.34.0
0.32.0
0.32.0
- Replaced
#includewithimportand removed script-levelmoduledeclarations. - 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
unusedtop-level binding diagnostics from LSP. - Clarified
AGENTS.mdso every direct commit tomainmust include anUnreleasedchangelog entry, including docs/process/policy updates.
Full Changelog: 0.31.0...0.32.0
0.31.0
- Enforced warning-as-error globally via
Directory.Build.props(TreatWarningsAsErrors=true). - Fixed LSP compiler warnings (exhaustive
SIncludematches and null-safe stdlib resource stream handling).
Full Changelog: 0.30.0...0.31.0
0.30.0
- Added contributor policy in
AGENTS.mdfor 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 rootdocs/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.mdand mandated specification maintenance inAGENTS.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
unuseddiagnostics for underscore helper/include files (for example_helpers.fss). - LSP hover/signature for injected stdlib functions now shows named arguments (for example
Option.mapmapper/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