Re: [Caml-list] OCaml 3.12.0+beta1 on Cygwin 1.7.5
Hi ! Le mardi 6 juillet 2010 16:36:05, Taylor Venable a écrit : Hi there, I'm thinking of writing some programs in OCaml to assist a custom build infrastructure (currently 95% Tcl, 5% external Lua programs) that we use at work. Since we build on Windows, Mac, and Linux I have to make sure that whatever I end up writing works in all three. I haven't written much OCaml in my life, and the little that I did was probably five years ago, but any tools I write will have to be usable for a while. So I tried compiling OCaml 3.12.0+beta1 in Cygwin 1.7.5 -- the information I found about it seemed to imply that it should work. I put flexdll in the PATH and I was able to use the configure script and make world.opt with only a single problem: there were lots of linker errors when it came to building tools/objinfo_helper.exe, symbols like _lbasename, _sch_istable, and _objalloc_free could not be found. [I'd paste the full error but I forgot to email it to my private address today and the machine is in corporate lockdown mode, so I can't access it right now, but I can obtain it tomorrow at work if anybody would like to see the full message.] The way to fix it, for me anyway, was to modify the definition of LIBBFD_LINK in config/Makefile (which started out as -lbfd -ldl) to append to it -lintl -lz /usr/lib/libiberty.a; and after that everything worked. I don't know if that constitutes a problem with the configure script or just something about how my Cygwin is installed, but I wanted to mention it somewhere in case it was a bug. I have no clue about cygwin, but there is a branch of the mingw32-ocaml crosscompiler package for Debian where ocaml 3.12.1 is ported and that is waiting for some testings: http://git.debian.org/?p=pkg-ocaml-maint/packages/mingw32-ocaml.git;a=shortlog;h=refs/heads/3.12.0%2Bbeta1 Maybe this can be useful to you ? Romain ___ 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
Re: [Caml-list] OCaml 3.12.0+beta1 on Cygwin 1.7.5
Am Dienstag, den 06.07.2010, 17:36 -0400 schrieb Taylor Venable: Hi there, I'm thinking of writing some programs in OCaml to assist a custom build infrastructure (currently 95% Tcl, 5% external Lua programs) that we use at work. Since we build on Windows, Mac, and Linux I have to make sure that whatever I end up writing works in all three. I haven't written much OCaml in my life, and the little that I did was probably five years ago, but any tools I write will have to be usable for a while. So I tried compiling OCaml 3.12.0+beta1 in Cygwin 1.7.5 -- the information I found about it seemed to imply that it should work. I put flexdll in the PATH and I was able to use the configure script and make world.opt with only a single problem: there were lots of linker errors when it came to building tools/objinfo_helper.exe, symbols like _lbasename, _sch_istable, and _objalloc_free could not be found. [I'd paste the full error but I forgot to email it to my private address today and the machine is in corporate lockdown mode, so I can't access it right now, but I can obtain it tomorrow at work if anybody would like to see the full message.] The way to fix it, for me anyway, was to modify the definition of LIBBFD_LINK in config/Makefile (which started out as -lbfd -ldl) to append to it -lintl -lz /usr/lib/libiberty.a; and after that everything worked. I don't know if that constitutes a problem with the configure script or just something about how my Cygwin is installed, but I wanted to mention it somewhere in case it was a bug. In addition to that, I have a question: is bytecode compatible across operating systems and/or CPU architectures? In other words, if I compile to bytecode on Linux/x86, can I run that using ocamlrun on Windows/x86 or Linux/amd64? Trivial programs: yes. (As trivial as the ocaml compiler which uses the same bytecode to bootstrap on all platforms.) There is a problem with some libraries, however, because they differ by platform, for example the unix library (i.e. unix.cma is different on Linux and Windows). You can try to work around by linking ad-hoc, but you need the ocaml executable then, e.g. ocaml unix.cma your_library.cma your_script.ml which then links with the unix.cma that is locally installed, and immediately runs the program. At least the module checksums for unix.cma should be identical on all platforms. Gerd -- Gerd Stolpmann, Bad Nauheimer Str.3, 64289 Darmstadt,Germany g...@gerd-stolpmann.de http://www.gerd-stolpmann.de Phone: +49-6151-153855 Fax: +49-6151-997714 ___ 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
Re: [Caml-list] OCaml 3.12.0+beta1
bluestorm bluestorm.d...@gmail.com a écrit : Wouldn't a simple sed s/; _ }/}/g suffice in practice ? Depends on your coding style: line breaks, comments... - Florent ___ 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
Re: [Caml-list] OCaml 3.12.0+beta1
There is a small typo in the 3.12 reference manual. In section 7.14 : « The code above should how to use first-class modules to simulate existentials. » (should how) ___ 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
Re: [Caml-list] OCaml 3.12.0+beta1
Here is a small Camlp4 filter removing exhaustive patterns. It obviously depends on 3.12. open Camlp4.PreCast;; let filter = function | :p...@_loc { $p$ } - let rec clean = function | :patt _ ; $p$ | :patt $p$; _ - clean p | :p...@_loc $p1$; $p2$ - :patt $clean p1$; $clean p2$ | p - p in :patt { $clean p$ } | t - t ;; AstFilters.register_str_item_filter (Ast.map_patt filter)#str_item;; (* #step I used to compile and test the code from a freshly compiiled (but not installed) ocaml-3.12 beta : #I build using fastworld.sh (see INSTALL) then `cd _build` ../byterun/ocamlrun -I otherlibs/unix/ camlp4/camlp4orf.byte /tmp/ exhaustive_record_stripper.ml -o /tmp/stripper.ml ../byterun/ocamlrun ./ocamlc -I stdlib -I camlp4 /tmp/stripper.ml -c ../byterun/ocamlrun -I otherlibs/unix/ camlp4/camlp4o.byte /tmp/stripper.cmo -str 'fun {a; b; _} - c' #output : fun { a = a; b = b } - c *) Notes : - that the OCaml printer expand sugared { a; b } patters into { a = a; b = b } is necessary for printing backward-compatible code; I'm not sure it's a good idea to rely on this. - as with every camlp4 filters, the code is parsed then pretty-printed; do not expect indentation to stay as is. Comment placement is also going to do weird things (know and nearly-unfixable camlp4 defect) : ocamldoc may not work properly on the output code. ___ 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
RE: [Caml-list] OCaml 3.12.0+beta1
bluestorm wrote: Here is a small Camlp4 filter removing exhaustive patterns. It obviously depends on 3.12. snip Notes : - that the OCaml printer expand sugared { a; b } patters into { a = a; b = b } is necessary for printing backward-compatible code; I'm not sure it's a good idea to rely on this. If *your* code has to be *backwards*-compatible with the OCaml 3.11.x compiler then you shouldn't be using that shorthand at all - the point with the {; _} syntax is that it's necessary to suppress a warning in OCaml 3.12 which isn't present in 3.11 (in other words, that syntax has to be used in 3.12 as I'm sure we all agree that any well-written piece of code should never emit compiler warnings). Any features in 3.12 shouldn't be being used at all *if* 3.11 compatibility is your goal. - as with every camlp4 filters, the code is parsed then pretty-printed; do not expect indentation to stay as is. Comment placement is also going to do weird things (know and nearly-unfixable camlp4 defect) Seems fine. : ocamldoc may not work properly on the output code. Sounds like a showstopper for most packages as that would break doc/docs Makefile targets (shame, because a camlp4 script seems the obvious way to do it). Presumably any package that's going to be written for 3.12 but aim to compile on 3.11.x is going to have to .311.ml files (or some such scheme) generated for the sources tarball and then have those selected by a configure script when it detects OCaml 3.11.x or earlier (similar scheme to supporting 3.09- camlp4 and 3.10+ camlp4). If camlp4 sadly can't do it reliably, how about combining the sed suggestion you made: sed -e s/; *_ *}/}/g with a test compilation in OCaml 3.11 to pick up any instances where line-breaking has been a problem (in other words, change your coding conventions and use the compiler to check that they've been adhered to)? It's not a particularly hard sed[*] script to read a few lines at a time and change the regexp to s/;[ \t\n]*_[ \t\n]*}/}/g to handle different line breaking conventions as well (and you could insert an additional regexp to handle non-nested comments in that gap as well). That would have the benefit of not messing up ocamldoc comments. As an aside, while it seems fair enough that a pre-processor such as camlp4 may mess up *comments* it seems to me a bug that it messes up ocamldoc *instructions* (which are reasonably viewable as a functional part of your code). But is that a well-rehearsed argument about a really unfixable problem? David [*] or substitute your favourite text processor here! ___ 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
Re: [Caml-list] OCaml 3.12.0+beta1
On Fri, Jun 25, 2010 at 10:48 AM, David Allsopp dra-n...@metastack.comwrote: If *your* code has to be *backwards*-compatible with the OCaml 3.11.x compiler then you shouldn't be using that shorthand at all. [..] Any features in 3.12 shouldn't be being used at all *if* 3.11 compatibility is your goal. The problem is that camlp4 doesn't distinguish at present between a; and a = a; as label patterns : the former is desugared into the latter while parsing. With the current implementation, both will be pretty-printed as a = a;. It may happen however than the implementation change and both be printed as a;. In that case, my implementation would break. That's what I meant. In the best of all worlds (user-wise), Camlp4 would track that information and always output a; when there was a;, and a = a; otherwise. I'm not sure it's worth complicating the Camlp4 AST again for such a feature. It is possible to work-around this issue by using a slightly more subtle pattern : my filter could for example translate a = a in a = (_ as a), wich is equivalent and surely wouldn't be resugared. I'm sure we all agree that any well-written piece of code should never emit compiler warnings I don't agree. Warnings are there for things that could be errors, but are not necessarily one. In some case you'll want to break the rules. You may use build options to disable the specific warning in the specific file, but that's not necessarily a good idea. I'm happy with some warning remaining if they're justified. This discussion is reminiscent of on the warn-error problem we were recently warned (!) about by Damien (do not use warn-error for released code !) : http://caml.inria.fr/pub/ml-archives/caml-list/2009/11/91883440c8a0481a4233758946e5c3bf.fr.html As an aside, while it seems fair enough that a pre-processor such as camlp4 may mess up *comments* it seems to me a bug that it messes up ocamldoc *instructions* (which are reasonably viewable as a functional part of your code). But is that a well-rehearsed argument about a really unfixable problem? In that case, it isn't really a problem. There could be an issue if an user want to build documentation for a 3.12 code translated into a 3.11 code by a camlp4 filter. Why not simply use ocamldoc-3.12 to generate the documentation instead ? For the generate case, well, it is a problem. OCaml doc instructions are comments (if we're both talking about the (** .. *) thing), and comments and whitespace are not handled well by syntaxic AST for language where they don't matters. Ocamldoc use a comment position hack to associate comments to the caml AST, and while it's probably a necessary hack, I'm not sure it's fair to blame camlp4 for breaking it. If you really want language-integrated documentation, the Right Thing To Do is to keep places for documentation/annotations directly in the language syntax (and AST). This is what Python has done with the docstring wich has a dedicated place in declarations. There is no such thing in Ocaml syntax, so we have to use workarounds that work reasonably well, but not always. ___ 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
Re: [Caml-list] OCaml 3.12.0+beta1
Hello, No problem so far with 3.12.0b1 but... Damien Doligez a écrit : - Record patterns of the form { lbl = pat; _ } to mark that not all labels are listed, purposefully. (See new warning below.) This modification heavily breaks backward compatibility with OCaml 3.11. You should provide some preprocessing scripts to strip these extra _. Best Regards, -- Florent Ouchet PhD Student CIS/VDS Team - TIMA Laboratory ___ 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
Re: [Caml-list] OCaml 3.12.0+beta1
Florent Ouchet wrote: Hello, No problem so far with 3.12.0b1 but... Damien Doligez a écrit : - Record patterns of the form { lbl = pat; _ } to mark that not all labels are listed, purposefully. (See new warning below.) This modification heavily breaks backward compatibility with OCaml 3.11. You should provide some preprocessing scripts to strip these extra _. I disagree. The syntax is a new and optional feature. Authors who want their new code to compile with an earlier version of OCaml should simply avoid using the new feature, as always. Finally we'll be able to use pattern matching on records for real and it's really cool. That means we can use records where we used to prefer tuples, typically on things like tree nodes. It will make it easier to add fields when the code evolves, compared to tuples. Tuple version: let loc, _, _, name, _ = x in ... Record version: let { loc; name; _ } = x in ... Old record version: let { loc = loc; name = name } = x in ... Martin -- http://mjambon.com/ ___ 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
Re: [Caml-list] OCaml 3.12.0+beta1
Martin Jambon martin.jam...@ens-lyon.org a écrit : I disagree. The syntax is a new and optional feature. Authors who want their new code to compile with an earlier version of OCaml should simply avoid using the new feature, as always. The 3.12 version number is just minor increment. It should keep backward compatibility with the 3.x branch as much as possible. Finally we'll be able to use pattern matching on records for real and it's really cool. That means we can use records where we used to prefer tuples, typically on things like tree nodes. It will make it easier to add fields when the code evolves, compared to tuples. Yes, this feature is cool. We agree on this point. However not all systems will be updated to 3.12 as soon as the final version is out. Most users rely on their linux distribution ocaml (Debian stable is still stuck at 3.10 for instance). For syntax sugar extensions, such as { loc; name; _ }, your don't use it conclusion can be understood. But for code stabilization syntax extensions, such as { ... ; _ }, it's an other story. Users stuck with more stable versions of the compiler should be able to use more stable versions of software compiled with it. - Florent ___ 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
Re: [Caml-list] OCaml 3.12.0+beta1
On Thu, Jun 24, 2010 at 10:59 PM, florent.ouc...@imag.fr wrote: Martin Jambon martin.jam...@ens-lyon.org a écrit : I disagree. The syntax is a new and optional feature. Authors who want their new code to compile with an earlier version of OCaml should simply avoid using the new feature, as always. The 3.12 version number is just minor increment. It should keep backward compatibility with the 3.x branch as much as possible. I'm sorry but where do you see a violation of backward compatibility? Can you provide an example that compiles OK with Ocaml 3.11 and generates an error with Ocaml 3.12? - Dmitry Bely ___ 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
Re: [Caml-list] OCaml 3.12.0+beta1
On Thu, Jun 24, 2010 at 2:59 PM, florent.ouc...@imag.fr wrote: Martin Jambon martin.jam...@ens-lyon.org a écrit : I disagree. The syntax is a new and optional feature. Authors who want their new code to compile with an earlier version of OCaml should simply avoid using the new feature, as always. The 3.12 version number is just minor increment. It should keep backward compatibility with the 3.x branch as much as possible. Finally we'll be able to use pattern matching on records for real and it's really cool. That means we can use records where we used to prefer tuples, typically on things like tree nodes. It will make it easier to add fields when the code evolves, compared to tuples. Yes, this feature is cool. We agree on this point. However not all systems will be updated to 3.12 as soon as the final version is out. Most users rely on their linux distribution ocaml (Debian stable is still stuck at 3.10 for instance). For syntax sugar extensions, such as { loc; name; _ }, your don't use it conclusion can be understood. But for code stabilization syntax extensions, such as { ... ; _ }, it's an other story. Users stuck with more stable versions of the compiler should be able to use more stable versions of software compiled with it. - Florent From wikipedia: In the context of telecommunications and computing a device or technology is said to be backwards or downwards compatible if it can work with input generated by an older device Do you have an example of old code not being able to compile anymore because of that change? If so you should probably fill in a bug report. As for forward compatibility (ie programs coded with 3.12 in mind might not compile with 3.10) this is a price I am happy to pay in order to have a language that's constantly improving. I think that this is feeling that is shared by many. And, last but nor least, older does not necessarily mean more stable. You seem to use those interchangeably in your mail. Windows 3.11 is old... Till ___ 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 ___ 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
Re: [Caml-list] OCaml 3.12.0+beta1
Till Varoquaux t...@pps.jussieu.fr a écrit : As for forward compatibility (ie programs coded with 3.12 in mind might not compile with 3.10) this is a price I am happy to pay in order to have a language that's constantly improving. I think that this is feeling that is shared by many. ok all, it has to be considered as forward compatibility, speaking at ocaml point-of-view, this POV is likely the one most of you have. However, at source POV (where OCaml is seen as a tool), this can be seen as backward compatibility: the source code we write could be backward compatible with older versions of OCaml. Anyway, I will stop here the terminology fight and use your POV... And, last but nor least, older does not necessarily mean more stable. ...and I won't feed the troll too. You seem to use those interchangeably in your mail. Windows 3.11 is old... This specific ( { ; _} ) forward compatibility with ocaml 3.12 is possible for a little cost. It's just about removing the extra underscore characters. Anyway if the preprocessing script does not come out of the ocaml 3.12 box, I will have to do it. Other developers may have to so as well. Mainly because this coverage check is a must-do and because I do not want to force a general update to OCaml 3.12 when that can be avoided. The coverage check has to be done only once, at developer's side, using 3.12. Once the changes are done, stripped code can easily be compiled using older versions of OCaml, at user's side. - Florent ___ 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
Re: [Caml-list] OCaml 3.12.0+beta1
On Thu, Jun 24, 2010 at 4:49 PM, Florent Ouchet florent.ouc...@imag.fr wrote: This specific ( { ; _} ) forward compatibility with ocaml 3.12 is possible for a little cost. It's just about removing the extra underscore characters. Anyway if the preprocessing script does not come out of the ocaml 3.12 box, I will have to do it. Other developers may have to so as well. Mainly because this coverage check is a must-do and because I do not want to force a general update to OCaml 3.12 when that can be avoided. The coverage check has to be done only once, at developer's side, using 3.12. Once the changes are done, stripped code can easily be compiled using older versions of OCaml, at user's side. The trailing _ in a record match is not required. It is allowed in 3.12, and in combination with an optional warning flag it can be used to check for incomplete record matches. Why is any preprocessing needed? If an application is written to require OCaml 3.12.x or later, why would you expect it to compile with an earlier version? How is this a bigger backward compatibility break than first-class modules or the let open Module in syntax? Hez ___ 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
Re: [Caml-list] OCaml 3.12.0+beta1
Hezekiah M. Carty hca...@atmos.umd.edu a écrit : The trailing _ in a record match is not required. It is allowed in 3.12, and in combination with an optional warning flag it can be used to check for incomplete record matches. Why is any preprocessing needed? If an application is written to require OCaml 3.12.x or later, why would you expect it to compile with an earlier version? Software development is not your perfect and ideal world. Would you buy a brand new car because your current two-month-old car does not have seat belt reminders? New warnings are almost the only improvements I'm interested in 3.12. Sometimes you have to support old compiler versions (this choice is not yours) and you need a complete confidence in all the thousands record pattern matchings of your application, some of them (maybe 30%) are intentionally left incomplete in order to keep the code as simple as possible. Without preprocessing scripts, I will not be able to insert extra _ for masking intentionally-left-incomplete pattern matchings. The compilation log will be polluted by hundred warnings (false-positive). Finally, the catch of the few remaining should-not-be-incomplete pattern matchings (true-positive) will be very hard. Anyway, I'm running out of arguments and the problem is still there... I would have wasted less time in having the scripts setup than in arguing here. -- Florent Ouchet PhD Student, CIS/VDS Groups TIMA Laboratory, Grenoble, France ___ 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
Re: [Caml-list] OCaml 3.12.0+beta1
Wouldn't a simple sed s/; _ }/}/g suffice in practice ? ___ 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
Re: [Caml-list] OCaml 3.12.0+beta1
Le 17 juin 2010 à 15:35, xclerc a écrit : Le 16 juin 2010 à 22:52, Török Edwin a écrit : On 06/16/2010 04:07 PM, Damien Doligez wrote: Dear OCaml users, We have the pleasure of celebrating Bloomsday by announcing the release of OCaml version 3.12.0+beta1. This is a beta release, available as source only and intended for power users to test new features and report bugs (if any). I have run the included OCaml testsuite, but I must have done something wrong since I got some compile failures (unbound modules, and some missing symbols when linking thread-related tests). make report output: Summary: 278 test(s) passed 8 test(s) failed 24 compilation error(s) 0 compilation warning(s) My system is a Debian Linux x86_64. What I've done is: ./configure -prefix ~/compilers/o312 make world.opt make install Then put $HOME/compilers/o312/bin first in PATH. Then I've simply run a 'make all' in testsuite/ (under ulimit -v 1024000 -d 1024000 -t 3600). Note that I also have ocaml 3.11.2 installed. The failures are below, is this something I'm doing wrong, or should I open a bugreport? This looks like a bug in the test suite. Can you send me (off list) a copy of the *.result files that appear in the trace you get when running the tests? These issues are now fixed in the SVN repository. Thanks again for reporting, Xavier Clerc ___ 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
Re: [Caml-list] OCaml 3.12.0+beta1
Le 16/06/2010 06:07, Damien Doligez a écrit : We have the pleasure of celebrating Bloomsday by announcing the release of OCaml version 3.12.0+beta1. This is a beta release, available as source only and intended for power users to test new features and report bugs (if any). [...] I've successfully recompiled almost all Debian packages with this new version. There are still a few packages that don't compile [3], either because they are broken or have broken dependencies. A list of bugs related to this new version is available at [1]. The titles of the bugreports should give an overview of practical sources of incompatibilities (these are not Debian-specific). Some of them are already fixed (either in upstream repository, or with a home-made patch). I've made a (unofficial) repository binary packages for the amd64 architecture, available at [2]. All sources and build logs are available as well. It might progressively get populated by binary packages for armel and mipsel. The binary packages should work with current Debian unstable, and people using testing or unstable can easily test them. However, please note that OCaml 3.12.0 will most likely not be updated (and supported) in the official repositories before the next release of Debian (Squeeze). [1] http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=debian-ocaml-ma...@lists.debian.org;tag=ocaml312-ftbfs [2] http://ocaml.debian.net/debian/ocaml3120beta1/ [3] http://ocaml.debian.net/debian/ocaml3120beta1/missing.txt [...] This release brings a lot of new features, see the list included below. [...] Here are some other worthwhile features: - Native-code compiler for ARM EABI - armel becomes a native architecture in Debian. Native Dynlink doesn't work, but otherwise all packages were compiling natively during my earlier experiments with the SVN version. - Some support for Findlib in ocamlbuild. I don't know their official status, though... Enjoy, -- Stéphane ___ 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
Re: [Caml-list] OCaml 3.12.0+beta1
Le 16 juin 2010 à 22:52, Török Edwin a écrit : On 06/16/2010 04:07 PM, Damien Doligez wrote: Dear OCaml users, We have the pleasure of celebrating Bloomsday by announcing the release of OCaml version 3.12.0+beta1. This is a beta release, available as source only and intended for power users to test new features and report bugs (if any). I have run the included OCaml testsuite, but I must have done something wrong since I got some compile failures (unbound modules, and some missing symbols when linking thread-related tests). make report output: Summary: 278 test(s) passed 8 test(s) failed 24 compilation error(s) 0 compilation warning(s) My system is a Debian Linux x86_64. What I've done is: ./configure -prefix ~/compilers/o312 make world.opt make install Then put $HOME/compilers/o312/bin first in PATH. Then I've simply run a 'make all' in testsuite/ (under ulimit -v 1024000 -d 1024000 -t 3600). Note that I also have ocaml 3.11.2 installed. The failures are below, is this something I'm doing wrong, or should I open a bugreport? This looks like a bug in the test suite. Can you send me (off list) a copy of the *.result files that appear in the trace you get when running the tests? Thanks for reporting, Xavier Clerc ___ 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
Re: [Caml-list] OCaml 3.12.0+beta1
On Jun 16, 2010, at 6:07 AM, Damien Doligez wrote: Dear OCaml users, [...] - Record patterns of the form { lbl = pat; _ } to mark that not all labels are listed, purposefully. (See new warning below.) This is cool. Thank you! Does it have to be '_' only ? Can we write also { lbl = pat; _XXX } ? It's just that _XXX is easier to grep. ___ 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
Re: [Caml-list] OCaml 3.12.0+beta1
Yoann Padioleau wrote: On Jun 16, 2010, at 6:07 AM, Damien Doligez wrote: Dear OCaml users, [...] - Record patterns of the form { lbl = pat; _ } to mark that not all labels are listed, purposefully. (See new warning below.) This is cool. Thank you! Does it have to be '_' only ? Can we write also { lbl = pat; _XXX } ? It's just that _XXX is easier to grep. I'm guessing that it would be interpreted as { lbl = pat; _XXX = _XXX }. Martin -- http://mjambon.com/ ___ 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
Re: [Caml-list] OCaml 3.12.0+beta1
On 06/16/2010 04:07 PM, Damien Doligez wrote: Dear OCaml users, We have the pleasure of celebrating Bloomsday by announcing the release of OCaml version 3.12.0+beta1. This is a beta release, available as source only and intended for power users to test new features and report bugs (if any). I have run the included OCaml testsuite, but I must have done something wrong since I got some compile failures (unbound modules, and some missing symbols when linking thread-related tests). make report output: Summary: 278 test(s) passed 8 test(s) failed 24 compilation error(s) 0 compilation warning(s) My system is a Debian Linux x86_64. What I've done is: ./configure -prefix ~/compilers/o312 make world.opt make install Then put $HOME/compilers/o312/bin first in PATH. Then I've simply run a 'make all' in testsuite/ (under ulimit -v 1024000 -d 1024000 -t 3600). Note that I also have ocaml 3.11.2 installed. The failures are below, is this something I'm doing wrong, or should I open a bugreport? ... testing 't01.ml'Fatal error: cannot load shared library dllcamlstr Reason: dllcamlstr.so: cannot open shared object file: No such file or directory ... testing 'Exemples.ml.reference':Files Exemples.ml.reference and Exemples.ml.result differ = failed ... testing 'Tests.ml.reference':Files Tests.ml.reference and Tests.ml.result differ = failed ... testing 'poly.ml.principal.reference':Files poly.ml.principal.reference and poly.ml.principal.result differ = failed ... testing 'poly.ml.reference':Files poly.ml.reference and poly.ml.result differ = failed ... testing 'private.ml.reference':Files private.ml.reference and private.ml.result differ = failed The link failures in the testsuite look like this: /home/edwin/compilers/o312/lib/ocaml/threads/threads.a(thread.o): In function `camlThread__fun_1101': (.text+0x4b): undefined reference to `caml_thread_uncaught_exception' /home/edwin/compilers/o312/lib/ocaml/threads/threads.a(thread.o): In function `camlThread__fun_1086': (.text+0x8a): undefined reference to `caml_wait_signal' The unbound module: ... testing 'tbuffer.ml': ocamlcFile tbuffer.ml, line 3, characters 0-12: Error: Unbound module Testing Best regards, --Edwin ___ 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