Version française
Home     About     Download     Resources     Contact us    
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: -- (:)
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
      server
    - 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
http://mallorn.ucdavis.edu/~ijtrotts
(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