From: Sven Luther <luther@dpt-info.u-strasbg.fr>
To: Remi VANICAT <vanicat@labri.u-bordeaux.fr>
Cc: caml-list@inria.fr
Subject: Re: [Caml-list] Re: Camlp4 optimizations (was: productivity improvement)
Date: Fri, 18 Oct 2002 10:46:46 +0200 [thread overview]
Message-ID: <20021018084646.GA2262@iliana> (raw)
In-Reply-To: <874rbkjgu3.dlv@wanadoo.fr>
On Fri, Oct 18, 2002 at 10:23:32AM +0200, Remi VANICAT wrote:
> Alessandro Baretta <alex@baretta.com> writes:
>
> > Jeffrey Palmer wrote:
> >> On Thursday 17 October 2002 6:55 pm, Alessandro Baretta wrote:
> >> Hmm. I have two observations:
> >> 1) You can't "use" templates without instantiating them, so although
> >> you're right - template type checking is deferred to instantiation,
> >> this is by design (a pain, I agree).
> >
> > It's more than a pain. John Max Skaller acutely pointed out that
> > templates have "no semantics". The semantics of a template depends on
> > the parameter(s) with which it is instantiated, and in a very bizzarre
> > way. Code which compiles and is correct with well-behaved
> > parameters--the STL, for example--becomes incorrect, won't compile, or
> > will miserably die at runtime with a segfault, if it is instantiated
> > with a parameter class redefining the basic operations--equality,
> > assignment, copy constructor, etc--in a such a way as to violate the
> > assumptions explicitly or implicitly made by the template
> > designer. Such errors are not revealed when the template is written
> > and "compiled". They are revealed at best at template instantiation
> > time, and possibly at runtime.
> >
> > Caml functors, on the other hand, are statically type checked at
> > compile time. Once and for all. If they compile, they're correct. And
> > that's it.
>
>
> Well, the Set.Make and Map.Make functor to the stdlib want the compare
> function of their argument to be a comparison function. This in not
> checked at compile time (this can't be verify). and if this not the
> case, you can difficultly predict the comportment of those functor.
> (well it won't segfault, but it may not do what you want).
It will just do what you tell it to do, which is a feature, not a bug :)))
Friendly,
Sven Luther
-------------------
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:[~2002-10-18 8:46 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20020716172916.4903.qmail@web10702.mail.yahoo.com>
2002-07-18 23:14 ` [Caml-list] productivity improvement Oleg
2002-07-18 23:27 ` Brian Smith
2002-07-18 23:54 ` William Lovas
2002-07-19 3:59 ` Oleg
[not found] ` <20020719010318.B3631@boson.den.co.bbnow.net>
2002-07-19 8:22 ` Oleg
2002-07-19 8:57 ` Andreas Rossberg
2002-07-19 10:14 ` Alessandro Baretta
2002-07-19 18:15 ` John Max Skaller
2002-07-19 18:33 ` Brian Smith
2002-07-20 17:30 ` John Max Skaller
2002-07-19 19:06 ` Alessandro Baretta
2002-07-20 17:49 ` John Max Skaller
2002-07-19 10:34 ` Oleg
2002-07-19 17:25 ` Andreas Rossberg
2002-07-20 16:58 ` John Max Skaller
2002-07-19 16:35 ` Brian Rogoff
2002-10-16 23:24 ` Eray Ozkural
2002-07-19 1:25 ` Alessandro Baretta
2002-07-19 4:04 ` Oleg
2002-07-19 15:46 ` [Caml-list] Rule based language [was: productivity improvement] Alessandro Baretta
2002-07-19 17:20 ` [Caml-list] compact.c Julie Farago
2002-10-15 9:31 ` [Caml-list] productivity improvement Eray Ozkural
2002-10-15 12:34 ` Oleg
2002-10-15 15:08 ` Eray Ozkural
2002-07-19 4:42 ` Emmanuel Renieris
2002-07-19 9:57 ` Oleg
2002-07-19 10:43 ` Alessandro Baretta
2002-07-19 10:52 ` Daniel de Rauglaudre
2002-07-19 11:36 ` Alessandro Baretta
2002-07-19 11:10 ` Xavier Leroy
2002-10-15 9:24 ` Eray Ozkural
2002-10-15 18:47 ` Pal-Kristian Engstad
2002-10-17 0:12 ` Eray Ozkural
2002-10-17 9:34 ` Diego Olivier Fernandez Pons
2002-10-17 15:55 ` Jeffrey Palmer
2002-10-17 16:15 ` brogoff
2002-10-17 18:21 ` [Caml-list] Re: Camlp4 optimizations (was: productivity improvement) Christophe TROESTLER
2002-10-17 18:32 ` Chris Hecker
2002-10-17 19:08 ` Shivkumar Chandrasekaran
2002-10-17 20:01 ` Chris Hecker
2002-10-17 19:36 ` Daniel de Rauglaudre
2002-10-17 19:59 ` Brian Hurt
2002-10-17 20:22 ` Chris Hecker
2002-10-17 21:19 ` Brian Hurt
2002-10-17 21:37 ` Jeffrey Palmer
2002-10-17 23:55 ` Alessandro Baretta
2002-10-18 0:57 ` Jeffrey Palmer
2002-10-18 4:21 ` Alessandro Baretta
2002-10-18 8:23 ` Remi VANICAT
2002-10-18 8:46 ` Sven Luther [this message]
2002-10-18 1:47 ` Brian Hurt
2002-10-17 23:03 ` Chris Hecker
2002-10-18 23:55 ` brogoff
2002-10-18 10:43 ` [Caml-list] productivity improvement Diego Olivier Fernandez Pons
2002-10-21 8:57 ` Francois Pottier
[not found] ` <200207200640.CAA11477@dewberry.cc.columbia.edu>
[not found] ` <3D391B41.50900@baretta.com>
[not found] ` <200207210059.UAA17003@dewberry.cc.columbia.edu>
2002-07-21 13:00 ` [Caml-list] Rule based language [was: productivity improvement] Alessandro Baretta
2002-07-23 9:53 ` Oleg
2002-07-24 8:07 ` Alessandro Baretta
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=20021018084646.GA2262@iliana \
--to=luther@dpt-info.u-strasbg.fr \
--cc=caml-list@inria.fr \
--cc=vanicat@labri.u-bordeaux.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