[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