aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authors-ol <s-ol@users.noreply.github.com>2020-03-05 15:50:56 +0000
committers-ol <s-ol@users.noreply.github.com>2020-03-05 18:08:52 +0000
commitc918bdcc7c3ee9c7e2fb9a8ac49c1f35776f551c (patch)
tree969cf70453781ef09e9498811aa24a973361ec57
parentmain page and responsive styling (diff)
downloadalive-c918bdcc7c3ee9c7e2fb9a8ac49c1f35776f551c.tar.gz
alive-c918bdcc7c3ee9c7e2fb9a8ac49c1f35776f551c.zip
fix accidentally committed bugs
-rw-r--r--core/builtin.moon17
-rw-r--r--core/cell.moon9
-rw-r--r--core/invoke.moon3
-rw-r--r--init.moon1
4 files changed, 19 insertions, 11 deletions
diff --git a/core/builtin.moon b/core/builtin.moon
index 1ec6a9a..9292fae 100644
--- a/core/builtin.moon
+++ b/core/builtin.moon
@@ -1,6 +1,7 @@
-- builtin special forms
import Action, FnDef from require 'core.base'
-import Result, Value from require 'core.value'
+import Value from require 'core.value'
+import Result from require 'core.result'
import Cell from require 'core.cell'
import Scope from require 'core.scope'
@@ -15,7 +16,7 @@ prints the docstring for sym in the console"
result = L\push tail[1]\eval, scope
with Result children: { def }
value = result\const!
- L\print "(doc #{tail[1]\stringify!}):\n#{value.doc}\n"
+ L\print "(doc #{tail[1]}):\n#{value.doc}\n"
class def extends Action
@doc: "(def sym1 val-expr1
@@ -68,7 +69,8 @@ name-str has to be an eval-time constant."
name = result\const!
L\trace @, "loading module #{name}"
- Result value: require "lib.#{name\unwrap 'str'}"
+ scope = Value.wrap require "lib.#{name\unwrap 'str'}"
+ Result :value
class import_ extends Action
@doc: "(import sym1 [sym2]...) - require and define modules
@@ -81,8 +83,8 @@ requires modules sym1, sym2, ... and defines them as sym1, sym2, ... in the curr
for child in *tail
name = (child\quote scope)\unwrap 'sym'
- scope\set name, Result value: require "lib.#{name}"
-
+ value = Value.wrap require "lib.#{name}"
+ scope\set name, Result :value -- (require "lib.#{name})\unwrap 'scope'
Result!
class import_star extends Action
@@ -97,7 +99,8 @@ requires modules sym1, sym2, ... and merges them into the current scope"
for child in *tail
name = (child\quote scope)\unwrap 'sym'
- scope\use (require "lib.#{name}")\unwrap 'scope'
+ value = Value.wrap require "lib.#{name}"
+ scope\use value\unwrap 'scope' -- (require "lib.#{name}")\unwrap 'scope'
Result!
@@ -180,7 +183,7 @@ class trace extends Action
assert #tail == 1, "'trace' takes exactly one parameter"
with result = L\push tail[1]\eval, scope
- L\print "trace #{tail[1]\stringify!}: #{result.value}"
+ L\print "trace #{tail[1]}: #{result.value}"
{
:doc, :trace
diff --git a/core/cell.moon b/core/cell.moon
index 724b74e..850a9db 100644
--- a/core/cell.moon
+++ b/core/cell.moon
@@ -8,7 +8,8 @@ import Tag from require 'core.tag'
class Cell
-- AST interface
eval: (scope) =>
- head = (@head!\eval scope)\const!
+ head = assert @head!, "cannot evaluate expr without head"
+ head = (head\eval scope)\const!
Action = switch head.type
when 'opdef'
-- scope\get 'op-invoke'
@@ -47,9 +48,11 @@ class Cell
buf ..= if depth > 0 then ' ' else @white[i]
if depth > 0
- buf = buf\sub 1, #b@uf - 1
+ buf = buf\sub 1, #buf - 1
- '(' .. @tag\stringify! .. buf .. ')'
+ tag = if depth == -1 then @tag\stringify! else ''
+
+ '(' .. tag .. buf .. ')'
-- internal
-- tag: the parsed Tag
diff --git a/core/invoke.moon b/core/invoke.moon
index 3b2ddd5..7ff16dc 100644
--- a/core/invoke.moon
+++ b/core/invoke.moon
@@ -1,4 +1,5 @@
-import Result, Value from require 'core.value'
+import Value from require 'core.value'
+import Result from require 'core.result'
import Action from require 'core.base'
import Scope from require 'core.scope'
diff --git a/init.moon b/init.moon
index 8bb80e6..f86b175 100644
--- a/init.moon
+++ b/init.moon
@@ -16,6 +16,7 @@ for a in *arg
Logger.init arguments.log
+assert arguments[1], "no filename given"
copilot = Copilot arguments[1]
while true