]> Repositorios git - scryer-prolog.git/commitdiff
fix stream errors
authorMark Thom <[email protected]>
Sat, 27 Nov 2021 05:13:52 +0000 (22:13 -0700)
committerMark Thom <[email protected]>
Fri, 7 Jan 2022 04:44:41 +0000 (21:44 -0700)
src/clause_types.rs
src/machine/machine_state.rs
src/machine/streams.rs

index 540bf779a78cc4abfa0e46cdba8ebf2079866afa..2e298dff050cdaf52cb0797d7b8480c78709f3a9 100644 (file)
@@ -157,7 +157,7 @@ pub fn clause_type_form(name: Atom, arity: usize) -> Option<ClauseType> {
         ))),
         (atom!("keysort"), 2) => Some(ClauseType::BuiltIn(BuiltInClauseType::KeySort)),
         (atom!("\\=="), 2) => Some(ClauseType::BuiltIn(BuiltInClauseType::NotEq)),
-        (atom!("read"), 1) => Some(ClauseType::BuiltIn(BuiltInClauseType::Read)),
+        (atom!("read"), 2) => Some(ClauseType::BuiltIn(BuiltInClauseType::Read)),
         (atom!("sort"), 2) => Some(ClauseType::BuiltIn(BuiltInClauseType::Sort)),
         _ => None,
     }
index 8d39edcdde01ace4eee6608121d22822fb7bb4db..32665ad7f0b82a47e3e3f4c5f710bc79d92204eb 100644 (file)
@@ -1,7 +1,6 @@
 use crate::arena::*;
 use crate::atom_table::*;
 use crate::parser::ast::*;
-use crate::temp_v;
 
 use crate::clause_types::*;
 use crate::forms::*;
@@ -490,7 +489,7 @@ pub trait CallPolicy: Any + fmt::Debug {
             }
             &BuiltInClauseType::Read => {
                 let stream = machine_st.get_stream_or_alias(
-                    machine_st[temp_v!(1)],
+                    machine_st.registers[1],
                     stream_aliases,
                     atom!("read"),
                     2,
index 064d9fa8d01841eee5ac2efa4d86441bbe3cf530..4aeba63e5e3d1f0c0e4eeea039fdb96b3d4eea25 100644 (file)
@@ -1369,9 +1369,7 @@ impl MachineState {
         arity: usize,
     ) -> MachineStub {
         let stub = functor_stub(caller, arity);
-        let payload = vec![stream_as_cell!(stream)];
-
-        let err = self.permission_error(perm, err_atom, payload);
+        let err = self.permission_error(perm, err_atom, stream_as_cell!(stream));
 
         return self.error_form(err, stub);
     }