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.1 required=5.0 tests=AWL autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by yquem.inria.fr (Postfix) with ESMTP id 5E221BBC1 for ; Fri, 14 Mar 2008 00:45:57 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ArEBANNZ2UfU436unmdsb2JhbACBWo8eAQEBAQEGBAYHChiZCwE X-IronPort-AV: E=Sophos;i="4.25,497,1199660400"; d="scan'208";a="8369762" Received: from discorde.inria.fr ([192.93.2.38]) by mail2-smtp-roc.national.inria.fr with ESMTP; 14 Mar 2008 00:45:57 +0100 Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by discorde.inria.fr (8.13.6/8.13.6) with ESMTP id m2DNju1v009979 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=OK) for ; Fri, 14 Mar 2008 00:45:57 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ArEBANNZ2UfU436unmdsb2JhbACBWo8eAQEBAQEGBAYHChiZCwE X-IronPort-AV: E=Sophos;i="4.25,497,1199660400"; d="scan'208";a="8369761" Received: from moutng.kundenserver.de ([212.227.126.174]) by mail2-smtp-roc.national.inria.fr with ESMTP; 14 Mar 2008 00:45:56 +0100 Received: from gate.lan.gerd-stolpmann.de (dslb-084-059-108-226.pools.arcor-ip.net [84.59.108.226]) by mrelayeu.kundenserver.de (node=mrelayeu2) with ESMTP (Nemesis) id 0MKwtQ-1JZx7U1R0K-0007hb; Fri, 14 Mar 2008 00:45:56 +0100 Received: from [192.168.0.32] (fw.lan.gerd-stolpmann.de [192.168.1.1]) by gate.lan.gerd-stolpmann.de (Postfix) with ESMTP id 1F9DFC074 for ; Fri, 14 Mar 2008 00:45:56 +0100 (CET) Subject: Wink releases Hydro-0.6 From: Gerd Stolpmann To: caml-list X-Sieve: CMU Sieve 2.2 X-IronPort-AV: E=Sophos;i="4.23,220,1194217200"; d="scan'208";a="4994761" X-Original-To: caml-list@yquem.inria.fr X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgAAAE8gTEfAXQInh2dsb2JhbACBW41iAQEBCAop X-IronPort-AV: E=Sophos;i="4.23,220,1194217200"; d="scan'208";a="4994746" X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgAAAE8gTEfU436rmGdsb2JhbACBW41iAQEBAQcCBhMY X-IronPort-AV: E=Sophos;i="4.23,220,1194217200"; d="scan'208";a="4677699" X-Provags-ID: V01U2FsdGVkX19gSy0kQggG5pBYJzoXuRfKs41uhX3lTQtZk97 7ahOs8d3ZdifZeeK8Fk67ddua+TdAfKK4lVJck0AOhhUCJ2cRJ EU4J7juPfX1Wh1YlDYTdoV8Mg8iFzTh X-Miltered: at discorde with ID 47D9BCB4.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Miltered: at concorde with ID 474C911D.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; gerd:01 stolpmann:01 ocaml:01 o'caml:01 o'caml:01 runtime:01 runtime:01 idl:01 marshalling:01 idl:01 lacks:01 variants:01 downcasts:01 mismatch:01 one-to-one:01 X-BeenThere: caml-list@yquem.inria.fr X-Mailman-Version: 2.1.5 X-Spam: no; 0.00; caml-list:01 wink:01 wink:01 o'caml:01 o'caml:01 zeroc:01 zeroc:01 ocamlnet's:01 queues:01 marshalling:01 correctness:01 ocamlnet's:01 queues:01 sunrpc:01 casts:01 Content-Type: text/plain Date: Fri, 14 Mar 2008 00:46:41 +0100 Message-Id: <1205452001.31340.19.camel@flake.lan.gerd-stolpmann.de> Mime-Version: 1.0 X-Mailer: Evolution 2.12.1 Content-Transfer-Encoding: 7bit X-Spam: no; 0.00; gerd:01 stolpmann:01 bug:01 o'caml:01 o'caml:01 runtime:01 runtime:01 idl:01 marshalling:01 idl:01 lacks:01 variants:01 downcasts:01 mismatch:01 one-to-one:01 Hi list, Wink Technologies, Inc., the makers of the soon-to-be-famous people search engine (http://wink.com), have just released a new version of the Hydro library, which is an implementation of the ICE protocol. This version adds support for servers, and also includes a lot of bug fixes. -------------------------------------------------------- >>From the README: -------------------------------------------------------- Hydro is an independent implementation of ICE, the object-oriented RPC protocol by ZeroC, for the O'Caml programming language. This is an early, not yet complete release, but the code is already stable and usable. For the restrictions of this release, see below. Hydro (like ICE) allows you to bridge language barriers by letting components written in different programming languages communicate with each other. ZeroC's ICE product currently includes implementations for C ++, Java, C#, Python, Ruby, VB, and PHP. Hydro adds support for O'Caml. The ICE protocol is rich enough to make the representation of the data to communicate easy and convenient to use, and adopts an object-oriented type system. ZeroC sees ICE as a superior successor to CORBA. Hydro includes a runtime, and a generator called hydrogen. The runtime is fully asynchronous, based on Ocamlnet's event queues. The generator is used to create a thin layer on top of the runtime that maps abstract Hydro types to specific O'Caml types. The Hydro engine therefore appears to the programmer as if it was typed using the input IDL file. Unlike the generators shipped by ZeroC, hydrogen does not create marshalling code -- we see this as the task of the runtime and not of the language mapping layer. Because of this design decision we have high confidence in the correctness of the generator. Although we want Hydro to be an implementation whose protocol is fully compatible with ICE and that can process all its IDL files, we take some freedom to deviate from what is described in ZeroC's "ICE manual". ICE was designed with mainstream object-oriented languages in mind, and therefore lacks many of the advanced constructs available in O'Caml (variants, for example). Conversely, ICE includes constructs such as hierarchical exceptions and downcasts which do not exist in O'Caml (and for good reason!). To deal with the "impedance mismatch," we implemented emulations for these concepts. On the other hand, O'Caml offers advanced features which ought to be exploited by a good implementation. For example, in O'Caml, asynchronous networking code is quite natural, so we have chosen to make this the default style. So while Hydro is quite straightforward, the O'Caml programmer should not expect a design which is a perfect one-to-one translation of what ZeroC describes. *** Features *** * Support for clients (proxies) and servers * The whole ICE type system is implemented, and can be marshalled. This includes graphs of objects. * The whole ICE type system can be mapped to O'Caml types. The mapping is quite flexible and configurable, e.g. you can choose whether you prefer arrays or lists as representations of ICE sequences. Where necessary, the properties of the ICE type system are emulated. For example, hydrogen generates special code for downcasts of objects. * IDL files are dynamically represented at runtime * The runtime supports both asynchronous and synchronous method invocation * The runtime can be integrated with other libraries that also base on Ocamlnet's event queues, e.g. with Ocamlnet's HTTP clients, or SunRPC. * Fully automatic connection management * The generated code is properly indented * Liberal license conditions *** Restrictions *** * Hydro only supports twoway calls over TCP for now * Hydro does not support separate compilation (i.e. you cannot split an .ice file into several parts, hydrogen every part alone, and then merge them later). This is a fundamental restriction we'll never be able to improve. * There is no support for Slice checksums * There is no support for checked proxy casts (will follow soon) * There is no support for configuration files * There is no support for stringified proxies and endpoints * The runtime and the generated language mapping layer are both reentrant. However, there is no specific support for multi-threaded programming beyond this * There is no support for compression * Except of calling the locator service of IceGrid, there is no support for add-on technologies like IceGrid, Freeze, etc. We have some interest in IceGrid, so this may also follow at some time. [... rest of README omitted...] -------------------------------------------------------- Download, and documentation -------------------------------------------------------- Download link: http://oss.wink.com/hydro/ Manual: http://oss.wink.com/hydro/hydro-0.6/doc/html/index.html A GODI package godi-hydro exists. For general information about ICE, see ZeroC's homepage: http://zeroc.com Gerd -- ------------------------------------------------------------ Gerd Stolpmann * Viktoriastr. 45 * 64293 Darmstadt * Germany gerd@gerd-stolpmann.de http://www.gerd-stolpmann.de Phone: +49-6151-153855 Fax: +49-6151-997714 ------------------------------------------------------------