caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] ANN: lablgtk-react preview
@ 2011-10-02 14:51 Adrien
  2011-10-02 15:37 ` Adrien
  0 siblings, 1 reply; 2+ messages in thread
From: Adrien @ 2011-10-02 14:51 UTC (permalink / raw)
  To: Caml Mailing List

Hi,

I am pleased and relieved to announce lablgtk-react, a project to ease
the use of Functional Reactive Programming (FRP) for lablgtk-based
graphical user interfaces.

Currently, the project is available as a preview but I am happy with the
way it is looking and with the programming style it offers and have
decided to announce it in order to receive feedback and comments.
Installation is not perfect and best thing for new codes is to try from
the src/tests directory.

Put simply, FRP makes it possible to write functional code whose inputs
and arguments originate from imperative event sources. For instance, you
can have a button and execute functional code each time it is clicked,
carrying a state of the button between presses. As such, it really only
benefits functional languages.

Currently, the source distribution contains one example: browser_test.
It creates a tab-based web browser where tabs are elements in a zipper
and are themselves updated in a functional way. The state which models
the browsing session is currently quite simple: the page title and the
page URI. However, the page title is shown in the tab label and in the
window title, it is also possible to move tabs around and the code is
_simple_.

My ultimate goal is to make a browser that I can call "intelligent" and
spend time on the interesting part instead of becoming mad because of
the UI.

Also, don't forget that OCaml is multi-paradigm: choose the right one for
each task and don't hesitate to mix them.

The only dependency is lablgtk2. You can use any FRP implementation that
provides "create" and "fold" (a very simple and mostly untested one is
provided as "MiniFRP" in the source). The example uses lablwebkit[1].

The project website includes some more infos and a longer introduction:
  http://lablgtk-react.forge.ocamlcore.org

[1] lablwebkit-1.4.0 (compatible with webkit-gtk >= 1.4.0) is available at
  http://forge.ocamlcore.org/frs/download.php/702/lablwebkit-1.4.0.tar.gz

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

* Re: [Caml-list] ANN: lablgtk-react preview
  2011-10-02 14:51 [Caml-list] ANN: lablgtk-react preview Adrien
@ 2011-10-02 15:37 ` Adrien
  0 siblings, 0 replies; 2+ messages in thread
From: Adrien @ 2011-10-02 15:37 UTC (permalink / raw)
  To: Caml Mailing List

I forgot to mention that you need lablgtk2's adrien/mix branch for the
examples (and only for the examples iirc).

There are two reasons. It uses some additional API, especially
#as_something methods and "notify::foo" signals. lablwebkit also
requires a bug fix that it not merged into master yet.

Also, godi users are a bit privileged with lablgtk and lablwebkit
since they have an option in lablgtk's configuration to use the
sources from the http://git.ocamlcore.org/lablgtk/lablgtk.git git repo
and the adrien/mix branch directly.
For lablwebkit, http://notk.org/~adrien/godi-lablwebkit.tar.gz can be
extracted to $GODIPREFIX/build/godi, along with the sources I linked
being put in $GODIPREFIX/build/distfiles.

Generally speaking, installation of lablwebkit is done through
ocamlfind and you will need the various development packages for
webkit-gtk in case your distribution splits packages.

Packaging of everything will be improved over the time of course (use
of OASIS everywhere is planned).

Regards,
Adrien Nader

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

end of thread, other threads:[~2011-10-02 15:37 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-10-02 14:51 [Caml-list] ANN: lablgtk-react preview Adrien
2011-10-02 15:37 ` Adrien

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).