RE: Syntax for label, NEW SOLUTION

From: Toby Moth (tmoth@nortelnetworks.com)
Date: Thu Mar 23 2000 - 10:57:53 MET

  • Next message: Nicolas barnier: "Re: Syntax for label, NEW PROPOSAL"

    ( sorry if this got posted twice )

    I have kept out of the label debate as I haven't had a chance to really play
    with 2.99
    yet, have hardly ever used OLabl, and generally feel more optimistic about
    what labels
    might offer me than terrified about how Ocaml might suffer.

    So, I am just throwing an ill-cautioned suggestion when I say that it looks
    to me
    as if Claudio is onto something.

    Would it be possible to set up something along the lines:

    MyModule:foo need labels
    MyModule.foo labels checked if used

    open MyModule: needs labels
    open MyModule labels checked if used

    Then the only case where you are committed is when you are inside a module
    that you are actually writing using functions that you have just defined.
    But if you are using labels inside your own module then surely you can't
    object
    to labels......
    so surely you are happy with a label enforcing mode.

    I suppose then that you would be able to write

    Mod1.Mod2:foo
    Mod1:Mod2:foo

    and it would mean the same thing. Style would suggest that you use all ':'
    or all '.'.

    Is this impossible to implement ?

    Toby Moth

            -----Original Message-----
            From: Claudio Sacerdoti Coen [SMTP:sacerdot@students.cs.unibo.it]
            Sent: 22 March 2000 18:15
            To: caml-redistribution@pauillac.inria.fr
            Subject: Re: Syntax for label, NEW SOLUTION

            On Mon, Mar 20, 2000 at 19:25:04 +0100, Christophe Raffalli wrote:
    > Ok, and I agree ! What I mean is that it could happend sooner if
    there
    > was a mode that is conservetive over both modern and classic
    modes. I
    > will give a first working answer ...

            There could be also another simple, backward compatible (w.r.t.
    OCaml)
            solution that would get rid of the "labels in the library" fight.
            Only, I don't know if it is (semantically) feasible. Here it is:

            If I write

             Moo.foo x a:y z;;

            or

             open Moo;;
             foo x a:y z;;

            or

             let module M = Moo in
              M.foo x a:y z;;

            than foo is label-checked as in classic mode.

            Instead, if I write

             open Moo in commutating mode;; (* or something like that *)
             foo x a:y z;;

            than foo is label-checked as in modern mode.

            So, for example, I could write

            open List;;
            open Unix as in moder mode.
            open Tk as in moder mode.

            What am I overlooking?

                                                    C.S.C.

            --
            -----------------------------------------
            Real Name: Claudio Sacerdoti Coen
            Graduating students at the
             Department of Computer Science,
             university of Bologna
            Address: via del Colle n.6
                     S. Lazzaro di Savena (BO)
                     Italy
            e-mail: sacerdot@cs.unibo.it
            -----------------------------------------

    Toby Moth
    Concorde Road, Norreys Drive, Maidenhead,
    Berkshire SL6 4AG UK
    Tel: +44 (0)1628 434301 Fax: +44 (0)1628 434875 Email:
    tmoth@nortelnetworks.com

    > NgRTEL NETWORKS
    >
    >



    This archive was generated by hypermail 2b29 : Thu Mar 23 2000 - 13:59:51 MET