From dc029b2f218feb125b74f5fffc5bd64ec9459f03 Mon Sep 17 00:00:00 2001 From: Drahflow Date: Fri, 19 Jun 2015 00:49:12 +0200 Subject: Better map performance --- compiler/elymasGlobal.ey | 2 +- elymas/lib/map.ey | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/compiler/elymasGlobal.ey b/compiler/elymasGlobal.ey index 7afd660..3fc309f 100644 --- a/compiler/elymasGlobal.ey +++ b/compiler/elymasGlobal.ey @@ -2413,7 +2413,7 @@ /rsi :popqReg # fetch identifier /rdi :popqReg # fetch scope - ::internalResolve /rax :movqImmReg + ::internalResolve /rax :movqImmReg # FIXME: Inform internalResolve not to follow parents /rax :callqReg /rax /rax :testqRegReg diff --git a/elymas/lib/map.ey b/elymas/lib/map.ey index 564914c..d3546ea 100644 --- a/elymas/lib/map.ey +++ b/elymas/lib/map.ey @@ -1,4 +1,6 @@ +{ { defv }' scope } < + /generate deffd 0 ==m # placeholder, zero value is never read { m .v -01 . }' [ 0 ] [ 0 ] '' /access deffd { =m access }' "#*" defmd @@ -12,7 +14,7 @@ { =m m .v keys * }' "#itrans" defmd { =m m .v -01 .?' }' /has defmd { =m m .v ==v "#iclone" | * ==n v keys { _ v -01 . -01 n =[] } each n }' /clone defmd - { < < { defv }' > ==v "#=[]" =* > }' _ "#iclone" deffd + { < generate ==v "#=[]" =* > }' _ "#iclone" deffd > -- /map deffd # vim: syn=elymas -- cgit v1.2.3