diff --git a/CHANGELOG.md b/CHANGELOG.md index 8ab9dbde..f8a9b461 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,11 @@ We roughly follow the ideas of [semantic versioning](https://semver.org/). Note that the versions "0.x.0" probably will include breaking changes. +## v0.1.2 (December 2024) + +- Replaced absolute paths in READMEs by relative paths, which is a requirement for correct links on NPM + + ## v0.1.1 (December 2024) - Improved the READMEs in the packages `typir` and `typir-langium`. @@ -17,7 +22,7 @@ This is the first official release of Typir. It serves as first version to experiment with Typir and to gather feedback to guide and improve the upcoming versions. We are looking forward to your feedback! - [Linked issues and PRs](https://github.com/TypeFox/typir/milestone/2) -- Core implementations of the following [type-checking services](/packages/typir/src/services/): +- Core implementations of the following [type-checking services](./packages/typir/src/services/): - Assignability - Equality - Conversion (implicit/coercion and explicit/casting) @@ -25,7 +30,7 @@ It serves as first version to experiment with Typir and to gather feedback to gu - Sub-typing - Validation - Caching -- [Predefined types](/packages/typir/src/kinds/) to reuse: +- [Predefined types](./packages/typir/src/kinds/) to reuse: - Primitives - Functions (with overloading) - Classes (nominally typed) diff --git a/README.md b/README.md index 332166ad..5b4c2f8f 100644 --- a/README.md +++ b/README.md @@ -61,7 +61,7 @@ This repository contains the following stand-alone applications, which demonstra ## Tiny Typir Example -Both the LOX and OX examples have been created with Langium. Here is a very small example for using Typir with a tiny expression language, which is independent from any language workbench like Langium. We show how to use the Typir API for type checking of Tiny Typir. You can also find the example in the repository, implemented in form of an executable [test case](/packages/typir/test/api-example.test.ts). +Both the LOX and OX examples have been created with Langium. Here is a very small example for using Typir with a tiny expression language, which is independent from any language workbench like Langium. We show how to use the Typir API for type checking of Tiny Typir. You can also find the example in the repository, implemented in form of an executable [test case](./packages/typir/test/api-example.test.ts). Our Tiny Typir language has only a few concepts (all are realized as `AstElement`s), namely numbers (`NumberLiteral`), strings (`StringLiteral`), binary expressions (`BinaryExpression`), variables (`Variable`), and assignments (`AssignmentStatement`). They are implemented in a very simple way, see for example our `BinaryExpression`: ```typescript @@ -74,7 +74,7 @@ class BinaryExpression extends AstElement { } ``` -Feel free to check out the others in the [test code](/packages/typir/test/api-example.test.ts), but a little spoiler: no surprises there. +Feel free to check out the others in the [test code](./packages/typir/test/api-example.test.ts), but a little spoiler: no surprises there. Let's head into setting up the Typir type system and creating the primitive types for our NumberLiteral and StringLiteral, which is a one line of code job each, as we use the Typir's predefined Primitives factory service: @@ -169,8 +169,8 @@ expect(errors2[0].message).toBe("The type 'string' is not assignable to the type Typir is presented in these talks: -- [LangDev'24](https://langdevcon.org/2024/program#26): [Video](https://www.youtube.com/watch?v=CL8EbJYeyTE), [slides](/resources/talks/2024-10-17-LangDev.pdf) (2024-10-17) -- [OCX/EclipseCon'24](https://www.ocxconf.org/event/778b82cc-6834-48a4-a58e-f883c5a7b8c9/agenda?session=23b97df9-0435-4fab-8a01-e0a9cf3e3831&shareLink=true): [Video](https://www.youtube.com/watch?v=WLzXAhcl-aY&list=PLy7t4z5SYNaRRGVdF83feN-_uHLwvGvgw&index=23), [slides](/resources/talks/2024-10-24-EclipseCon.pdf) (2024-10-24) +- [LangDev'24](https://langdevcon.org/2024/program#26): [Video](https://www.youtube.com/watch?v=CL8EbJYeyTE), [slides](./resources/talks/2024-10-17-LangDev.pdf) (2024-10-17) +- [OCX/EclipseCon'24](https://www.ocxconf.org/event/778b82cc-6834-48a4-a58e-f883c5a7b8c9/agenda?session=23b97df9-0435-4fab-8a01-e0a9cf3e3831&shareLink=true): [Video](https://www.youtube.com/watch?v=WLzXAhcl-aY&list=PLy7t4z5SYNaRRGVdF83feN-_uHLwvGvgw&index=23), [slides](./resources/talks/2024-10-24-EclipseCon.pdf) (2024-10-24) ## Roadmap @@ -183,7 +183,7 @@ The roadmap include, among other, these features: - Calculate types, e.g. operators whose return types depend on their current input types - Optimized APIs to register rules for inference and validation -For the released versions of Typir, see the [CHANGELOG.md](/CHANGELOG.md). +For the released versions of Typir, see the [CHANGELOG.md](./CHANGELOG.md). ## Contributing @@ -195,4 +195,4 @@ We also have a release process described in [RELEASE.md](./RELEASE.md). ## License -Typir is fully [MIT licensed](/LICENSE). +Typir is fully [MIT licensed](./LICENSE). diff --git a/examples/lox/package.json b/examples/lox/package.json index 1792455f..e0924037 100644 --- a/examples/lox/package.json +++ b/examples/lox/package.json @@ -1,7 +1,7 @@ { "name": "typir-example-lox", "displayName": "lox", - "version": "0.1.1", + "version": "0.1.2", "private": true, "description": "", "author": { @@ -30,7 +30,7 @@ "dependencies": { "commander": "~12.1.0", "langium": "~3.3.0", - "typir-langium": "~0.1.1", + "typir-langium": "~0.1.2", "vscode-languageclient": "~9.0.1", "vscode-languageserver": "~9.0.1" }, diff --git a/examples/ox/README.md b/examples/ox/README.md index 752f6ad5..1b0ab424 100644 --- a/examples/ox/README.md +++ b/examples/ox/README.md @@ -1,6 +1,6 @@ # Typir applied to OX -OX is a reduced version of [LOX](/examples/lox/) in order to demonstrate type checking with [Typir](https://typir.org/) for primitives, functions and operators only. +OX is a reduced version of [LOX](../lox/) in order to demonstrate type checking with [Typir](https://typir.org/) for primitives, functions and operators only. For examples written in OX, look at some [collected examples](./examples/) or the [test cases](./test/). diff --git a/examples/ox/package.json b/examples/ox/package.json index 93cf4a0e..c95c16a1 100644 --- a/examples/ox/package.json +++ b/examples/ox/package.json @@ -1,7 +1,7 @@ { "name": "typir-example-ox", "displayName": "ox", - "version": "0.1.1", + "version": "0.1.2", "private": true, "description": "", "author": { @@ -30,7 +30,7 @@ "dependencies": { "commander": "~12.1.0", "langium": "~3.3.0", - "typir-langium": "~0.1.1", + "typir-langium": "~0.1.2", "vscode-languageclient": "~9.0.1", "vscode-languageserver": "~9.0.1" }, diff --git a/package-lock.json b/package-lock.json index 7bbcb531..c6a6d199 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,12 +36,12 @@ }, "examples/lox": { "name": "typir-example-lox", - "version": "0.1.1", + "version": "0.1.2", "license": "MIT", "dependencies": { "commander": "~12.1.0", "langium": "~3.3.0", - "typir-langium": "~0.1.1", + "typir-langium": "~0.1.2", "vscode-languageclient": "~9.0.1", "vscode-languageserver": "~9.0.1" }, @@ -82,12 +82,12 @@ }, "examples/ox": { "name": "typir-example-ox", - "version": "0.1.1", + "version": "0.1.2", "license": "MIT", "dependencies": { "commander": "~12.1.0", "langium": "~3.3.0", - "typir-langium": "~0.1.1", + "typir-langium": "~0.1.2", "vscode-languageclient": "~9.0.1", "vscode-languageserver": "~9.0.1" }, @@ -4085,18 +4085,18 @@ } }, "packages/typir": { - "version": "0.1.1", + "version": "0.1.2", "license": "MIT", "engines": { "node": ">= 18.0.0" } }, "packages/typir-langium": { - "version": "0.1.1", + "version": "0.1.2", "license": "MIT", "dependencies": { "langium": "~3.3.0", - "typir": "~0.1.1" + "typir": "~0.1.2" }, "engines": { "node": ">= 18.0.0" diff --git a/packages/typir-langium/README.md b/packages/typir-langium/README.md index e27d9690..4b90551b 100644 --- a/packages/typir-langium/README.md +++ b/packages/typir-langium/README.md @@ -15,7 +15,7 @@ npm install typir-langium ## Documentation -For an overview about the core features of Typir with a simple application example, see the [root README.md of the Typir project](/README.md). +For an overview about the core features of Typir with a simple application example, see the [root README.md of the Typir project](../../README.md). Important design decision for Typir-Langium: Typir-Langium does not depend on `langium/lsp`, i.e. Typir-Langium can be used even for Langium-based DSLs which don't use LSP. @@ -39,4 +39,4 @@ Look at the examples in the `examples/` folder of the repo ([here](../../example ## License -[MIT License](/LICENSE) +[MIT License](../../LICENSE) diff --git a/packages/typir-langium/package.json b/packages/typir-langium/package.json index a76435b5..9a6ae7a3 100644 --- a/packages/typir-langium/package.json +++ b/packages/typir-langium/package.json @@ -1,6 +1,6 @@ { "name": "typir-langium", - "version": "0.1.1", + "version": "0.1.2", "description": "Typir binding for Langium", "homepage": "https://typir.org", "author": { @@ -49,6 +49,6 @@ "bugs": "https://github.com/TypeFox/typir/issues", "dependencies": { "langium": "~3.3.0", - "typir": "~0.1.1" + "typir": "~0.1.2" } } diff --git a/packages/typir/README.md b/packages/typir/README.md index a582cef0..ef3e5216 100644 --- a/packages/typir/README.md +++ b/packages/typir/README.md @@ -15,7 +15,7 @@ npm install typir ## Documentation -For an overview about the core features of Typir with a simple application example, see the [root README.md of the Typir project](/README.md). +For an overview about the core features of Typir with a simple application example, see the [root README.md of the Typir project](../../README.md). Important design decision: Typir is a stand-alone library and has no dependencies to any existing language workbench. @@ -28,4 +28,4 @@ Look at the examples in the `examples` folder of the repo ([here](../../examples ## License -[MIT License](/LICENSE) +[MIT License](../../LICENSE) diff --git a/packages/typir/package.json b/packages/typir/package.json index 22b1161e..756b4b0c 100644 --- a/packages/typir/package.json +++ b/packages/typir/package.json @@ -1,6 +1,6 @@ { "name": "typir", - "version": "0.1.1", + "version": "0.1.2", "description": "General purpose type checking library", "homepage": "https://typir.org", "author": {