From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id 80B90BC69 for ; Fri, 1 Jun 2007 19:09:02 +0200 (CEST) Received: from hub.hrl.com (hub.hrl.com [208.179.241.200]) by concorde.inria.fr (8.13.6/8.13.6) with ESMTP id l51H91d8021546 for ; Fri, 1 Jun 2007 19:09:01 +0200 Received: from [192.27.172.110] (dangle.hrl.com [192.27.172.110]) by hpux03.hrl.com (iPlanet Messaging Server 5.2 HotFix 2.10 (built Dec 26 2005)) with ESMTP id <0JIY005HDVMVB0@hpux03.hrl.com> for caml-list@inria.fr; Fri, 01 Jun 2007 10:08:56 -0700 (PDT) Date: Fri, 01 Jun 2007 10:08:55 -0700 From: Aleksey Nogin Subject: Announcing OMake 0.9.8.3; pre-announcing OMake 0.9.9 with automated C library wrapping for OCaml To: Caml List Reply-To: nogin@metaprl.org, Caml List , omake@metaprl.org Message-id: <466052A7.2090008@metaprl.org> Organization: MetaPRL/Mojave Research Group MIME-version: 1.0 Content-type: text/plain; charset=ISO-8859-1; format=flowed Content-transfer-encoding: 7BIT User-Agent: Thunderbird 1.5.0.10 (X11/20070301) X-Miltered: at concorde with ID 466052AD.001 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; ocaml:01 syntax:01 ocaml:01 foo:01 baz:01 foo:01 baz:01 dependencies:01 cygwin:01 osh:01 syntax:01 makefiles:01 bugfixes:01 verbose:01 redesigned:01 We are proud to announce the latest release of the OMake Build System - OMake 0.9.8.3 ("stable") and pre-announce that OMake 0.9.9 ("unstable") is expected to be released within a week. OMake is a build system designed for scalability and portability. It uses a syntax similar to make utilities you may have used, but it features many additional enhancements, including the following. - Support for projects spanning several directories or directory hierarchies. - Fast, reliable, automated, scriptable dependency analysis using MD5 digests, with full support for incremental builds. - Fully scriptable, includes a library that providing support for standard tasks in C, C++, OCaml, and LaTeX projects, or a mixture thereof. Often, a configuration file is as simple as a single line .DEFAULT: $(OCamlProgram prog, foo bar baz) which states that the program "prog" is built from the files foo.ml, bar.ml, and baz.ml. This one line will also invoke the default standard library scripts for discovering implicit dependencies in OCaml files. - Full native support for rules that build several files at once. - Portability: omake provides a uniform interface on Linux/Unix (including 64-bit architectures), Win32, Cygwin, Mac OS X, and other platforms that are supported by OCaml. - Built-in functions that provide the most common features of programs like grep, sed, find, and awk. These are especially useful on Win32. - Active filesystem monitoring, where the build automatically restarts whenever you modify a source file. This can be very useful during the edit/compile cycle. - A built-in command-interpreter osh that can be used interactively. OMake preserves the style of syntax and rule definitions used in Makefiles, making it easy to port your project to OMake. There is no need to code in Perl (cons), or Python (scons). However, there are a few things to keep in mind: 1. Indentation is significant, but tabs are not required. 2. The OMake language is functional: functions are first-class and there are no side-effects apart from I/O. 3. Scoping is dynamic. OMake is licensed under a mixture of the GNU GPL license (OMake engine itself) and the MIT-like license (default configuration files). Additional information and extensive documentation can be found on OMake Home Page at http://omake.metaprl.org/ OMake version 0.9.8.3 is a minor feature enhancements and bugfixes release. The changes in this version include: - Made it easy to define default ("implicit") rules for phony targets. - Detect case-insensitive filesystems on Unix-like operating systems (especially important under Mac OS X). - A number of performance improvements. - Documentation improvements. For a more verbose change log, please visit http://omake.metaprl.org/changelog.html#0.9.8.3 . Source and binary packages of OMake 0.9.8.3 may be downloaded from http://omake.metaprl.org/download.html . In addition, OMake may be obtained via the GODI packaging system. To try it out, run the command "omake --install" in a project directory, and modify the generated OMakefile. Even though we call it "stable", OMake 0.9.8.3 should still be considered an alpha release. While we have made an effort to ensure that it is bug-free, it is possible some functions may not behave as you would expect. Please report any comments and/or bugs to the mailing list omake@metaprl.org and/or at http://bugzilla.metaprl.org/ OMake 0.9.9 will feature a large number of major changes that Jason Hickey have been working on for the last two years. These changes include: * Completely redesigned variable naming semantics aimed at making sure that similarly named unrelated variables from different source files do not clash. * Optional ("keyword") arguments to functions. * An option to use an alternative "programming-language-style" syntax, where all string constants have to be quoted, but variable and function references do not have to use the $(...) syntax. * Dynamic loading of C libraries, including: - Tools for automated creation of OCaml wrappers to C libraries by parsing the C header files. - As an example, _automatically generated_ OCaml and OMake wrappers for the GTK library. - As a demo for the above, an OMake GUI capable of presenting a browseable dependency tree, and much more. * And many other features (much more complete and detailed list will accompany the release). -- Aleksey Nogin, Research Scientist Advanced Technologies Department, Information & System Sciences Lab HRL Laboratories, LLC, Malibu, CA