From: james a. <jam...@se...> - 2003-12-05 14:45:01
|
hello; On Saturday, Nov 8, 2003, at 23:00 Europe/Berlin, Sam Steingold wrote: > this message bounced a month ago: i've been a target for bounced spam for some time now. my ultimate mail account has spam filtering, but for-reasons-no-one-can-explain, the spam bucket counts against ones allotment and they refuse to empty it automatically. i've seen it do 30Mb in two days. my allotment is 12 and at some unspecified point above that they start refusing mail. on occasion i forget to empty it. > > <jam...@at...> > Permanent Failure: > 522_mailbox_full;_group_quota_sz=37747607/37748736_ct=2945/100000 > Delivery last attempted at Sat, 8 Nov 2003 22:00:15 -0000 > Reporting-MTA: dns; prserv.net > Arrival-Date: 8 Nov 2003 22:00:15 +0000 > > > The following message is a courtesy copy of an article > that has been posted to gmane.lisp.clisp.devel as well. > >> * james anderson <wnzrf.naqrefba@frgs.qr> [2003-10-12 10:45:50 +0200]: >> >> but it is not clear if a "patch" is the right approach > > IMO, it's the only maintainable approach. > The appended patch should adapt CLISP framework for method > combinations, so it should make it easier for you to make your patch > directly applicable. > > Could you please try to merge your method-combination.lisp into the > patched clos.lisp? > > thanks! > > i'll look through this and get back to you if i have more questions. ? the base clos.lisp is a release version or from cvs? ... |
From: james a. <jam...@se...> - 2003-12-23 18:12:05
|
hello; On Monday, Dec 22, 2003, at 02:15 Europe/Berlin, Sam Steingold wrote: > OK, so what is the status? > are you working on this? i looked towards it today, but i've not gotten very far yet. i figured i'd try a build from cvs, apply the diffs which you sent me some time ago, and then go from there. none of my known paths to browse the cvs functioned today, and it took a bit 'til i guessed i could just checkout '.'. seems to have worked. the build tripped over an autoconf error: gcc -I/usr/local/include -W -Wswitch -Wcomment -Wpointer-arith -Wimplicit -Wreturn-type -Wno-sign-compare -O2 -DUNIX_BINARY_DISTRIB -DUNICODE -DNO_GETTEXT -DNO_SIGSEGV -x none -O0 txt.c -o txt In file included from txt.c:1: lispbibl.d:7384: warning: volatile register variables don't work as you might wish ./txt | grep -v '^ *$' > clisp.1 rm -f txt.c rm -f txt cd ../ && make -f Makefile.devel src/VERSION cd src; autoconf --include=/Development/Source/clisp/clisp-2003-12-23/src/autoconf autoconf: invalid option --include=/Development/Source/clisp/clisp-2003-12-23/src/autoconf Try `autoconf --help' for more information. make[1]: *** [src/configure] Error 1 make: *** [../src/VERSION] Error 2 [tschichold:clisp/clisp-2003-12-23/withDec2002gcc] janson% autoconf -V autoconf (GNU Autoconf) 2.52 Written by David J. MacKenzie. Copyright 1992, 1993, 1994, 1996, 1999, 2000, 2001 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. since make test and make testsuite did succeed, and this looks like an error from make manual, i went ahead and did make clisp, which seems like it may have given me what i need. next step is to see how the diffs fit in. i'll let you know. ... |
From: Sam S. <sd...@gn...> - 2003-12-23 18:47:42
|
> * james anderson <wnzrf.naqrefba@frgs.qr> [2003-12-23 19:11:24 +0100]: > > cd ../ && make -f Makefile.devel src/VERSION $ touch src/VERSION -- Sam Steingold (http://www.podval.org/~sds) running w2k <http://www.camera.org> <http://www.iris.org.il> <http://www.memri.org/> <http://www.mideasttruth.com/> <http://www.honestreporting.com> Bill Gates is great, as long as `bill' is a verb. |
From: james a. <jam...@se...> - 2003-12-27 01:37:53
|
i have made some progress. please have a look at http://www.setf.de/clisp/ 220031224-methodcombo.html describes the state of affairs. clos.lisp is modified a bit beyond the patches which you sent me a while back. method-combination.lisp enables short/long forms when loaded. ... |
From: james a. <jam...@se...> - 2004-01-07 23:45:19
|
On Thursday, Jan 8, 2004, at 00:29 Europe/Berlin, Sam Steingold wrote: > >> this led me to use structures instead of classes for the combination >> objects. given which, it ought to be possible to integrate my >> additions into clos.lisp. > > structures are fine. > >> aside from distinct file, i suppose there were other aspects which are >> less-than-integral > > e.g., `destructure-lambda-list' you wrote exists in CLISP as > `analyze-lambdalist' - there might be other wheels you reinvented... no doubt. > >> - the asymmetry between short/long form dispatch and the handling for >> the standard combination; > > this is ugly, but could be expected > >> - that i left the next-method context generation for the standard >> method untouched this time around; > > the method-combination structure can be defined early. > then STANDARD method combination object can be created and used as the > default value of the GF-METHOD-COMBINATION > then this object's EXPANDER slot can be filled in. > then COMPUTE-EFFECTIVE-METHOD will be just > > (funcall (method-combination-expander combination) gf combination > (method-combination-options combination) args) yes, once i'm convinced that it works, that would be better. > >> - sub-optimal error messages > don't worry about these yet. > >> do you have other criteria for integral v/s afterthought? >> >> ... > maybe you could try the above suggestions? yes. > > >> i suspect the most direct path would be to try the gcl ansi tests. i >> observe that, in the version i have to hand, they include numerous >> short forms tests, but nothing substantial for long form tests, so >> i'll have to fabricate those. do you have any experience using the gcl >> tests with clisp? > > I have not tried them for many months. > at some point the only failing tests were related to method-combination > not being implemented, so I quit. > > You might want to submit your long tests to Paul Diets who maintains > the gcl ansi tests. i've sent him a note to find out if he has either additions or preferences. i also note that clos.lisp in cl-bench is already #-clisp annotated. i'll look first at the ansi tests and the benchmarks. once i'm satisfied with those, i'll merge the additions into one file. ... |
From: Sam S. <sd...@gn...> - 2004-01-07 23:52:00
|
> i also note that clos.lisp in cl-bench is already #-clisp annotated. what is "cl-bench"? -- Sam Steingold (http://www.podval.org/~sds) running w2k <http://www.camera.org> <http://www.iris.org.il> <http://www.memri.org/> <http://www.mideasttruth.com/> <http://www.honestreporting.com> Those who can laugh at themselves will never cease to be amused. |
From: james a. <jam...@se...> - 2004-01-08 00:02:08
|
On Thursday, Jan 8, 2004, at 00:51 Europe/Berlin, Sam Steingold wrote: >> i also note that clos.lisp in cl-bench is already #-clisp annotated. > what is "cl-bench"? eric marsden has packaged various cl benchmarks (http://www.cliki.net/Performance%20Benchmarks). there are some clos tests among them. |
From: Sam S. <sd...@gn...> - 2004-01-08 00:13:47
|
> * james anderson <wnzrf.naqrefba@frgs.qr> [2004-01-08 01:01:32 +0100]: > > On Thursday, Jan 8, 2004, at 00:51 Europe/Berlin, Sam Steingold wrote: > >>> i also note that clos.lisp in cl-bench is already #-clisp annotated. >> what is "cl-bench"? if the annotation is due to lack of method-combination, then you should ask him to remove it as soon as your patch is in the CVS. -- Sam Steingold (http://www.podval.org/~sds) running w2k <http://www.camera.org> <http://www.iris.org.il> <http://www.memri.org/> <http://www.mideasttruth.com/> <http://www.honestreporting.com> If you think big enough, you'll never have to do it. |
From: james a. <jam...@se...> - 2004-01-08 00:28:24
|
On Thursday, Jan 8, 2004, at 01:13 Europe/Berlin, Sam Steingold wrote: >> * james anderson <wnzrf.naqrefba@frgs.qr> [2004-01-08 01:01:32 +0100]: >> >> On Thursday, Jan 8, 2004, at 00:51 Europe/Berlin, Sam Steingold wrote: >> >>>> i also note that clos.lisp in cl-bench is already #-clisp annotated. >>> what is "cl-bench"? > > if the annotation is due to lack of method-combination, then you should > ask him to remove it as soon as your patch is in the CVS. yes. my reference was in the sense that, it would appear that someone else has gotten far enough running cl-bench with clisp to note what worked in the present release. the short-form tests were disabled, but the standard combination tests were still active. which leads me to suspect that i should be able to use it to benchmark my changes to the standard combination. not to mention the additions. ... |
From: Sam S. <sd...@gn...> - 2004-01-08 00:34:00
|
> * james anderson <wnzrf.naqrefba@frgs.qr> [2004-01-08 01:27:47 +0100]: > > that i should be able to use it to benchmark my changes to the standard > combination. that would be _very_ nice! please do it ASAP. if you notice anything but a few %% deterioration, please profile your code with CLOCC/src/monitor. -- Sam Steingold (http://www.podval.org/~sds) running w2k <http://www.camera.org> <http://www.iris.org.il> <http://www.memri.org/> <http://www.mideasttruth.com/> <http://www.honestreporting.com> As a computer, I find your faith in technology amusing. |
From: james a. <jam...@se...> - 2004-01-11 01:38:28
|
On Thursday, Jan 8, 2004, at 01:33 Europe/Berlin, Sam Steingold wrote: >> * james anderson <wnzrf.naqrefba@frgs.qr> [2004-01-08 01:27:47 +0100]: >> >> that i should be able to use it to benchmark my changes to the >> standard >> combination. > that would be _very_ nice! > please do it ASAP. > if you notice anything but a few %% deterioration, please > profile your code with CLOCC/src/monitor. i'm not able to resolve "CLOCC/src/monitor" to anything. neither within the clisp sources, nor within the clocc version i recently pulled. i'm also uncertain, how one would apply it to the code which is generated for the effective method, but i'd need to find it first. in any case, the first results from cl-bench follow below. the first set uses the original standard method combination generator. the second set uses the generator for long/short form methods. the results for functions with standard combinations with combined methods appear improved. the results for the instantiation show a 11% deterioration and those for "complex-methods" show a 7% deterioration. in the latter case, the function at issue has a short-form AND combination. from looking at the code which the benchmark itself generates, the issue would appear to be that it actually spends a significant part of the time calling an accessor. which means an effective method with one method only. despite that the combination computation takes this into account, it's still missing something. if you could clear me up on where the monitoring code is, that might help. ... [tschichold:clisp/clisp-2003-12-26/build-20031226] janson% ./clisp [1]> (load #p"/Documents/Sites/setf/clisp/test-and-benchmark.lisp") ;; Loading file /Documents/Sites/setf/clisp/test-and-benchmark.lisp ... ;; Loading file CL-BENCH:DEFPACKAGE.LISP ... ;; Loaded file CL-BENCH:DEFPACKAGE.LISP ;; Loading file CL-BENCH:SYSDEP;SETUP-CLISP.LISP ... ;; Loading file /Development/Source/cl-bench/defpackage.lisp ... ;; Loaded file /Development/Source/cl-bench/defpackage.lisp ;; Loaded file CL-BENCH:SYSDEP;SETUP-CLISP.LISP ;; Loading file CL-BENCH:SUPPORT.LISP ... ;; Loaded file CL-BENCH:SUPPORT.LISP compile/load extensions. Compiling file /Documents/Sites/setf/clisp/method-combination.lisp ... Wrote file /Documents/Sites/setf/clisp/method-combination.fas 0 errors, 0 warnings ;; Loading file /Documents/Sites/setf/clisp/method-combination.fas ... ;; Loaded file /Documents/Sites/setf/clisp/method-combination.fas Compiling file CL-BENCH:FILES;CLOS-WMC.LISP.0 ... Wrote file CL-BENCH:FILES;CLOS-WMC.fas.0 0 errors, 0 warnings ;; Loading file CL-BENCH:FILES;CLOS-WMC.fas.0 ... ;; Loaded file CL-BENCH:FILES;CLOS-WMC.fas.0 benchmark combinations. === running #<benchmark CLOS/defclass for 1 runs> ;; CLOS/defclass 1.74 1.50 0.00 7 === running #<benchmark CLOS/defmethod for 1 runs> ;; CLOS/defmethod 0.74 0.70 0.00 4 === running #<benchmark CLOS/instantiate for 2 runs> ;; CLOS/instantiate 13.49 13.30 0.00 220 === running #<benchmark CLOS/simple-instantiate for 200 runs> ;; CLOS/simple-instantiate 9.75 9.67 0.00 111 === running #<benchmark CLOS/methodcalls for 5 runs> ;; CLOS/methodcalls 22.68 20.95 0.00 340 === running #<benchmark CLOS/method+after for 2 runs> ;; CLOS/method+after 13.29 11.53 0.00 130 === running #<benchmark CLOS/complex-methods for 5 runs> ;; CLOS/complex-methods 7.04 6.50 0.00 0 (("CLOS/complex-methods" 7044929/1000000 13/2 0.0 0) ("CLOS/method+after" 3323017/250000 1153/100 0.0 130) ("CLOS/methodcalls" 22684391/1000000 419/20 0.0 340) ("CLOS/simple-instantiate" 9745737/1000000 967/100 0.0 111) ("CLOS/instantiate" 1348853/100000 133/10 0.0 220) ("CLOS/defmethod" 46523/62500 7/10 0.0 4) ("CLOS/defclass" 173701/100000 3/2 0.0 7)) compile/load extensions w/ new standard expansion. Compiling file /Documents/Sites/setf/clisp/method-combination.lisp ... Wrote file /Documents/Sites/setf/clisp/method-combination.fas 0 errors, 0 warnings ;; Loading file /Documents/Sites/setf/clisp/method-combination.fas ... WARNING: DEFUN/DEFMACRO: redefining function STANDARD-METHOD-COMBINATION-EXPANDER in /Documents/Sites/setf/clisp/method-combination.fas, was defined in /Development/Source/clisp/clisp-2003-12-26/build-20031226/clos.fas ;; Loaded file /Documents/Sites/setf/clisp/method-combination.fas Compiling file CL-BENCH:FILES;CLOS-WMC.LISP.0 ... WARNING: DEFMETHOD: redefining method (EQL-FIB NIL (EQL 0)) in /Development/Source/cl-bench/files/clos-wmc.lisp, was defined in top-level WARNING: DEFMETHOD: redefining method (EQL-FIB NIL (EQL 1)) in /Development/Source/cl-bench/files/clos-wmc.lisp, was defined in top-level Wrote file CL-BENCH:FILES;CLOS-WMC.fas.0 0 errors, 0 warnings ;; Loading file CL-BENCH:FILES;CLOS-WMC.fas.0 ... ;; Loaded file CL-BENCH:FILES;CLOS-WMC.fas.0 benchmark w/ new standard expansion. === running #<benchmark CLOS/defclass for 1 runs> ;; CLOS/defclass 1.33 1.33 0.00 5 === running #<benchmark CLOS/defmethod for 1 runs> ;; CLOS/defmethod 0.72 0.69 0.00 4 === running #<benchmark CLOS/instantiate for 2 runs> ;; CLOS/instantiate 15.09 14.81 0.00 215 === running #<benchmark CLOS/simple-instantiate for 200 runs> ;; CLOS/simple-instantiate 9.90 9.77 0.00 107 === running #<benchmark CLOS/methodcalls for 5 runs> ;; CLOS/methodcalls 7.65 7.49 0.00 0 === running #<benchmark CLOS/method+after for 2 runs> ;; CLOS/method+after 4.05 4.12 0.00 5 === running #<benchmark CLOS/complex-methods for 5 runs> ;; CLOS/complex-methods 7.55 7.56 0.00 0 (("CLOS/complex-methods" 7551419/1000000 189/25 0.0 0) ("CLOS/method+after" 4050749/1000000 103/25 0.0 5) ("CLOS/methodcalls" 3823317/500000 749/100 0.0 0) ("CLOS/simple-instantiate" 9898811/1000000 977/100 0.0 107) ("CLOS/instantiate" 1885913/125000 1481/100 0.0 215) ("CLOS/defmethod" 179173/250000 69/100 0.0 4) ("CLOS/defclass" 1332159/1000000 133/100 0.0 5) ("CLOS/complex-methods" 7044929/1000000 13/2 0.0 0) ("CLOS/method+after" 3323017/250000 1153/100 0.0 130) ("CLOS/methodcalls" 22684391/1000000 419/20 0.0 340) ("CLOS/simple-instantiate" 9745737/1000000 967/100 0.0 111) ("CLOS/instantiate" 1348853/100000 133/10 0.0 220) ("CLOS/defmethod" 46523/62500 7/10 0.0 4) ("CLOS/defclass" 173701/100000 3/2 0.0 7)) ;; Loaded file /Documents/Sites/setf/clisp/test-and-benchmark.lisp T [2]> |
From: Sam S. <sd...@gn...> - 2004-01-11 02:09:11
|
> * james anderson <wnzrf.naqrefba@frgs.qr> [2004-01-11 02:37:47 +0100]: > > On Thursday, Jan 8, 2004, at 01:33 Europe/Berlin, Sam Steingold wrote: > >>> * james anderson <wnzrf.naqrefba@frgs.qr> [2004-01-08 01:27:47 +0100]: >>> >>> that i should be able to use it to benchmark my changes to the >>> standard >>> combination. >> that would be _very_ nice! >> please do it ASAP. >> if you notice anything but a few %% deterioration, please >> profile your code with CLOCC/src/monitor. > > i'm not able to resolve "CLOCC/src/monitor" to anything. neither > within the clisp sources, nor within the clocc version i recently > pulled. it's CLOCC/src/tools/metering/, sorry. > i'm also uncertain, how one would apply it to the code which is > generated for the effective method, but i'd need to find it first. <http://clisp.cons.org/impnotes/bytecode.html#byte-intro> Execution speed of a program can easily be understood by looking at the output of the DISASSEMBLE function. A rule of thumb is that every elementary instruction costs 1 time unit, whereas a function call costs 3 to 4 time units. > [tschichold:clisp/clisp-2003-12-26/build-20031226] > janson% ./clisp > benchmark combinations. > === running #<benchmark CLOS/defclass for 1 runs> > ;; CLOS/defclass 1.74 1.50 0.00 7 > === running #<benchmark CLOS/defmethod for 1 runs> > ;; CLOS/defmethod 0.74 0.70 0.00 4 > === running #<benchmark CLOS/instantiate for 2 runs> > ;; CLOS/instantiate 13.49 13.30 0.00 220 > === running #<benchmark CLOS/simple-instantiate for 200 runs> > ;; CLOS/simple-instantiate 9.75 9.67 0.00 111 > === running #<benchmark CLOS/methodcalls for 5 runs> > ;; CLOS/methodcalls 22.68 20.95 0.00 340 > === running #<benchmark CLOS/method+after for 2 runs> > ;; CLOS/method+after 13.29 11.53 0.00 130 > === running #<benchmark CLOS/complex-methods for 5 runs> > ;; CLOS/complex-methods 7.04 6.50 0.00 0 > > compile/load extensions w/ new standard expansion. > benchmark w/ new standard expansion. > === running #<benchmark CLOS/defclass for 1 runs> > ;; CLOS/defclass 1.33 1.33 0.00 5 > === running #<benchmark CLOS/defmethod for 1 runs> > ;; CLOS/defmethod 0.72 0.69 0.00 4 > === running #<benchmark CLOS/instantiate for 2 runs> > ;; CLOS/instantiate 15.09 14.81 0.00 215 > === running #<benchmark CLOS/simple-instantiate for 200 runs> > ;; CLOS/simple-instantiate 9.90 9.77 0.00 107 > === running #<benchmark CLOS/methodcalls for 5 runs> > ;; CLOS/methodcalls 7.65 7.49 0.00 0 > === running #<benchmark CLOS/method+after for 2 runs> > ;; CLOS/method+after 4.05 4.12 0.00 5 > === running #<benchmark CLOS/complex-methods for 5 runs> > ;; CLOS/complex-methods 7.55 7.56 0.00 0 I am not sure I quite understand this... -- Sam Steingold (http://www.podval.org/~sds) running w2k <http://www.camera.org> <http://www.iris.org.il> <http://www.memri.org/> <http://www.mideasttruth.com/> <http://www.honestreporting.com> There is an exception to every rule, including this one. |
From: james a. <jam...@se...> - 2004-01-11 11:17:32
|
On Sunday, Jan 11, 2004, at 03:09 Europe/Berlin, Sam Steingold wrote: ... >> [tschichold:clisp/clisp-2003-12-26/build-20031226] >> janson% ./clisp >> benchmark combinations. >> === running #<benchmark CLOS/defclass for 1 runs> >> ;; CLOS/defclass 1.74 1.50 0.00 7 >> === running #<benchmark CLOS/defmethod for 1 runs> >> ;; CLOS/defmethod 0.74 0.70 0.00 4 >> === running #<benchmark CLOS/instantiate for 2 runs> >> ;; CLOS/instantiate 13.49 13.30 0.00 220 >> === running #<benchmark CLOS/simple-instantiate for 200 runs> >> ;; CLOS/simple-instantiate 9.75 9.67 0.00 111 >> === running #<benchmark CLOS/methodcalls for 5 runs> >> ;; CLOS/methodcalls 22.68 20.95 0.00 340 >> === running #<benchmark CLOS/method+after for 2 runs> >> ;; CLOS/method+after 13.29 11.53 0.00 130 >> === running #<benchmark CLOS/complex-methods for 5 runs> >> ;; CLOS/complex-methods 7.04 6.50 0.00 0 >> >> compile/load extensions w/ new standard expansion. >> benchmark w/ new standard expansion. >> === running #<benchmark CLOS/defclass for 1 runs> >> ;; CLOS/defclass 1.33 1.33 0.00 5 >> === running #<benchmark CLOS/defmethod for 1 runs> >> ;; CLOS/defmethod 0.72 0.69 0.00 4 >> === running #<benchmark CLOS/instantiate for 2 runs> >> ;; CLOS/instantiate 15.09 14.81 0.00 215 >> === running #<benchmark CLOS/simple-instantiate for 200 runs> >> ;; CLOS/simple-instantiate 9.90 9.77 0.00 107 >> === running #<benchmark CLOS/methodcalls for 5 runs> >> ;; CLOS/methodcalls 7.65 7.49 0.00 0 >> === running #<benchmark CLOS/method+after for 2 runs> >> ;; CLOS/method+after 4.05 4.12 0.00 5 >> === running #<benchmark CLOS/complex-methods for 5 runs> >> ;; CLOS/complex-methods 7.55 7.56 0.00 0 > > I am not sure I quite understand this... the values are the results from function below (from cl-bench:sysdep;setup-clisp.lisp). i'm still trying to figure out what each really tests, but in rough terms - "instantiate" appears to instantiate within an extended class hierarchy for which there are :after methods for initialize-instance, while "instantiate/simple" does the same for a two-class hierarchy without initialize-instance specialization. - "methodcalls" applies a function with a standard combination on all instances of the class graph where the methods call-next-method, "method+after" does the same after adding after methods to the function, and "complex-methods" applies a function with an AND combination. (defun bench-time (fun times name) (declare (ignore name)) (labels ((merge-2-values (val1 val2) (if (< internal-time-units-per-second 1000000) (dpb val1 (byte 16 16) val2) ; TIME_1: AMIGA, DOS, OS/2, UNIX_TIMES (+ (* val1 internal-time-units-per-second) val2))) ; TIME_2: UNIX sonst, WIN32 (secs (v1 v2 v3 v4) (/ (- (merge-2-values v1 v2) (merge-2-values v3 v4)) internal-time-units-per-second))) (multiple-value-bind (new-real1 new-real2 new-run1 new-run2 new-gc1 new-gc2 new-space1 new-space2 new-gccount) (sys::%%time) (dotimes (i times) (funcall fun)) (multiple-value-bind (old-real1 old-real2 old-run1 old-run2 old-gc1 old-gc2 old-space1 old-space2 old-gccount) (sys::%%time) ;; returns real user sys consed (values (secs old-real1 old-real2 new-real1 new-real2) (secs old-run1 old-run2 new-run1 new-run2) 0.0 (- old-gccount new-gccount)))))) |
From: Sam S. <sd...@gn...> - 2004-01-11 15:48:03
|
> * james anderson <wnzrf.naqrefba@frgs.qr> [2004-01-11 12:16:52 +0100]: > > (defun bench-time (fun times name) > (declare (ignore name)) > (labels ((merge-2-values (val1 val2) > (if (< internal-time-units-per-second 1000000) > (dpb val1 (byte 16 16) val2) ; TIME_1: AMIGA, DOS, > OS/2, UNIX_TIMES > (+ (* val1 internal-time-units-per-second) val2))) ; > TIME_2: UNIX sonst, WIN32 > (secs (v1 v2 v3 v4) > (/ (- (merge-2-values v1 v2) > (merge-2-values v3 v4)) > internal-time-units-per-second))) > (multiple-value-bind (new-real1 > new-real2 > new-run1 > new-run2 > new-gc1 > new-gc2 > new-space1 > new-space2 > new-gccount) > (sys::%%time) > (dotimes (i times) (funcall fun)) > (multiple-value-bind (old-real1 > old-real2 > old-run1 > old-run2 > old-gc1 > old-gc2 > old-space1 > old-space2 > old-gccount) > (sys::%%time) > ;; returns real user sys consed > (values (secs old-real1 old-real2 new-real1 new-real2) > (secs old-run1 old-run2 new-run1 new-run2) > 0.0 > (- old-gccount new-gccount)))))) this is based on old code for %TIME in clisp/src/defs1.lisp and needs updating (I added delta4 to avoid some consing). as for the results, it appears that every item is a win wrt GC count, which is good. -- Sam Steingold (http://www.podval.org/~sds) running w2k <http://www.camera.org> <http://www.iris.org.il> <http://www.memri.org/> <http://www.mideasttruth.com/> <http://www.honestreporting.com> .ACMD setaloiv siht gnidaeR |
From: Sam S. <sd...@gn...> - 2003-12-05 16:37:40
|
> * james anderson <wnzrf.naqrefba@frgs.qr> [2003-12-05 15:44:20 +0100]: > > i've been a target for bounced spam for some time now. my ultimate > mail account has spam filtering, but for-reasons-no-one-can-explain, > the spam bucket counts against ones allotment and they refuse to empty > it automatically. i've seen it do 30Mb in two days. my allotment is 12 > and at some unspecified point above that they start refusing mail. on > occasion i forget to empty it. yuk. do you have an emergency e-mail address? > ? the base clos.lisp is a release version or from cvs? always CVS. -- Sam Steingold (http://www.podval.org/~sds) running w2k <http://www.camera.org> <http://www.iris.org.il> <http://www.memri.org/> <http://www.mideasttruth.com/> <http://www.honestreporting.com> usually: can't pay ==> don't buy. software: can't buy ==> don't pay |