Releases: aspizu/goboscript
Releases Β· aspizu/goboscript
v3.2.1
v3.2.0
Changelog
- f9bd306 111 in binary should be 7 (#119)
 - fe03ed7 Aktualisieren von syntax.md
 - 18d0f25 Merge branch 'main' into kwargs
 - bf0322f Update README.md
 - 93e775a Update README.md
 - 9c330b7 Update README.md
 - f7fb406 chore: add metadata to Cargo.toml for goboscript
 - c2049e5 chore: bump version to 3.2.0, run clippy fix, update dependencies
 - 0167563 chore: remove package-lock.json file
 - ee9bce0 chore: remove unbuildable targets from wsl
 - 93413d2 chore: remove unused imports
 - 84ecd6d chore: update categories in Cargo.toml for goboscript
 - ab4accb feat: add default value to struct field syntax
 - da6ead3 feat: add kwargs field to Stmt::ProcCall for symmetry
 - a43fba5 feat: add targets to goreleaser
 - b567090 feat: add to_expr method to ConstExpr for expression conversion
 - 430a2b6 feat: change ast types for python-style kwargs
 - e1564e4 feat: handle split kwargs in visitor module, TODO transform split kwargs into positional-only args
 - 4b5ff0a feat: implement accurate binary and unary operations
 - 33f8625 feat: implement struct literal defaults and add error for missing fields
 - c250bf3 feat: move boolean coercion from transformations to codegen
 - 72c7c17 feat: python-style keyword arguments and argument defaults (#127)
 - 8b6e6d6 feat: remove const expressions
 - 1293f8d feat: vibe-coded implementation of transformations::keyword_arguments
 - 0b60f12 fix: add broadcast IDs to broadcast received event field
 - ea2e876 fix: argument defaults are now const expr instead of expr
 - cc43489 fix: broadcasts (#129)
 - 9a34483 fix: goreleaser is shit
 - 322cfb1 fix: goreleaser is shittier
 - 91ac647 fix: remove freebsd as not supported
 - 7fe9e6e fix: remove invalid FreeBSD target
 - d8bf137 fix: remove kwarg if pos arg too exists otherwise panics
 - 31063d5 fix: remove netbsd as not supported
 - 0c35090 fix: remove unnecessary boolean coercion parameter
 - fbbeda9 fix: remove unused Proc import from transformations.rs
 - d4a2ccb fix: serialize broadcast IDs for all targets, not just the stage
 - 0ceb519 fix: use cargo-zigbuild again
 - aa59b76 fix: use cross instead of zigbuild
 - f01dc18 fix: use gnu instead of msvc
 - f95c823 fix: use span from default
 - b7c13e5 refactor: handle split kwargs in codegen module
 - 4e17104 refactor: modify parser to output new ast types for split kwargs
 - 233c673 refactor: remove unused file
 
Released by GoReleaser.
v3.1.1
v3.1.0
goboscript v3.1.0 Release Notes
This release features a refactored pre-processor that fixes several issues, paves the way for new features, and gracefully handles errors.
CONCAT Macro
- Functionality: Joins two tokens into a single token.
 - Syntax Example:
CONCAT(LHS, RHS) # becomes LHSRHS - Nesting Support: CONCAT can be nested, for example:
CONCAT(PREFIX, CONCAT(NAME, SUFFIX)) # becomes PREFIXNAMESUFFIX - Limitation: Currently, only name tokens can be joined.
 
Recursive Macros
- Improvement: Recursive macros (macros that reference their own name in their definition) are now handled gracefully. Once a macro is expanded, it is marked as suppressed to avoid re-evaluation in the same substitution pass, preventing hangs and infinite loops.
 
Parsing Ambiguity: Variable-like vs Function-like Macros
- Issue: When defining a variable-like macro whose definition starts with a 
(token, if the token following is a name, it may be misinterpreted as a function-like macro. - Solution: To ensure proper parsing, additional parentheses are required. For instance, defining 
%define unit_range (zero,one)now requires extra parentheses:%define unit_range ((zero,one)) 
Recommended Conventions for Macros
- Function-like Macros: Use these to clearly indicate that the macro expands into an expression (e.g. 
IS_HOVERED()instead ofIS_HOVERED), which avoids confusion with global variables. - Naming: Uppercase naming is recommended for macros.
 - Constants: For constants, consider using variable declarations (e.g. 
var EXAMPLE = 2*(3+4);) if constant-folding optimizations are not required. 
Enjoy the improved syntax and reliability of goboscript v3.1.0!
Changelog
- 40ec4e7 add nix flake
 - e8022e0 add nix flake (#117)
 - c99046c bump: update dependencies to latest versions
 - 3f0a3f5 bump: update goboscript version to 3.1.0
 - f902953 chore: remove unused dependencies and commented code
 - c12e988 feat: add concat macro
 - 443f22d fix: parsing & substitution of zero-parameter function-like macros
 - 7374c8c pre processor rewrite (#118)
 - 0240d91 refactor: pre-processor v2
 - 0b56f65 refactor: pre-processor.rs using AI. (could lead to regressions?)
 - a074b33 refactor: update return type of PreProcessor::define to Result<(), Diagnostic>
 
Released by GoReleaser.
v3.0.0
Changelog
- 5fd551c Sounds (#102)
 - 76f183a Sprite props (#98)
 - c2fd4ca Underscore supress (#101)
 - 4ade10b chore: add .goreleaser.yaml configuration and update .gitignore
 - 6cced91 chore: ran cargo update
 - ec86fcc chore: update goboscript version to 3.0.0 in Cargo files
 - af1d931 ci: add cargo test step to workflow for improved validation
 - ac000f5 feat: add 'var' keyword support in vscode syntax highlighting
 - e5cfae9 feat: add 'var' token and support for variable declarations in grammar
 - ba0f281 feat: add compact option to Mutation calls and prototypes
 - 87dec34 feat: add documentation for setting sprite layer order in Goboscript
 - 1cae587 feat: add documentation for sound management in Goboscript
 - a3e3db4 feat: add experimental xxCONCAT to concatenate tokens in pre-processor (don't use)
 - ff1cc12 feat: add map_unless_infinity method and handle Infinity in binary operations
 - 3ddaa89 feat: add method to determine if diagnostic should be suppressed based on name prefix
 - 19baff5 feat: add mutation tag for StopOtherScripts block and fix tools/run
 - 2c93097 feat: add previous and random backdrop options to goboscript syntax
 - 4feff7a feat: add previous and random backdrop options to goboscript syntax closes #91 (#92)
 - 04712b4 feat: add rotation style commands for left-right, all-around, and do-not-rotate
 - 9b4adc7 feat: add rotation style tokens for left-right, all-around, and do-not-rotate
 - 0694486 feat: add rotation style tokens for sprite control
 - 0ac5265 feat: add sound management to sprite, including parsing and serialization
 - e9d57e8 feat: add sprite properties and commands for position, size, volume, and visibility
 - a99c591 feat: add support for 'breakpoint' scratch-addons block
 - 309d9f4 feat: add support for 'error' procedure in code generation
 - e36a32a feat: add support for 'warn' procedure in statement processing
 - eadb368 feat: add support for TurboWarp and Forkphorus checking boolean argument blocks
 - eb3f622 feat: add support for set_layer_order function in Goboscript syntax and parser
 - aa671fb feat: add suppression check for diagnostics based on kind closes #83
 - 5b44bdd feat: add turbowarp/scratch addons block support (#93)
 - 343667d feat: add unrecognized key diagnostic reporting
 - ce0450d feat: add unrecognized key diagnostic reporting (#94)
 - 14ffd39 feat: derive PartialEq for Value enum to enable equality comparisons
 - cb4d67e feat: enhance binary operations to support subtraction with strings and handle Infinity cases
 - f4f2601 feat: enhance variable declaration support with default values
 - 5cb067f feat: implement rotation style management for sprites
 - 1081dbc feat: implement top-level 
varstatement to declare variables (#100) - befd8ca feat: prefer sa log over user-defined procedure log
 - 130964e feat: rename 'sa_log' to 'log' and update grammar for log statements
 - c277b27 fix: adjust diagnostic suppression logic to include non-error levels
 - 9a0319d fix: adjust operator associativity for expressions in grammar
 - 8bcc8f5 fix: adjust operator associativity for expressions in grammar (#95)
 - 03fe23b fix: allow usage of structs defined in the stage in any sprite
 - e792c0a fix: correct syntax in visit_stmt function for improved readability
 - c2d0a2c fix: preserve variable default value when re-initializing
 - 92f2912 fix: remove implementation for coerced number operations
 - 6642d93 fix: replace panic with error logging in Expr::Dot code generation
 - 37d2e4f fix: return statements causes multiple function invocation
 - 089b4d0 fix: return statements causes multiple function invocation (#96)
 - 7c989fc fix: stage struct
 - 6392cd6 fmt
 - 9e4f867 refactor: rename pass1 to pass2 and vice versa
 
Released by GoReleaser.
v2.0.0
v1.2.0
What's Changed
- disable zip default features by @pufferfish101007 in #27
 - Make some errors warnings by @pufferfish101007 in #28
 - Sublime Text Port by @LoganAbel in #29
 - Added documentation for the motion category by @rens2 in #36
 - added motion.md page to index by @rens2 in #37
 - Fix compatibility with Scratch runtime by @pkhead in #40
 - Implement on messages by @pkhead in #41
 - Add build task to vscode extension. by @aspizu in #45
 
New Contributors
- @pufferfish101007 made their first contribution in #27
 - @LoganAbel made their first contribution in #29
 - @rens2 made their first contribution in #36
 - @pkhead made their first contribution in #40
 - @aspizu made their first contribution in #45
 
Full Changelog: v1.0.0...v1.2.0