Skip to content

v0.1.0

Compare
Choose a tag to compare
@github-actions github-actions released this 20 Sep 14:17
621ad14

Changelog

v0.1.0 (2020-09-20)

Full Changelog

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 to System.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