guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Benchmarking queries


From: Neil Jerram
Subject: Benchmarking queries
Date: Sat, 19 Sep 2009 01:59:09 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux)

I had to make some changes to the benchmark code, to persuade
benchmark-guile to run to completion within a reasonable time.  Full
patch is below for review; there are 3 particular points/queries.

1. The files with an Emacs "coding: latin-1" comment can only be
compiled if I add an extra comment "coding: latin1".  In other words it
seems that Guile (=> libunistring) only understands latin1 without the
hyphen.  Is this expected, and is there anything we can do about it?

2. I had to divide the number of iterations for most of the read.bm
benchmarks by 10.  Has the reader become massively slower than when
read.bm was first written?

3. In `(defmacro benchmark ...)' in benchmark/lib.scm I had to change
`,run-benchmark' to `run-benchmark'.  This makes sense, and the `,xxx'
trick was always a bit of a hack (for when we did not have fully
hygienic macros) - but I'm wondering if there is now any nice way of
writing a defmacro like this - i.e. which uses a procedure defined in
the same module - that will work for both 1.8 and 1.9/2.0 Guile.

One solution is to export the procedure.

Another could be to use eval-case/eval-when to evaluate the required
definition during compilation, or to call defmacro differently at
compile and load time.  But I see that we only have eval-case in 1.8,
and only eval-when in 1.9.  Should we add eval-case to 1.9, so that we
have a mechanism for addressing cases like this where the 1.8 and
1.9/2.0 code has to be different?

Regards,
      Neil

Attachment: 0001-Benchmarking.patch
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]