aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEduardo Julian2016-03-11 00:18:26 -0400
committerEduardo Julian2016-03-11 00:18:26 -0400
commit65ca7c0dd7a54f6973bf3ca65e13c8272f6b6a1a (patch)
tree255632a61879df64a0560e70b736295ad482be5f
parentceb21fc9cccc07dc562e386f6f07a9b930cfb49f (diff)
- Fixed the way the CLI arguments are received by _jvm_program by using the new format for data-structures.
-rw-r--r--src/lux/compiler/host.clj32
1 files changed, 9 insertions, 23 deletions
diff --git a/src/lux/compiler/host.clj b/src/lux/compiler/host.clj
index 79658e6d5..0715b024f 100644
--- a/src/lux/compiler/host.clj
+++ b/src/lux/compiler/host.clj
@@ -1209,17 +1209,10 @@
$end (new Label)
_ (doto main-writer
;; Tail: Begin
- (.visitLdcInsn (int 2)) ;; S
- (.visitTypeInsn Opcodes/ANEWARRAY "java/lang/Object") ;; V
- (.visitInsn Opcodes/DUP) ;; VV
- (.visitLdcInsn (int 0)) ;; VVI
- (.visitLdcInsn (->> #'&/$Nil meta ::&/idx)) ;; VVIT
- (&&/wrap-long)
- (.visitInsn Opcodes/AASTORE) ;; V
- (.visitInsn Opcodes/DUP) ;; VV
- (.visitLdcInsn (int 1)) ;; VVI
- (.visitInsn Opcodes/ACONST_NULL) ;; VVIN
- (.visitInsn Opcodes/AASTORE) ;; V
+ (.visitLdcInsn (->> #'&/$Nil meta ::&/idx int)) ;; I
+ (.visitInsn Opcodes/ACONST_NULL) ;; I?
+ (.visitLdcInsn &/unit-tag) ;; I?U
+ (.visitMethodInsn Opcodes/INVOKESTATIC "lux/LuxUtils" "sum_make" "(ILjava/lang/Object;Ljava/lang/Object;)[Ljava/lang/Object;") ;; V
;; Tail: End
;; Size: Begin
(.visitVarInsn Opcodes/ALOAD 0) ;; VA
@@ -1255,18 +1248,11 @@
(.visitInsn Opcodes/AASTORE) ;; I2
;; Tuple: End
;; Cons: Begin
- (.visitLdcInsn (int 2)) ;; I2I
- (.visitTypeInsn Opcodes/ANEWARRAY "java/lang/Object") ;; I2V
- (.visitInsn Opcodes/DUP) ;; I2VV
- (.visitLdcInsn (int 0)) ;; I2VVI
- (.visitLdcInsn (->> #'&/$Cons meta ::&/idx)) ;; I2VVIT
- (&&/wrap-long)
- (.visitInsn Opcodes/AASTORE) ;; I2V
- (.visitInsn Opcodes/DUP_X1) ;; IV2V
- (.visitInsn Opcodes/SWAP) ;; IVV2
- (.visitLdcInsn (int 1)) ;; IVV2I
- (.visitInsn Opcodes/SWAP) ;; IVVI2
- (.visitInsn Opcodes/AASTORE) ;; IV
+ (.visitLdcInsn (->> #'&/$Cons meta ::&/idx int)) ;; I2I
+ (.visitLdcInsn "") ;; I2I?
+ (.visitInsn Opcodes/DUP2_X1) ;; II?2I?
+ (.visitInsn Opcodes/POP2) ;; II?2
+ (.visitMethodInsn Opcodes/INVOKESTATIC "lux/LuxUtils" "sum_make" "(ILjava/lang/Object;Ljava/lang/Object;)[Ljava/lang/Object;") ;; IV
;; Cons: End
(.visitInsn Opcodes/SWAP) ;; VI
(.visitJumpInsn Opcodes/GOTO $loop)