From cf90c1feb3d649842f0c641ecc882925e065ee56 Mon Sep 17 00:00:00 2001 From: Irene Knapp Date: Mon, 5 Oct 2026 21:44:10 -0700 Subject: document the improved build time Force-Push: yes Change-Id: I0320e0238edd5855bcfe75affd4cecd40c060265 --- README.txt | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/README.txt b/README.txt index 78623c5..388f85f 100644 --- a/README.txt +++ b/README.txt @@ -390,18 +390,11 @@ hex-dump version of Evocation, do: evoke.hex through ./hex will give a binary that's byte-for-byte identical to evoke. - This does take several minutes to run (as many as ten, as of this writing), -but the cause is known: The metadata output buffer is stored in a way that -requires linear traversal for several operations. This dominates the runtime; -when it is fixed, the largest remaining cost will be the use of linked lists -rather than hash tables for the various dictionaries. These are both tasks to -do in the near future, now that bootstrapping is complete. - - Nearly all of this runtime is attributable to the log-load transform; if -you're working on something that doesn't involve the log-load transform, you -may find it useful to temporarily comment out the call to log-load-transform -in compilation/execution.e, replacing it with two invocations of drop. This -will not produce a working compiler, but it will finish faster. + This does take a little while to run (as much as two minutes, as of this +writing). The largest cost is most likely the use of linked lists rather than +hash tables for the various dictionaries, but the next step is to invent some +sort of measurement methodology to confirm that. This is mentioned here in +order to motivate discussion of the problem. Now get debugging! :) -- cgit 1.4.1