ecraven / r7rs-benchmarks

Benchmarks for various Scheme implementations. Taken with kind permission from the Larceny project, based on the Gabriel and Gambit benchmarks.
275 stars 32 forks source link

Add a few reference implementation in other language. #42

Open kchanqvq opened 5 years ago

kchanqvq commented 5 years ago

Well, I know this might be off-topic, but I really want to see the comparison of some ((Schemes (like chez)) who claim to have comparable performance with static-compiled language like c) with c. I did some unscientific benchmark and chez is slower of 2x ~ 10x, racket is of course even slower.. but they are unscientific. I've seen on Reddit and StackOverflow that people want some benchmark between scheme and c. Adding just c implementations for them of course require works, but not so much. If this is considered helpful maybe I'll start translating some of the benchmarks into c.

ecraven commented 5 years ago

Well, I know this might be off-topic, but I really want to see the comparison of some ((Schemes (like chez)) who claim to have comparable performance with static-compiled language like c) with c. I did some unscientific benchmark and chez is slower of 2x ~ 10x, racket is of course even slower.. but they are unscientific. I've seen on Reddit and StackOverflow that people want some benchmark between scheme and c. Adding just c implementations for them of course require works, but not so much. If this is considered helpful maybe I'll start translating some of the benchmarks into c.

This is definitely not anything I consider urgent or would do myself, however if you provide portable implementations in C, I'll gladly add them to the benchmarks ;)

dermagen commented 5 years ago

Thanks for a very useful benchmark collection. I would like to suggest adding yet another implementation to the list, #F. It is a Scheme->C compiler with R7RS-compatible runtime/library (LibL), and in my tests it can run to completion 53 out of 57 benchmarks with mid-range performance scores. If you are interested, I can help with the necessary wrapping.

ecraven commented 4 months ago

I can try to add it, but it would need to be packaged for archlinux

dermagen commented 4 months ago

I will work on this, thanks.

In the meanwhile, may I ask you to add my interpreter, Skint, to the benchmarks? It runs all non-bignum tests, and performs quite well for a simple interpreter, especially on fp benchmarks.

It does not have archlinux package yet, but it is quite easy to build from github:

git clone https://github.com/false-schemers/skint.git
cd skint
make
make test
sudo make install

I have included the prelude and postlude files in the /misc subdirectory; changes to the bench script are straightforward:

-146,0 +146,1 @@
+    SKINT=${SKINT:-"skint"}

@@ -200,0 +201,1 @@
+  skint            for Skint

@@ -904,0 +906,14 @@
+
+# -----------------------------------------------------------------------------
+# Definitions specific to Skint
+
+skint_comp ()
+{
+    :
+}
+
+skint_exec ()
+{
+    time "${SKINT}" "$1" < "$2"
+}
+

@@ -1328,0 +1344,10 @@
+        skint)  NAME='Skint'
+                COMP=skint_comp
+                EXEC=skint_exec
+                COMPOPTS=""
+                EXTENSION="scm"
+                EXTENSIONCOMP="scm"
+                COMPCOMMANDS=""
+                EXECCOMMANDS=""
+                ;;
+

Thanks! -S