v0.1.0
Changelog
v0.1.0 (2020-09-20)
Fixed bugs:
- Incorrect references to actual generic type arguments in IL names #310
- Box values before storing in variables #306
- Inherited trait methods have incorrect IL names #305
- Return statement value type not checked against function return type #297
- Expression statements leave value on evaluation stack #294
- new overload resolution incorrect #292
- CIL assembler not generated for generic ancestors #289
- When calling methods on structs, need to push address, not value #279
- Generic type arguments need to use positional ids rather than names in called function return types #278
- Variables of struct type need to be valuetype in CIL assembler #277
- Expression bodied functions are not correctly compiled #254
- Various VSCode features don't work for symbols in
if
statements #242 - Overrides not resolved for methods that are never called #241
- Called function names must use generic type parameter names #233
- Calls to methods in generic classes don't resolve to correct symbol #231
- Generic types have broken IL type names #215
- Local variable names not guaranteed unique within CIL method scope #202
- Symbols in CIL assembler are not correctly quoted #199
- CIL member names should be qualified with '::' not '.' #198
- Member names in generated CIL should not be qualified #197
- Types show up multiple times at the same location when searching for references #137
- Type constraints not recognized in type comparisons #123
- Incomplete namespace crashes compiler #122
- Incomplete use crashes compiler #121
- Generic type parameters leak into parents' scopes #118
- inconsistancy: trailing redundant comma is harmless in enum but is error in array initialisation #96
- let process = new Util.Process(); gives error #95
- == returns false for apparently equal strings #94
- String.Length misreports length of UTF8 strings #93
- Full rebuild required after delay #86
- enumerations should inherit from ENUM[T] #66
- "super" still searches "self" #63
- Precedence of unary operators is too high #62
- "self" is not specialized #61
- properties with no body not recognized #52
Closed issues:
- Conditional compilation #288
- Generate CIL assembler for references to enum members #282
- Generate CIL assembler for enum definitions #281
- Bodies for auto-generated property accessors #253
- Innate method support #237
- System.String add operator #236
- Boxing/unboxing of value types #229
- DotNET integration tests #218
- Trait methods should be abstract in CIL #207
- CIL assembly for return statement and for fall through at end of function #203
- Way to specify CIL entrypoint #201
- Add
to\_string\(\)
method toSystem.Object
in L library #186 - Multiple pragmas on a single definition or statement #185
- CIL name for symbols that can be set via a pragma and will be used in preference to their ghul when emitting CIL #183
- Overridden methods and properties should inherit their CIL name from the method they override #182
- Running test case gives 'no such file' for tester #178
- Extend L implementation for for-each loop to look for 'getcurrent' and 'move_next' methods and prefer to use them if present #177
- Pragmas #167
- Way to test incomplete CIL output #165
- Assign implicit values to enum members #164
- Option to select DotNET as target #163
- Spawn ilasm.exe to assemble generated CIL #159
- Write generated CIL assembler to a temporary file #158
- Mechanism for creating and referencing code labels #157
- Generate CIL for short circuit Boolean operators #156
- Generate CIL for variable initializers #155
- Generate CIL for case statements #153
- Generate CIL for while statements #152
- Generate CIL for for statements #151
- Generate CIL for if statements #150
- Map core DotNET type and member names to ghul equivalents #148
- Generate IL for function literals #135
- CIL for static and instance function declarations #134
- CIL for instance and static variable declarations #133
- CIL for class and trait declarations #132
- Function argument and local variable declarations #131
- Type conversion for CIL evalutation stack values #130
- Generate CIL symbol names for all ghul symbols #129
- support for utf-8 in strings #92
- add support for native methods #90
- add support for structs #89
- import the L library #67
- Build of example test.ghul from VSC gives error #65
- Type representation for tuples #60
- function override/overload resolution #59
- parse throw statement #57
- parse self and super #56
- lazy values #55
- generalise operators #54
- auto-generate base visitor class #53
- parse has-value operator #50
- static members or alternative #49
- parse enums #48
- parse cast expressions #47
- parse new expression #46
- parse use #45
- parse access modifiers and storage classes #43
- test framework #42
- parse numeric literals #41
- parse character literals #40
- don't rebuild from generated legacy source if new source unchanged #36
- name for new language #35
- compiler driver should handle projects with files in mix of new and legacy syntax #34
- drive legacy compiler to compile generated legacy source #33
- legacy compiler should emit error locations consistent with new compiler #32
- legacy pretty printer should emit #file and #line directives #31
- parse list literals #30
- parse indexed properties #27
- parse indexers #26
- parse namespaces #23
- parse property definitions #22
- parse function definitions #21
- parse class definitions #20
- parse expressions #19
- parse loop labels #18
- parse break and continue #17
- parse while statements #16
- parse expression statements #15
- parse assignment statements #14
- parse return statements #13
- parse case statements #12
- parse try statements #11
- parse for statements #10
- parse while statements #9
- parse if statements #8
- pretty printer for legacy syntax #7
- AST rewriters #6
- tame visitor implementation #5
- deleted #4
- choose parser generator #3
- grammar #2
- tokenizer #1
Merged pull requests:
- Release pipeline 1 #330 (degory)
- Release pipeline #329 (degory)
- Conditional compilation target selection in analysis mode #328 (degory)
- Docker push on manual workflow run #326 (degory)
- Delete dead code #324 (degory)
- Improve analysis mode error handling #323 (degory)
- Docker pull ghul/compiler:stable on install #322 (degory)
- Allow manual build from GitHub #321 (degory)
- Check prerequisites before installing #318 (degory)
- Installer 1 #317 (degory)
- Start work on installer #316 (degory)
- Bug fixes #315 (degory)
- Remove unhelpful trait override warning #312 (degory)
- Use original formal generic arguments in IL names #311 (degory)
- Fix issue where inherited trait methods had incorrect IL names #309 (degory)
- Fix issue with exception variable type. Fix issue with overriding methods in generic traits. #304 (degory)
- Fix CIL generation for expression bodied functions and properties #300 (degory)
- Conditional compilation for L and .NET specific code #296 (degory)
- Fix constructor resolution #293 (degory)
- Fix issue where no CIL generated for generic ancestors #291 (degory)
- Fix CIL assembly for case statements #286 (degory)
- Enum and struct fixes #284 (degory)
- Generate CIL assembler for for loops #272 (degory)
- CIL code generation bug fixes #271 (degory)
- Fix issues with comparison operators #270 (degory)
- Fix CIL for isa. Throw when no CIL implemented for a value #269 (degory)
- Property auto body #260 (degory)
- Support legacy compilation combined with ghul type-check #259 (degory)
- CIL assembler for anonymous functions within instance methods #258 (degory)
- Fix various exceptions thrown when attempting to generate CIL for compiler itself #252 (degory)
- Initial support for break and continue #251 (degory)
- Work on generating CIL for control flow #248 (degory)
- Method override and inheritance bug fixes #246 (degory)
- Fix block statement location #245 (degory)
- Correct CIL for instance and static fields #240 (degory)
- String add operator #239 (degory)
- Fix failure to box literal function call arguments #235 (degory)
- Fix issues calling methods in generic classes #234 (degory)
- Pull stable container before install #232 (degory)
- Auto box value types #230 (degory)
- Fix variable initializers #228 (degory)
- Improved Markdown formatting for test results #227 (degory)
- Report test results in Markdown rather than XML #221 (degory)
- Include ilasm errors in testable build output #220 (degory)
- Separate out legacy tests, so new tests can be run under mono #219 (degory)
- Fix naming of generic symbols in CIL assembler #217 (degory)
- Make non-static methods virtual and make trait methods abstract #216 (degory)
- Fix issue where unnecessary passes were run for legacy target builds #214 (degory)
- Output a runtimeconfig.json for DotNET executables #210 (degory)
- Assemble CIL output with ilasm #209 (degory)
- Return from functions to avoid fall-through #206 (degory)
- Ensure local variable names in CIL assembly are unique within their method #205 (degory)
- Qualify class members in CIL with '::' rather than '.' #195 (degory)
- Properties improvements #194 (degory)
- Fix issue in install.sh script #193 (degory)
- Work on CIL support for properties and static storage class #192 (degory)
- Remove references to lcache #191 (degory)
- More descriptive IL test names #190 (degory)
- More work on generating CIL for types and definitions #189 (degory)
- Start outputting CIL for types + definitions #188 (degory)
- Remove dead code #187 (degory)
- Anonymous volume in build.sh #180 (quanglewangle)
- Start implementing subset of .NET collections #179 (degory)
- Extension point for innate operation IL generation #173 (degory)
- Fix issue where bootstrap failed on WSL + Docker #172 (degory)
- Reproducible IL tests #171 (degory)
- Enable testing of generated IL assembler #170 (degory)
- Parse statement pragmas #169 (degory)
- Parse pragmas applied to definitions #168 (degory)
- Parse generic functions #162 (degory)
- Improve messages for type errors #161 (degory)
- Type check assignments #160 (degory)
- README additions and fixes #145 (degory)
- Clean up tests and scripts #144 (degory)
- Bug fixes #143 (degory)
- Restart analyser if no handler found for command #141 (degory)
- Clean up repository #140 (degory)
- Create CODEOWNERS #139 (degory)
- Bug fixes #138 (degory)
- Fix crash on incomplete use. Fix test snapshot capture script. #136 (degory)
- Include actual operation in innate call IR value #128 (degory)
- Work on IL output #127 (degory)
- More accurate IL values #126 (degory)
- Start to generate dummy IL #125 (degory)
- Fix issue where generic type parameters do not compare correctly as inheriting from their parent type #124 (degory)
- Migrate version number file from L to Ghul #120 (degory)
- Tactical fix for issue where generic arguments leak into unrelated specializations #119 (degory)
- Fix self incorrect type #117 (degory)
- Fix tests. Simplify test run script. Delete old test run scripts. #112 (degory)
- Fix member completion for values of type variable type #111 (degory)
- Generic type parameter constraints #110 (degory)
- Remove Root trait. Mark innate functions. Correct type for compare operators #108 (degory)
- Fix hover column offset #107 (degory)
- Placeholder IL generation pass #106 (degory)
- Remove debug output from analysis mode #104 (degory)
- Remove references to LLVM #103 (degory)
- Add GitHub CI badge to README.md #102 (degory)
- Don't docker push to bare branch name #101 (degory)
- Run docker commit script on push to master branch #100 (degory)
- Use GitHub action run id as build number if available #99 (degory)
- Create main.yml #98 (degory)
* This Changelog was automatically generated by github_changelog_generator