gcl-devel
[Top][All Lists]
Advanced

[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




reply via email to

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