Releases: Spu7Nix/SPWN-language
SPWN (0.8 beta)
0.8: The "a bit of everything" update
Breaking Changes
- Keyword
switchis nowmatch - Keyword
caseis removed (in favor of==patterns) - Unary
..operator is no longer allowed (for example..10now needs to be written as0..10) - The
hasoperator has been replaced within(with the order flipped)
New Features
- Return types for macros with
(arguments) -> return_type { ... }syntax - You can spread an array in another array with
..syntax: spwn evalsubcommand for running code in the console
b = [3, 4]
$.assert([1, 2, ..b, 5] == [1, 2, 3, 4, 5])- Unzip arrays with
*[...]syntax:
a = [1, "a"]
b = [2, "b"]
c = [3, "c"]
$.assert([*[a, b, c]] == [[1, 2, 3], ["a", "b", "c"]])- Destructuring additions, including dictionary destruction, and destruction of the syntax mentioned above (
..and*[...]) - Big expansion to the pattern system:
isoperator for matching any value to a pattern (10 is @number // true)- using most boolean operators as unary operators now yield a pattern:
==valwill match any value that equalsval!=valwill match any value that does not equalval>valwill match any value that is greater thanval<valwill match any value that is less thanval>=valwill match any value that is greater than or equal toval<=valwill match any value that is less than or equal tovalin valwill match any value that is inval
&operator for combining two patterns, so that the resulting pattern requires the value to match both patterns_pattern, which matches any value (wildcard)- pattern ternary operator, which returns a value if it matches a pattern, and otherwise returns the default value:
10 if is >5 else 0 // 10 4 if is >5 else 0 // 0
- You can now remove stuff from dictionaries with
dict.delete(key)
STD Library Features
@chromatype for color values, this type is now used in for example color triggers instead of RGB argumentslevelglobal variable for reading the objects in the current level@logand@runtime_logtypes for debug logging to the console or at runtime@settype for making groups of objects read from the level that can be rotated, scaled, and pasted in the level- Changes and improvements to many existing types (see the docs)
New Contributors
- @DexterHill0 made their first contribution in #146
- @Fl1pNatic made their first contribution in #154
Full Changelog: v0.7-beta...v0.8-beta
To install, download and run the appropriate installer (from the "Assets" dropdown below):
spwn-0.0.7-x86_64_win2.msi for windows 64 bit
spwn-0.0.7-x86_32_win2.msi for windows 32 bit
spwn-0.0.8-x86_64-linux_arch.pkg.tar.zst for arch linux
spwn-0.0.8-x86_64.tar.gz for linux (tarball)
spwn-0.8_beta.pkg for MacOS
(Installers for more platforms coming soon)
SPWN (0.7 beta)
This release makes SPWN much more stable, both at compile-time and at runtime
New features
- Variable destructuring, for example
let [a, b] = [1, 2] - All counter operations are instant and stable
- Massive group optimisation improvements
- Faster compile time
- Custom builtin permissions using the
--allowand--denyflags - Bug fixes
- Ability to send HTTP requests using the
$.httpbuiltin - Ability to write to files using the
$.writefilebuiltin - A lot more!
SPWN development/testing server: https://discord.gg/xqny9rX9hA
SPWN Documentation: https://spu7nix.net/spwn/#
Special thanks to alk1m123 and Alphalaneous for making this update possible!
To install, download and run the appropriate installer (from the "Assets" dropdown below):
spwn-0.0.7-x86_64-win-fix.msi for windows 64 bit
spwn-0.0.7-i686-win-fix.msi for windows 32 bit
spwn-0.0.7-x86_64-linux_arch.pkg.tar.zst for arch linux
spwn-0.7_beta.pkg for MacOS
(more installers coming soon)
SPWN (0.6 beta)
This release improves the build time for SPWN projects significantly, anywhere from 10x faster to 300x faster depending on the size of your project!
New features:
- A compile-time while loop
- Recursion for macros
- List comprehension
- List slicing
And a lot more!
SPWN development/testing server: https://discord.gg/xqny9rX9hA
SPWN Documentation: https://spu7nix.net/spwn/#
To install, download and run the appropriate installer (from the "Assets" dropdown below):
spwn-0.0.6-x86_64-win.msi for windows 64 bit
spwn-0.0.6-i686-win.msi for windows 32 bit
spwn-0.6_beta-macos.pkg for MacOS
spwn_0.0.6-0_amd64.deb for Debian-based amd64 (Linux)
spwn-0.0.6_amd64.pkg.tar.zst for Arch-based Linux distros
SPWN (0.5 beta)
This update includes:
- Lots of new built-in functions
- Improved trigger optimization
- A lot of bugfixes
- BEAUTIFUL error messages
- Read binary files with
$.read_file("file.bin", "bin") - And a lot more complicated internal stuff
This update comes with a significant increase in compilation time. We are planning on addressing this in the next update, which will hopefully come out in the near future.
SPWN development/testing server: https://discord.gg/xqny9rX9hA
Some changes to note:
$.b64encryptand$.b64decryptwere renamed to$.b64encodeand$.b64decoderespectively
To install, download and run the appropriate installer:
spwn-0.0.5-x86_64-win.msi for windows 64 bit
spwn-0.0.5-i686-win.msi for windows 32 bit
spwn-0.5_beta-macos.pkg for MacOS
spwn_0.0.5-0_amd64.deb for Debian-based amd64 (Linux)
spwn-0.0.5-0_amd64.pkg.tar.zst for Arch-based Linux distros (add /usr/local/bin to path to path)
SPWN (0.4 beta)
Bugfixes + a few small features, a lot more stable than the previous release!
Thanks a lot to sertdfyguhi for making the macOS installer!
Join the discord: https://discord.gg/xqny9rX9hA
To install, download and run the appropriate installer:
spwn-0.0.4-x86_64.msi-winfor windows 64 bitspwn-0.0.4-i686-win.msifor windows 32 bitspwn-0.4_beta_macOS.pkgfor mac
SPWN (0.3 beta)
This release includes some large changes from the previous versions, including:
- "Functions" renamed to "Trigger functions"
- Syntax for creating a function/trigger function changed from
{ ... }to!{ ... } errorkeyword has been renamed tothrow- return statement now works like most other programming languages
If you have made programs or libraries in previous versions of SPWN, they might not work in this version, so make sure to update them!
NEW FEATURES:
- Switch statement
- Various useful flags (see them with
spwn help) - Live editor for mac
- Range operator for IDs (for example
1g..10g) - Reading files
- increment and decrement operators (
++and--) - a lot of bugfixes!
- probably some more idk I can't remember
There is now a handy installer program for windows! For mac, the installation is the same as last release.
SPWN (0.2 beta)
Fixed:
- problems with loops being optimized away
- gd crashing when handling levels affected by SPWN
- colors not working in windows cmd prompt
- various other bugs
Added:
- flag to choose what level to be affected by spwn (--level-name [level name])
- dictionary syntax sugar (from for example {a: a} to just {a})
- base64 builtin functions for text objects
- mac support (woo!)
Installation is the same as last time: Extract the folder, and add it to your systems PATH (if you don't know what that means, google it or ask me :) )
SPWN (early beta)
This is the beta-version for the SPWN compiler, a language that compiles to geometry dash triggers. To install, simply download the zip-file, extract in a folder, and add the resulting folder to your PATH environment variable. THIS VERSION IS ONLY INTENDED FOR TESTING