Page 1 of 1

Spell Compression

Posted: Fri Jul 14, 2023 10:18 pm
by Auri


Have you ever written a spell that's just too darn big? Has your WispOS (coming soon) ever rejected you because you fed it too much data? Have you ever just wanted to scrunch up your spells into little tiny balls u̷͙͘ṉ̴̏t̸̰̅i̵̧̽l̴̰͌ ̴̜͗t̴̤́ḥ̶̉e̷͙̽y̶͙̕ ̵͎͋a̶͍̐r̶͔̎e̵͍̾ ̶̣͘b̷̘̽u̸̬̾t̶͇͑ ̵̨̿ą̷͘ ̷̡͊s̸̙͑h̴̼͑a̷͕̽t̵̫́t̷̼̓e̵̯͝r̷̝̈́ê̷͓d̴̦̃ ̵͍̈́f̴̗͊a̸̖͠c̷̞̋s̴̠͋ì̷̼m̵̲̀ì̸̦l̷͕͒e̴̬͛ ̵͎͠o̷̫͘f̷͉̈́ ̸̘͝t̵̥͌h̴̞͊e̵̹̓i̵̛̝ṟ̷͑ ̴̫̕f̵̰̒ő̶̻r̷̢͂m̴͔͠ĕ̵̮r̵͔͆ ̶̮̂s̶̹̒ẹ̶̑l̴̥͑v̵̭̽è̸̡s̸̤̀ and then put them back together moments later?

Well, Spell Compression is for you!

Here at [redacted], we have worked tirelessly to allow you to compress your spells into just a couple of iotas, and then restore them again. Spells, stygian spells, embedded data, no matter what you're working with, spell compression works flawlessly. That's right, it just works. In under two weeks you'll see all of your spells shrunk down to 10 iotas or less or your money back, guaranteed!
(The deposit of a true name is required to claim your refund.)



qwawqqaa

Spell Compression

Simply place your spell on the stack and run the following macro, and in only two meta evaluations you'll have a fully compressed spell!

Code: Select all

  Vacant Reflection
  {
    Bookkeeper's Gambit: -
  }
  Rotation Gambit
  Gemini Decomposition
  Abacus Purification
  {
    Speaker's Decomposition
    Gemini Decomposition
    {
      Bookkeeper's Gambit: -
    }
    Flock's Disintegration
    Dioscuri Gambit
    Classifier's Purification
    Jester's Gambit
    Classifier's Purification
    Equality Distillation
    Gemini Decomposition
    Huginn's Gambit
    Rotation Gambit II
    Augur's Exaltation
    Gemini Decomposition
    Fragment's Purification
    Numerical Reflection: 5
    Fisherman's Gambit
    Gemini Decomposition
    Numerical Reflection: 0
    Selection Distillation
    Fragment's Purification
    Rotation Gambit
    Numerical Reflection: 1
    Additive Distillation
    Additive Distillation
    Numerical Reflection: 1600
    Maximus Distillation II
    {
      Bookkeeper's Gambit: -
    }
    Flock's Disintegration
    Jester's Gambit
    {
      Speaker's Distillation
      Bookkeeper's Gambit: v
    }
    Flock's Disintegration
    Augur's Exaltation
    Hermes' Gambit
    Speaker's Decomposition
    Gemini Decomposition
    Numerical Reflection: 1
    Ending Distillation
    Undertaker's Gambit
    Numerical Reflection: 3
    Revolving Distillation
    Painter's Distillation
    Jester's Gambit
    Winding Purification
    Numerical Reflection: 4
    Fisherman's Gambit
    Undertaker's Gambit
    Numerical Reflection: 1
    Starting Distillation
    Winding Purification
    Equality Distillation
    Numerical Reflection: 1
    Jester's Gambit
    {
      Revolving Distillation
      Bookkeeper's Gambit: v
    }
    Flock's Disintegration
    Augur's Exaltation
    Hermes' Gambit
    Muninn's Reflection
    {
      Painter's Distillation
      Bookkeeper's Gambit: v
    }
    Flock's Disintegration
    Augur's Exaltation
    Hermes' Gambit
    Speaker's Distillation
    Numerical Reflection: 4
    Fisherman's Gambit
    Rotation Gambit
    Muninn's Reflection
    {
      Bookkeeper's Gambit: v
      Integration Distillation
    }
    Flock's Disintegration
    Augur's Exaltation
    Hermes' Gambit
    Jester's Gambit
    Rotation Gambit
  }
  Jester's Gambit
  Gemini Decomposition
  Numerical Reflection: 1
  Subtractive Distillation
  Huginn's Gambit
  Gemini Gambit
  {
    Combination Distillation
  }
  Flock's Disintegration
  Muninn's Reflection
  Gemini Gambit
  Muninn's Reflection
  Flock's Gambit
  Hermes' Gambit
  Hermes' Gambit
  Bookkeeper's Gambit: v
  Retrograde Purification
  Gemini Decomposition
  Abacus Purification
  Speaker's Distillation
  Jester's Gambit
  Combination Distillation
  


aaqqwawq

Spell Decompression

Take your compressed spell list, and pump it into this macro to get your original spell back out in just four meta evaluations.
* Starting orientations of individual patterns not guaranteed.

