> a lot more effort into numerics and string processing and a lot less effort into
symbolics

Is there any fundamental reason these two goals must be at odds? Why can't a compiler be good at numeric and symbolic computation?


On Tue, Dec 23, 2008 at 4:59 AM, Jon Harrop <jon@ffconsultancy.com> wrote:
On Tuesday 23 December 2008 06:07:37 Jon Harrop wrote:
> Yes. I'll do a bit more work on it and then tidy it up and document it
> before uploading it, unless there is any great interest from people now.

Incidentally, I would like to know what performance issues (good and bad)
people have with the current OCaml implementation?

AFAICT, OCaml evolved from a family of languages that were only optimized for
symbolic processing. Some of OCaml's relatives, like PolyML, were able to
provide even faster symbolic processing than naive C but their numerical
performance is 100x worse. These heavily-skewed performance characteristics
rendered many ML implementations domain specific.

I believe OCaml was the first ML to put an unusual amount of effort into
optimizing other aspects, most notably high performance floating-point
arithmetic and float arrays (where OCaml still thrashes SML/NJ and MLton).
Moreover, I think OCaml became the world's favourite ML precisely because of
this diversity.

I am just looking at the simplest possible GC implementations, like shadow
stack, and trying to envisage an ML implementation that puts a lot more
effort into numerics and string processing and a lot less effort into
symbolics. I am guessing the performance of allocation will be degraded
10-100x but many allocations can be removed. This leaves me wondering how
much slowdown is acceptable without deterring a lot of users?

Anyway, I'll try to implement a simple GC and get some concrete performance
results first...

--
Dr Jon Harrop, Flying Frog Consultancy Ltd.
http://www.ffconsultancy.com/?e

_______________________________________________
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