ls
'(apply f)
['(apply f) copyFrom: 1)
['(apply f) copyFrom: 1]
(define f (lambda () '3))
(11277032)
d
(define f (lambda () '3))
'(apply f)
['(apply f) print]
3
break Compiler__xApply1_
(+ 3 4)
morituri te salutant
;; this really is -*- coke -*-
(+ 3 4)
(+ 3 4 5 (+ 6 7 8) 9)
;; _dlsym is the ONLY primitive function; all other "primitives" (and library/system calls) are imported via _dlsym
_dlsym
(_dlsym _RTLD_DEFAULT "printf")
((_dlsym _RTLD_DEFAULT "printf") "Hello, world\n")
(define exit(_dlsym _RTLD_DEFAULT "exit"))
(define printf(_dlsym _RTLD_DEFAULT "printf"))
(define puts(_dlsym _RTLD_DEFAULT "puts"))
(printf "Hello, world: %d %s %p\n" 42 "woohoo!" printf)
(define malloc(_dlsym _RTLD_DEFAULT "malloc"))
(define free(_dlsym _RTLD_DEFAULT "free"))
;; this is the Pepsi runtime function that imports global bindings
(define _import (_dlsym _RTLD_DEFAULT "_libid_import"))
(define _export (_dlsym _RTLD_DEFAULT "_libid_export"))
(define VPU(_import "VPU"))
(define Function(_import "Function"))
(define FunctionVtable[Function _vtable])
(let ()
  [VPU malloc: (lambda (lbs)
((ptr (malloc (+ 4 lbs))))
 (set (long@ ptr) FunctionVtable)
 (+ ptr 4)))]
[[Date new] milliseconds]
(define Date (import "Date"))
(define Date (import "Date"))
[[Date new] milliseconds]
[[Date new] milliseconds]
[[Date new] milliseconds]
[StdOut print: [[Date new] milliseconds]]
[StdOut print: [[Date new] milliseconds]]
[StdOut print: [[Date new] milliseconds]]
[StdOut print: [[Date new] milliseconds]]
[StdOut print: [[Date new] milliseconds]]
[StdOut print: [[Date new] milliseconds]]
[StdOut print: [[Date new] milliseconds]]
[StdOut print: [Time now]]
(define Date (import "Date"))
(define Time (import "Time"))
[StdOut print: [Time now]]
[StdOut print: [Time now]]
[StdOut print: [Time now]]
[StdOut print: [Time now]]
[StdOut print: [[Time now] nanoseconds]]
[StdOut print: [[Time now] nanoseconds]]
[StdOut print: [[Time now] nanoseconds]]
[StdOut print: [[Time now] seconds]]
[StdOut print: [[Time now] seconds]]
[StdOut print: [[Time now] microseconds]]
(define Date (import "Date"))
[StdOut print: [[Date new] microseconds]]
[StdOut print: [[Date new] microseconds]]
[StdOut print: [[Date new] microseconds]]
[StdOut print: [[Date new] microseconds]]
[StdOut print: [[Time now] nanoseconds]]
(define Time (import "Time"))
[StdOut print: [[Time now] nanoseconds]]
[StdOut print: [[Time now] nanoseconds]]
[StdOut print: [[Time now] nanoseconds]]
[StdOut print: [[Time now] nanoseconds]]
[StdOut print: [[Time now] nanoseconds]]
[StdOut print: [[Time now] nanoseconds]]
[StdOut print: [Time millisecondsClockValue]]
(define Time (import "Time"))
[StdOut print: [Time millisecondClockValue]]
[StdOut print: [Time millisecondClockValue]]
[StdOut print: [Time millisecondClockValue]]
d
(define Date (import "Date"))
[StdOut print: [[Time now] seconds]]
(define Date (import "Date"))
[StdOut print: [Date seconds]]
[StdOut print: [Date seconds]]
[StdOut print: [Date seconds]]
[StdOut print: [Date seconds]]
[StdOut print: [Date millseconds]]
(define Date (import "Date"))
[StdOut print: [Date milliseconds]]
[StdOut print: [Date milliseconds]]
[StdOut print: [Date milliseconds]]
[StdOut print: [Date milliseconds]]
q
[StdOut print:[[Date new] milliseconds]]
[StdOut print:[[Date new] milliseconds]]
[StdOut print:[[Date new] milliseconds]]
[StdOut print:[Date milliseconds]]
[StdOut print:[Date milliseconds]]
[StdOut print:[Date milliseconds]]
d
[StdOut print:[[Date new] milliseconds]]
[StdOut print:[[Date new] milliseconds]]
[StdOut print:[[Date new] milliseconds]]
[StdOut print:[[Date new] milliseconds]]
[StdOut print:[[Date new] milliseconds]]
[StdOut print:[[Date new] milliseconds]]
[StdOut print:[[Date new] milliseconds]]
[StdOut print:[[Date new] milliseconds]]
[StdOut print:[[Date new] milliseconds]]
[StdOut print:[[Date new] milliseconds]]
[StdOut print:[[Date new] milliseconds]]
[StdOut print:[[Date new] milliseconds]]
[StdOut print:[[Date new] seconds]]
[StdOut print:[[Date new] seconds]]
[StdOut print:[[Date new] seconds]]
[StdOut print:[[Date new] seconds]]
[StdOut print:[[Date new] seconds]]
[StdOut print:[[Date new] seconds]]
[StdOut print:[[Date new] seconds]]
[StdOut print:[[Date new] seconds]]
[StdOut print:[[Date new] seconds]]
[StdOut print:[Time millisecondClockValue]]
[StdOut print:[Time millisecondClockValue]]
[StdOut print:[Time millisecondClockValue]]
[StdOut print:[Time millisecondClockValue]]
[StdOut print:[Time millisecondClockValue]]
[StdOut print:[Time millisecondClockValue]]
[StdOut print:[Time millisecondClockValue]]
[StdOut print:[Time millisecondClockValue]]
d
[StdOut print:[Time millisecondClockValue]]
[StdOut print:[Time millisecondClockValue]]
[StdOut print:[Time millisecondClockValue]]
[StdOut print:[[Date new] seconds]]
[StdOut print:[[Date new] seconds]]
[StdOut print:[[Date new] seconds]]
[StdOut print:[[Date new] seconds]]
[StdOut print:[[Date new] microseconds]]
[StdOut print:[[Date new] microseconds]]
[StdOut print:[[Date new] microseconds]]
[StdOut print:[[Date new] microseconds]]
[StdOut print:[[Date new] microseconds]]
[StdOut print:[[Date new] microseconds]]
[StdOut print:[[Date new] microseconds]]
[StdOut print:[[Date new] microseconds]]
[StdOut print:[[Date new] milliseconds]]
[StdOut print:[[Date new] milliseconds]]
[StdOut print:[[Date new] milliseconds]]
d
[StdOut print:[[Date new] milliseconds]]
[StdOut print:[[Date new] milliseconds]]
[StdOut print:[[Date new] milliseconds]]
[StdOut print:[[Date new] milliseconds]]
[StdOut print:[[Date new] milliseconds]]
[StdOut print:[[Date new] milliseconds]]
[StdOut print:[[Date new] milliseconds]]
[StdOut print:[[Date new] milliseconds]]
[StdOut print:[[Date new] milliseconds]]
[StdOut print:[[Date new] milliseconds]]
d
