[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gcl-devel] Re: a *very* sad 2.7.0 experience
From: |
Camm Maguire |
Subject: |
[Gcl-devel] Re: a *very* sad 2.7.0 experience |
Date: |
16 May 2007 11:54:22 -0400 |
User-agent: |
Gnus/5.09 (Gnus v5.9.0) Emacs/21.2 |
Greetings!
OK, have looked into nqthm performance a bit.
As for compile times, loading compile.lisp with
si::*disable-recompile* at t and confining the recompilation to one
step at save.lisp load reduces the time down to about 3 min. By
default, I get 8 min. 2.6.7 gives 1 min. One problem here is that
there appear to be different strategies that are preferred in
different circumstaces. When compiling and loading a single file, one
likely wants what we presently have -- iterate the recompilation all
the way through gcc and reload to get an up-to-date image. When
building a "system", one likely wants to defer recompilation till the
end, and then only iterate over pass1 to discover the signatures,
after which the original sources files would be recompiled, ensuring
that gcc gets invoked on each recompiled function once. The question
is whether recompiled original source files should be reloaded --
there could be uncompiled top-level forms thereing that should only be
executed once. Some discussion and brainstorming here on the desired
behavior would be most appreciated.
As for the regression:
1) 2.6.7 nqthm proclaims with bugs -- tests 43min
2) 2.6.7 nqthm no proclaims -- tests 47min
3) 2.7.0 auto-proclaim -- tests 48min
4) 2.7.0 disable-recompile, no proclaim -- tests 58min
In sum, it appears as we're getting all the proclaiming benefit, which
for some reason is marginal in this case, but that 2.6.7 is winning
elsewhere. My suspicion is gc -- with 2 word cons, we have more cons
marking overhead. Here is a little gprof on piton events:
Successfully finished piton.events.
T
>Flat profile:
Each sample counts as 0.01 seconds.
% cumulative self self total
time seconds seconds calls ms/call ms/call name
25.12 80.89 80.89 1890962334 0.00 0.00 equal1
12.30 120.50 39.61 20301834 0.00 0.00 mark_cons
7.45 144.50 24.00 428263705 0.00 0.00 gethash
3.69 156.40 11.89 31852545 0.00 0.00
LI97__TYPE_SET___t1_camm_debian_gcl_nqt_code_s_z
3.57 167.91 11.51 394037414 0.00 0.00 mark_object
3.05 177.72 9.81 257 38.17 237.35 GBC
2.38 185.37 7.66 11412278 0.00 0.00
LI55__FORM_COUNT_EVG___t1_camm_debian_gcl_nqt_code_e_m
1.33 189.66 4.29 25122643 0.00 0.00
LI120__DUMB_OCCUR___t1_camm_debian_gcl_nqt_code_b_d
1.25 193.69 4.04 6713 0.60 1.18
LI4__CLEAR_COMPILER_PROPERTIES__callhash
...
granularity: each sample hit covers 4 byte(s) for 0.05% of 20.03 seconds
index % time self children called name
0.02 0.09 10/257 alloc_relblock [61]
0.06 0.32 64/257 alloc_object [32]
1.01 5.28 183/257 make_cons1 [2]
[1] 33.9 1.09 5.69 257 GBC [1]
0.01 5.69 257/257 mark_phase [5]
0.00 0.00 257/39064830 symbol_value [55]
0.00 0.00 10/5665 alloc_page [1082]
-----------------------------------------------
0.00 0.00 1008/5502 <hicore> (1374)
0.00 0.00 1/5502
LI125__LISTABLE_EVG_PAIRS___t1_camm_debian_gcl_nqt_code_e_m [752]
0.00 0.00 1/5502
LI116__UNTRANSLATE_QUOTE___t1_camm_debian_gcl_nqt_code_s_z [697]
0.00 0.00 2/5502
LI26__CAR_CDRP___t1_camm_debian_gcl_nqt_code_b_d [661]
0.00 0.00 31/5502
LI112__UNTRANSLATE___t1_camm_debian_gcl_nqt_code_s_z <cycle 5> [417]
0.00 0.00 3/5502
LI68__SUB_PAIR___t1_camm_debian_gcl_nqt_basis [619]
0.00 0.00 1/5502
LI15__DEFN_FN___t1_camm_debian_gcl_nqt_events <cycle 1> [284]
0.00 0.00 1/5502
LI78__ADD_TYPE_SET_LEMMAS___t1_camm_debian_gcl_nqt_code_1_a <cycle 1> [616]
0.00 0.00 1/5502
LI72__ADD_SHELL0___t1_camm_debian_gcl_nqt_code_1_a <cycle 1> [541]
0.00 0.00 1/5502
LI70__ADD_REWRITE_LEMMA___t1_camm_debian_gcl_nqt_code_1_a <cycle 1> [289]
0.00 0.00 1/5502
LI102__DELETE_TAUTOLOGIES___t1_camm_debian_gcl_nqt_code_b_d <cycle 1> [609]
0.00 0.00 1/5502
LI45__CHK_ACCEPTABLE_HINTS___t1_camm_debian_gcl_nqt_code_b_d <cycle 1> [513]
0.00 0.00 1/5502
LI25__CANCEL1___t1_camm_debian_gcl_nqt_code_b_d [233]
0.00 0.00 1/5502
LI48__CHK_ACCEPTABLE_REWRITE_LEMMA___t1_camm_debian_gcl_nqt_code_b_d <cycle 1>
[244]
0.00 0.00 1/5502
LI38__CHK_ACCEPTABLE_DEFN___t1_camm_debian_gcl_nqt_code_b_d <cycle 1> [363]
0.00 0.00 1/5502
LI31__EXTRACT_DEPENDENCIES_FROM_HINTS___t1_camm_debian_gcl_nqt_code_e_m [566]
0.00 0.00 1/5502
LI134__MAKE_REWRITE_RULES___t1_camm_debian_gcl_nqt_code_e_m <cycle 1> [527]
0.00 0.00 1/5502
LI61__FREE_VAR_CHK___t1_camm_debian_gcl_nqt_code_e_m <cycle 1> [540]
0.00 0.00 1/5502
LI63__SUBST_EXPR1___t1_camm_debian_gcl_nqt_code_s_z <cycle 1> [299]
0.00 0.00 1/5502
LI4__SCRUNCH___t1_camm_debian_gcl_nqt_code_s_z [611]
0.00 0.00 1/5502
LI4__GET_SCHEMA_MEASURE_RELATION___t1_camm_debian_gcl_nqt_io <cycle 1> [433]
0.00 0.00 1/5502 quick_call_sfun <cycle 1> [188]
0.00 0.00 1/5502
LI15__FUNCTION_ARG_TYPES__cmpenv <cycle 1> [617]
0.00 0.00 2/5502
LI65__NCONC1___t1_camm_debian_gcl_nqt_basis [538]
0.00 0.00 2/5502 LI59__MAKE_LIST__recompile
[340]
0.00 0.00 2/5502
LI95__ALMOST_SUBSUMES_LOOP___t1_camm_debian_gcl_nqt_code_1_a [72]
0.00 0.00 2/5502
LI124__ZERO_POLY___t1_camm_debian_gcl_nqt_code_s_z [327]
0.00 0.00 3/5502 intern [200]
0.00 0.00 3/5502
LI131__MAKE_EVENT___t1_camm_debian_gcl_nqt_code_e_m <cycle 1> [476]
0.00 0.00 3/5502
LI48__FLATTEN_ANDS_IN_LIT___t1_camm_debian_gcl_nqt_code_e_m [390]
0.00 0.00 3/5502
LI87__IDATE___t1_camm_debian_gcl_nqt_code_e_m <cycle 1> [364]
0.00 0.00 3/5502 Lsingle_quote_reader <cycle 1>
[477]
0.00 0.00 4/5502
LI103__DEPEND___t1_camm_debian_gcl_nqt_code_b_d <cycle 1> [283]
0.00 0.00 4/5502
LI110__UNPRETTYIFY___t1_camm_debian_gcl_nqt_code_s_z [307]
0.00 0.00 5/5502
LI75__ADD_TERMS_TO_POT_LST___t1_camm_debian_gcl_nqt_code_1_a <cycle 1> [211]
0.00 0.00 5/5502
LI28__EXTEND_ALIST___t1_camm_debian_gcl_nqt_code_e_m <cycle 1> [419]
0.00 0.00 5/5502
LI23__SIMPLIFY_CLAUSE___t1_camm_debian_gcl_nqt_code_s_z <cycle 1> [165]
0.00 0.00 5/5502 funcall <cycle 1> [152]
0.00 0.00 6/5502
LI58__DEFEVENT_APPLY___t1_camm_debian_gcl_nqt_basis [330]
0.00 0.00 6/5502
LI54__ADD_EQUATIONS_TO_POT_LST___t1_camm_debian_gcl_nqt_code_1_a <cycle 1> [183]
0.00 0.00 6/5502
LI61__CLAUSIFY___t1_camm_debian_gcl_nqt_code_b_d <cycle 1> [336]
0.00 0.00 6/5502
LI12__SET_STATUS1___t1_camm_debian_gcl_nqt_code_s_z <cycle 1> [213]
0.00 0.00 6/5502 LI1__ADD_HASH__callhash <cycle
1> [112]
0.00 0.00 7/5502
LI52__ADD_EQUATION___t1_camm_debian_gcl_nqt_code_1_a <cycle 1> [117]
0.00 0.00 7/5502
LI53__ADD_EQUATIONS___t1_camm_debian_gcl_nqt_code_1_a <cycle 1> [302]
0.00 0.00 7/5502
LI81__CONJOIN_CLAUSE_SETS___t1_camm_debian_gcl_nqt_code_b_d [329]
0.00 0.00 7/5502
LI6__IO1___t1_camm_debian_gcl_nqt_io <cycle 1> [174]
0.00 0.00 8/5502
LI62__ADD_LINEAR_VARIABLE1___t1_camm_debian_gcl_nqt_code_1_a [163]
0.00 0.00 8/5502 LI74__UNIQUE_SIGS__cmptype
<cycle 1> [346]
0.00 0.00 9/5502
LI27__SIMPLIFY_CLAUSE1___t1_camm_debian_gcl_nqt_code_s_z <cycle 1> [43]
0.00 0.00 10/5502
LI46__STRIP_BRANCHES___t1_camm_debian_gcl_nqt_code_s_z <cycle 1> [318]
0.00 0.00 12/5502
LI124__LINEARIZE___t1_camm_debian_gcl_nqt_code_e_m <cycle 1> [100]
0.00 0.00 12/5502 LI73__EXPORT_TYPE__cmptype
<cycle 1> [294]
0.00 0.00 21/5502 putf [300]
0.00 0.00 13/5502 Llist [310]
0.00 0.00 14/5502
LI64__SUBST_VAR___t1_camm_debian_gcl_nqt_code_s_z <cycle 1> [314]
0.00 0.00 15/5502
LI47__STRIP_TERM___t1_camm_debian_gcl_nqt_code_s_z <cycle 1> [274]
0.00 0.00 15/5502 Lleft_parenthesis_reader
<cycle 1> [279]
0.00 0.00 16/5502
LI12__PEVAL___t1_camm_debian_gcl_nqt_io <cycle 1> [251]
0.00 0.00 18/5502
LI88__TRANSLATE___t1_camm_debian_gcl_nqt_code_s_z <cycle 1> [238]
0.00 0.00 20/5502
LI56__SUB_PAIR_VAR___t1_camm_debian_gcl_nqt_code_s_z <cycle 1> [280]
0.00 0.00 23/5502
LI73__ADD_SUB_FACT___t1_camm_debian_gcl_nqt_code_1_a <cycle 1> [219]
0.00 0.01 28/5502
LI26__EXPAND_BOOT_STRAP_NON_REC_FNS___t1_camm_debian_gcl_nqt_code_e_m <cycle 1>
[246]
0.00 0.01 3/5502
LI109__UNION_EQUAL___t1_camm_debian_gcl_nqt_code_s_z [202]
0.00 0.01 1/5502
LI94__DEFN_ASSUME_TRUE_FALSE___t1_camm_debian_gcl_nqt_code_b_d <cycle 2> [127]
0.00 0.01 1/5502
LI49__FLESH_OUT_IND_PRIN___t1_camm_debian_gcl_nqt_code_e_m [111]
0.00 0.01 1/5502
LI24__SIMPLIFY_CLAUSE_MAXIMALLY___t1_camm_debian_gcl_nqt_code_s_z [222]
0.00 0.01 1/5502
LI93__TRIVIAL_POLYP1___t1_camm_debian_gcl_nqt_code_s_z [84]
0.00 0.02 2/5502
LI27__EXPAND_NON_REC_FNS___t1_camm_debian_gcl_nqt_code_e_m [150]
0.00 0.02 2/5502
LI78__TERMINATION_MACHINE___t1_camm_debian_gcl_nqt_code_s_z [115]
0.00 0.02 86/5502
LI33__SET_STATUS_FN___t1_camm_debian_gcl_nqt_events <cycle 1> [160]
0.00 0.02 111/5502
LI52__SUBLIS_VAR___t1_camm_debian_gcl_nqt_code_s_z <cycle 1> [109]
0.00 0.02 62/5502
LI76__ADD_TO_SET___t1_camm_debian_gcl_nqt_code_1_a [142]
0.00 0.02 479/5502
LI107__ASSUME_TRUE_FALSE___t1_camm_debian_gcl_nqt_code_1_a <cycle 4> [64]
0.00 0.02 3/5502
LI35__CDR_ALL___t1_camm_debian_gcl_nqt_code_b_d [144]
0.00 0.02 47/5502 listA [134]
0.00 0.03 4/5502
LI68__COMMON_SWEEP___t1_camm_debian_gcl_nqt_code_b_d [108]
0.00 0.03 4/5502
LI107__INTRODUCE_ANDS___t1_camm_debian_gcl_nqt_code_e_m [123]
0.00 0.03 4/5502
LI3__PPR1___t1_camm_debian_gcl_nqt_ppr [42]
0.00 0.04 22/5502
LI9__SET_DIFF___t1_camm_debian_gcl_nqt_code_s_z [101]
0.00 0.04 91/5502
LI108__UNION_EQ___t1_camm_debian_gcl_nqt_code_s_z [106]
0.00 0.05 6/5502
LI97__DEFN_TYPE_SET___t1_camm_debian_gcl_nqt_code_b_d <cycle 2> [75]
0.00 0.06 7/5502
LI108__INTRODUCE_LISTS___t1_camm_debian_gcl_nqt_code_e_m [92]
0.00 0.06 7/5502
LI2__PPRPACK___t1_camm_debian_gcl_nqt_ppr [80]
0.00 0.06 338/5502
LI84__CONS_TERM___t1_camm_debian_gcl_nqt_code_b_d <cycle 1> [65]
0.00 0.08 12/5502
LI86__ALL_PICKS___t1_camm_debian_gcl_nqt_code_1_a [70]
0.00 0.09 458/5502
LI4__CLEAR_COMPILER_PROPERTIES__callhash <cycle 1> [48]
0.00 0.13 875/5502
LI136__MAKE_DISABLEDP_HASH_FROM_GLOBAL_DATA___t1_camm_debian_gcl_nqt_code_e_m
[51]
0.00 0.16 20/5502
LI44__STORE_DEFINITION___t1_camm_debian_gcl_nqt_code_s_z [50]
0.00 0.18 561/5502 list [46]
0.00 0.21 26/5502
LI104__INTERESTING_SUBTERMS___t1_camm_debian_gcl_nqt_code_e_m [47]
0.00 0.22 175/5502 append [41]
0.00 0.23 34/5502
LI24__EXPAND_ABBREVIATIONS___t1_camm_debian_gcl_nqt_code_e_m [6]
0.00 0.30 38/5502
LI85__ALL_PATHS___t1_camm_debian_gcl_nqt_code_1_a [29]
0.00 4.04 607/5502
LI89__ALL_VARS_BAG1___t1_camm_debian_gcl_nqt_code_1_a [12]
[2] 31.4 0.00 6.29 5502 make_cons1 [2]
1.01 5.28 183/257 GBC [1]
0.00 0.00 5177/5654 add_page_to_freelist [381]
0.00 0.00 5177/5665 alloc_page [1082]
-----------------------------------------------
0.00 0.00 2136/2136 <hicore> (1374)
[3] 30.3 0.00 6.07 2136
LI62__CLAUSIFY_INPUT___t1_camm_debian_gcl_nqt_code_b_d [3]
0.01 6.05 4592/4592
LI63__CLAUSIFY_INPUT1___t1_camm_debian_gcl_nqt_code_b_d [4]
0.00 0.01 1988/135686
LI111__DISJOIN_CLAUSES___t1_camm_debian_gcl_nqt_code_b_d [54]
0.00 0.00 2456/2733354
LI119__DUMB_NEGATE_LIT___t1_camm_debian_gcl_nqt_code_b_d [49]
-----------------------------------------------
57030
LI63__CLAUSIFY_INPUT1___t1_camm_debian_gcl_nqt_code_b_d [4]
0.01 6.05 4592/4592
LI62__CLAUSIFY_INPUT___t1_camm_debian_gcl_nqt_code_b_d [3]
[4] 30.3 0.01 6.05 4592+57030
LI63__CLAUSIFY_INPUT1___t1_camm_debian_gcl_nqt_code_b_d [4]
0.38 5.31 11455/13591
LI24__EXPAND_ABBREVIATIONS___t1_camm_debian_gcl_nqt_code_e_m [6]
0.06 0.15 36168/36168
LI25__EXPAND_AND_ORS___t1_camm_debian_gcl_nqt_code_e_m [44]
0.00 0.13 26527/135686
LI111__DISJOIN_CLAUSES___t1_camm_debian_gcl_nqt_code_b_d [54]
0.00 0.01 20860/2733354
LI119__DUMB_NEGATE_LIT___t1_camm_debian_gcl_nqt_code_b_d [49]
0.01 0.00 134182/1890962334 equal1 [35]
0.00 0.00 73077/1120487173 data_start [953]
57030
LI63__CLAUSIFY_INPUT1___t1_camm_debian_gcl_nqt_code_b_d [4]
-----------------------------------------------
0.01 5.69 257/257 GBC [1]
[5] 28.4 0.01 5.69 257 mark_phase [5]
5.67 0.00 13713042/13744754 mark_object <cycle 7> [19]
0.00 0.01 514/771 mark_stack_carefully [182]
0.00 0.00 257/257 mark_c_stack [273]
0.00 0.00 257/257 clear_stack [1253]
-----------------------------------------------
734219
LI24__EXPAND_ABBREVIATIONS___t1_camm_debian_gcl_nqt_code_e_m [6]
0.00 0.00 2136/13591 <hicore> (1374)
0.38 5.31 11455/13591
LI63__CLAUSIFY_INPUT1___t1_camm_debian_gcl_nqt_code_b_d [4]
[6] 28.4 0.38 5.31 13591+734219
LI24__EXPAND_ABBREVIATIONS___t1_camm_debian_gcl_nqt_code_e_m [6]
0.00 4.18 842969/843501
LI88__ALL_VARS_BAG___t1_camm_debian_gcl_nqt_code_1_a [11]
0.47 0.01 9970631/428263705 gethash [24]
0.08 0.26 305849/61852301
LI84__CONS_TERM___t1_camm_debian_gcl_nqt_code_b_d <cycle 1> [65]
0.00 0.23 34/5502 make_cons1 [2]
0.03 0.03 917166/917166
LI43__ABBREVIATIONP___t1_camm_debian_gcl_nqt_code_1_a [89]
0.02 0.00 1762388/66743203
LI154__META_LEMMAP___t1_camm_debian_gcl_nqt_code_e_m [90]
0.00 0.00 6088/945649
LI76__ADD_TO_SET___t1_camm_debian_gcl_nqt_code_1_a [142]
0.00 0.00 1091733/1120487173 data_start [953]
734219
LI24__EXPAND_ABBREVIATIONS___t1_camm_debian_gcl_nqt_code_e_m [6]
-----------------------------------------------
[7] 28.4 5.69 0.00 13744754+400594494 <cycle 7 as a whole> [7]
1.28 0.00 394037414+189709394 mark_object <cycle 7> [19]
-----------------------------------------------
0.00 0.00 19334/19334 <hicore> (1374)
[8] 22.2 0.01 4.43 19334
LI1__PPRIND___t1_camm_debian_gcl_nqt_ppr [8]
0.42 3.79 19113/19113
LI4__PPR2___t1_camm_debian_gcl_nqt_ppr <cycle 6> [13]
0.12 0.10 19113/19113
LI3__PPR1___t1_camm_debian_gcl_nqt_ppr [42]
0.00 0.00 19113/2985900
LI110__IPOSITION___t1_camm_debian_gcl_nqt_code_e_m [276]
0.00 0.00 221/604654
LI111__IPRINC___t1_camm_debian_gcl_nqt_code_e_m [161]
0.00 0.00 19334/1120487173 data_start [953]
-----------------------------------------------
145629938 mark_cons <cycle 7> [9]
20301834 mark_object <cycle 7> [19]
[9] 22.0 4.41 0.00 20301834+145629938 mark_cons <cycle 7> [9]
380292660 mark_object <cycle 7> [19]
145629938 mark_cons <cycle 7> [9]
=============================================================================
(I think you asked about using gprof once -- if interested I can show
you how to build a profiling nqthm image.)
GCL is also missing two fast-links which are only attempted in the
ansi image, as seen by running with si::*fast-link-warnings*:
Warning: arg/val mismatch in call to WRAPPER-OF prevents fast linking: 1 1/32
0, recompile caller
Warning: arg/val mismatch in call to ERROR-SET prevents fast linking: 1025
513/32 0, recompile caller
These are invoked repeatedly, so may contribute somewhat. These are
missed in the GCL build itself, and will be fixed at somepoint. You
can see the elided recompiles at the end of the GCL build -- "warning
eliminating recompiles ...". The idea is that we iterate over
recompilation until done, and then lay the functions down into
gcl_recompile*.lsp files, compile once more and link at the C level in
ld. When initializing in order, we should get an empty
*needs-recompile* list, but a few entries remain at present.
Separately, I've just checked in some important optimizations, which
as usual may or may not affect any particulay piece of code.
1) infer types outside of an if with one branch of no return type:
(lambda (x) (block foo (when x (return-from foo nil)) (not x)))
(not x) is now known as t.
2) generic number comparison and addition/subtraction acceleration:
(push '((t t) boolean #.(flags rfa)"@01;({int _t=0;if
(is_imm_fixnum(#0) && is_imm_fixnum(#1)) {if ((#0)<(#1)) _t=1;} else {if
(number_compare(#0,#1)<0) _t=1;} _t;})")
(get '< 'inline-always))
calls to number_compare, number_plus, number_minus, and
number_negate are ommitted at runtime when immediate fixnum
arguments permit.
(defun foo (x y) (let ((z 0)) (dotimes (i 10000000) (setq z (< x
y)))))
(compile 'foo)
(time (foo 10 11))
Am also working on generic numerical functions using the new
auto-inline feature as described in a subsequent post.
Take care,
Robert Boyer <address@hidden> writes:
> > Would you entertain tiny modifications to the
> > makefile and or compile.lisp/save.lisp files to save
> > compile-time here?
>
> I doubt doing Nqthm-related things is worth a moment of
> your time. As far as I know, I am the only user of it
> these days, and that rarely. But for me, it has the
> advantage of being 'stable', unchanged since 1995, one
> might say even 'dead', so that it is a fixed reference
> point from which to evaluate various Lisp matters, like
> the Gabriel benchmarks. But I would certainly
> appreciate any advice you would care to give on such
> matters.
>
> So far, I haven't been able to make sense of this one
> compiler warning:
>
> Mutual recursion detected:
> (PEVAL PRINEVAL1 PRINEVAL PEVAL-APPLY), recompiling PRINEVAL1167839
> ; (DEFUN PRINEVAL1167839 ...) is being compiled.
> ;; Warning: The declaration specifier T is unknown.
>
> All the other current GCL 2.7.0 compiler warnings are
> of the 'restart pass1' variety.
>
> Because I hope that I have now shut off all Nqthm
> proclaiming (see below) I suspect that report above
> about T may be a GCL 2.7.0 misfeature. Just a guess.
>
> Bob
>
> P. S. I have posted the following advisory about the
> proclaim bug in Nqthm-1992, which simply stops all
> proclaiming by Nqthm at
>
> wget ftp://ftp.cs.utexas.edu/pub/boyer/nqthm/bugs.text
>
> -------------------------------------------------------
> Here is the text:
>
> Please replace, in the source file nqthm.lisp, the single line:
>
> (DEFVAR *NQTHM-MAKE-PROCLAMATIONS* T)
>
> with all the following lines:
>
> ; Bug fix: *NQTHM-MAKE-PROCLAMATIONS* was changed in 2007 from T to
> ; NIL because Nqthm had been making some erroneous proclamations. We
> ; had failed to realize that when we return the results of call of a
> ; multiple value returning function such as INTERN, we may not declare
> ; every function as returning only one value.
>
> (DEFVAR *NQTHM-MAKE-PROCLAMATIONS* NIL)
>
> ; This *TYPE-SET-LENGTH* declaration was added in 2007 to this file
> ; because it is necessary to effect the change to no proclaiming
> ; described above.
>
> (DEFCONSTANT *TYPE-SET-LENGTH* 31)
>
> ----------------------------------------------------------------------
>
> New times with Nqthm-initiated proclamations about function types
> entirely shut off as a bug-fix in the source file nqthm.lisp.
>
> GCL 2.6.7
>
> make LISP=gcl
>
> 23.573u 2.344s 0:50.87 50.9%
>
> make giant-test > gcl2.6.7-2007513.log &
>
> 2153.542u 37.630s 37:10.04 98.2% 0+0k 0+0io 0pf+0w
>
> GCL 2.7.0
>
> make LISP=gcl7
>
> 318.207u 26.973s 6:38.89 86.5%
>
> make giant-test > gcl2.7.0-2007513.log &
>
> 2418.103u 96.922s 42:36.28 98.3%
>
>
>
--
Camm Maguire address@hidden
==========================================================================
"The earth is but one country, and mankind its citizens." -- Baha'u'llah