Skip to content

Commit

Permalink
Merge pull request #666 from Kipper-Lang/dev-next
Browse files Browse the repository at this point in the history
v0.12.0-alpha.0
  • Loading branch information
Luna-Klatzer authored Jul 17, 2024
2 parents 54c7760 + 0100595 commit ebe956a
Show file tree
Hide file tree
Showing 281 changed files with 9,981 additions and 7,155 deletions.
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

0 comments on commit ebe956a

Please sign in to comment.