English version
Accueil     À propos     Téléchargement     Ressources     Contactez-nous    

Ce site est rarement mis à jour. Pour les informations les plus récentes, rendez-vous sur le nouveau site OCaml à l'adresse ocaml.org.

Browse thread
[Caml-list] Dynamically evaluating OCaml code
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2004-04-08 (19:45)
From: Issac Trotts <ijtrotts@u...>
Subject: Re: [Caml-list] Dynamically evaluating OCaml code
> I feel that this question really also touches the recent discussion
> concerning library management.  If it were very easy to make use of
> contributed code, we wouldn't talk so often about extensions to the
> standard library.

I'm thinking it would be very handy to have a code snippet server.
Something like this:

type fun_info = 
    key : int           (* unique identifier *)
    authors : string list
    date0 : int         (* initial revision, in minutes since 1980)
    date : int          (* most recent revision, in minutes since 1980)
    version : int list  (* major, minor, micro, etc. version numbers *)
    name : string       (* name of the function *)
    typ : string list   (* e.g., [ "int"; "string" ] for int -> string *)
    body : string       (* the source code for the function *)
    test : string       (* a function : unit -> unit that tests the code *)
    description : string
    digest : Digest.t
    dependencies : func list
    godi_deps : string list  (* list of godi packages it requires *)
    mutable num_downloads : int
    mutable rating_avg : float
    mutable rating_sdev : float
    license: BSD | GPL | LGPL | Qt | Other of string
type module_info = { ... }
type functor_info = { ... }
type class_info = { ... }
type snippet = 
      Fun of fun_info 
    | Module of module_info 
    | Functor of functor_info
    | Class of class_info

Database operations:
    - add new snippet
    - search on any field
    - create a module containing a function and all its dependencies
    - append a function and all of its dependencies to a .ml file and its
        .mli counterpart
    - load a function and all of its dependencies into the toplevel
    - add to local server a function and all its dependencies from a given
    - add to local server all functions from a given server (mirror)

Maybe something fine-grained like this could be added to GODI.  

> I agree here: that's why I'd like to see more social tools rather than
> extensions to the standard library.  It's tiresome to search the web
> for already invented wheels, downloading code, compiling it (hopefully
> without problems), installing it and keeping it up-to-date (including
> libraries that it depends on).
> I am not questioning the fact that OCaml could need more libraries for
> more functionality.  I am questioning that all of this should become
> part of a standard library.  I wouldn't mind seeing the code there, of
> course, but why burden the developers with tasks that could be done by
> the community?  What is "standard" anyway?  Only what INRIA calls one?
> Or what is used predominantly by the community?

If the standard library gets too large, that also means longer compile
times for the ocaml distro.  It already takes long enough.

Issac Trotts
(w) 530-757-8789

To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners