Releases: Spu7Nix/SPWN-language
SPWN (0.8 beta)
0.8: The "a bit of everything" update
Breaking Changes
- Keyword
switch
is nowmatch
- Keyword
case
is removed (in favor of==
patterns) - Unary
..
operator is no longer allowed (for example..10
now needs to be written as0..10
) - The
has
operator 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 eval
subcommand 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:
is
operator for matching any value to a pattern (10 is @number // true
)- using most boolean operators as unary operators now yield a pattern:
==val
will match any value that equalsval
!=val
will match any value that does not equalval
>val
will match any value that is greater thanval
<val
will match any value that is less thanval
>=val
will match any value that is greater than or equal toval
<=val
will match any value that is less than or equal toval
in val
will 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
@chroma
type for color values, this type is now used in for example color triggers instead of RGB argumentslevel
global variable for reading the objects in the current level@log
and@runtime_log
types for debug logging to the console or at runtime@set
type 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
--allow
and--deny
flags - Bug fixes
- Ability to send HTTP requests using the
$.http
builtin - Ability to write to files using the
$.writefile
builtin - 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:
$.b64encrypt
and$.b64decrypt
were renamed to$.b64encode
and$.b64decode
respectively
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-win
for windows 64 bitspwn-0.0.4-i686-win.msi
for windows 32 bitspwn-0.4_beta_macOS.pkg
for 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!{ ... }
error
keyword 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