Skip to content

Releases: Spu7Nix/SPWN-language

SPWN (0.8 beta)

25 Jan 20:01
Compare
Choose a tag to compare
SPWN (0.8 beta) Pre-release
Pre-release

0.8: The "a bit of everything" update

Breaking Changes

  • Keyword switch is now match
  • Keyword case is removed (in favor of == patterns)
  • Unary .. operator is no longer allowed (for example ..10 now needs to be written as 0..10)
  • The has operator has been replaced with in (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 equals val
      • !=val will match any value that does not equal val
      • >val will match any value that is greater than val
      • <val will match any value that is less than val
      • >=val will match any value that is greater than or equal to val
      • <=val will match any value that is less than or equal to val
      • in val will match any value that is in val
    • & 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 arguments
  • level 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)

14 Sep 14:46
Compare
Choose a tag to compare
SPWN (0.7 beta) Pre-release
Pre-release

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)

11 Aug 22:05
Compare
Choose a tag to compare
SPWN (0.6 beta) Pre-release
Pre-release

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)

01 Aug 23:34
10ea3e3
Compare
Choose a tag to compare
SPWN (0.5 beta) Pre-release
Pre-release

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)

18 Jun 15:48
Compare
Choose a tag to compare
SPWN (0.4 beta) Pre-release
Pre-release

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 bit
  • spwn-0.0.4-i686-win.msi for windows 32 bit
  • spwn-0.4_beta_macOS.pkg for mac

SPWN (0.3 beta)

07 Jan 21:41
Compare
Choose a tag to compare
SPWN (0.3 beta) Pre-release
Pre-release

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 to throw
  • 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)

26 Dec 01:08
Compare
Choose a tag to compare
SPWN (0.2 beta) Pre-release
Pre-release

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)

22 Dec 15:16
Compare
Choose a tag to compare
SPWN (early beta) Pre-release
Pre-release

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