caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [ANN] STMlib and Enhtop available
@ 2007-03-06 14:37 Zheng Li
  2007-03-13  2:08 ` Zheng Li
  0 siblings, 1 reply; 2+ messages in thread
From: Zheng Li @ 2007-03-06 14:37 UTC (permalink / raw)
  To: caml-list; +Cc: Roberto Di Cosmo


Hi list,


I recently announced the availability of these two small piece of code at
the beginners list [1][2]. Then some people kindly encouraged me to post
it here also. Here are they:



STMlib
======

This is a user-space implementation of STM (Software Transactional Memory)
library for OCaml. It's mainly inspired by the STM library of Haskell, with
some exceptions due to the different nature of languages and different
strategies of implementation.

- This library is a user level implementation, whereas the Haskell version is
based on primitives built into the runtime.

- This library is purely an add-on to the already existed concurrent library
of standard OCaml: threads, processes (TODO) and network programs
(TODO). I.e. you can still program your concurrent applications with all
facilities already exist in OCaml (e.g. Thread, Event, Unix etc.), but with the
functions from this library you may transactionally read/write shared data
instead of using locks or messages (and you may mix them if you really want).

- There are subtle differences on the signatures and semantics of some
specific functions between this library and the Haskell version. They are
documented in the library manual.

Currently only the threads (also vmthread) back-end is provided as a proof of
concept. Other back-ends (process and network program), which share the exact
interface, will come out in future version. The object is being able to write
one .ml source program, compile once, but link with different back-ends to get
executables of various execution model for different environments.

Source code and documents are available at

    http://www.pps.jussieu.fr/~li/software/index.html#stmlib



Enhtop
======

This is an experimental patch (we also provide pre-built testing executable and
Debian package) for an enhanced OCaml toplevel with following features:

For any kind of bindings (i.e. value, type, module, class etc.):

  * Identifiers been rebound are shown differently by default, to distinguish
    with currently effective ones
  * A new directive to query (by kinds or names or their composition) and show
    both current and history bindings
  * A new directive to show the current binding of any identifier without
    evaluating or rebinding it
  * A type-check-only testing mode to experiment your definitions without
    polluting the world, and the directive to enter/leave it

Documents (running examples and installation instructions) and deliverables are
available at

    http://www.pps.jussieu.fr/~li/software/index.html#enhtop

PS. some wrong dependency (on libc6-dev 2.5) in the previously provided Debian
packages is now fixed.



Enjoy!


[1] http://tech.groups.yahoo.com/group/ocaml_beginners/message/7390
[2] http://tech.groups.yahoo.com/group/ocaml_beginners/message/7393

-- 
Zheng Li
http://www.pps.jussieu.fr/~li


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [ANN] STMlib and Enhtop available
  2007-03-06 14:37 [ANN] STMlib and Enhtop available Zheng Li
@ 2007-03-13  2:08 ` Zheng Li
  0 siblings, 0 replies; 2+ messages in thread
From: Zheng Li @ 2007-03-13  2:08 UTC (permalink / raw)
  To: caml-list; +Cc: Roberto Di Cosmo


Hi, list

This is a quick bug-fix and features update to Enhtop since the first
release. Main enhancements include:

  * fixed a serious bug of visiting values from opened modules (Thanks Roberto)
  * new directive #env to set toplevel environment configuration. For now,
    which kinds of declarations get pretty printed is configurable, and we
    make a default configuration different from, and hopefully more rational
    than, the original toplevel setting. 
  * new directive #modu to list all the modules at hand and indicate whether
    they are already loaded or not. 
  * #directory now support the removal of path by prefixing "-"
  * #tell can now distinguish which module the current binding is from, in the
    case that more than one modules have the same identifier and all being
    opened
  * #tell now allow independent access to a single entry of an external
    module. It prints both the value and the type of the visited entry if 
    the module is already loaded, otherwise only the type is printed.
  * *most* of the directives (both original and newly added ones) now get
    "defaults", i.e., when executed without any arguments, they fall back to
    some predefined default functions, which usually provide relevant
    helping information. e.g. #directory will print out current path setting,
    #load will print out the name of all .cmo and .cma currently available etc.
  * the feedback of some directives is improved.

Check changelog and README from its website for more details and examples. 

One thing you should note that, we do not touch source files other than those
inside the "toplevel" directory. I.e. there is no modification to your
compilers (ocamlc/ocamlopt etc.) and libraries, the compilers themselves and
the executables produced by them should remain identical to the originals. So
you're safe and free to switch to it or switch back. We'd like to get more
feedback from more people to improve it.

> This is an experimental patch (we also provide pre-built testing executable and
> Debian package) for an enhanced OCaml toplevel with following features:
>
> For any kind of bindings (i.e. value, type, module, class etc.):
>
>   * Identifiers been rebound are shown differently by default, to distinguish
>     with currently effective ones
>   * A new directive to query (by kinds or names or their composition) and show
>     both current and history bindings
>   * A new directive to show the current binding of any identifier without
>     evaluating or rebinding it
>   * A type-check-only testing mode to experiment your definitions without
>     polluting the world, and the directive to enter/leave it
>
>     http://www.pps.jussieu.fr/~li/software/index.html#enhtop

-- 
Zheng Li
http://www.pps.jussieu.fr/~li


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2007-03-13  2:23 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-03-06 14:37 [ANN] STMlib and Enhtop available Zheng Li
2007-03-13  2:08 ` Zheng Li

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).