aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Cargo.toml4
-rw-r--r--src/vm.rs6
2 files changed, 8 insertions, 2 deletions
diff --git a/Cargo.toml b/Cargo.toml
index 1268ed0..c6a109d 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -9,3 +9,7 @@ edition = "2018"
[dependencies]
logos = "0.11.4"
owo-colors = { git="https://github.com/FredTheDino/owo-colors.git" }
+
+[profile.release]
+debug = true
+lto = "thin"
diff --git a/src/vm.rs b/src/vm.rs
index 68ab3b8..bc3b1e8 100644
--- a/src/vm.rs
+++ b/src/vm.rs
@@ -128,8 +128,10 @@ pub fn run_block(block: Block) -> Result<(), Error> {
impl VM {
fn pop_twice(&mut self) -> (Value, Value) {
- let (a, b) = (self.stack.pop().unwrap(), self.stack.pop().unwrap());
- (b, a)
+ let len = self.stack.len();
+ let res = (self.stack[len-2].clone(), self.stack[len-1].clone());
+ self.stack.truncate(len - 2);
+ res
}
fn _peek_up(&self, amount: usize) -> Option<&Value> {