migrate to new version
[mTask.git] / mTaskInterpret.icl
index f1eeedc..f55c70d 100644 (file)
@@ -252,8 +252,8 @@ BCIfStmt (BC b) (BC t) (BC e) = BC $
        t >>| tell [BCJmp endif, BCLab else] >>|
        e >>| tell [BCLab endif]
 
-freshl = get >>= \st=:{freshl=[fr:frs]}->put {st & freshl=frs} >>| pure fr
-freshs = get >>= \st=:{freshs=[fr:frs]}->put {st & freshs=frs} >>| pure fr
+freshl = get >>= \st=:{freshl}->put ({st & freshl=freshl+1}) >>| pure freshl
+freshs = get >>= \st=:{freshs}->put ({st & freshs=freshs+1}) >>| pure freshs
 
 instance noOp ByteCode where noOp = tell` [BCNop]
 
@@ -270,6 +270,8 @@ instance sds ByteCode where
                        addSDS sds v s = {s & sdss=[{sds & sdsval=BCValue v}:s.sdss]}
 
        con f = undef
+
+instance sdspub ByteCode where
        pub (BC x) = BC $ censor (\[BCSdsFetch s]->[BCSdsPublish s]) x
 
 instance assign ByteCode where
@@ -299,7 +301,7 @@ instance retrn ByteCode where
   retrn = tell` [BCReturn]
 
 instance zero BCState where
-       zero = {freshl=[1..], freshs=[1..], sdss=[]}
+       zero = {freshl=1, freshs=1, sdss=[]}
 
 toRealByteCode :: (ByteCode a b) BCState -> (String, BCState)
 toRealByteCode x s