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=AWL autolearn=disabled version=3.1.3 Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by yquem.inria.fr (Postfix) with ESMTP id 6731FBC6B for ; Sun, 20 Jan 2008 18:31:42 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgAAANcUk0fAbSoIh2dsb2JhbACQFgEBAQgKKYEUmVY X-IronPort-AV: E=Sophos;i="4.25,224,1199660400"; d="scan'208";a="8088232" Received: from einhorn.in-berlin.de ([192.109.42.8]) by mail3-smtp-sop.national.inria.fr with ESMTP; 20 Jan 2008 18:31:41 +0100 X-Envelope-From: oliver@first.in-berlin.de X-Envelope-To: Received: from einhorn.in-berlin.de (localhost [127.0.0.1]) by einhorn.in-berlin.de (8.13.6/8.13.6/Debian-1) with ESMTP id m0KHVYK8029796 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT) for ; Sun, 20 Jan 2008 18:31:34 +0100 Received: (from www-data@localhost) by einhorn.in-berlin.de (8.13.6/8.13.6/Submit) id m0KHVYFe029794 for caml-list@yquem.inria.fr; Sun, 20 Jan 2008 18:31:34 +0100 X-Authentication-Warning: einhorn.in-berlin.de: www-data set sender to oliver@first.in-berlin.de using -f Received: from dslb-088-073-101-229.pools.arcor-ip.net (dslb-088-073-101-229.pools.arcor-ip.net [88.73.101.229]) by webmail.in-berlin.de (IMP) with HTTP for ; Sun, 20 Jan 2008 18:31:34 +0100 Message-ID: <1200850294.479385765adee@webmail.in-berlin.de> Date: Sun, 20 Jan 2008 18:31:34 +0100 From: Oliver Bandel To: caml-list@yquem.inria.fr Subject: Re: [Caml-list] requests for improvement References: <20080120171034.976917000084@mwinf8313.laposte.net> In-Reply-To: <20080120171034.976917000084@mwinf8313.laposte.net> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit User-Agent: Internet Messaging Program (IMP) 3.2.6 X-Scanned-By: MIMEDefang_at_IN-Berlin_e.V. on 192.109.42.8 X-Spam: no; 0.00; bandel:01 in-berlin:01 ocaml:01 ocaml:01 ocaml-bug:01 bug:01 bug:01 one-to-one:01 ocaml's:01 analog:98 imho:01 oliver:01 oliver:01 clearer:01 caml-list:01 Zitat von ivan chollet : > Two of my remarks about the current OCaml implementation: > > - About the Random module: could the function self_init () > take > something else as the current system date as the only entropy source? > I > think there are more valuable sources than the current time on > today's > computers. [...] Which would you suggest to be a good source? It must be cross-platform available, because OCaml will be compiled / used on different systems. There also are Random.full_init and Random.init. Don't you think, they can be used, when feeded with the data you might expect to be better? On Linux for example, a while ago some people who run servers had the problem that the random-device didn't had enough random data, and so generating random-inits for encryption-tools didn't worked. I think in later kernels this problem was solved, but this can show that relying on seemingly "better" solutions can yield worse results, if the conditions aren't as they should be. And: I'm not sure if the currently used solutions are really better... ...if you really need random data, look for devices that generate the data out of analog circuits! But if you have an idea for doing it better, possibly use it for yourself (and let know us your ideas), and/or write a feature wish to teh OCaml-bug reporting system: Bug reports: http://caml.inria.fr/bin/caml-bugs It's called "Bug reports" but feature wishes are welcome there also. > > - Any plans about giving the possibility to spread the > definition > across more than one source file. Sometimes modules are more than 300 > lines, > so I would like to be able to split it over two or more files. > Currently > there is a one-to-one relationship between files and modules. As far > as I > know, OCaml is the only language to have such a particular > constraint. [...] I doubt it is "the only" language. But IMHO it's not a good idea to spread code, depending to one module over many files. Spreading code over many files is the best way to create a mess. And THIS is one major problem of code of many projects: that it is a mess! OCaml's strictly handling of some issues is the way to make things cleaner and clearer. You can (re)use code of already available modules, so in this way you can pick up the "spreaded" things. This is clear and clean. Ciao, Oliver