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
[Caml-list] Workshop on ML 2010 - Extended Submission Deadline
In response to requests, the submission deadline has been extended by one week until 2 July 2010. The 2010 ACM SIGPLAN Workshop on ML http://www.cs.rit.edu/~mtf/ml2010 Baltimore, Maryland, United States Sunday, September 26, 2010 co-located with ICFP 2010 Call for Content (Extended Deadline) ML is a family of programming languages that includes dialects known as Standard ML, Objective Caml, and F#. The development of these languages has inspired a large amount of computer science research, both practical and theoretical. This workshop aims to provide a forum to encourage discussion and research on ML and related technology (higher-order, typed, or strict languages). The format of the 2010 Workshop on ML will be different than that of recent years, returning to a more informal model: a workshop with presentations selected from submitted abstracts but without published proceedings. We hope that this format will encourage the presentation of more exciting (if unpolished) research and deliver a more lively workshop atmosphere. Invited Speaker ~~~ Luke Hoban (Microsoft) -- Bringing F# to Visual Studio 2010 Important Dates ~~~ Submission: 2 July, 2010 (extended) Notification: 9 August, 2010 Format ~~ The workshop will consist of presentations by the participants, selected from submitted abstracts. Participants are invited to submit working drafts, source code, and/or extended abstracts for distribution on the workshop homepage and to the attendees, but as the workshop will have no formal proceedings, any contributions may be submitted for publication to other venues. (See the SIGPLAN republication policy for more details.) Scope ~ We primarily seek research presentations on topics related to ML, including (but not limited to): * applications: case studies, experience reports, pearls, etc. * extensions: higher forms of polymorphism, generic programming, objects, concurrency, distribution and mobility, semi-structured data handling, etc. * type systems: inference, effects, overloading, modules, contracts, specifications and assertions, dynamic typing, error reporting, etc. * implementation: compilers, interpreters, type checkers, partial evaluators, runtime systems, garbage collectors, etc. * environments: libraries, tools, editors, debuggers, cross-language interoperability, functional data structures, etc. * semantics: operational, denotational, program equivalence, parametricity, mechanization, etc. Research presentations should describe new ideas, experimental results, significant advances in ML-related projects, or informed positions regarding proposals for next-generation ML-style languages. We especially encourage presentations that describe work in progress, that outline a future research agenda, or that encourage lively discussion. In addition to research presentations, we seek both Status Reports and Demos that emphasize the practical application of ML research and technology. Status Reports: Status reports are intended as a way of informing others in the ML community about the status of ML-related research or implementation projects, as well as communicating insights gained from such projects. Status reports need not present original research, but should deliver new information. In the abstract submission, describe the project and the specific technical content to be presented. Demos: Live demonstrations or tutorials are intended to show new developments, interesting prototypes, or work in progress, in the form of tools, libraries, or application software built on or related to ML technology. In the abstract submission (which need only be about half a page), describe the demo and its technical content, and be sure to include the demo's title, authors, collaborators, references, and acknowledgments. A demonstration should take 10-15 minutes. The exact time per demo will be decided based on the number of accepted submissions. (Please note that you will need to provide all the hardware and software required for your demo; the workshop organizers are only able provide a projector.) Submission Guidelines and Instructions ~~ Email submissions to mtf AT cs.rit.edu. Submissions should be at most two pages, in PDF format, and printable on US Letter or A4 sized paper. Persons for whom this poses a hardship should contact the program chair. Submissions longer than a half a page should include a paragraph synopsis suitable for inclusion in the workshop program. Program Chair ~ Matthew Fluet Rochester Institute of Technology Program Committee ~ Kathleen Fisher ATT Labs Research Adam GraniczIntelliFactory Daan Leijen Microsoft Research Johan NordlanderLulea University of Technology Sungwoo Park
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