Version française
Home     About     Download     Resources     Contact us    
Browse thread
can anyone replicate this camlp4 problem?
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Peng Zang <peng.zang@g...>
Subject: Re: [Caml-list] can anyone replicate this camlp4 problem?
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I only know of the brute force update which is less than desirable:

class test (x : int) = object
  val a = x;
  val b = x;
  method add (d:int) = 
    let copy = {<>} in
    let arr : int array = Obj.magic copy in
    arr.(2) <- arr.(2) + d;
    arr.(3) <- arr.(3) + d;
    copy
  method print = Format.printf "%d %d" a b
end

But my brain is fried and I can't think of a nicer way..

Peng

On Wednesday 25 March 2009 04:15:38 pm Peng Zang wrote:
> Thanks, do you know of a good work around?
>
> Peng
>
> On Wednesday 25 March 2009 04:01:24 pm Andres Varon wrote:
> > On Mar 25, 2009, at 3:55 PM, Peng Zang wrote:
> > > -----BEGIN PGP SIGNED MESSAGE-----
> > > Hash: SHA1
> > >
> > > Hi, camlp4 seems to break parsing of object duplication on 3.11.
> > > Can anyone
> > > replicate this problem?  Is this an known issue?  A quick google
> > > search did
> > > not reveal anything..
> >
> > Yeah. I reported the bug here:
> >
> > http://caml.inria.fr/mantis/view.php?id=4673
> >
> > Andres
> >
> > > Peng
> > >
> > >
> > >          Objective Caml version 3.11.0
> > >
> > >  # #use "topfind";;
> > >  Findlib has been successfully loaded. Additional directives:
> > >    #require "package";;      to load a package
> > >    #list;;                   to list the available packages
> > >    #camlp4o;;                to load camlp4 (standard syntax)
> > >    #camlp4r;;                to load camlp4 (revised syntax)
> > >    #predicates "p,q,...";;   to set these predicates
> > >    Topfind.reset();;         to force that packages will be reloaded
> > >    #thread;;                 to enable threads
> > >
> > >  # #camlp4o;;
> > >  /home/peng/app-data/godi-3.11/lib/ocaml/std-lib/dynlink.cma: loaded
> > >  /home/peng/app-data/godi-3.11/lib/ocaml/std-lib/camlp4: added to
> > > search path
> > >  /home/peng/app-data/godi-3.11/lib/ocaml/std-lib/camlp4/camlp4o.cma:
> > > loaded
> > >          Camlp4 Parsing version 3.11.0
> > >
> > >  # class functional_point x y = object
> > >      val x = x
> > >      val y = y
> > >      method get_x = x
> > >      method get_y = y
> > >      method move dx dy = {< x = x + dx; y = y + dy >}
> > >    end;;
> > >            Characters 138-144:
> > >      method move dx dy = {< x = x + dx; y = y + dy >}
> > >                                 ^^^^^^
> > >  Warning S: this expression should have type unit.
> > >  Characters 146-156:
> > >      method move dx dy = {< x = x + dx; y = y + dy >}
> > >                                         ^^^^^^^^^^
> > >  Error: This expression has type bool but is here used with type int
> > >  #
> > > -----BEGIN PGP SIGNATURE-----
> > > Version: GnuPG v2.0.7 (GNU/Linux)
> > >
> > > iD8DBQFJyoxPfIRcEFL/JewRAg8TAKCjoxTmDmfLxVHa7sXq0tGlt2rKDgCgp/C2
> > > nc4vnKWkTvKXeR4Q0z4XB94=
> > > =IwA+
> > > -----END PGP SIGNATURE-----
> > >
> > > _______________________________________________
> > > 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
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.7 (GNU/Linux)

iD8DBQFJypNGfIRcEFL/JewRAtIOAJ9xEOuh4XNivJkjKZZ1uTYmONGzZQCfQAZH
4UBdyDEFCYNJ6wH4ZG8zpzU=
=twIi
-----END PGP SIGNATURE-----