Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v0.12.0-alpha.0 #666

Merged
merged 74 commits into from
Jul 17, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
db18c58
major (#524): Added interface and class grammar rules to KipperLexer.…
Luna-Klatzer Jul 2, 2024
e9238b0
major (#524): Added new AST nodes for interface and class declarations
Luna-Klatzer Jul 2, 2024
733fb17
other: Prettified code
Luna-Klatzer Jul 2, 2024
415ae4b
minor (#524): Added empty code generators for interface and class dec…
Luna-Klatzer Jul 2, 2024
4252b0b
major (#524): Added TypeDeclaration as parent type for interface and …
Luna-Klatzer Jul 3, 2024
e1a2a3d
Merged dev-next into 524-feature-implement-internal-representation-fo…
Luna-Klatzer Jul 3, 2024
2f337aa
other: Fixed outdated comment in program-ctx.ts
Luna-Klatzer Jul 3, 2024
58ed8bd
major (#524): Restructured type system and prepared for implementatio…
Luna-Klatzer Jul 3, 2024
a323cb4
other: Prettified code and optimised imports
Luna-Klatzer Jul 3, 2024
6214d00
other: Updated CHANGELOG.md
Luna-Klatzer Jul 3, 2024
22e90c4
major (#524): Restructured type structure in compiler
Luna-Klatzer Jul 3, 2024
f535118
other: Updated CHANGELOG.md
Luna-Klatzer Jul 3, 2024
fa92eb6
Merged 480-feature-add-support-for-compiler-behaviour-modifying-pragm…
Luna-Klatzer Jul 4, 2024
346fe1e
minor (#525): Added interface-member-list-declaration.ts and interfac…
ByteWolf-dev Jul 4, 2024
b564ce3
major (#524): Partially migrated away from old string types to the ne…
Luna-Klatzer Jul 4, 2024
e919ef2
Merge remote-tracking branch 'origin/dev-next' into 524-feature-imple…
Luna-Klatzer Jul 4, 2024
d8b841e
other: Fixed pnpm-lock.yaml
Luna-Klatzer Jul 5, 2024
2be458e
Merge remote-tracking branch 'origin/main' into 524-feature-implement…
Luna-Klatzer Jul 5, 2024
7a97914
chore(deps): update dependency coverage-badge-creator to v1.0.19
renovate[bot] Jul 7, 2024
4c0b26e
chore(deps): update dependency json-parse-even-better-errors to v3.0.2
renovate[bot] Jul 7, 2024
edf4ffb
other: Updated pnpm-lock.yaml
Luna-Klatzer Jul 8, 2024
cda23f3
major (#524): Introduced universe scope and restructured built-ins an…
Luna-Klatzer Jul 8, 2024
e921e10
other: Prettified project
Luna-Klatzer Jul 8, 2024
46da957
Merge branch '524-feature-implement-internal-representation-for-objec…
Luna-Klatzer Jul 8, 2024
057d193
major (#524): Finished migration to new type system
Luna-Klatzer Jul 9, 2024
d66c4fb
Merged dev-next into 524-feature-implement-internal-representation-fo…
Luna-Klatzer Jul 9, 2024
3ff4dc5
Merged dev-next into 524-feature-implement-internal-representation-fo…
Luna-Klatzer Jul 10, 2024
81b65c5
minor (#524): Implemented object type checking and recursive errors
Luna-Klatzer Jul 11, 2024
9438316
other: Updated CHANGELOG.md
Luna-Klatzer Jul 11, 2024
95e8c04
major (#525): Implemented interface syntax, AST nodes and basic code …
ByteWolf-dev Jul 11, 2024
e9ddb6d
other: Added interface tests
ByteWolf-dev Jul 11, 2024
0490f5c
minor (#524): Added empty static constructor methods to `CustomType` …
Luna-Klatzer Jul 11, 2024
550b346
other: Updated CHANGELOG.md
Luna-Klatzer Jul 11, 2024
1dd3500
other: Prettified code
Luna-Klatzer Jul 11, 2024
9c14786
Merge pull request #602 from Kipper-Lang/524-feature-implement-intern…
Luna-Klatzer Jul 11, 2024
64454ec
Merged dev-next into 525-feature-implement-syntax-for-interface-type-…
Luna-Klatzer Jul 11, 2024
c213777
fix: Fixed errors caused by merge
Luna-Klatzer Jul 12, 2024
dc1ff5f
Merge pull request #657 from Kipper-Lang/525-feature-implement-syntax…
Luna-Klatzer Jul 12, 2024
3c365fc
Merged origin/dev-next into 526-feature-add-full-object-support-and-t…
ByteWolf-dev Jul 12, 2024
828b7ac
major (#499): Introduced built-in type classes and any type
Luna-Klatzer Jul 12, 2024
6e45a04
minor (#499): Added semantic checking and type-checking for arrays
Luna-Klatzer Jul 12, 2024
fbf8c27
minor (#499): Added code translation for arrays
Luna-Klatzer Jul 12, 2024
86d0e42
minor (#499): Implemented generic type specifier semantic analysis an…
Luna-Klatzer Jul 12, 2024
1d9dbde
other: Fixed failing test cases due to last commit 86d0e429ed56a66b25…
Luna-Klatzer Jul 12, 2024
922372c
chore(deps): update dependency prettier to v3
renovate[bot] Jul 13, 2024
b910f64
Added semantic analysis and code generation to ObjectPrimaryExpressio…
ByteWolf-dev Jul 15, 2024
037c370
Merge branch 'dev-next' into 526-feature-add-full-object-support-and-…
Luna-Klatzer Jul 15, 2024
67d2632
minor (#499): Implemented indexing and slicing for arrays
Luna-Klatzer Jul 15, 2024
879734c
other: Added tests for arrays
Luna-Klatzer Jul 15, 2024
dd85c64
other: Fixed failing tests due to ESLint error
Luna-Klatzer Jul 15, 2024
0f9f10e
minor (#499): Fixed multiple bugs in the array logic
Luna-Klatzer Jul 15, 2024
600c690
minor (#499): Added ability to specify multiple generic arguments
Luna-Klatzer Jul 15, 2024
f15a0c8
minor (#499): Added tests for arrays and enhanced some of the existin…
Luna-Klatzer Jul 15, 2024
29033d8
other: Updated CHANGELOG.md
Luna-Klatzer Jul 16, 2024
9ebb742
other: Added versioning to function `KipperTypeChecker.validArrayExpr…
Luna-Klatzer Jul 16, 2024
62bd081
other: Updated CHANGELOG.md
Luna-Klatzer Jul 16, 2024
ec3e373
Merge pull request #662 from Kipper-Lang/499-feature-implement-arrayt…
Luna-Klatzer Jul 16, 2024
7ee5512
Merged origin/dev-next into 526-feature-add-full-object-support-and-t…
Luna-Klatzer Jul 16, 2024
35a36e8
other: Updated CHANGELOG.md
Luna-Klatzer Jul 16, 2024
b6cfeb7
fix (#526): Fixed code generation style mismatches
Luna-Klatzer Jul 16, 2024
535c633
other: Fixed failing tests
Luna-Klatzer Jul 16, 2024
7d3d2e9
other: Updated CHANGELOG.md
Luna-Klatzer Jul 16, 2024
e3ad3e2
Merge pull request #660 from Kipper-Lang/526-feature-add-full-object-…
ByteWolf-dev Jul 16, 2024
4293b60
other: Prettified with Prettier v3
Luna-Klatzer Jul 17, 2024
1b9fb48
other: Fixed ESLint errors
Luna-Klatzer Jul 17, 2024
cf3607e
Merge pull request #636 from Kipper-Lang/renovate/dev-next-prettier-3.x
Luna-Klatzer Jul 17, 2024
7e507cd
Merge pull request #607 from Kipper-Lang/renovate/dev-next-json-parse…
Luna-Klatzer Jul 17, 2024
ff882e8
Merge pull request #606 from Kipper-Lang/renovate/dev-next-coverage-b…
Luna-Klatzer Jul 17, 2024
977f7db
release: Bumped Kipper project version to 0.12.0-alpha.0
Luna-Klatzer Jul 17, 2024
171392f
minor: Reverted oclif back to version `3.4.6`
Luna-Klatzer Jul 17, 2024
de9bd6c
other: Updated CLI README.md
Luna-Klatzer Jul 17, 2024
148167e
other: Added `@oclif/core` to the CLI devDependencies
Luna-Klatzer Jul 17, 2024
20a4f6c
other: Fixed pnpm-lock.yaml files
Luna-Klatzer Jul 17, 2024
0100595
Release 0.12.0-alpha.0
Luna-Klatzer Jul 17, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 3 additions & 5 deletions .run/kipper run.run.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="kipper run" type="NodeJSConfigurationType"
application-parameters="run -s &quot;&quot;" path-to-js-file="./kipper/cli/bin/run"
working-dir="$PROJECT_DIR$/">
<method v="2"/>
</configuration>
<configuration default="false" name="kipper run" type="NodeJSConfigurationType" application-parameters="run -s &quot;&quot;" path-to-js-file="./kipper/cli/bin/run" working-dir="$PROJECT_DIR$/">
<method v="2" />
</configuration>
</component>
55 changes: 54 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,61 @@ To use development versions of Kipper download the

### Added

- Added semantic checking and code generation for object literals and object properties.
([#526](https://github.com/Kipper-Lang/Kipper/issues/526))
- Implemented internal representation for custom types such as objects, interfaces and classes. This change means that
the entire core type system has been reworked and adjusted to also support custom types as well as complex types
(objects, arrays etc.). This does not inheritely add functionality but serves as the stepping stone for the
implementation of all custom types in the future. ([#524](https://github.com/Kipper-Lang/Kipper/issues/524))
- Implemented the generic `Array<T>` type and single-type array initializers.
([#499](https://github.com/Kipper-Lang/Kipper/issues/499))
- New module:
- `semantics/runtime-built-ins`, which contains runtime built-in functions, variables and types.
- `semantics/runtime-internals`, which contains the runtime internal functions.
- `semantics/types`, which contains the runtime types.
- New classes:
- `InterfaceDeclaration`, which represents an AST interface declaration.
- `ClassDeclaration`, which represents an AST class declaration.
- `BuiltInType`, which represents a built-in type.
- `CustomType`, which represents a user defined type.
- `ScopeTypeDeclaration`, which represents a scope type declaration.
- `UniverseTypeDeclaration`, which represents the universe, where all built-in types, functions and variables are
declared. This serves as the parent of the global scope.
- `CustomType`, which is a class extending from `ProcessedType` and implementing the functionality for a custom type such as a interface or class.
- New errors:
- `TypeCanNotBeUsedForTypeCheckingError`, which is thrown when a type is used for type checking, but is not a valid
type. This is an error indicating an invalid logic that should be fixed.
- `GenericArgumentTypeError`, which is thrown when a generic argument is used with an invalid type. This is an error
indicating an invalid logic that should be fixed.
- `InvalidAmountOfGenericArgumentsError`, which is thrown when an invalid amount of generic arguments is used. This is
an error indicating an invalid logic that should be fixed.
- `CanNotUseNonGenericAsGenericTypeError`, which is thrown when a non-generic type is used as a generic type. This is
an error indicating an invalid logic that should be fixed.
- New interfaces:
- `InterfaceDeclarationSemantics`, which represents the semantics of an interface declaration.
- `InterfaceDeclarationTypeSemantics`, which represents the type semantics of an interface declaration.
- `ClassDeclarationSemantics`, which represents the semantics of a class declaration.
- `ClassDeclarationTypeSemantics`, which represents the type semantics of a class declaration.
- `TypeDeclaration`, which represents a type declaration. This is an abstract base class for all type declarations.
- `TypeDeclarationSemantics`, which represents the semantics of a type declaration.
- `TypeDeclarationTyp`KipperTypeChecker.validArrayExpression`eSemantics`, which represents the type semantics of a type declaration.
- `CompilableType`, which represents a type that can be compiled.
- New functions:
- `KipperTypeChecker.validArrayExpression`, which ensures that an array expression is valid.

### Changed

- Changed type from interface to class:
- `InternalFunction`, which represents an internal function.
- `BuiltInFunction`, which represents a built-in function.
- `InternalFunctionArgument`, which represents an internal function argument.
- `BuiltInVariable`, which represents a built-in variable.
- Renamed:
- Module `analysis` to `semantics`.
- Class `UncheckedType` to `RawType`.
- Class `CheckedType` to `ProcessedType`.
- Class `UndefinedCustomType` to `UndefinedType`.

### Fixed

### Deprecated
Expand All @@ -32,7 +85,7 @@ To use development versions of Kipper download the

### Added

- Implemented Processing for File Scoped Pragmas ([#480](https://github.com/Kipper-Lang/Kipper/issues/480))
- Implemented Processing for File Scoped pragmas ([#480](https://github.com/Kipper-Lang/Kipper/issues/480))
- Added Lambda Expressions, which are anonymous functions that can be used as expressions.
([#572](https://github.com/Kipper-Lang/Kipper/issues/572))
- Implemented Bitwise Operations (`&`, `|`, `^`, `~`, `<<`, `>>`, `>>>`).
Expand Down
8 changes: 4 additions & 4 deletions CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ authors:
identifiers:
- type: url
value: >-
https://github.com/Kipper-Lang/Kipper/releases/tag/v0.11.0
description: The GitHub release URL of tag 0.11.0
https://github.com/Kipper-Lang/Kipper/releases/tag/v0.12.0-alpha.0
description: The GitHub release URL of tag 0.12.0-alpha.0
repository-code: 'https://github.com/Kipper-Lang/Kipper/'
url: 'https://kipper-lang.org'
abstract: >-
Expand All @@ -31,6 +31,6 @@ keywords:
- oop-programming
- type-safety
license: GPL-3.0-or-later
license-url: 'https://github.com/Kipper-Lang/Kipper/blob/v0.11.0/LICENSE'
version: 0.11.0
license-url: 'https://github.com/Kipper-Lang/Kipper/blob/v0.12.0-alpha.0/LICENSE'
version: 0.12.0-alpha.0
date-released: '2024-07-01'
33 changes: 14 additions & 19 deletions kipper/cli/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,9 @@ and the [Kipper website](https://kipper-lang.org)._
[![DOI](https://zenodo.org/badge/411260595.svg)](https://zenodo.org/badge/latestdoi/411260595)

<!-- toc -->

- [Kipper CLI - `@kipper/cli` 🦊✨](#kipper-cli---kippercli-)
- [Usage](#usage)
- [Commands](#commands)
* [Kipper CLI - `@kipper/cli` 🦊✨](#kipper-cli---kippercli-)
* [Usage](#usage)
* [Commands](#commands)
<!-- tocstop -->

## General Information
Expand All @@ -40,30 +39,27 @@ and the [Kipper website](https://kipper-lang.org)._
# Usage

<!-- usage -->

```sh-session
$ npm install -g @kipper/cli
$ kipper COMMAND
running command...
$ kipper (--version)
@kipper/cli/0.11.0 linux-x64 node-v20.10.0
@kipper/cli/0.12.0-alpha.0 linux-x64 node-v20.10.0
$ kipper --help [COMMAND]
USAGE
$ kipper COMMAND
...
```

<!-- usagestop -->

# Commands

<!-- commands -->

- [`kipper compile [FILE]`](#kipper-compile-file)
- [`kipper help [COMMAND]`](#kipper-help-command)
- [`kipper new [LOCATION]`](#kipper-new-location)
- [`kipper run [FILE]`](#kipper-run-file)
- [`kipper version`](#kipper-version)
* [`kipper compile [FILE]`](#kipper-compile-file)
* [`kipper help [COMMAND]`](#kipper-help-command)
* [`kipper new [LOCATION]`](#kipper-new-location)
* [`kipper run [FILE]`](#kipper-run-file)
* [`kipper version`](#kipper-version)

## `kipper compile [FILE]`

Expand Down Expand Up @@ -115,7 +111,7 @@ EXAMPLES
kipper compile -t ts ./path/to/file.kip -o build/ -e utf16le --warnings --log-timestamp
```

_See code: [src/commands/compile.ts](https://github.com/Kipper-Lang/Kipper/blob/v0.11.0/kipper/cli/src/commands/compile.ts)_
_See code: [src/commands/compile.ts](https://github.com/Kipper-Lang/Kipper/blob/v0.12.0-alpha.0/kipper/cli/src/commands/compile.ts)_

## `kipper help [COMMAND]`

Expand All @@ -132,7 +128,7 @@ OPTIONS
--all see all commands in CLI
```

_See code: [src/commands/help.ts](https://github.com/Kipper-Lang/Kipper/blob/v0.11.0/kipper/cli/src/commands/help.ts)_
_See code: [src/commands/help.ts](https://github.com/Kipper-Lang/Kipper/blob/v0.12.0-alpha.0/kipper/cli/src/commands/help.ts)_

## `kipper new [LOCATION]`

Expand All @@ -149,7 +145,7 @@ OPTIONS
-d, --default Use the default settings for the new project. Skips the setup wizard.
```

_See code: [src/commands/new.ts](https://github.com/Kipper-Lang/Kipper/blob/v0.11.0/kipper/cli/src/commands/new.ts)_
_See code: [src/commands/new.ts](https://github.com/Kipper-Lang/Kipper/blob/v0.12.0-alpha.0/kipper/cli/src/commands/new.ts)_

## `kipper run [FILE]`

Expand Down Expand Up @@ -194,7 +190,7 @@ EXAMPLES
kipper run -t ts -o build/ -e utf8 -s "print('Hello, World!');" --warnings --log-timestamp
```

_See code: [src/commands/run.ts](https://github.com/Kipper-Lang/Kipper/blob/v0.11.0/kipper/cli/src/commands/run.ts)_
_See code: [src/commands/run.ts](https://github.com/Kipper-Lang/Kipper/blob/v0.12.0-alpha.0/kipper/cli/src/commands/run.ts)_

## `kipper version`

Expand All @@ -205,8 +201,7 @@ USAGE
$ kipper version
```

_See code: [src/commands/version.ts](https://github.com/Kipper-Lang/Kipper/blob/v0.11.0/kipper/cli/src/commands/version.ts)_

_See code: [src/commands/version.ts](https://github.com/Kipper-Lang/Kipper/blob/v0.12.0-alpha.0/kipper/cli/src/commands/version.ts)_
<!-- commandsstop -->

## Contributing to Kipper
Expand Down
41 changes: 24 additions & 17 deletions kipper/cli/package.json
Original file line number Diff line number Diff line change
@@ -1,45 +1,52 @@
{
"name": "@kipper/cli",
"description": "The Kipper Command Line Interface (CLI).",
"version": "0.11.0",
"version": "0.12.0-alpha.0",
"author": "Luna-Klatzer @Luna-Klatzer",
"bin": {
"kipper": "./bin/run"
"kipper": "./bin/run",
"kip": "./bin/run"
},
"dependencies": {
"@kipper/config": "workspace:~",
"@kipper/core": "workspace:~",
"@kipper/target-js": "workspace:~",
"@kipper/target-ts": "workspace:~",
"@oclif/command": "1.8.36",
"@oclif/config": "1.18.17",
"@oclif/config": "1.18.17",
"@oclif/plugin-help": "3.3.1",
"@oclif/parser": "3.8.17",
"@oclif/errors": "1.3.6",
"@oclif/plugin-warn-if-update-available": "2.0.37",
"tslib": "~2.6.2",
"tslog": "3.3.4",
"ts-node": "10.9.2",
"chalk": "4.1.2",
"inquirer": "7.3.3"
"@oclif/plugin-warn-if-update-available": "2.0.37",
"tslib": "~2.6.2",
"tslog": "3.3.4",
"ts-node": "10.9.2",
"chalk": "4.1.2",
"inquirer": "7.3.3"
},
"devDependencies": {
"@types/node": "20.14.9",
"@types/sinon": "17.0.3",
"@types/inquirer": "7.3.3",
"@sinonjs/fake-timers": "11.2.2",
"@oclif/test": "2.5.6",
"json-parse-even-better-errors": "3.0.2",
"@types/inquirer": "7.3.3",
"@sinonjs/fake-timers": "11.2.2",
"@oclif/test": "2.5.6",
"json-parse-even-better-errors": "3.0.2",
"ts-node": "10.9.2",
"copyfiles": "2.4.1",
"copyfiles": "2.4.1",
"rimraf": "5.0.7",
"os-tmpdir": "2.0.0",
"pseudomap": "1.0.2",
"typescript": "5.1.3",
"oclif": "3.17.2",
"@oclif/core": "1.26.2",
"oclif": "3.4.6",
"semver": "7.6.2",
"prettier": "2.8.8"
},
"prettier": "3.3.3"
},
"overrides": {
"pnpm": {
"@oclif/core": "$@oclif/core"
}
},
"engines": {
"node": "16.x || 18.x || 20.x || 22.x",
"pnpm": "8"
Expand Down
Loading
Loading