
@samth is this the binomial heap benchmark from pycket’s figure 8 (oopsla 2017)? I’m running <collapsible>/racket binomial-heap-tests.rkt
and its taking a few minutes (which makes sense, b/c collapsible doesn’t collapse structs yet)

the OOPSLA artifact should have it, but it’s originally from Robby’s paper a while back

where is the oopsla artifact?

I think on the DL

ok … I think I found it, there’s a 1GB zipfile on the dl page

yeah it’s not well-labeled


it’s also in the pycket-benchmarks repo

that paper where I got the binomial I sent you, but seems like its taking too long

taking too long in what system/configuration/etc?

system = collapsible, configuration = N/A

I unzipped the tarfile here, and since Racket took ~40 seconds in the Pycket paper, I expected collapsible to be around that

but it’s been over 10 minutes

how fast is it in regular racket?

I haven’t tried yet

do you know where binomial is in the pycket-bench repo?


@dan has joined the channel

hm, I don’t think I’ve found the right code

that binomail-heap-test.rkt
is the same file I had before, and its very slow with + without collapsible

I let it run for a few minutes on the 6.12 baseline, then killed it

there’s a file pff.rkt
in the same pycket-bench folder, but that’s slow too

did you try running the script mentioned in the README?


yeah

hmm the pycket artifact has a folder pycket-bench/ChaperoneBenchmarks/
but its empty

I’ll try tunning ./run-all

I mean, I can’t find anything “binomial” in the artifact

find . -name "*binomial*"
… ag "binomial"
… nothing

oh .. its a git submodule

./run-all
has been running a few minutes, but hasn’t printed anything

the oopsla paper used racket 6.6, right?

yes

ok, I’m getting the same results on 6.6

does the plain racket (no contracts) one work?

no

well, hang on .. you mean the no-contracts mode in the benchmark

all I know is I haven’t found a way of running the code that prints any output … maybe I can comment things out to only try the no contracts mode

it should be pretty easy to figure out the command line from that shell script

(I don’t see the data for Fig 8 in the pycket artifact either, just timings for the gradual typing benchmarks)

this is probably an infinite loop where the contracts are defined; maybe missing recursive-contract
?

I note that the last commit in the struct
folder is “remove erroneous code”

where do you see that?

in the pycket-benchmarks
log

[samth@huor:~/sw/pycket-benchmarks/struct (master) plt] git log —stat –1 commit 9673ec0e6e87bdc4dfbc4d3b3e0022e47eeb586c (HEAD -> master, origin/master, origin/HEAD) Author: Spenser Bauman <sabauma@gmail.com> Date: Tue Mar 8 00:05:16 2016 –0500
Remove erroneous code
struct/binomial-heap-contract.rkt | 39 ————————————— struct/pff.rkt | 2 +- 2 files changed, 1 insertion(+), 40 deletions(-)

ok, that commit isn’t in pycket/pycket-bench
, the submodule isn’t up-to-date

ah

[samth@huor:~/sw/pycket-benchmarks/struct (master) plt] r pff.rkt koala-face.trace none 0 running koala-face.trace.time.0 none [samth@huor:~/sw/pycket-benchmarks/struct (master) plt] r pff.rkt koala-face.trace none 1 running koala-face.trace.time.1 none [samth@huor:~/sw/pycket-benchmarks/struct (master) plt] r pff.rkt koala-face.trace none 2 running koala-face.trace.time.2 none

my guess is that some change to the contract system broke that code a long time ago

which is sad but we were less careful about backwards compatibility back then

unfortunately something seems wrong with pycket’s command line handling for that code

so I can’t run that yet

can I send you a simpler version in a few minutes? a folder where you can unpack & run pycket-c main.rkt
and see a time

sure

ok. Dan wants something similar to see how collapsible looks if the structs are replaced with vectors


note that that code is tricky because it has a bunch of old contract system features

opt/c
in particular

@samth I think this should run on pycket, if you unzip and run pycket-c main.rkt
(haven’t successfully tested it myself yet b/c I need to pull the new pycket commits)

sadly that seems to break for some reason

looking now