Code: Select all

  Speaker's Decomposition
  Dioscuri Gambit
  Jester's Gambit
  Undertaker's Gambit
  Abacus Purification
  Selection Exaltation
  Rotation Gambit II
  Numerical Reflection: 0
  Jester's Gambit
  Selection Exaltation
  Gemini Decomposition
  Abacus Purification
  Vacant Reflection
  Vacant Reflection
  Rotation Gambit
  {
    Rotation Gambit
    Speaker's Decomposition
    Gemini Decomposition
    Scrivener's Purification
    {
      "s"
    }
    Flock's Disintegration
    Separation Distillation
    Speaker's Decomposition
    Bookkeeper's Gambit: v
    Retrograde Purification
    Speaker's Decomposition
    Gemini Decomposition
    Length Distillation: Str
    Numerical Reflection: 1
    Subtractive Distillation
    Numerical Reflection: 0
    Jester's Gambit
    Winnowing Distillation
    Speaker's Distillation
    Retrograde Purification
    Numerical Reflection: 4
    Fisherman's Gambit
    Jester's Gambit
    Combination Distillation
    Rotation Gambit II
    Gemini Decomposition
    Fragment's Purification
    Numerical Reflection: 2
    Subtractive Distillation
    Ending Distillation
    Numerical Reflection: 4
    Fisherman's Gambit
    Jester's Gambit
    Integration Distillation
    Rotation Gambit
  }
  Jester's Gambit
  Gemini Decomposition
  Numerical Reflection: 1
  Subtractive Distillation
  Huginn's Gambit
  Gemini Gambit
  {
    Combination Distillation
  }
  Flock's Disintegration
  Muninn's Reflection
  Gemini Gambit
  Muninn's Reflection
  Flock's Gambit
  Hermes' Gambit
  Hermes' Gambit
  Gemini Decomposition
  Abacus Purification
  {
    Speaker's Decomposition
    Length Distillation: Str
    Huginn's Gambit
    Jester's Gambit
    Speaker's Decomposition
    Gemini Decomposition
    Muninn's Reflection
    Gemini Decomposition
    Numerical Reflection: 0
    Inequality Distillation
    {
      Starting Distillation
      Bookkeeper's Gambit: v-
    }
    Flock's Disintegration
    Augur's Exaltation
    Hermes' Gambit
    Numerical Reflection: 6
    Fisherman's Gambit
    Muninn's Reflection
    Numerical Reflection: 0
    Equality Distillation
    {
      Speaker's Decomposition
      Nullary Reflection
    }
    Flock's Disintegration
    Augur's Exaltation
    Hermes' Gambit
    Rotation Gambit
    Muninn's Reflection
    Numerical Reflection: 0
    Equality Distillation
    Rotation Gambit II
    Augur's Exaltation
    Numerical Reflection: 6
    Fisherman's Gambit
    Jester's Gambit
    Integration Distillation
    Rotation Gambit
    Numerical Reflection: 4
    Fisherman's Gambit
    Jester's Gambit
    Gemini Decomposition
    Fragment's Purification
    Numerical Reflection: 1
    Subtractive Distillation
    Muninn's Reflection
    Subtractive Distillation
    Gemini Decomposition
    Huginn's Gambit
    Gemini Decomposition
    Numerical Reflection: 0
    Minimus Distillation II
    Jester's Gambit
    Numerical Reflection: 1
    Jester's Gambit
    Augur's Exaltation
    Ending Distillation
    Muninn's Reflection
    Numerical Reflection: 0
    Minimus Distillation II
    {
      Bookkeeper's Gambit: v
      Speaker's Distillation
    }
    Flock's Disintegration
    Augur's Exaltation
    Hermes' Gambit
    Numerical Reflection: 4
    Fisherman's Gambit
  }
  Jester's Gambit
  Gemini Decomposition
  Numerical Reflection: 1
  Subtractive Distillation
  Huginn's Gambit
  Gemini Gambit
  {
    Combination Distillation
  }
  Flock's Disintegration
  Muninn's Reflection
  Gemini Gambit
  Muninn's Reflection
  Flock's Gambit
  Hermes' Gambit
  Hermes' Gambit
  Bookkeeper's Gambit: v-vv



Details
  • These macros require MoreIotas and Hexbound.

  • These macros are computationally expensive! Try to avoid thrashing your world / server by calling them too often.

  • Hex Patterns are appended to each other to make longer patterns, only splitting into multiple patterns when the limit of 1600 line segments is reached. These patterns use the 's' direction as the delimiter between patterns. An 'ss' means that the top remaining data iota should be inserted in between adjacent patterns.

  • The compressed spell format is as follows: [ number of compressed patterns, ... compressed patterns, ... embedded data iotas ]

  • The minimum size for a compressed pattern is 3 iotas. Non-pattern spell items will be left in their original form, increasing that size. Each additional 1600 line segments in your spell will require 1 more iota to represent.



But... Why?

Mainly because I wanted to! But also because this sort of compression allows for storing larger spells in my work-in-progress WispOS, which allows you to dynamically add and remove "programs" for the wisp to execute. This technique can also be used to bypass spell length limits if you're making something *really* long. Just store the compressed spell segments and the decompressor, and run it on each segment.

If you find these macros useful, tell me what you used them for!