* Ray tracer language comparison @ 2005-10-03 23:18 Jon Harrop 2005-10-04 13:49 ` [Caml-list] " Thomas Fischbacher 2005-10-09 5:26 ` Thomas Fischbacher 0 siblings, 2 replies; 14+ messages in thread From: Jon Harrop @ 2005-10-03 23:18 UTC (permalink / raw) To: caml-list I've updated my language comparison with four implementations in Scheme and one in Lisp: http://www.ffconsultancy.com/free/ray_tracer/languages.html In short, Stalin's run-time performance is excellent (36% faster than ocamlopt) but its compile times are poor (2,000x slower than ocamlopt!) and SBCL-compiled Lisp is 6x slower than ocamlopt. Both Scheme and Lisp are >2x as verbose as OCaml. Juho Snellman posted an interesting Lisp variant that used a macro to factor out unboxing, greatly reducing the stress on the GC and improving Lisp's performance to that of OCaml. Applying the same optimisation to the OCaml implementations makes them much faster again but I have yet to factor this out into a camlp4 macro. This raises two interesting questions: 1. Can a camlp4 macro be written to factor out this unboxing transformation: let v = center -| orig in let b = dot v dir in let disc = b *. b -. dot v v +. radius *. radius in where "+|" denotes vector addition and "*|" denotes scalar*vector multiplication. Transformed to: let vx = center.x -. orig.x in let vy = center.y -. orig.y in let vz = center.z -. orig.z in let b = vx *. dir.x +. vy *. dir.y +. vz *. dir.z in let vv = vx *. vx +. vy *. vy +. vz *. vz in let disc = b *. b -. vv +. radius *. radius in So the intermediate vectors are not allocated and collected. 2. Manually inlining the code gives a huge performance improvement but using -inline does not appear to give this improvement. I assume ocamlopt can inline this but will not remove the boxing and subsequent unboxing. Is that right? -- Dr Jon D Harrop, Flying Frog Consultancy Ltd. Objective CAML for Scientists http://www.ffconsultancy.com/products/ocaml_for_scientists ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Caml-list] Ray tracer language comparison 2005-10-03 23:18 Ray tracer language comparison Jon Harrop @ 2005-10-04 13:49 ` Thomas Fischbacher 2005-10-09 5:26 ` Thomas Fischbacher 1 sibling, 0 replies; 14+ messages in thread From: Thomas Fischbacher @ 2005-10-04 13:49 UTC (permalink / raw) To: Jon Harrop; +Cc: caml-list On Tue, 4 Oct 2005, Jon Harrop wrote: > > I've updated my language comparison with four implementations in Scheme and > one in Lisp: > > http://www.ffconsultancy.com/free/ray_tracer/languages.html I think this analysis is quite seriously flawed: (1) You are mostly comparing implementations, not languages, yet call this a "language comparison". (2) Just having a glance at in particular at the Lisp implementation immediately reveals trivial but relevant further optimizations that one would like to include. For example, just adding a further entry (:type (vector double-float)) to (defstruct vec ...) reduces run time by more than 20%. I did not take a closer look yet, but my impression is that this is not even a comparison of implementations, but just a comparison of various snippets of code for various languages, written by people with quite different proficiency with the individual languages and implementations. So, I wonder whether the data may indeed be quite seriously flawed. (3) Unless I missed some interesting development, Stalin by no means is a "Scheme", at least for any of the official definitions of the term "Scheme" (IEEE, RnRS). Of course, it is easy to optimize towards using machine integers (instead of "proper numbers") if the system just does not support the Scheme numerical tower. (4) You are just looking at one single example application, which in addition is not especially large. So, if Lisp's metasyntactic capabilities really are a great boon, as many people like to claim, this clearly will not show in a ~100 lines example. And this is just one example of a small "benchmark" program not really allowing any conclusions for real world applicability. So, okay, OCaml is a great system for writing a primitive raytracer in ~60 lines, but I would not dare to extrapolate any conclusion about other programs from this. (5) Some statements are just plain outright wrong, such as this: "In practice, SBCL is very poor at inferring types and it is necessary to litter the source code with type declarations, as we have done here." While SBCL/CMUCL are not Hindley-Milner, their type inference does know more tricks than one might suppose. If you declare a number to be an integer in the range (0..100) (which you can do), it will know that its square is in the range (0..10000). If you declare a number x to be a fixnum, then it will know that (+ 1 x) will not necessarily be a fixnum, and hence generate generic addition code (which it has to - to maintain correctness). So it is more an issue of the programmer expecting different things from the system than it provides. Please do not spread such un-informed comments that just contribute to the general confusion and misunderstanding. -- regards, tf@cip.physik.uni-muenchen.de (o_ Thomas Fischbacher - http://www.cip.physik.uni-muenchen.de/~tf //\ (lambda (n) ((lambda (p q r) (p p q r)) (lambda (g x y) V_/_ (if (= x 0) y (g g (- x 1) (* x y)))) n 1)) (Debian GNU) ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Caml-list] Ray tracer language comparison 2005-10-03 23:18 Ray tracer language comparison Jon Harrop 2005-10-04 13:49 ` [Caml-list] " Thomas Fischbacher @ 2005-10-09 5:26 ` Thomas Fischbacher 2005-10-09 11:24 ` Yaron Minsky ` (2 more replies) 1 sibling, 3 replies; 14+ messages in thread From: Thomas Fischbacher @ 2005-10-09 5:26 UTC (permalink / raw) To: Jon Harrop; +Cc: caml-list On Tue, 4 Oct 2005, Jon Harrop wrote: > > I've updated my language comparison with four implementations in Scheme and > one in Lisp: > > http://www.ffconsultancy.com/free/ray_tracer/languages.html > > In short, Stalin's run-time performance is excellent (36% faster than > ocamlopt) but its compile times are poor (2,000x slower than ocamlopt!) and > SBCL-compiled Lisp is 6x slower than ocamlopt. Both Scheme and Lisp are >2x > as verbose as OCaml. As you may have seen from my initial reply to that posting, I originally was quite sceptical. However, I had a somewhat lengthy PM conversation with Dr. Jon Harrop where he kindly and patiently explained to me his methodology and findings, and eventually, this inspired me to contribute another benchmark (which I did of my own) to this comparison. As this issue created a lot of traffic on comp.lang.functional, comp.lang.scheme, comp.lang.java.programmer, and some other newsgroups, this could even be of interest to a broader audience. It's here: http://www.cip.physik.uni-muenchen.de/~tf/raytracer/ -- regards, tf@cip.physik.uni-muenchen.de (o_ Thomas Fischbacher - http://www.cip.physik.uni-muenchen.de/~tf //\ (lambda (n) ((lambda (p q r) (p p q r)) (lambda (g x y) V_/_ (if (= x 0) y (g g (- x 1) (* x y)))) n 1)) (Debian GNU) ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Caml-list] Ray tracer language comparison 2005-10-09 5:26 ` Thomas Fischbacher @ 2005-10-09 11:24 ` Yaron Minsky 2005-10-09 13:59 ` Thomas Fischbacher 2005-10-09 14:53 ` Vincenzo Ciancia 2005-10-09 14:58 ` [Caml-list] " Jon Harrop 2 siblings, 1 reply; 14+ messages in thread From: Yaron Minsky @ 2005-10-09 11:24 UTC (permalink / raw) To: Thomas Fischbacher; +Cc: Jon Harrop, caml-list It seems like on the whole a more fitting riposte might have been to provide a version of the SBCL implementation that was 8x faster than Jon's, rather than to provide a crippled version of Jon's that was 8x slower. But to each his own, I suppose.... y ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Caml-list] Ray tracer language comparison 2005-10-09 11:24 ` Yaron Minsky @ 2005-10-09 13:59 ` Thomas Fischbacher 2005-10-09 17:37 ` Florian Weimer 0 siblings, 1 reply; 14+ messages in thread From: Thomas Fischbacher @ 2005-10-09 13:59 UTC (permalink / raw) To: Yaron Minsky; +Cc: caml-list On Sun, 9 Oct 2005, Yaron Minsky wrote: > It seems like on the whole a more fitting riposte might have been to > provide a version of the SBCL implementation that was 8x faster than > Jon's, rather than to provide a crippled version of Jon's that was 8x > slower. But to each his own, I suppose.... What? You call that elegant use of higher order functions "crippled"? What a Blasphemy. I am really, truly outraged. ...on the other hand... [wicked thinking] [most evil sniggering] [pictures of the great evil genius playing the organ] [more of all the above] [ *clickediclick* ] Bring that man to be, he shalt be served as well! I just extended my analysis by another implementation in yet another language. This time, it's "Steel Bank Common Lisp". As this is a Lisp as well, I will be concerned primarily with comparing it against SBCL, but it may also be nice to compare it with OCaml, or Objective Caml. There it is: http://www.cip.physik.uni-muenchen.de/~tf/raytracer/#sbcl -- regards, tf@cip.physik.uni-muenchen.de (o_ Thomas Fischbacher - http://www.cip.physik.uni-muenchen.de/~tf //\ (lambda (n) ((lambda (p q r) (p p q r)) (lambda (g x y) V_/_ (if (= x 0) y (g g (- x 1) (* x y)))) n 1)) (Debian GNU) ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Caml-list] Ray tracer language comparison 2005-10-09 13:59 ` Thomas Fischbacher @ 2005-10-09 17:37 ` Florian Weimer 2005-10-09 18:07 ` Thomas Fischbacher 0 siblings, 1 reply; 14+ messages in thread From: Florian Weimer @ 2005-10-09 17:37 UTC (permalink / raw) To: Thomas Fischbacher; +Cc: Yaron Minsky, caml-list * Thomas Fischbacher: > I just extended my analysis by another implementation in yet another > language. This time, it's "Steel Bank Common Lisp". Is this some kind of elaborate hoax? If it is, I don't get it? "OCaml" vs. "Objective Caml", "SBCL" vs. "Steel Bank Common Lisp", "1/8" vs. "1/10" -- all these comparisons are a bit strange. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Caml-list] Ray tracer language comparison 2005-10-09 17:37 ` Florian Weimer @ 2005-10-09 18:07 ` Thomas Fischbacher 0 siblings, 0 replies; 14+ messages in thread From: Thomas Fischbacher @ 2005-10-09 18:07 UTC (permalink / raw) To: Florian Weimer; +Cc: Yaron Minsky, caml-list On Sun, 9 Oct 2005, Florian Weimer wrote: > * Thomas Fischbacher: > > > I just extended my analysis by another implementation in yet another > > language. This time, it's "Steel Bank Common Lisp". > > Is this some kind of elaborate hoax? If it is, I don't get it? > > "OCaml" vs. "Objective Caml", "SBCL" vs. "Steel Bank Common Lisp", > "1/8" vs. "1/10" -- all these comparisons are a bit strange. All the numbers and measurements on my page are for real. As well as all statements concerning my testing environment. And I am using precisely the same diligence with my studies as Jon does with his. -- regards, tf@cip.physik.uni-muenchen.de (o_ Thomas Fischbacher - http://www.cip.physik.uni-muenchen.de/~tf //\ (lambda (n) ((lambda (p q r) (p p q r)) (lambda (g x y) V_/_ (if (= x 0) y (g g (- x 1) (* x y)))) n 1)) (Debian GNU) ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Ray tracer language comparison 2005-10-09 5:26 ` Thomas Fischbacher 2005-10-09 11:24 ` Yaron Minsky @ 2005-10-09 14:53 ` Vincenzo Ciancia 2005-10-09 10:19 ` [Caml-list] " Gerd Stolpmann 2005-10-09 14:58 ` [Caml-list] " Jon Harrop 2 siblings, 1 reply; 14+ messages in thread From: Vincenzo Ciancia @ 2005-10-09 14:53 UTC (permalink / raw) To: caml-list Thomas Fischbacher wrote: > > As you may have seen from my initial reply to that posting, I originally > was quite sceptical. However, I had a somewhat lengthy PM conversation > with Dr. Jon Harrop where he kindly and patiently explained to me his > methodology and findings, and eventually, this inspired me to contribute > another benchmark (which I did of my own) to this comparison. What is the difference, that you mention in your webpage, between "OCaml" and "Objective Caml"? It's not clear to me what your benchmark is about at all :) V. -- Please note that I do not read the e-mail address used in the from field but I read vincenzo_ml at yahoo dot it Attenzione: non leggo l'indirizzo di posta usato nel campo from, ma leggo vincenzo_ml at yahoo dot it ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Caml-list] Re: Ray tracer language comparison 2005-10-09 14:53 ` Vincenzo Ciancia @ 2005-10-09 10:19 ` Gerd Stolpmann 2005-10-09 11:26 ` sejourne_kevin 0 siblings, 1 reply; 14+ messages in thread From: Gerd Stolpmann @ 2005-10-09 10:19 UTC (permalink / raw) To: Vincenzo Ciancia; +Cc: caml-list Am Sonntag, den 09.10.2005, 10:53 -0400 schrieb Vincenzo Ciancia: > Thomas Fischbacher wrote: > > > > > As you may have seen from my initial reply to that posting, I originally > > was quite sceptical. However, I had a somewhat lengthy PM conversation > > with Dr. Jon Harrop where he kindly and patiently explained to me his > > methodology and findings, and eventually, this inspired me to contribute > > another benchmark (which I did of my own) to this comparison. > > What is the difference, that you mention in your webpage, between "OCaml" > and "Objective Caml"? It's not clear to me what your benchmark is about at > all :) I guess it's a joke. OCaml = the speed-optimized version; Objective Caml = the version optimized for readability (which I don't agree with). Gerd -- ------------------------------------------------------------ Gerd Stolpmann * Viktoriastr. 45 * 64293 Darmstadt * Germany gerd@gerd-stolpmann.de http://www.gerd-stolpmann.de Telefon: 06151/153855 Telefax: 06151/997714 ------------------------------------------------------------ ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Caml-list] Re: Ray tracer language comparison 2005-10-09 10:19 ` [Caml-list] " Gerd Stolpmann @ 2005-10-09 11:26 ` sejourne_kevin 0 siblings, 0 replies; 14+ messages in thread From: sejourne_kevin @ 2005-10-09 11:26 UTC (permalink / raw) To: caml-list Gerd Stolpmann a écrit : > Am Sonntag, den 09.10.2005, 10:53 -0400 schrieb Vincenzo Ciancia: > >>Thomas Fischbacher wrote: >> >> >>>As you may have seen from my initial reply to that posting, I originally >>>was quite sceptical. However, I had a somewhat lengthy PM conversation >>>with Dr. Jon Harrop where he kindly and patiently explained to me his >>>methodology and findings, and eventually, this inspired me to contribute >>>another benchmark (which I did of my own) to this comparison. >> >>What is the difference, that you mention in your webpage, between "OCaml" >>and "Objective Caml"? It's not clear to me what your benchmark is about at >>all :) > > > I guess it's a joke. OCaml = the speed-optimized version; Objective Caml > = the version optimized for readability (which I don't agree with). Without colors, it is the same for the two programs... unreadable at all. ___________________________________________________________________________ Appel audio GRATUIT partout dans le monde avec le nouveau Yahoo! Messenger Téléchargez cette version sur http://fr.messenger.yahoo.com ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Caml-list] Ray tracer language comparison 2005-10-09 5:26 ` Thomas Fischbacher 2005-10-09 11:24 ` Yaron Minsky 2005-10-09 14:53 ` Vincenzo Ciancia @ 2005-10-09 14:58 ` Jon Harrop 2005-10-09 17:25 ` Thomas Fischbacher 2 siblings, 1 reply; 14+ messages in thread From: Jon Harrop @ 2005-10-09 14:58 UTC (permalink / raw) To: caml-list On Sunday 09 October 2005 06:26, you wrote: > http://www.cip.physik.uni-muenchen.de/~tf/raytracer/ I reformatted your code with tuareg indentation and 80-char columns to conform with the other implementations for fair comparison, corrected the bug in a call to printf and removed the superfluous parentheses. Your code is then 1 line shorter and 8x slower than the previous implementation on my site. I then rewrote it to be both shorter and faster. For anyone who is interested, the main performance degradation introduced by Thomas came from the use of polymorphic HOFs (particularly Array.init) to perform vector arithmetic that appears in the inner loops of the ray tracer. Here is my implementation that is both 17% shorter in LOC (and shorter in both words and bytes) and 4.7x faster than Thomas': let ( *| ) s (x, y, z) = s *. x, s *. y, s *. z let ( +| ) (x1, y1, z1) (x2, y2, z2) = x1 +. x2, y1 +. y2, z1 +. z2 let ( -| ) (x1, y1, z1) (x2, y2, z2) = x1 -. x2, y1 -. y2, z1 -. z2 let dot (x1, y1, z1) (x2, y2, z2) = x1 *. x2 +. y1 *. y2 +. z1 *. z2 let unitise r = (1. /. sqrt (dot r r)) *| r let ray_sphere orig dir center radius = let v = center -| orig in let b = dot v dir in let disc = sqrt(b *. b -. dot v v +. radius *. radius) in if disc <> disc || b +. disc < 0. then infinity else if b -. disc > 0. then b -. disc else b +. disc let rec intersect orig dir ((lambda, _) as hit) (center, radius, children) = let lambda' = ray_sphere orig dir center radius in if lambda' >= lambda then hit else match children with | `List [] -> lambda', unitise (orig +| lambda' *| dir -| center) | `List children -> List.fold_left (intersect orig dir) hit children let intersect orig dir = intersect orig dir (infinity, (0., 0., 0.)) let neg_light = unitise (1., 3., -2.) and ss = 4 let rec ray_trace orig dir scene = let lambda, normal = intersect orig dir scene in if lambda = infinity then 0. else let g = max 0. (dot normal neg_light) in let p = orig +| lambda *| dir +| sqrt epsilon_float *| normal in if g = 0. || fst (intersect p neg_light scene) < infinity then 0. else g let rec create level c r = let obj = c, r, `List [] and a = 3. *. r /. sqrt 12. in if level = 1 then obj else let f x' z' = create (level-1) (c +| (x', a, z')) (0.5 *. r) in c, 3. *. r, `List [obj; f (-.a) (-.a); f a (-.a); f (-.a) a; f a a] let n, scene = match Sys.argv with [| _; l; n|] -> int_of_string n, create (int_of_string l) (0., -1., 4.) 1. | _ -> 512, create 9 (0., -1., 4.) 1.;; Printf.printf "P5\n%d %d\n255\n" n n;; for y = n - 1 downto 0 do for x = 0 to n - 1 do let g = ref 0. in for dx = 0 to ss - 1 do for dy = 0 to ss - 1 do let aux x d = float x -. float n /. 2. +. float d /. float ss in let dir = unitise (aux x dx, aux y dy, float n) in g := !g +. ray_trace (0., 0., 0.) dir scene done done; let g = 0.5 +. 255. *. !g /. float (ss*ss) in Printf.printf "%c" (char_of_int (int_of_float g)) done done The main source of performance degradation in this implementation is probably the use of tuples to represent vectors rather than records. With ocamlopt, the floats in records of floats are unboxed but the floats in tuples of floats are not. Thus, this implementations places extra burden on the allocator and GC. -- Dr Jon D Harrop, Flying Frog Consultancy Ltd. Objective CAML for Scientists http://www.ffconsultancy.com/products/ocaml_for_scientists ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Caml-list] Ray tracer language comparison 2005-10-09 14:58 ` [Caml-list] " Jon Harrop @ 2005-10-09 17:25 ` Thomas Fischbacher 0 siblings, 0 replies; 14+ messages in thread From: Thomas Fischbacher @ 2005-10-09 17:25 UTC (permalink / raw) To: Jon Harrop; +Cc: caml-list On Sun, 9 Oct 2005, Jon Harrop wrote: > On Sunday 09 October 2005 06:26, you wrote: > > http://www.cip.physik.uni-muenchen.de/~tf/raytracer/ > > I reformatted your code with tuareg indentation and 80-char columns to conform > with the other implementations for fair comparison, The longest line in your original code has 79 columns. So does the longest line in my code. I do not use any indentation and formatting techniques which are not present in your original code as well. > corrected the bug in a > call to printf and removed the superfluous parentheses. Yes, I was notified of this as well and corrected it in the source. Concerning teh extra parens: I like them. Let's just consider this artisitc freedom, okay? > Your code is then 1 > line shorter and 8x slower than the previous implementation on my site. What do you mean, "previous implementation"? You provide data for OCaml, and I suggested you should include Objective Caml into the comparison as well. > I then rewrote it to be both shorter and faster. Let us see: > Printf.printf "P5\n%d %d\n255\n" n n;; > for y = n - 1 downto 0 do > for x = 0 to n - 1 do > let g = ref 0. in > for dx = 0 to ss - 1 do Ah. You eliminated the main function. Nice move. I suppose one could easily do this for the other implementations as well. As some people out there seem to wonder what this is all about: I maintain the following claim. - While Jon does not clearly state this on his web page, his main criterion for a valid submission is that it must be impossible to improve by making it both shorter and faster. - The problem with this methodology is that it does not satisfy even the most fundamental principle one would like to see in a proper comparison: If we take a product X, and a product Y, which in fact just again is X, but let us pretend for now and threat them as if they were different, then it must not be possible to make a submission for X and a submission for Y that both are valid under all the criteria applied, which lead to the conclusion that X is considerably better than Y. Okay, Jon, you just managed to produce an Objective Caml implementation which shows that I am completely wrong, and indeed, Objective Caml is even much more succinct than OCaml, while being only about 50% slower than OCaml. Why don't you include that important result on your web page? -- regards, tf@cip.physik.uni-muenchen.de (o_ Thomas Fischbacher - http://www.cip.physik.uni-muenchen.de/~tf //\ (lambda (n) ((lambda (p q r) (p p q r)) (lambda (g x y) V_/_ (if (= x 0) y (g g (- x 1) (* x y)))) n 1)) (Debian GNU) ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Caml-list] Ray tracer language comparison @ 2005-10-09 14:38 yoann padioleau 2005-10-09 16:00 ` Chris Campbell 0 siblings, 1 reply; 14+ messages in thread From: yoann padioleau @ 2005-10-09 14:38 UTC (permalink / raw) To: Thomas Fischbacher, Yaron Minsky; +Cc: caml-list > > > It seems like on the whole a more fitting riposte might have been to > > provide a version of the SBCL implementation that was 8x faster than > > Jon's, rather than to provide a crippled version of Jon's that was 8x > > slower. But to each his own, I suppose.... > > What? You call that elegant use of higher order functions "crippled"? > What a Blasphemy. I am really, truly outraged. But on what side are you ? Looking at your signature you seems like a big fan of functionnal programming but you are sending opposite signals in your post. It is not clear to me what is your point. What do you want to demonstrate ? > > ...on the other hand... > > [wicked thinking] > [most evil sniggering] > [pictures of the great evil genius playing the organ] > [more of all the above] > [ *clickediclick* ] > > Bring that man to be, he shalt be served as well! > > I just extended my analysis by another implementation in yet another > language. This time, it's "Steel Bank Common Lisp". As this is a Lisp as > well, I will be concerned primarily with comparing it against SBCL, but it > may also be nice to compare it with OCaml, or Objective Caml. > > There it is: > > http://www.cip.physik.uni-muenchen.de/~tf/raytracer/#sbcl > > -- > regards, tf@cip.physik.uni-muenchen.de (o_ > Thomas Fischbacher - http://www.cip.physik.uni-muenchen.de/~tf //\ > (lambda (n) ((lambda (p q r) (p p q r)) (lambda (g x y) V_/_ > (if (= x 0) y (g g (- x 1) (* x y)))) n 1)) (Debian GNU) > > _______________________________________________ > Caml-list mailing list. Subscription management: > http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list > Archives: http://caml.inria.fr > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs > > ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Caml-list] Ray tracer language comparison 2005-10-09 14:38 yoann padioleau @ 2005-10-09 16:00 ` Chris Campbell 0 siblings, 0 replies; 14+ messages in thread From: Chris Campbell @ 2005-10-09 16:00 UTC (permalink / raw) To: padator; +Cc: Thomas Fischbacher, Yaron Minsky, caml-list On 09/10/05, yoann padioleau <padator@wanadoo.fr> wrote: > > > > > It seems like on the whole a more fitting riposte might have been to > > > provide a version of the SBCL implementation that was 8x faster than > > > Jon's, rather than to provide a crippled version of Jon's that was 8x > > > slower. But to each his own, I suppose.... > > > > What? You call that elegant use of higher order functions "crippled"? > > What a Blasphemy. I am really, truly outraged. > > But on what side are you ? It's obvious Thomas is joking. > Looking at your signature you seems like a big fan of functionnal programming > but you are sending opposite signals in your post. > It is not clear to me what is your point. What do you want to demonstrate ? Perhaps that the comparison is flawed like most language comparisons of this type (there is no APL or J version for example ;) j/k ). The problems have been outlined before and there's is no need to drag them up again, so if you're interested there's always google groups. ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2005-10-09 18:07 UTC | newest] Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2005-10-03 23:18 Ray tracer language comparison Jon Harrop 2005-10-04 13:49 ` [Caml-list] " Thomas Fischbacher 2005-10-09 5:26 ` Thomas Fischbacher 2005-10-09 11:24 ` Yaron Minsky 2005-10-09 13:59 ` Thomas Fischbacher 2005-10-09 17:37 ` Florian Weimer 2005-10-09 18:07 ` Thomas Fischbacher 2005-10-09 14:53 ` Vincenzo Ciancia 2005-10-09 10:19 ` [Caml-list] " Gerd Stolpmann 2005-10-09 11:26 ` sejourne_kevin 2005-10-09 14:58 ` [Caml-list] " Jon Harrop 2005-10-09 17:25 ` Thomas Fischbacher 2005-10-09 14:38 yoann padioleau 2005-10-09 16:00 ` Chris Campbell
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox