[e-lang] Ecru 0.1.2 released
Allen Short
washort at divmod.com
Sat Jul 26 15:15:27 CDT 2008
I've released a new version of Ecru, available here:
https://launchpad.net/ecru/+download
This version makes less use of Python's ctypes FFI for the REPL and so should be more stable in interactive use. I've also added some missing methods and so this version is able to run most of kpreid's E benchmarks (as described in this message: http://www.eros-os.org/pipermail/e-lang/2007-November/012362.html). Equality comparison of non-ConstList Selfless objects is still missing, so I've changed the comparison tests to use lists instead of maps. Here are the benchmark results:
sameTreesStatic 2^3 348 us [8192 131072]
sameTreesStatic 2^8 15844 us [128 262144]
sameTreesStatic 10^2 701 us [4096 262144]
sameTreesStatic 100^1 71 us [32768 131072]
listAccumWith 100 2012 us [1024 131072]
listAccumWith 1000 92610 us [32 131072]
listAccumWith 10000 3752485 us [4 262144]
listAccumFlex 100 1982 us [1024 131072]
listAccumFlex 1000 23688 us [128 131072]
listAccumFlex 10000 249485 us [16 131072]
setAccumWith 100 2914 us [1024 262144]
setAccumWith 1000 63485 us [32 262144]
setAccumWith 10000 6746735 us [4 131072]
setAccumFlex 100 2892 us [1024 131072]
setAccumFlex 1000 32172 us [64 131072]
setAccumFlex 10000 2002985 us [4 131072]
mapAccumWith 100 5727 us [512 262144]
mapAccumWith 1000 250235 us [8 131072]
mapAccumWith 10000 25233735 us [4 131072]
mapAccumFlex 100 2949 us [1024 262144]
mapAccumFlex 1000 125364 us [16 262144]
mapAccumFlex 10000 13742985 us [4 131072]
listRun1 10 7 us [131072 131072]
listRun1 100 1 us [65536 131072]
listRun1 1000 76 us [32768 131072]
listRun2 10 0 us [131072 262144]
listRun2 100 0 us [131072 262144]
listRun2 1000 16 us [65536 262144]
listIterate 10 77 us [32768 262144]
listIterate 100 981 us [2048 131072]
listIterate 1000 7906 us [256 262144]
listDiverge 10 -4 us [262144 131072]
listDiverge 100 15 us [131072 262144]
listDiverge 1000 48 us [32768 262144]
listDivergeAnyish 10 Failed: <problem Unknown method: [0, ..., 9].diverge/1>
listDivergeAnyish 100 Failed: <problem Unknown method: [0, ..., 99].diverge/1>
listDivergeAnyish 1000 Failed: <problem Unknown method: [0, .., 999].diverge/1>
listDivergeFloat 10 Failed: <problem Unknown method: [0, ..., 9].diverge/1>
listDivergeFloat 100 Failed: <problem Unknown method: [0, .., 99].diverge/1>
listDivergeFloat 1000 Failed: <problem Unknown method: [0, ...,999].diverge/1>
callMapSimple 10 -7 us [131072 131072]
callMapSimple 100 7 us [131072 131072]
callMapSimple 1000 4 us [131072 262144]
callMapSugar 10 11 us [131072 262144]
callMapSugar 100 222 us [8192 131072]
callMapSugar 1000 23195 us [128 131072]
callHost 0 us [131072 131072]
callE 0 us [131072 262144]
makeAndCallMapSimple 22 us [65536 131072]
makeAndCallMapSugar 30 us [65536 262144]
For reference, here are my results for E-on-Java 0.9.1:
sameTreesStatic 2^3 74 us [32768 131072]
sameTreesStatic 2^8 2519 us [1024 131072]
sameTreesStatic 10^2 166 us [16384 131072]
sameTreesStatic 100^1 75 us [32768 131072]
listAccumWith 100 6226 us [512 131072]
listAccumWith 1000 84629 us [32 131072]
listAccumWith 10000 3792223 us [4 131072]
listAccumFlex 100 5096 us [512 131072]
listAccumFlex 1000 46410 us [64 131072]
listAccumFlex 10000 470973 us [8 131072]
setAccumWith 100 8305 us [256 131072]
setAccumWith 1000 157473 us [16 131072]
setAccumWith 10000 25364224 us [4 131072]
setAccumFlex 100 6022 us [512 131072]
setAccumFlex 1000 54677 us [64 131072]
setAccumFlex 10000 571473 us [4 131072]
mapAccumWith 100 8184 us [256 131072]
mapAccumWith 1000 155035 us [16 131072]
mapAccumWith 10000 24751223 us [4 131072]
mapAccumFlex 100 6055 us [512 131072]
mapAccumFlex 1000 55223 us [64 131072]
mapAccumFlex 10000 581473 us [4 131072]
listRun1 10 20 us [65536 131072]
listRun1 100 20 us [65536 131072]
listRun1 1000 52 us [32768 131072]
listRun2 10 37 us [32768 131072]
listRun2 100 37 us [32768 131072]
listRun2 1000 43 us [32768 131072]
listIterate 10 326 us [8192 131072]
listIterate 100 1300 us [2048 131072]
listIterate 1000 10918 us [256 131072]
listDiverge 10 9 us [65536 131072]
listDiverge 100 9 us [65536 131072]
listDiverge 1000 21 us [65536 131072]
listDivergeAnyish 10 Failed: problem: <ClassCastException: EImplByProxy doesn't coerce to a Class>
listDivergeAnyish 100 Failed: problem: <ClassCastException: EImplByProxy doesn't coerce to a Class>
listDivergeAnyish 1000 Failed: problem: <ClassCastException: EImplByProxy doesn't coerce to a Class>
listDivergeFloat 10 812 us [4096 131072]
listDivergeFloat 100 917 us [4096 131072]
listDivergeFloat 1000 1651 us [2048 131072]
callMapSimple 10 219 us [8192 131072]
callMapSimple 100 220 us [8192 131072]
callMapSimple 1000 218 us [8192 131072]
callMapSugar 10 64 us [32768 131072]
callMapSugar 100 440 us [8192 131072]
callMapSugar 1000 4306 us [512 65536]
callHost 5 us [65536 131072]
callE 6 us [65536 131072]
makeAndCallMapSimple 778 us [4096 131072]
makeAndCallMapSugar 950 us [2048 131072]
More information about the e-lang
mailing list