From: Alan Schmitt <alan.schmitt@inria.fr> To: lwn@lwn.net Subject: Attn: Development Editor, Latest Caml Weekly News Date: Tue, 2 Apr 2002 16:38:32 +0200 Hello, Here is the latest Caml Weekly News, week 19 to 26 march, 2002. Summary: 1) English O'Reilly OCaml Book Now Online! 2) announcing iox-1.00 (beta 1 and beta 2) 3) New Objective Caml examples 4) caml-macosx mailing list created 5) A new Hump for Lablgtk 6) let or val in objects 7) Osiris problem 1) English O'Reilly OCaml Book Now Online! ---------------------------------------------------------------------- Ruchira Datta announced: It is my great pleasure to announce that the first fruits of the _Developing Applications with Objective Caml_ translation project are now online! Please go to http://caml.inria.fr/oreilly-book/ where the preliminary version of the English translation of this seven hundred-odd page book is available for your viewing pleasure! This translation is the product of an unprecedented effort by roughly sixty volunteers worldwide. What is it about Objective Caml that inspires so much devotion in so many people? Now is your chance to find out! If you've just been waiting for an English book to introduce you to this amazing language, this one explains everything you need, including OCaml's fundamentals, accompanying tools, and support for software architecture and concurrency & distribution. Replete with extensive examples, it will be of interest even to experienced OCaml aficionados. As mentioned above, this is a preliminary version. Some solutions to exercises have not been translated and some proofreading needs to be done. So please excuse any glitches you find, and promptly bring them to our attention by emailing the translators' list: translators@pauillac.inria.fr Please feel free to tell us as well if our prose is unclear or awkward. We are eager to hear your comments, questions, and criticisms, so we can help give OCaml the book it deserves. Note that the book is based on OCaml 2.04, the version current when the original French was being written, although an appendix explains the new features of OCaml 3.04 relative to that version. Since OCaml 3.04 is fully backward-compatible with OCaml 2.04, all the example code should work with this version (or indeed any version from OCaml 3.00 on). But if you experience any problems in this regard, please bring them to our attention. We must thank the authors--Emmanuel Chailloux, Pascal Manoury, and Bruno Pagano--as well as O'Reilly, for the monumental task of producing this book in the first place, as well as their generosity in approving this translation project and allowing it to go online. We must especially thank Xavier Leroy for his tireless efforts. Besides translating two chapters, he has been the sysadmin of the project and has also undertaken some of the most tedious tasks of the translation. I personally don't understand how he does it---I would have thought just leading the Ocaml team would have been more than enough work for anybody. We all owe him an enormous debt of gratitude. Please join me in a virtual round of applause, thanking all the volunteers for all their hard work to bring this translation to the light of day! Well-done! Ruchira Datta datta@math.berkeley.edu On behalf of the volunteer translators and proofreaders: translators@pauillac.inria.fr 2) announcing iox-1.00 (beta 1 and beta 2) ---------------------------------------------------------------------- James Woodyatt announced: Okay, so I wasn't completely forthcoming. While I do make the rent as a practitioner, it is true that I indulge in a little amateur software research from time to time. This message announces the availability in source code of my "Iox" library, which is a framework for concurrent, single-threaded Internet application services. It's released under the 2-clause BSD-style "as-is" license, but I might consider waiving even those terms for peanuts, so you shouldn't have any worries. It's the first result of my encounter with Objective Caml, and I'm probably more pleased with it than I should be. You can download the distribution directly from either of these locators: http://www.wetware.com/jhw/src/iox-1.00b1.tar.gz http://www.wetware.com/jhw/src/iox-1.00b1.tar.bz2 Alternatively, you may browse the source directly: http://www.wetware.com/jhw/src/iox-1.00b1/ There is documentation generated with the [excellent] ocamldoc tool: http://www.wetware.com/jhw/src/iox-1.00b1/doc/index.html Sometime in May this year, I will post a version of this library with appropriate patches applied to fix bugs (assuming some are found, which is probably safe to assume). Some time later, I plan to release another version which has improvements in the feature set. Please direct constructive comments or helpful tips to me. If you find a bug, please help me out by also finding a patch that fixes it. and soon added: I hate when this happens. It turns out that the code I posted doesn't build (let alone install) the native version of the code properly. I've posted an update that seems to fix it. The only source files that changed are the Makefile and the META file. I've added a ChangeLog file. The new distributions are here: http://www.wetware.com/jhw/src/iox-1.00b2.tar.gz http://www.wetware.com/jhw/src/iox-1.00b2.tar.bz2 I've also moved the locators for browsing the source and the autodocs: http://www.wetware.com/jhw/src/iox/ http://www.wetware.com/jhw/src/iox/doc/index.html And, by the way, if you're building this on Mac OS X (or a BSD variant with a similar issue), the native version won't link until you use ranlib on the .a file in $PREFIX/ocaml/site-lib/iox/iox.a after you install it. I think this might be because ocamlfind install doesn't know to run ranlib on the .a file after it moves its absolute path. 3) New Objective Caml examples ---------------------------------------------------------------------- Pierre Weis announced: Dear all, It's my pleasure to announce the availability of a revised and augmented set of examples for Objective Caml and Caml Light. Have a look to http://pauillac.inria.fr/caml/Examples/ Feel free to suggest other examples and/or to write answers to unresolved questions, such as: ``write a Caml program that computes the number of solutions to the n-queens problem for a chess of size greater than 15'' Have fun :) 4) caml-macosx mailing list created ---------------------------------------------------------------------- Guillaume Haberer and Laurent Cheno first asked: ------------------------------------ --- A caml-macosx mailing list? ---- ------------------------------------ Caml (caml-light or OCaml) users on MacOS X feel a little forgotten on the official caml mailing lists. They face many problems in installing compilers, librairies (e.g. Active DVI). Most of the times, these users aren't used to Unix at all, and they feel lost in front of the incomprehensible messages appearing on their terminal. In order to let the users of all Caml languages on MacOS X help one another, we plan to create a specific mailing list, that could be named caml-macosx, and where both English and French languages should be used. Let us know what you think of this idea, and wether you'd be ready to subscribe and participate. then they added: It's my pleasure to announce the creation of the mailing list named "caml-macosx@yahoogroupes.fr" Subscription address : caml-macosx-subscribe@yahoogroupes.fr Unsubscription address : caml-macosx-unsubscribe@yahoogroupes.fr Send mail to : caml-macosx@yahoogroupes.fr 5) A new Hump for Lablgtk ---------------------------------------------------------------------- Maxence Guesdon announced: Hello, i created a new hump for LablGtk/LablGL tools. Its aim is to list libs and tools using LablGtk or LablGL, sorted by widget/topic, so one can easily find example to use these libraries. Here is the location: http://pauillac.inria.fr/~guesdon/lablgtk/ There are not a lot of tools for now, so do not hesitate sending me new pointers. 6) let or val in objects ---------------------------------------------------------------------- Richard Nyberg asked and John Prevost answered: >Hello, I'm a bit confused regarding let bindings and nonmutable vals in >objects. Are there any difference between the classes a and b? or are they >equivalent? > >Like this: > >class a fd > let is in_channel_of_descr fd in object ... end > >class b fd > object val is in_channel_of_descr fd ... end;; In the second case, "is" is a named value that's part of the object--inheriting classes can access its value, and if it is mutable, change the value. In the first case, "is" is a variable in the closure of the methods in the object. Inheriting classes may not access its value in any way, including (of course) modifying it if it has a mutable component. Using lets outside of the object defintion can be very useful when you wish to have private values which inheriting classes may not access. (For example, in order to preserve some invariant.) However, you may note that a let-bound variable (if it is a function) may not itself access the contents of the object. So they are fairly significantly different. :) The normal use is to let-bind something like an input_stream, which your methods can access but inheriting methods cannot. Then inheriting objects have no choice but to use your accessor functions to access the stream. 7) Osiris problem ---------------------------------------------------------------------- Carlos Eduardo Lenz asked and Nicolas Cannasse annouced: > I have 2 questions about Osiris: > > 1. How can I create 2 or more windows? > I get Win32.core_error(I think). > 2. How can I kill(release memory) 1 window (not setting visible to false)? The newest version of Osiris which includes lots of new stuff (icons, treeview, richedit, etc...) is now available here : http://warplayer.free.fr/files/osiris_dev.zip Lots of bugs found in the previous release have been corrected , but that's still a "dev" version , where big pieces can still be changed before the upcoming Release. If you have any suggestion on design or any particular needs, please let me know. I'm also looking for people to help me writing nice Osiris tutorials. Alan Schmitt -- The hacker: someone who figured things out and made something cool happen.