Skip to content

Commit bb07f68

Browse files
authored
Merge pull request #690 from Kipper-Lang/dev-next
v0.12.0-alpha.2
2 parents 23f5bc0 + 5a6cccb commit bb07f68

127 files changed

Lines changed: 3894 additions & 2669 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.envrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
use_flake

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,3 +85,6 @@ typings/
8585

8686
# Nyc
8787
.nyc_output/
88+
89+
# Nix
90+
.direnv

.prettierignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,7 @@ kipper/web/src/
1616
*.yaml
1717
*.json
1818
CITATION.cff
19+
flake.nix
20+
flake.lock
21+
.envrc
22+
.direnv

.run/kipper compile (js).run.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<component name="ProjectRunConfigurationManager">
2+
<configuration default="false" name="kipper compile (js)" type="NodeJSConfigurationType" application-parameters="compile -s &quot;&quot; -t js" path-to-js-file="./kipper/cli/bin/run" working-dir="$PROJECT_DIR$/">
3+
<method v="2" />
4+
</configuration>
5+
</component>

.run/kipper compile (ts).run.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<component name="ProjectRunConfigurationManager">
2+
<configuration default="false" name="kipper compile (ts)" type="NodeJSConfigurationType" application-parameters="compile -s &quot;&quot; -t ts" path-to-js-file="./kipper/cli/bin/run" working-dir="$PROJECT_DIR$/">
3+
<method v="2" />
4+
</configuration>
5+
</component>

.run/kipper compile.run.xml

Lines changed: 0 additions & 5 deletions
This file was deleted.

.run/kipper run (js).run.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<component name="ProjectRunConfigurationManager">
2+
<configuration default="false" name="kipper run (js)" type="NodeJSConfigurationType" application-parameters="run -s &quot;&quot; -t js" path-to-js-file="./kipper/cli/bin/run" working-dir="$PROJECT_DIR$/">
3+
<method v="2" />
4+
</configuration>
5+
</component>

.run/kipper run (ts).run.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<component name="ProjectRunConfigurationManager">
2+
<configuration default="false" name="kipper run (ts)" type="NodeJSConfigurationType" application-parameters="run -s &quot;&quot; -t ts" path-to-js-file="./kipper/cli/bin/run" working-dir="$PROJECT_DIR$/">
3+
<method v="2" />
4+
</configuration>
5+
</component>

.run/kipper run.run.xml

Lines changed: 0 additions & 5 deletions
This file was deleted.

CHANGELOG.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,11 @@ To use development versions of Kipper download the
1818

1919
### Added
2020

21+
- Semantic checking and code generation for the `new` keyword expression to be able to create new instances of
22+
classes. ([#679](https://github.com/Kipper-Lang/Kipper/issues/679))
23+
- Support for the typeof operator, which returns the runtime type of a value.
24+
([#663](https://github.com/Kipper-Lang/Kipper/issues/663))
25+
- Support for Nix Flakes and direnv, which allows for a more reproducible and consistent development environment.
2126
- Support for dot notation for accessing properties of objects. ([#67](https://github.com/Kipper-Lang/Kipper/issues/67))
2227
- Support for classes, class methods, class properties and class constructors.
2328
([#665](https://github.com/Kipper-Lang/Kipper/issues/665))
@@ -45,6 +50,10 @@ To use development versions of Kipper download the
4550
- `semantics/runtime-internals`, which contains the runtime internal functions.
4651
- `semantics/types`, which contains the runtime types.
4752
- New classes:
53+
- `NewInstantiationExpression`, which represents an AST new instantiation expression.
54+
- `TypeofExpression`, which represents an AST typeof expression that returns the runtime type of an object.
55+
- `TypeofTypeSpecifierExpression`, which represents an AST typeof type specifier that lets one define a type by using an object as reference
56+
- `BuiltInTypeObject`, which is the base class for the compilers representation of runtime objects
4857
- `UniverseScope`, which represents the universe scope, where all built-in types, functions and variables are
4958
declared. This serves as the parent of the global scope.
5059
- `InterfaceDeclaration`, which represents an AST interface declaration.
@@ -101,8 +110,14 @@ To use development versions of Kipper download the
101110
- `CompilableType`, which represents a type that can be compiled.
102111
- `BuiltInReference`, which replaces the now removed type `Reference` in the `KipperProgramContext` for reference
103112
tracking of built-in types.
113+
- `NewInstantiationExpressionSemantics`, which represents the semantics of a new instantiation expression.
114+
- `NewInstantiationExpressionTypeSemantics`, which represents the type semantics of a new instantiation expression.
115+
- `TypeofExpressionSemantics`, which represents the semantics of a typeof expression.
116+
- `TypeofExpressionTypeSemantics`, which represents the type semantics of a typeof expression.
104117
- New functions:
105118
- `KipperTypeChecker.validArrayExpression`, which ensures that an array expression is valid.
119+
- `generateInterfaceRuntimeTypeChecks` which generates runtime type checks for an interface.
120+
- `getRuntimeType`, which gets the corresponding runtime representation of a built-in type.
106121
- New properties:
107122
- `BuiltInFunction.funcType`, which returns a function type for the built-in function.
108123
- `FunctionDeclarationTypeSemantics.type`, which returns the type of the function declaration i.e. the function type.

0 commit comments

Comments
 (0)