@markw65/monkeyc-optimizer 1.0.28 → 1.0.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +75 -0
- package/build/api.cjs +2901 -342
- package/build/optimizer.cjs +2775 -429
- package/build/src/api.d.ts +6 -4
- package/build/src/ast.d.ts +8 -0
- package/build/src/build.d.ts +1 -0
- package/build/src/control-flow.d.ts +21 -0
- package/build/src/function-info.d.ts +12 -0
- package/build/src/inliner.d.ts +4 -3
- package/build/src/jungles.d.ts +1 -0
- package/build/src/mc-rewrite.d.ts +3 -2
- package/build/src/optimizer-types.d.ts +188 -0
- package/build/src/optimizer.d.ts +4 -173
- package/build/src/pragma-checker.d.ts +2 -1
- package/build/src/pre.d.ts +1 -0
- package/build/src/unused-exprs.d.ts +3 -0
- package/build/src/variable-renamer.d.ts +1 -0
- package/build/src/visitor.d.ts +1 -0
- package/package.json +4 -2
package/README.md
CHANGED
|
@@ -303,3 +303,78 @@ More fixes found via open source projects.
|
|
|
303
303
|
|
|
304
304
|
- Bug fixes
|
|
305
305
|
- In some circumstances, while inlining, a parameter could be substituted, and then reprocessed. During reprocessing, it would attempt to lookup the replacement symbol, and if that was a local from the calling function it would fail (since an inline function never has access to the caller's locals). Prevent the reprocessing step from happening.
|
|
306
|
+
|
|
307
|
+
### 1.0.29
|
|
308
|
+
|
|
309
|
+
- Update to @markw65/prettier-plugin-monkeyc@1.0.32
|
|
310
|
+
|
|
311
|
+
- Fixes a parser issue where `x as Type ? a : b` would be parsed as `(x as Type?) a : b` which would then be reported as a syntax error.
|
|
312
|
+
|
|
313
|
+
- Bug fixes
|
|
314
|
+
|
|
315
|
+
- Fix a bug causing literal nodes to be shared. This was harmless prior to the implementation of the PRE pass
|
|
316
|
+
|
|
317
|
+
- Code cleanup
|
|
318
|
+
|
|
319
|
+
- Add `isStatement` and `isExpression` helpers
|
|
320
|
+
|
|
321
|
+
- New features
|
|
322
|
+
|
|
323
|
+
- Add constant folding for relational and logical operators
|
|
324
|
+
- Allow assignment-scope inlining in variable initializers
|
|
325
|
+
- Better cleanup of unused expressions
|
|
326
|
+
- Add a size based PRE pass. Currently limited to non-local variables, and literals
|
|
327
|
+
|
|
328
|
+
- Testing
|
|
329
|
+
- Ignore case of typeCheckLevel option
|
|
330
|
+
- Actually run the rest of the expected-to-crash tests
|
|
331
|
+
- Better error messages from pragma checker
|
|
332
|
+
- Better regex for filtering projects
|
|
333
|
+
|
|
334
|
+
### 1.0.30
|
|
335
|
+
|
|
336
|
+
- Less greedy approach to finding candidate sets
|
|
337
|
+
- slightly better size reduction when globals maybe modified
|
|
338
|
+
- Fix the control flow after the test of a while loop
|
|
339
|
+
- one of the edges was in the wrong place, leading to suboptimal solutions in some cases
|
|
340
|
+
|
|
341
|
+
Bug Fixes
|
|
342
|
+
|
|
343
|
+
- Fix a bug that could lead to the optimizer never completing
|
|
344
|
+
- Fix a bug that prevented inlining functions that ended in a BlockStatement
|
|
345
|
+
- Fix a bug that could cause nested inlined functions inlined in declarations to not be removed
|
|
346
|
+
|
|
347
|
+
### 1.0.31
|
|
348
|
+
|
|
349
|
+
- Bug fixes
|
|
350
|
+
|
|
351
|
+
- Use withLocDeep on inline results
|
|
352
|
+
- Better tracking of state.inType
|
|
353
|
+
- Fix typo setting up the ProgramState
|
|
354
|
+
- Fix a glitch with the scope of for-statement variable declarations
|
|
355
|
+
- Fix some edge cases with pre
|
|
356
|
+
- Remove a check that crippled pre for literals
|
|
357
|
+
- I had forgotten to remove some code that I added to debug a problem
|
|
358
|
+
|
|
359
|
+
- Code cleanup
|
|
360
|
+
|
|
361
|
+
- Move all the global types to optimizer-types.ts, and explicitly import them
|
|
362
|
+
- Be more consistent about when assignment/update lhs is traversed
|
|
363
|
+
- Rework exposed flag
|
|
364
|
+
- Now it only holds the names of symbols (ie `:name`)
|
|
365
|
+
- There's a separate list of variables that shouldn't be removed
|
|
366
|
+
- There's a separate list of functions that shouldn't be removed
|
|
367
|
+
- Update to [@markw65/prettier-plugin-monkeyc@1.0.33](https://github.com/markw65/prettier-plugin-monkeyc#1033)
|
|
368
|
+
- Update for BigInt literals, and cleanup folding code
|
|
369
|
+
|
|
370
|
+
- New features
|
|
371
|
+
|
|
372
|
+
- Support `obj[:key]` as alternate for obj.key in lookup
|
|
373
|
+
- `Find References`, and `Rename` will recognize these references now.
|
|
374
|
+
- Add an unused variable cleanup pass
|
|
375
|
+
- This will delete variables that are completely unreferenced.
|
|
376
|
+
|
|
377
|
+
- Analysis/Optimization
|
|
378
|
+
- Collect info about what each function may modify and call
|
|
379
|
+
- Better analysis of inline function bodies
|
|
380
|
+
- Update the StateNodeDecls when renaming locals
|