From 72c5908f099cda5b424763c32ba56dd707950d11 Mon Sep 17 00:00:00 2001 From: Mark Thom Date: Thu, 4 Jun 2020 23:23:49 -0600 Subject: [PATCH] update prolog_parser version, correct atom_chars/2 (#379) --- Cargo.lock | 4 +--- Cargo.toml | 2 +- src/prolog/machine/system_calls.rs | 13 ++----------- 3 files changed, 4 insertions(+), 15 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0f0b8616..2c0a3d0b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -634,9 +634,7 @@ dependencies = [ [[package]] name = "prolog_parser" -version = "0.8.59" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "029a4682cf40923b8eb05c4b943d1d6be73775e7bf80bcb0866b5ef29abb0802" +version = "0.8.60" dependencies = [ "lexical", "num-rug-adapter", diff --git a/Cargo.toml b/Cargo.toml index 8b8df0fa..a1856477 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -32,7 +32,7 @@ libc = "0.2.62" nix = "0.15.0" num-rug-adapter = { optional = true, version = "0.1.3" } ordered-float = "0.5.0" -prolog_parser = { version = "0.8.59", default-features = false } +prolog_parser = { version = "0.8.60", default-features = false } ref_thread_local = "0.0.0" rug = { version = "1.4.0", optional = true } rustyline = "6.0.0" diff --git a/src/prolog/machine/system_calls.rs b/src/prolog/machine/system_calls.rs index d731e425..5a4523ce 100644 --- a/src/prolog/machine/system_calls.rs +++ b/src/prolog/machine/system_calls.rs @@ -830,19 +830,10 @@ impl MachineState { } Addr::Con(h) if self.heap.atom_at(h) => { if let HeapCellValue::Atom(name, _) = self.heap.clone(h) { - let iter = name.as_str().chars().map(|c| Addr::Char(c)); - let list_of_chars = Addr::HeapCell(self.heap.to_list(iter)); - + let s = self.heap.put_complete_string(name.as_str()); let a2 = self[temp_v!(2)]; - match self.store(self.deref(a2)) { - Addr::PStrLocation(..) => { - self.fail = true; - } - a2 => { - self.unify(a2, list_of_chars); - } - } + self.unify(s, a2); } else { unreachable!() } -- 2.54.0