]> Repositorios git - scryer-prolog.git/commitdiff
Merge branch 'master' of https://github.com/mthom/scryer-prolog
authorMark Thom <[email protected]>
Sat, 16 Nov 2019 23:53:29 +0000 (19:53 -0400)
committerMark Thom <[email protected]>
Sat, 16 Nov 2019 23:53:29 +0000 (19:53 -0400)
1  2 
src/prolog/machine/attributed_variables.rs
src/prolog/machine/compile.rs
src/prolog/machine/machine_indices.rs
src/prolog/machine/machine_state.rs
src/prolog/machine/machine_state_impl.rs
src/prolog/machine/mod.rs
src/prolog/machine/system_calls.rs

Simple merge
Simple merge
Simple merge
index 4d1918db31fe57a693e94f03e40d6876f647a4fd,7392d65c234246a1f6884a99edab990000308a7a..90ddcb5452d48bdb2885e657b7c1ad21b29c821a
@@@ -6,9 -6,9 +6,8 @@@ use crate::prolog::arithmetic::*
  use crate::prolog::clause_types::*;
  use crate::prolog::forms::*;
  use crate::prolog::heap_iter::*;
- use crate::prolog::heap_print::*;
  use crate::prolog::instructions::*;
  use crate::prolog::machine::INTERRUPT;
 -use crate::prolog::machine::and_stack::*;
  use crate::prolog::machine::attributed_variables::*;
  use crate::prolog::machine::code_repo::CodeRepo;
  use crate::prolog::machine::copier::*;
index 7eef9b8f28e36bfb8f49d3ac1c058db15acc2907,051ad296edb45028692ee5cab1dec2fb759edb3d..e71bd826f16c750d956b13a2b5e46be227bc561b
@@@ -8,8 -7,8 +7,7 @@@ use crate::prolog::heap_print::*
  use crate::prolog::instructions::*;
  use crate::prolog::machine::heap::Heap;
  use crate::prolog::read::*;
- use crate::prolog::write::{next_keypress, ContinueResult};
  
 -mod and_stack;
  mod attributed_variables;
  pub(super) mod code_repo;
  pub mod compile;
index 6fa315f4ad8d1800ad1da684d4eca3a2d81e0e94,cd49431310b951a9b58b600aa8f9cd2026b37cea..c8b841c3dc736833132cd2c02e3e755f87252f49
@@@ -1685,20 -1742,15 +1742,15 @@@ impl MachineState 
                  self.p = CodePtr::DynamicTransaction(trans_type, p);
                  return Ok(());
              }
-             &SystemClauseType::ReturnFromAttributeGoals => {
-                 self.deallocate();                
-                 self.p = CodePtr::Local(LocalCodePtr::TopLevel(0, 0));
-                 return Ok(());
-             }
              &SystemClauseType::ReturnFromVerifyAttr => {
                  let e = self.e;
 -                let frame_len = self.and_stack[e].len();
 +                let frame_len = self.stack.index_and_frame(e).prelude.univ_prelude.num_cells;
  
 -                for i in 1..frame_len - 1 {
 -                    self[RegType::Temp(i)] = self.and_stack[e][i].clone();
 +                for i in 1 .. frame_len - 1 {
 +                    self[RegType::Temp(i)] = self.stack.index_and_frame(e)[i].clone();
                  }
  
 -                if let &Addr::Con(Constant::Usize(b0)) = &self.and_stack[e][frame_len - 1] {
 +                if let &Addr::Con(Constant::Usize(b0)) = &self.stack.index_and_frame(e)[frame_len - 1] {
                      self.b0 = b0;
                  }