Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Hey /prog/

Name: Anonymous 2012-03-07 3:41

improve my virtual machine

git clone https://code.google.com/p/gpvm/

Forgive my lack of documentation. This will be remidied shortly. Also, some instructions remain unimplemented, as I haven't found a use for them yet.

Also, note the absolute lack of references (int &a = b). Haskell has created the idea in my head they are not needed, but I can see them being useful and I will almost undoubtedly implement them at some point.

I look forward to sorting through your abuse to see if anyone says anything constructive.

Name: Anonymous 2012-03-10 3:19

>>51
SBCL doesn't appear to be doing that. That is why it TWO times slower than C/C++. Lisp is shit.


(defun yoba (n)
  (declare (optimize (debug 0) (safety 0) (speed 3) (compilation-speed 0) (space 0))
           (fixnum n))
  (ecase n
    (       1        #xD)
    (      10       #xDD)
    (     100      #xDDD)
    (    1000     #xDDDD)
    (   10000    #xDDDDD)
    (  100000   #xDDDDDD)
    ( 1000000  #xDDDDDDD)
    (10000000 #xDDDDDDDD)))

(disassemble #'yoba)
; disassembly for YOBA
; 13C09ADC:       83F804           CMP EAX, 4                 ; no-arg-parsing entry point
;      ADF:       750A             JNE L1
;      AE1:       BA34000000       MOV EDX, 52
;      AE6: L0:   8BE5             MOV ESP, EBP
;      AE8:       F8               CLC
;      AE9:       5D               POP EBP
;      AEA:       C3               RET
;      AEB: L1:   83F828           CMP EAX, 40
;      AEE:       0F8483000000     JEQ L8
;      AF4:       3D90010000       CMP EAX, 400
;      AF9:       7472             JEQ L7
;      AFB:       3DA00F0000       CMP EAX, 4000
;      B00:       7461             JEQ L6
;      B02:       3D409C0000       CMP EAX, 40000
;      B07:       7453             JEQ L5
;      B09:       3D801A0600       CMP EAX, 400000
;      B0E:       7445             JEQ L4
;      B10:       3D00093D00       CMP EAX, 4000000
;      B15:       7437             JEQ L3
;      B17:       3D005A6202       CMP EAX, 40000000
;      B1C:       7508             JNE L2
;      B1E:       8B15A89AC013     MOV EDX, [#x13C09AA8]      ; 3722304989
;      B24:       EBC0             JMP L0
;      B26: L2:   8D5C24F8         LEA EBX, [ESP-8]
;      B2A:       83EC0C           SUB ESP, 12
;      B2D:       8B15AC9AC013     MOV EDX, [#x13C09AAC]      ; 'ECASE
;      B33:       8BF8             MOV EDI, EAX
;      B35:       8B35B09AC013     MOV ESI, [#x13C09AB0]      ; '(10000000
                                                              ;   1000000 ..)
;      B3B:       8B05B49AC013     MOV EAX, [#x13C09AB4]      ; #<FDEFINITION object for SB-KERNEL:CASE-FAILURE>
;      B41:       B90C000000       MOV ECX, 12
;      B46:       892B             MOV [EBX], EBP
;      B48:       8BEB             MOV EBP, EBX
;      B4A:       FF5005           CALL DWORD PTR [EAX+5]
;      B4D:       90               NOP
;      B4E: L3:   BA74777737       MOV EDX, 930576244
;      B53:       EB91             JMP L0
;      B55: L4:   BA74777703       MOV EDX, 58161012
;      B5A:       EB8A             JMP L0
;      B5C: L5:   BA74773700       MOV EDX, 3635060
;      B61:       EB83             JMP L0
;      B63: L6:   BA74770300       MOV EDX, 227188
;      B68:       E979FFFFFF       JMP L0
;      B6D: L7:   BA74370000       MOV EDX, 14196
;      B72:       E96FFFFFFF       JMP L0
;      B77: L8:   BA74030000       MOV EDX, 884
;      B7C:       E965FFFFFF       JMP L0
NIL

Name: Anonymous 2012-03-10 3:26

Clozure fails too.

Welcome to Clozure Common Lisp Version 1.7-r14925M  (DarwinX8664)!
?
(defun yoba (n)
  (declare (optimize (debug 0) (safety 0) (speed 3) (compilation-speed 0) (space 0))
           (fixnum n))
  (ecase n
    (       1        #xD)
    (      10       #xDD)
    (     100      #xDDD)
    (    1000     #xDDDD)
    (   10000    #xDDDDD)
    (  100000   #xDDDDDD)
    ( 1000000  #xDDDDDDD)
    (10000000 #xDDDDDDDD)))
YOBA
? (disassemble #'yoba)

;;; (defun yoba (n) (declare (optimize (debug 0) (safety 0) (speed 3) (compilation-speed 0) (space 0)) (
L0
     [0] (leaq (@ (:^ L0) (% rip)) (% fn))
     [7] (pushq (% rbp))
     [8] (movq (% rsp) (% rbp))
    [11] (pushq (% arg_z))
    [12] (pushq (% save0))

;;; (ecase n ( 1 #xD) ( 10 #xDD) ( 100 #xDDD) ( 1000 #xDDDD) ( 10000 #xDDDDD) ( 100000 #xDDDDDD) ( 10000
    [14] (movq (% arg_z) (% save0))
    [17] (cmpq ($ 8) (% save0))
    [21] (jne L32)
    [23] (movl ($ #x68) (% arg_z.l))
    [28] (popq (% save0))
    [30] (leaveq)
    [31] (retq)
L32
    [32] (cmpq ($ 80) (% save0))
    [36] (jne L47)
    [38] (movl ($ #x6E8) (% arg_z.l))
    [43] (popq (% save0))
    [45] (leaveq)
    [46] (retq)
L47
    [47] (cmpq ($ #x320) (% save0))
    [54] (jne L65)
    [56] (movl ($ #x6EE8) (% arg_z.l))
    [61] (popq (% save0))
    [63] (leaveq)
    [64] (retq)
L65
    [65] (cmpq ($ #x1F40) (% save0))
    [72] (jne L83)
    [74] (movl ($ #x6EEE8) (% arg_z.l))
    [79] (popq (% save0))
    [81] (leaveq)
    [82] (retq)
L83
    [83] (cmpq ($ #x13880) (% save0))
    [90] (jne L101)
    [92] (movl ($ #x6EEEE8) (% arg_z.l))
    [97] (popq (% save0))
    [99] (leaveq)
   [100] (retq)
L101
   [101] (cmpq ($ #xC3500) (% save0))
   [108] (jne L119)
   [110] (movl ($ #x6EEEEE8) (% arg_z.l))
   [115] (popq (% save0))
   [117] (leaveq)
   [118] (retq)
L119
   [119] (cmpq ($ #x7A1200) (% save0))
   [126] (jne L137)
   [128] (movl ($ #x6EEEEEE8) (% arg_z.l))
   [133] (popq (% save0))
   [135] (leaveq)
   [136] (retq)
L137
   [137] (cmpq ($ #x4C4B400) (% save0))
   [144] (jne L160)
   [146] (movq ($ #x6EEEEEEE8) (% arg_z))
   [156] (popq (% save0))
   [158] (leaveq)
   [159] (retq)
L160
   [160] (movl ($ #x4E8) (% arg_x.l))
   [166] (movq (% save0) (% arg_y))
   [169] (movq (@ '(MEMBER 1 10 100 1000 10000 100000 1000000 10000000) (% fn)) (% arg_z))
   [176] (movl ($ 24) (% nargs))
   [181] (nop)
   [182] (callq (@ .SPKSIGNALERR))
   [189] (leaq (@ (:^ L0) (% rip)) (% fn))
   [196] (movl ($ #x1300B) (% arg_z.l))
   [201] (popq (% save0))
   [203] (leaveq)
   [204] (retq)
NIL

Name: Anonymous 2012-03-10 3:55

AllegroCL has IDE, but can't optimize a switch.

$ ./alisp
[1] CL-USER(1): (defun yoba (n)
  (declare (optimize (debug 0) (safety 0) (speed 3) (compilation-speed 0) (space 0))
           (fixnum n))
  (ecase n
    (       1        #xD)
    (      10       #xDD)
    (     100      #xDDD)
    (    1000     #xDDDD)
    (   10000    #xDDDDD)
    (  100000   #xDDDDDD)
    ( 1000000  #xDDDDDDD)
    (10000000 #xDDDDDDDD)))
YOBA
[Current process: Initial Lisp Listener]
[1] CL-USER(2): (disassemble #'yoba)
;; disassembly of #<Function (:ANONYMOUS-LAMBDA 0) @ #x2060bf92>
;; formals: N
;; constant vector:
0: 3722304989
1: (MEMBER 1 10 100 1000 10000 100000 1000000 10000000)
2: (1 10 100 1000 10000 100000 1000000 10000000)
3: EXCL::.CASE-FAILURE

;; code start: #x2060becc:
   0: 55             pushl    ebp
   1: 8b ec          movl    ebp,esp
   3: 83 ec 48       subl    esp,$72
   6: 89 75 fc       movl    [ebp-4],esi
   9: 89 5d e4       movl    [ebp-28],ebx
  12: 83 f8 04       cmpl    eax,$4
  15: 75 0b          jnz    28
  17: b8 34 00 00 00 movl    eax,$52     ; 13
  22: f8             clc
  23: c9             leave
  24: 8b 75 fc       movl    esi,[ebp-4]
  27: c3             ret
  28: 83 f8 28       cmpl    eax,$40
  31: 75 08          jnz    41
  33: b8 74 03 00 00 movl    eax,$884    ; 221
  38: f8             clc
  39: eb ee          jmp    23
  41: 3d 90 01 00 00 cmpl    eax,$400    ; 100
  46: 75 08          jnz    56
  48: b8 74 37 00 00 movl    eax,$14196  ; 3549
  53: f8             clc
  54: eb df          jmp    23
  56: 3d a0 0f 00 00 cmpl    eax,$4000   ; 1000
  61: 75 08          jnz    71
  63: b8 74 77 03 00 movl    eax,$227188 ; 56797
  68: f8             clc
  69: eb d0          jmp    23
  71: 3d 40 9c 00 00 cmpl    eax,$40000  ; 10000
  76: 75 08          jnz    86
  78: b8 74 77 37 00 movl    eax,$3635060       ; 908765
  83: f8             clc
  84: eb c1          jmp    23
  86: 3d 80 1a 06 00 cmpl    eax,$400000 ; 100000
  91: 75 08          jnz    101
  93: b8 74 77 77 03 movl    eax,$58161012      ; 14540253
  98: f8             clc
  99: eb b2          jmp    23
 101: 3d 00 09 3d 00 cmpl    eax,$4000000       ; 1000000
 106: 75 08          jnz    116
 108: b8 74 77 77 37 movl    eax,$930576244     ; 232644061
 113: f8             clc
 114: eb a3          jmp    23
 116: 3d 00 5a 62 02 cmpl    eax,$40000000      ; 10000000
 121: 75 06          jnz    129
 123: 8b 46 12       movl    eax,[esi+18]       ; 3722304989
 126: f8             clc
 127: eb 96          jmp    23
 129: 8b d0          movl    edx,eax
 131: 8b 87 5f fc ff movl    eax,[edi-929]      ; ECASE
      ff
 137: 83 c4 10       addl    esp,$16
 140: ff 76 1a       pushl    [esi+26]    ; (1
                                               10
                                               100
                                               1000
                                               10000
                                               100000
                                               1000000
                                               10000000)
 143: ff 76 16       pushl    [esi+22]    ; (MEMBER
                                               1
                                               10
                                               100
                                               1000
                                               10000
                                               100000
                                               1000000
                                               10000000)
 146: 52             pushl    edx
 147: 50             pushl    eax
 148: 8b 5e 1e       movl    ebx,[esi+30]       ; EXCL::.CASE-FAILURE
 151: b1 04          movb    cl,$4
 153: ff d7          call    *edi
 155: e9 77 ff ff ff jmp    23
[Current process: Initial Lisp Listener]
[1] CL-USER(3):

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List