aboutsummaryrefslogtreecommitdiff
path: root/compatibility
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2019-01-14 17:14:34 -0800
committerBruce Hill <bruce@bruce-hill.com>2019-01-14 17:14:57 -0800
commitddef8be3df626d63f6e575d4c1416295a22371ad (patch)
tree78af9584447b085f06d6412d2cc20137a460848b /compatibility
parent9fceff7e785bb234971b443809eef3da9051c598 (diff)
Moved compatibility to lib/ and fixed path searching for .peg files.
Diffstat (limited to 'compatibility')
-rw-r--r--compatibility/2.3.nom20
-rw-r--r--compatibility/2.4.nom85
-rw-r--r--compatibility/2.5.5.5.nom17
-rw-r--r--compatibility/2.5.nom13
-rw-r--r--compatibility/2.nom38
-rw-r--r--compatibility/3.5.5.6.nom11
-rw-r--r--compatibility/3.6.nom30
-rw-r--r--compatibility/3.7.nom41
-rw-r--r--compatibility/3.8.nom23
-rw-r--r--compatibility/3.nom15
-rw-r--r--compatibility/4.10.12.7.nom85
-rw-r--r--compatibility/4.11.nom97
-rw-r--r--compatibility/4.12.nom18
-rw-r--r--compatibility/4.8.10.nom68
-rw-r--r--compatibility/4.9.nom11
-rw-r--r--compatibility/5.13.nom24
-rw-r--r--compatibility/6.14.nom41
-rw-r--r--compatibility/compatibility.nom132
-rw-r--r--compatibility/init.nom19
19 files changed, 0 insertions, 788 deletions
diff --git a/compatibility/2.3.nom b/compatibility/2.3.nom
deleted file mode 100644
index 67870ac..0000000
--- a/compatibility/2.3.nom
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env nomsu -V6.14
-#
- This file defines upgrades from Nomsu <2.3 to Nomsu 2.3
-
-use "compatibility/compatibility"
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-upgrade action ($a = $b) to "2.3" as ($a == $b)
-upgrade action (<- $) to "2.3" as (set $)
-upgrade action (assign $) to "2.3" as (set $)
-upgrade action ($a <- $b) to "2.3" as ($a = $b)
-upgrade action (external $a <- $b) to "2.3" as (external $a = $b)
-upgrade action ($a +<- $b) to "2.3" as ($a += $b)
-upgrade action ($a -<- $b) to "2.3" as ($a -= $b)
-upgrade action ($a *<- $b) to "2.3" as ($a *= $b)
-upgrade action ($a /<- $b) to "2.3" as ($a /= $b)
-upgrade action ($a ^<- $b) to "2.3" as ($a ^= $b)
-upgrade action ($a and<- $b) to "2.3" as ($a and= $b)
-upgrade action ($a or<- $b) to "2.3" as ($a or= $b)
diff --git a/compatibility/2.4.nom b/compatibility/2.4.nom
deleted file mode 100644
index e0d2e02..0000000
--- a/compatibility/2.4.nom
+++ /dev/null
@@ -1,85 +0,0 @@
-#!/usr/bin/env nomsu -V6.14
-#
- This file defines upgrades from Nomsu <2.4 to Nomsu 2.4
-
-use "compatibility/compatibility"
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-upgrade $tree to "2.4" as:
- unless ($tree is "Action" syntax tree): return
- if $tree.stub is:
- "when" "if":
- if ((size of $tree) == 3): return $tree
- $conditions = []
- $new_lines = []
- $body =
- ($tree.2 upgraded) if ($tree.2 is "Block" syntax tree) else [$tree.2 upgraded]
-
- for $line in $body:
- when:
- (not ($line is "Action" syntax tree)):
- $new_lines, add $line
-
- ($line.stub is "*"):
- if ((size of $line) == 2):
- $conditions, add $line.2
- ..else:
- $new_lines, add $line
-
- ($line.stub == "* else"):
- $new_lines, add (\(else $block) with vars {.block = $line.3})
-
- else:
- $conditions, add $line.2
- $action = $line.3
- unless ($action is "Block" syntax tree):
- $action = (=lua "SyntaxTree{type='Block', source=\$action.source, \$action}")
- $conditions, add $action
- $new_lines, add
- =lua ("
- SyntaxTree{type='Action', source=\$conditions[1].source, unpack(\$conditions)}
- ")
- $conditions = []
-
- return
- \(when $body) with vars {
- .body =
- =lua "SyntaxTree{type='Block', source=\$tree[2].source, unpack(\$new_lines)}"
- }
-
- "if 1 is ?" "if 1 = ?":
- $values = []
- $new_lines = []
- $body =
- ($tree.5 upgraded) if ($tree.5 is "Block" syntax tree) else [$tree.5 upgraded]
-
- for $line in $body:
- when:
- (not ($line is "Action" syntax tree)):
- $new_lines, add $line
-
- ($line.stub is "*"):
- if ((size of $line) == 2):
- $values, add $line.2
- ..else:
- $new_lines, add $line
-
- ($line.stub == "* else"):
- $new_lines, add (\(else $block) with vars {.block = $line.3})
-
- else:
- $values, add $line.2
- $action = $line.3
- unless ($action is "Block" syntax tree): $action = \(: $action)
- $values, add $action
- $new_lines, add
- =lua "SyntaxTree{type='Action', source=\$values[1].source, unpack(\$values)}"
- $values = []
-
- return
- \(if $var is $body) with vars {
- .var = ($tree.2 upgraded)
- .body =
- =lua "SyntaxTree{type='Block', source=\$tree[5].source, unpack(\$new_lines)}"
- }
diff --git a/compatibility/2.5.5.5.nom b/compatibility/2.5.5.5.nom
deleted file mode 100644
index c026a42..0000000
--- a/compatibility/2.5.5.5.nom
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/usr/bin/env nomsu -V6.14
-#
- This file defines upgrades from Nomsu <2.5.5.5 to Nomsu 2.5.5.5
-
-use "compatibility/compatibility"
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-upgrade action [hash $, sha1 $] to "2.5.5.5" as
- =lua ("
- \(base64 decode (hash $)):gsub('.', function(c) return ('%x02'):format(c) end)
- ")
-
-upgrade action [file with hash $] to "2.5.5.5" as
- file with hash
- base64
- =lua "\$:gsub('..', function(xx) return string.char(tonumber(xx, 16)) end)"
diff --git a/compatibility/2.5.nom b/compatibility/2.5.nom
deleted file mode 100644
index 03b3f61..0000000
--- a/compatibility/2.5.nom
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/usr/bin/env nomsu -V6.14
-#
- This file defines upgrades from Nomsu <2.5 to Nomsu 2.5
-
-use "compatibility/compatibility"
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-upgrade action (for $1 where $2 matches $3 $4) to "2.5" as
- for $1 in $2 matching $3 $4
-
-upgrade action ($1 for $2 where $3 matches $4) to "2.5" as
- $1 for $2 in $3 matching $4
diff --git a/compatibility/2.nom b/compatibility/2.nom
deleted file mode 100644
index caf7a86..0000000
--- a/compatibility/2.nom
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/env nomsu -V6.14
-#
- This file defines upgrades from Nomsu 1 to Nomsu 2
-
-use "compatibility/compatibility"
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-upgrade $tree to "2" as:
- unless ($tree is "Action" syntax tree): return
- if ($tree.stub is "if 1 2 else"):
- $true_body = ($tree.3 upgraded)
- unless ($true_body is "Block" syntax tree):
- $true_body = \(: $true_body)
- $false_body = ($tree.5 upgraded)
- unless ($false_body is "Block" syntax tree):
- $false_body = (=lua "Block(\$false_body.source, \$false_body)")
-
- return
- \(if $cond $true_body else $false_body) with vars {
- .cond = ($tree.2 upgraded), .true_body = $true_body, .false_body = $false_body
- }
-
- $need_blocks = [
- "if", "unless", "for 1 in", "for 1 = 2 in", "repeat while 1", "repeat 1 times"
- "repeat", "repeat until 1", "for 1 in 2 to 3 by", "for 1 in 2 to 3 via"
- "for 1 in 2 to", "for 1 2 in", "do", "for 1 in recursive", "test", "with", "result of"
- "when"
- ]
-
- for $n in $need_blocks:
- if ($tree.stub is $n):
- $bits = [: for $ in $tree: add (($ upgraded) if ($ is syntax tree) else $)]
- unless (($bits, last) is "Block" syntax tree):
- $body = ($bits, last)
- $bits.(size of $bits) =
- =lua "SyntaxTree{type='Block', source=\$body.source, \$body}"
- return (=lua "SyntaxTree{type='Action', source=\$tree.source, unpack(\$bits)}")
diff --git a/compatibility/3.5.5.6.nom b/compatibility/3.5.5.6.nom
deleted file mode 100644
index 6528526..0000000
--- a/compatibility/3.5.5.6.nom
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/usr/bin/env nomsu -V6.14
-#
- This file defines upgrades from Nomsu <3.5.5.6 to Nomsu 3.5.5.6
-
-use "compatibility/compatibility"
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-upgrade action "traceback" to "3.5.5.6" via
- for $tree:
- compile error at $tree "'traceback' has been deprecated."
diff --git a/compatibility/3.6.nom b/compatibility/3.6.nom
deleted file mode 100644
index 5db2aae..0000000
--- a/compatibility/3.6.nom
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/usr/bin/env nomsu -V6.14
-#
- This file defines upgrades from Nomsu <3.6 to 3.6
-
-use "compatibility/compatibility"
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-upgrade action [
- append $item to $list, add $item to $list, to $list add $item, to $list append $item
-] to "3.6" as ($list, add $item)
-
-upgrade action [add $item to $list at index $i] to "3.6" as
- $list, at index $i add $item
-
-upgrade action [pop from $list, remove last from $list] to "3.6" as ($list, pop)
-upgrade action [remove index $index from $list] to "3.6" as
- $list, remove index $index
-upgrade action [to $1 write $2, $1 <-write $2] to "3.6" as ($1, add $2)
-upgrade action [to $1 write $2 joined by $3] to "3.6" as
- $1, add $2 joined by $3
-upgrade action [declare locals in $lua] to "3.6" as ($lua, declare locals)
-upgrade action [declare locals $locs in $lua] to "3.6" as
- $lua, declare locals $locs
-
-upgrade action [add free vars $vars to $lua] to "3.6" as
- $lua, add free vars $vars
-
-upgrade action [remove free vars $vars from $lua] to "3.6" as
- $lua, remove free vars $vars
diff --git a/compatibility/3.7.nom b/compatibility/3.7.nom
deleted file mode 100644
index ed877a6..0000000
--- a/compatibility/3.7.nom
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/usr/bin/env nomsu -V6.14
-#
- This file defines upgrades from Nomsu <3.7 to 3.7
-
-use "compatibility/compatibility"
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-upgrade action [$index st to last in $list] to "3.7" as
- $list, $index st to last
-
-upgrade action [$index nd to last in $list] to "3.7" as
- $list, $index nd to last
-
-upgrade action [$index rd to last in $list] to "3.7" as
- $list, $index rd to last
-
-upgrade action [$index th to last in $list] to "3.7" as
- $list, $index rd th last
-
-upgrade action [last in $list] to "3.7" as ($list, last)
-upgrade action [first in $list] to "3.7" as ($list, first)
-upgrade action [$item is in $list, $list contains $item, $list has $item] to
-.."3.7" as ($list, has $item)
-
-upgrade action [
- $item isn't in $list, $item is not in $list, $list doesn't contain $item
- $list does not contain $item, $list doesn't have $item, $list does not have $item
-] to "3.7" as (not ($list, has $item))
-
-upgrade action [$list has key $index, $list has index $index] to "3.7" as
- $list.$index != (nil)
-
-upgrade action [
- $list doesn't have key $index, $list does not have key $index
- $list doesn't have index $index, $list does not have index $index
-] to "3.7" as ($list.$index == (nil))
-
-upgrade action [
- number of keys in $list, len $list, || $list ||, length $list, length of $list
-] to "3.7" as (size of $list)
diff --git a/compatibility/3.8.nom b/compatibility/3.8.nom
deleted file mode 100644
index 398e3bb..0000000
--- a/compatibility/3.8.nom
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/usr/bin/env nomsu -V6.14
-#
- This file defines upgrades from Nomsu <3.8 to 3.8 (Text method changes)
-
-use "compatibility/compatibility"
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-upgrade action [$texts joined with $glue] to "3.8" as ($texts, joined with $glue)
-upgrade action [$texts joined, joined $texts] to "3.8" as ($texts, joined)
-upgrade action [byte $i of $text] to "3.8" as ($text, byte $i)
-upgrade action [bytes $start to $stop of $text] to "3.8" as
- $text, bytes $start to $stop
-upgrade action [bytes of $text] to "3.8" as ($text, bytes)
-upgrade action [capitalized $text, $text capitalized] to "3.8" as
- $text, capitalized
-upgrade action [uppercase $text, $text uppercase] to "3.8" as ($text, uppercase)
-upgrade action [
- $text with $sub instead of $patt, $text with $patt replaced by $sub
- $text s/ $patt / $sub
-] to "3.8" as ($text, with $patt -> $sub)
-upgrade action [$text matches $pattern] to "3.8" as ($text, matches $pattern)
-upgrade action [$text matching $pattern] to "3.8" as ($text, matching $pattern).1
diff --git a/compatibility/3.nom b/compatibility/3.nom
deleted file mode 100644
index af5c2fd..0000000
--- a/compatibility/3.nom
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/usr/bin/env nomsu -V6.14
-#
- This file defines upgrades from Nomsu <=2 to Nomsu 3
-
-use "compatibility/compatibility"
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-upgrade action (method $spec $body) to "3" as (my action $spec $body)
-upgrade action (me) to "3" as $me
-upgrade action (@) to "3" as $me
-upgrade action "as" to "3" via
- for $tree:
- compile error at $tree "Object API has changed and 'as' is no longer supported."
- "Use ($obj, action ...) instead of (as $obj: action ...)"
diff --git a/compatibility/4.10.12.7.nom b/compatibility/4.10.12.7.nom
deleted file mode 100644
index c241898..0000000
--- a/compatibility/4.10.12.7.nom
+++ /dev/null
@@ -1,85 +0,0 @@
-#!/usr/bin/env nomsu -V6.14
-#
- This file defines upgrades from Nomsu <4.10.12.7 to 4.10.12.7
-use "compatibility/compatibility"
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-upgrade action ($ as lua statements) to "4.10.12.7" as ($ as lua)
-upgrade action ($ as lua return) to "4.10.12.7" as
- =lua "\$.type == 'Block' and \($ as lua) or 'return '..\($ as lua expr)"
-
-upgrade action (Lua value $) to "4.10.12.7" as (Lua $)
-
-upgrade action ($e for $ in $items) to "4.10.12.7" as [: for $ in $items: add $e]
-upgrade action ($e for $k = $v in $items) to "4.10.12.7" as
- [: for $k = $v in $items: add $e]
-
-upgrade action ($e for $i in $start to $stop) to "4.10.12.7" as
- [: for $i in $start to $stop: add $e]
-
-upgrade action ($e for $i in $start to $stop by $step) to "4.10.12.7" as
- [: for $i in $start to $stop by $step: add $e]
-
-upgrade action ($e for $i in $start to $stop via $step) to "4.10.12.7" as
- [: for $i in $start to $stop by $step: add $e]
-
-upgrade action ($k = $v for $ in $items) to "4.10.12.7" as {
- : for $ in $items:
- add $k = $v
-}
-
-upgrade action ($k = $v for $k0 = $v0 in $items) to "4.10.12.7" as
- {: for $k0 = $v0 in $items: add $k = $v}
-
-upgrade action ($k = $v for $i in $start to $stop) to "4.10.12.7" as
- {: for $i in $start to $stop: add $k = $v}
-
-upgrade action ($k = $v for $i in $start to $stop by $step) to "4.10.12.7" as
- {: for $i in $start to $stop by $step: add $k = $v}
-
-upgrade action ($k = $v for $i in $start to $stop via $step) to "4.10.12.7" as
- {: for $i in $start to $stop by $step: add $k = $v}
-
-upgrade action (parse $text from $filename) to "4.10.12.7" as
- (NomsuCode from (Source $filename 1 (size of $text)) $text) parsed
-
-upgrade action ($ as lua statements) to "4.10.12.7" as ($ as lua)
-upgrade action (compile error at $pos $err hint $hint) to "4.10.12.7" as
- compile error at $pos $err $hint
-
-# In old code, it was okay to have imports at the top of the file in the same chunk,
- but changes to the API now require imports to be in their own file chunk in order
- for compilation to work properly.
-upgrade $tree to "4.10.12.7" as:
- if ($tree.type == "FileChunks"):
- $first_chunk = $tree.1
- $i = 1
- $has_use = (no)
- repeat while ($i <= (size of $first_chunk)):
- if (($first_chunk.$i.type == "Action") and ($first_chunk.$i.stub == "use")):
- $has_use = (yes)
- ..else:
- if $has_use:
- go to (insert chunk)
- $i += 1
- return
- --- (insert chunk) ---
- [$chunk1, $chunk2] = [
- SyntaxTree {.type = "Block", .source = $first_chunk.source}
- SyntaxTree {.type = "Block", .source = $first_chunk.source}
- ]
-
- for $j in 1 to ($i - 1):
- $chunk1.$j = $first_chunk.$j
-
- for $j in $i to (size of $first_chunk):
- $chunk2.($j - $i + 1) = $first_chunk.$j
-
- $new_tree =
- SyntaxTree {.source = $tree.source, .type = "FileChunks"} $chunk1 $chunk2
-
- for $i in 2 to (size of $tree):
- $new_tree.($i + 1) = $tree.$i
-
- return $new_tree
diff --git a/compatibility/4.11.nom b/compatibility/4.11.nom
deleted file mode 100644
index 24dbbdc..0000000
--- a/compatibility/4.11.nom
+++ /dev/null
@@ -1,97 +0,0 @@
-#!/usr/bin/env nomsu -V6.14
-#
- This file defines upgrades from Nomsu <4.11 to Nomsu 4.11
- (overhaul of function literals, deleting (if all of ...), etc. shorthand)
-
-use "compatibility/compatibility"
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-# Overhaul of function literals:
-upgrade action "call 1 with" to "4.11" via
- for ($tree $end_version):
- $tree2 = {.type = "Action", .source = $tree.source, .1 = $tree.2}
- for $arg in $tree.4 at $i:
- $tree2.($i + 1) = $arg
- return (SyntaxTree $tree2)
-upgrade action (-> $yield_value) to "4.11" as (yield $yield_value)
-
-# Replace set {$x:1, $y:2} with [$x, $y] = [1, 2]
-upgrade action "set" to "4.11" via
- for ($tree $end_version):
- [$lhs, $rhs] = [\[], \[]]
- $lhs.source = $tree.2.source
- $rhs.source = $tree.2.source
- for $entry in $tree.2 at $i:
- $lhs.$i = $entry.1
- $rhs.$i = $entry.2
-
- return
- SyntaxTree {.type = "Action", .source = $tree.source} $lhs "=" $rhs
-
-upgrade action "1 with 2 ~>" to "4.11" via
- for $tree:
- compile error at $tree "This method has been deprecated."
- "Perhaps this could be use ($tree, map ...) instead."
-
-# Changing filesystem API:
-upgrade action (for file $f in $path $body) to "4.11" as
- for $f in (files for $path) $body
-
-upgrade action ($expr for file $f in $path) to "4.11" as
- [: for $f in (files for $path): add $expr]
-
-upgrade action (line $n in $text) to "4.11" as ($text, line $n)
-upgrade action (line number of $pos in $text) to "4.11" as
- $text, line number at $pos
-
-# Deduplicating goto labels:
-upgrade action [=== $label ===, *** $label ***] to "4.11" as (--- $label ---)
-upgrade action [===stop $label ===, ***stop $label ***] to "4.11" as
- ---stop $label ---
-
-upgrade action [===next $label ===, ***next $label ***] to "4.11" as
- ---next $label ---
-
-# Deprecating shorthand functions:
-upgrade action [if all of $items $body, if all of $items then $body] to "4.11" as
- if (all of $items) $body
-
-upgrade action [unless all of $items $body, unless all of $items then $body] to
-.."4.11" as (if (not (all of $items)) $body)
-
-upgrade action [if any of $items $body, if any of $items then $body] to "4.11" as
- if (any of $items) $body
-
-upgrade action [unless any of $items $body, unless any of $items then $body] to
-.."4.11" as (if (not (any of $items)) $body)
-
-upgrade action [if none of $items $body, if none of $items then $body] to "4.11"
-..as (if (not (any of $items)) $body)
-
-upgrade action [unless none of $items $body, unless none of $items then $body] to
-.."4.11" as (if (any of $items) $body)
-
-upgrade action [
- if all of $items $body else $else, if all of $items then $body else $else
-] to "4.11" as (if (all of $items) $body else $else)
-
-upgrade action [
- unless all of $items $body else $else, unless all of $items then $body else $else
-] to "4.11" as (if (not (all of $items)) $body else $else)
-
-upgrade action [
- if any of $items $body else $else, if any of $items then $body else $else
-] to "4.11" as (if (any of $items) $body else $else)
-
-upgrade action [
- unless any of $items $body else $else, unless any of $items then $body else $else
-] to "4.11" as (if (not (any of $items)) $body else $else)
-
-upgrade action [
- if none of $items $body else $else, if none of $items then $body else $else
-] to "4.11" as (if (not (any of $items)) $body else $else)
-
-upgrade action [
- unless none of $items $body else $else, unless none of $items then $body else $else
-] to "4.11" as (if (any of $items) $body else $else)
diff --git a/compatibility/4.12.nom b/compatibility/4.12.nom
deleted file mode 100644
index a76e7df..0000000
--- a/compatibility/4.12.nom
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env nomsu -V6.14
-#
- This file defines upgrades from Nomsu <4.11 to Nomsu 4.11
- (overhaul of function literals, deleting (if all of ...), etc. shorthand)
-
-use "compatibility/compatibility"
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-upgrade action "do next repeat" to "4.12" via
- for $tree:
- compile error at $tree "This method has been deprecated."
- "Use either (do next) or (go to (label)) instead."
-
-upgrade action "stop repeating" to "4.12" via
- for $tree:
- compile error at $tree "This method has been deprecated."
- "Use either (stop) or (go to (label)) instead."
diff --git a/compatibility/4.8.10.nom b/compatibility/4.8.10.nom
deleted file mode 100644
index 250dc4a..0000000
--- a/compatibility/4.8.10.nom
+++ /dev/null
@@ -1,68 +0,0 @@
-#!/usr/bin/env nomsu -V6.14
-#
- This file defines upgrades from Nomsu <4.8.10 to 4.8.10 (renaming "action" -> "means")
-use "compatibility/compatibility"
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-upgrade action "local action" to "4.8.10" via
- for ($tree $end_version):
- $spec = $tree.3
- $body = $tree.4
- if $spec.type is:
- "List":
- if ((size of $spec) == 1):
- return \($spec.1 means $body)
- ..else:
- return \($spec all mean $body)
-
- else:
- return \($spec means $body)
-
-upgrade action "action" to "4.8.10" via
- for ($tree $end_version):
- $spec = $tree.2
- $body = $tree.3
- if $body:
- if $spec.type is:
- "List":
- if ((size of $spec) == 1):
- return \(externally $spec.1 means $body)
- ..else:
- return \(externally $spec all mean $body)
-
- else:
- return \(externally $spec means $body)
- ..else:
- return \($spec's meaning)
-
-upgrade action "compile 1 to" to "4.8.10" via
- for ($tree $end_version):
- $spec = $tree.2
- $body = $tree.4
- if $spec.type is:
- "List":
- if ((size of $spec) == 1):
- return \($spec.1 compiles to $body)
- ..else:
- return \($spec all compile to $body)
-
- else:
- return \($spec compiles to $body)
-
-upgrade action "parse 1 as" to "4.8.10" via
- for ($tree $end_version):
- $spec = $tree.2
- $body = $tree.4
- if $spec.type is:
- "List":
- if ((size of $spec) == 1):
- return \($spec.1 parses as $body)
- ..else:
- return \($spec all parse as $body)
-
- else:
- return \($spec parse as $body)
-
-upgrade action (compile as $) to "4.8.10" as (what $ compiles to)
-upgrade action (remove action $) to "4.8.10" as (($'s meaning) = (nil))
diff --git a/compatibility/4.9.nom b/compatibility/4.9.nom
deleted file mode 100644
index 14b5dd6..0000000
--- a/compatibility/4.9.nom
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/usr/bin/env nomsu -V6.14
-#
- This file defines upgrades from Nomsu <4.9 to 4.9
-use "compatibility/compatibility"
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-upgrade action "if" to "4.9" via
- for ($tree $end_version):
- if ((size of $tree) > 2): return $tree
- return \(when $tree.2)
diff --git a/compatibility/5.13.nom b/compatibility/5.13.nom
deleted file mode 100644
index 1e0db6d..0000000
--- a/compatibility/5.13.nom
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/usr/bin/env nomsu -V5.13
-#
- This file defines upgrades from Nomsu <5.13 to 5.13
-use "compatibility/compatibility"
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-upgrade action (size of $) to "5.13" as (#$)
-
-upgrade action "with" to "5.13" via (..)
- for $tree:
- $assignments = $tree.2
- $body = $tree.3
- if ($assignments.type != "Dict"):
- return $tree
- $new_assignments = \[]
- for $a in $assignments at $i:
- when:
- (($a.type == "DictEntry") and ((#$a) == 1)):
- $a = $a.1
- (all of [$a.type == "DictEntry", (#$a) == 2]):
- $a = \($a.1 = $a.2)
- $new_assignments.$i = $a
- return \(with $new_assignments $body)
diff --git a/compatibility/6.14.nom b/compatibility/6.14.nom
deleted file mode 100644
index 8443157..0000000
--- a/compatibility/6.14.nom
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/usr/bin/env nomsu -V6.14
-#
- This file defines upgrades from Nomsu <6.14 to 6.14
-use "compatibility/compatibility"
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-upgrade action
- try $action and if it succeeds $success or if it barfs $msg $fallback
-..to "6.14" as (try $action if it succeeds $success if it fails $msg $fallback)
-
-upgrade action
- try $action and if it barfs $msg $fallback or if it succeeds $success
-..to "6.14" as (try $action if it fails $msg $fallback if it succeeds $success)
-
-upgrade action (try $action and if it barfs $fallback or if it succeeds $success)
-..to "6.14" as (try $action if it fails $fallback if it succeeds $success)
-
-upgrade action (try $action and if it barfs $msg $fallback) to "6.14" as
- try $action if it fails $msg $fallback
-
-upgrade action (try $action and if it succeeds $success) to "6.14" as
- try $action if it succeeds $success
-
-upgrade action (assume $assumption or barf $err) to "6.14" as
- unless $assumption: fail $err
-
-upgrade action (barf $msg) to "6.14" as (fail $msg)
-
-upgrade action (\(1's meaning)).stub to "6.14" via
- $tree -> (SyntaxTree {.source = $tree.source, .type = "Var", $tree.1})
-
-upgrade action (log base $b of $n) to "6.14" as (log $n base $b)
-
-upgrade action "use" to "6.14" via
- for $tree:
- $path = $tree.2.1
- $path = ($path, with "%.nom$" -> "")
- $path = ($path, with "^lib/" -> "")
- return \(use (SyntaxTree {.source = $tree.2.source, .type="Text"} $path))
-
diff --git a/compatibility/compatibility.nom b/compatibility/compatibility.nom
deleted file mode 100644
index 444be11..0000000
--- a/compatibility/compatibility.nom
+++ /dev/null
@@ -1,132 +0,0 @@
-#!/usr/bin/env nomsu -V6.14
-#
- This file contains code for defining ways to upgrade code between different versions
- of Nomsu.
-
-use "filesystem"
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-$UPGRADES = {}
-externally (upgrade to $version via $upgrade_fn) means:
- $UPGRADES.$version = $upgrade_fn
-$ACTION_UPGRADES = ({} with fallback $ -> {})
-externally (upgrade action $stub to $version via $upgrade_fn) means:
- $ACTION_UPGRADES.$version.$stub = $upgrade_fn
-
-(upgrade $tree to $version as $body) parses as
- upgrade to $version via (($ $end_version) -> ($ with $tree -> $body))
-
-(upgrade action $actions to $version as $body) compiles to:
- if ($actions is "Action" syntax tree):
- $actions = \[$actions]
- $lua = (Lua "")
- for $action in $actions:
- $replacements = {}
- for $i in 1 to (size of $action):
- if ($action.$i is "Var" syntax tree):
- $replacements.($action.$i.1) = "\(\$tree as lua id)[\$i]"
- define mangler
- (make tree $t) means:
- when:
- ($t is "Var" syntax tree):
- if $replacements.($t.1):
- return $replacements.($t.1)
- ..else:
- external $needs_mangle = (yes)
- return ("
- SyntaxTree{type=\(quote $t.type), source=\(quote "\($t.source)"), \(quote (mangle $t.1))}
- ")
-
- ($t is syntax tree):
- $args = []
- for $k = $v in $t:
- if ((type of $k) == "number"):
- $args, add (make tree $v)
- ..else:
- $args, add "\($k)=\(make tree $v)"
- return "SyntaxTree{\($args, joined with ", ")}"
-
- else:
- return (quote $t)
-
- unless ("\$lua" == ""):
- $lua, add "\n"
-
- $retval = (make tree $body)
- $lua, add
- Lua ("
- upgrade_action_1_to_2_via(\(quote $action.stub), \($version as lua expr), function(\
- ..\(\$tree as lua id))
- return \$retval
- end)
- ")
- return $lua
-
-externally [
- $tree upgraded from $start_version to $end_version
- $tree upgraded to $end_version from $start_version
-] all mean:
- unless ($tree is syntax tree): return $tree
-
- ($ver as list) means (($ as number) for $ in $ver matching "[0-9]+")
-
- (Ver $) means:
- [$lib, $ver] = ($, match "(.*)/([0-9.]+)")
- if $lib:
- return {.lib = $lib, .version = ($ver as list)}
- return {.version = ($ as list)}
-
- $start = (Ver $start_version)
- $end = (Ver $end_version)
- assume $start.lib == $end.lib
-
- $seen = {}
- $versions = {}
- for $v = $ in $UPGRADES: $versions.$v = (yes)
- for $v = $ in $ACTION_UPGRADES: $versions.$v = (yes)
- $versions = [
- :for $v = $ in $versions:
- if ((Ver $v).lib == $start.lib):
- add $v
- ]
-
- sort $versions by $ -> ($ as list)
- for $ver in $versions:
- if (($ver as list) <= $start.version): do next $ver
- if (($ver as list) > $end.version): stop $ver
- if $ACTION_UPGRADES.$ver:
- $tree =
- $tree with $ ->:
- if (($ is "Action" syntax tree) and $ACTION_UPGRADES.$ver.($.stub)):
- $with_upgraded_args = {
- : for $k = $v in $:
- add $k = ($v upgraded from $start_version to $end_version)
- }
- set $with_upgraded_args's metatable to ($'s metatable)
- return ($ACTION_UPGRADES.$ver.($.stub) $with_upgraded_args $end_version)
-
- if $UPGRADES.$ver:
- $with_upgraded_args = {
- : for $k = $v in $tree:
- add $k = ($v upgraded from $start_version to $end_version)
- }
- set $with_upgraded_args's metatable to ($tree's metatable)
- $tree = ($UPGRADES.$ver $with_upgraded_args $end_version)
-
- if ($tree.version != $end_version):
- $tree = (SyntaxTree {: for $k = $v in $tree: add $k = $v})
- $tree.version = $end_version
- if $tree.shebang:
- $tree.shebang = "#!/usr/bin/env nomsu -V\$end_version\n"
-
- return $tree
-
-externally ($tree upgraded from $start_version) means
- $tree upgraded from $start_version to (Nomsu version)
-
-externally ($tree upgraded to $end_version) means
- $tree upgraded from ($tree.version or (Nomsu version)) to $end_version
-
-externally ($tree upgraded) means
- $tree upgraded from ($tree.version or (Nomsu version)) to (Nomsu version)
diff --git a/compatibility/init.nom b/compatibility/init.nom
deleted file mode 100644
index 40cafff..0000000
--- a/compatibility/init.nom
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/usr/bin/env nomsu -V6.14.13.8
-export "compatibility/compatibility"
-export "compatibility/2"
-export "compatibility/2.3"
-export "compatibility/2.4"
-export "compatibility/2.5"
-export "compatibility/2.5.5.5"
-export "compatibility/3"
-export "compatibility/3.5.5.6"
-export "compatibility/3.6"
-export "compatibility/3.7"
-export "compatibility/3.8"
-export "compatibility/4.8.10"
-export "compatibility/4.9"
-export "compatibility/4.10.12.7"
-export "compatibility/4.11"
-export "compatibility/4.12"
-export "compatibility/5.13"
-export "compatibility/6.14"