From: Ville-Pertti Keinonen <will@exomi.com>
To: Brian Hurt <brian.hurt@qlogic.com>
Cc: <caml-list@inria.fr>
Subject: Re: [Caml-list] Bug? Printf, %X and negative numbers
Date: Fri, 4 Apr 2003 20:14:05 +0300 [thread overview]
Message-ID: <D6C0EF01-66C0-11D7-B8FE-000393863F70@exomi.com> (raw)
In-Reply-To: <Pine.LNX.4.33.0304040959570.2225-100000@eagle.ancor.com>
> One of the things I dislike about C++ template is code bloat. This is
> the
> undiscussed cost of templates. So you make a template foo<type>. You
...
Specializations aren't the only reason C++ templates cause significant
code growth. Another is that they (in the case of the most commonly
used HP/SGI STL, at least) use inlining very heavily, so each
instantiation is big and a lot of inlined code is instantiated several
times all over the place.
For some cases, inlined handling of data structures is good. Consider
the performance of the STL sort vs. anything based on a callback or
virtual method.
I'm not a big fan of C++ templates, but I don't think they're a very
good argument against all specialization.
> And this applies to Ocaml even more so. I mean, consider the function:
Less so, I would think, since most types are compatible.
> let f x = ...
>
> OK, so to specialize it for unboxed ints vr.s pointers takes two
> implementations of the function, f_pointer and f_int, right? So now
> consider the function:
>
> let f x y z w = ...
>
> Do we need 16 different specializations for this function?
Not if they're generated at the point where they are first used(*), in
which case a maximum of 16 specializations are created - compared to
C++, where there is no maximum, and you often end up having things like
std::map<std::string, my_object *> and std::map<std::string,
my_other_object *> which are in fact identical.
(*) Obviously this requires some adjustments to the compilation model.
A quick grepping through .mli files in the OCaml source distribution
reveals that there are zero instances of the string 'd but quite a few
instances of 'c, which would seem to indicate that four variables is
not common.
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
next prev parent reply other threads:[~2003-04-04 17:14 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-04-02 18:42 Gregory Morrisett
2003-04-02 21:12 ` Ville-Pertti Keinonen
2003-04-02 21:46 ` Lauri Alanko
2003-04-03 17:40 ` Ville-Pertti Keinonen
2003-04-04 16:14 ` Brian Hurt
2003-04-04 17:14 ` Ville-Pertti Keinonen [this message]
2003-04-04 17:27 ` Falk Hueffner
2003-04-03 0:52 ` brogoff
-- strict thread matches above, loose matches on Subject: below --
2003-04-03 9:29 Fabrice Le Fessant
2003-03-28 21:19 Brian Hurt
2003-03-28 22:21 ` Yutaka OIWA
2003-03-30 9:51 ` Xavier Leroy
2003-03-31 15:44 ` Brian Hurt
2003-03-31 17:13 ` Ville-Pertti Keinonen
2003-04-01 8:19 ` Xavier Leroy
2003-04-01 16:09 ` David Brown
2003-04-01 16:45 ` Tim Freeman
2003-04-01 18:59 ` Brian Hurt
2003-04-01 19:16 ` Ville-Pertti Keinonen
2003-04-01 19:23 ` Tim Freeman
2003-04-01 21:00 ` Ville-Pertti Keinonen
2003-04-01 19:56 ` Brian Hurt
2003-04-01 20:45 ` Ville-Pertti Keinonen
2003-04-01 21:03 ` Brian Hurt
2003-04-02 8:55 ` Andreas Rossberg
2003-04-02 9:20 ` Ville-Pertti Keinonen
2003-04-01 18:34 ` Ville-Pertti Keinonen
2003-04-02 11:44 ` Claude Marche
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=D6C0EF01-66C0-11D7-B8FE-000393863F70@exomi.com \
--to=will@exomi.com \
--cc=brian.hurt@qlogic.com \
--cc=caml-list@inria.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox