Florent Monnier | 22 May 2013 16:39

Re: [rpi] opam switch to get ocamlopt on RPi with raspbian

2013/5/22, Anil Madhavapeddy:
> On 22 May 2013, at 12:30, Florent Monnier wrote:
[...]
>> So I thought to try to:
>> opam switch 4.00.1
>
> 4.00.1 (released) is not the same as 4.01.  Try:
>
> $ opam switch 4.01.0dev+trunk
>
> ...which will give you a trunk compiler with all of the ARM fixes included.
> Benedikt has committed several more fixes since the original one, so trunk
> is generally in much better shape.  These changes will be in OCaml-4.1 when
> it's released.

So this is what I tryed, but got this error:

pi <at> raspberrypi ~ $ opam switch 4.01.0dev+trunk
[...]
boot/ocamlrun boot/ocamlc -nostdlib -I boot -strict-sequence -w
+33..39 -warn-error A -I utils -I parsing -I typing -I bytecomp -I
asmcomp -I driver -I toplevel -c asmcomp/closure.ml
boot/ocamlrun boot/ocamlc -nostdlib -I boot -strict-sequence -w
+33..39 -warn-error A -I utils -I parsing -I typing -I bytecomp -I
asmcomp -I driver -I toplevel -c asmcomp/cmmgen.mli
boot/ocamlrun boot/ocamlc -nostdlib -I boot -strict-sequence -w
+33..39 -warn-error A -I utils -I parsing -I typing -I bytecomp -I
asmcomp -I driver -I toplevel -c asmcomp/cmmgen.ml
make[2]: Leaving directory `/home/pi/.opam/4.01.0dev+trunk/build/ocaml'
make[1]: Leaving directory `/home/pi/.opam/4.01.0dev+trunk/build/ocaml'
(Continue reading)

Ricardo Rocha | 22 May 2013 16:07
Picon

CICLOPS 2013 - Last Call For Papers


                   CICLOPS 2013 - Call for Papers
                   ==============================

                  13th International Colloquium on
     Implementation of Constraint and LOgic Programming Systems

                 http://akira.ruc.dk/~cth/ciclops13

                Istanbul, Turkey, August 24/25, 2013
                      Co-located with ICLP 2013

Important Dates
===============

Abstract Submission: June 1, 2013
Paper Submission:    June 8, 2013
Notification:        July 1, 2013
Camera-ready:       July 13, 2013
Workshop:      August 24/25, 2013

Topics of Interest
==================

CICLOPS is a well established line of workshops. This will be the 13th
edition in a successful series of workshops which is traditionally
co-located with ICLP. The CICLOPS workshop aims at discussing and
exchanging experience on the design, implementation, and optimization
of constraint and logic programming systems, and other systems based
on logic as a means of expressing computations. Preference will be
(Continue reading)

oliver | 22 May 2013 14:34
Picon

Licenses - Confusion

Hello,

I did publish one of my tools as GPLv3.
It is written in OCaml.

Now I saw at another project, that there is the need
for an "OCaml exception" regarding linking.

If thats true I may have missed a crucial points
when thinking about the license for tools written in OCaml.

I'm not a lwayer, and all that licenses stuff is rather+
annoying and confusing to me.
That OCaml code needs special treatment here, even
OCaml is shipped even with Debian, who surely would not accept
GPL-violating stuff, is annoying.

So, some questions came up now:

  - Which licenses can be used together with OCaml
    without changes?

  - Which licenses can be used together with added exceptions,
    and which exceptions are that?

  - In case of needed exceptions, where to find "ready-to-use"-versions
    of these licenses?

  - How to handle a project that already was published under a license
    that does not match 1:1 with OCaml licenses?
(Continue reading)

Florent Monnier | 22 May 2013 13:30

[rpi] getting ocamlopt on RPi with raspbian

Hi,

While searching for [ocamlopt raspberry pi] on seeks.fr I've found this:

http://www.raspberrypi.org/phpBB3/viewtopic.php?t=23565&p=219670
which points to:
https://godirepo.camlcity.org/pipermail/godi-list/2012-November/003537.html
it says:
"""
If you read this, and OCaml-4.01 is already out, you probably
do not need to take care of the following, because the required patch
is probably already in this release
"""

I installed yesterday "2013-02-09-wheezy-raspbian.img" which provides ocaml 3.

I've insalled ocaml libs provided by apt-get, included -dev libs.
I'm not sure to understand. What can we do with it without ocamlopt?

What is the prefered way to get ocamlopt working on RPi today?

Opam compiles fine with ocaml 3.
After closing all the other applications opam init can finish without
running out of memory.

So I thought to try to:
opam switch 4.00.1
[...]
+ ./boot/ocamlrun boot/myocamlbuild byte_stdlib_mixed_mode ocamlc
lex/ocamllex camlp4/Camlp4/Camlp4Ast.partial.ml
(Continue reading)

Brigitte Pientka | 22 May 2013 05:06
Picon
Favicon

LFMTP'13: Logical Frameworks and Meta-Languages (CFP)


=====================================================
 
   ACM SIGPLAN International Workshop on Logical Frameworks
    and Meta-Languages: Theory and Practice (LFMTP'13)

           http://complogic.cs.mcgill.ca/lfmtp13

                23 September, 2013 Boston, USA

              Co-located with with ICFP'13

                       CALL FOR PAPERS
 =====================================================

IMPORTANT DATES

Paper submission:        June 14, 2013
Author notification:        July 7, 2013
Final versions due:       July 18, 2013

=====================================================

Logical frameworks and meta-languages form a common substrate for
representing, implementing, and reasoning about a wide variety of
deductive systems of interest in logic and computer science. Their
design and implementation on the one hand and their use in reasoning
tasks ranging from the correctness of software to the properties of
formal computational systems on the other hand have been the focus of
considerable research over the last two decades. This workshop will
bring together designers, implementors, and practitioners to discuss
various aspects impinging on the structure and utility of logical
framework. The broad subject areas of LFMTP'13 are:


* Encoding and reasoning about the meta-theory of programming
languages and related formally specified systems.
* Theoretical and practical issues concerning the treatment of variable
binding.
* Logical treatments of inductive and co-inductive definitions and
associated reasoning techniques.
* New theory contributions: canonical frameworks, contextual
frameworks, functional programming over logical frameworks.

This year's invited speaker are Dale Miller (Inria) and Robert Harper (CMU) .
In addition, this year LFMTP will celebrate the twenty years anniversary of the
 publication of:

Robert Harper, Furio Honsell and Gordon Plotkin. A Framework For
Defining Logics. Journal of the Association for Computing Machinery,
40(1):143-184, 1993


Program Committee:
=================

* David Baelde, ENS
* James Cheney, Edinburgh
* Adam Chlipala, MIT
* Dan Licata, CMU/IAS
* Alberto Momigliano, Milano (organizer)
* Brigitte Pientka, McGill (organizer)
* Nicolas Pouillard ITU
* Randy Pollack, Harvard (organizer)
* Andrei Popescu, TUM
* Florian Rabe, Bremen
* Stephanie Weirich, UPenn


Submission Details:
============

In addition to regular papers, we also solicit "work in progress"
report, in a broad sense. Those do not need to report original or
fully polished research results, but should be interesting for the
community at large.

Submitted papers should be in PDF, formatted using the ACM SIGPLAN
style guidelines (9pt format, more details appear on the symposium web
page). The length is restricted to 12 pages, except for "Work in
Progress" papers, which are restricted to 6 pages.

Submission is via EasyChair:

  https://www.easychair.org/conferences/?conf=lfmtp2013

Proceedings:
============

Accepted (regular) papers will be included in the ACM Digital Library.
Authors are encouraged to publish auxiliary material with their paper
(technical appendixes, source code, scripts, test data, etc.).


Travel Support:
===============

Student attendees with accepted papers can apply for a SIGPLAN PAC grant
to help cover travel expenses. PAC also offers other support, such as
for child-care expenses during the meeting or for travel costs for
companions of SIGPLAN members with physical disabilities, as well as for
travel from locations outside of North America and Europe. For details
on the PAC program, see its web page (http://www.sigplan.org/PAC.htm).

Dario Teixeira | 20 May 2013 16:31
Picon
Favicon

The rec/nonrec debate

Hi,

As you know, there is in OCaml some asymmetry regarding the rec/nonrec 
defaults for type and value declarations.  Types are recursive by default
and there's no way to "unrecurse" them, whereas values are by default not
recursive and can be made recursive via the "rec" keyword.

The unrecursiveness of type declarations is cause for some chagrin, as a 
recent ticket on Mantis demonstrates [1].

Here's something I wonder: if one were to wipe the slate clean, is there 
consensus among the community about the best defaults?  I'm leaning towards
having nonrec as the default behaviour for *both* types and values, and
using "rec" as the keyword for recursive types and values.  This scheme
would obviate the need for an actual "nonrec" keyword.

Obviously, such a change would be too intrusive to make to OCaml.  However, 
since people are working on "Next Generation ML" languages like Mezzo [2],
I think it would be good to get the community's pulse on this subject.
(Btw, from the examples posted on Mezzo's homepage, it seems to use the
same defaults as OCaml).

Your thoughts?

Best regards,
Dario Teixeira

[1] http://caml.inria.fr/mantis/view.php?id=6016
[2] http://gallium.inria.fr/~protzenk/mezzo-lang/

--

-- 
Caml-list mailing list.  Subscription management and archives:
https://sympa.inria.fr/sympa/arc/caml-list
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs
Jeremie Dimino | 20 May 2013 14:13
Favicon

[ANN] Core Suite 109.23.00 + async_parallel

I am pleased to announce the 109.23.00 release of the Core suite.

The following packages were upgraded:

- async_parallel
- core
- core_extended
- jenga

async_parallel is a new library.  It is for running tasks in other
processes on a cluster of machines.  A detailed description is
included in the API documentation:

  https://ocaml.janestreet.com/ocaml-core/109.23.00/doc/parallel/Std.html

Files and documentation for this release are available on our website
and all packages are in opam:

  https://ocaml.janestreet.com/ocaml-core/109.14.00/individual/
  https://ocaml.janestreet.com/ocaml-core/109.14.00/doc/

Here are the changelogs for versions 109.15.00 to 109.23.00:

# 109.15.00

## async_extra

- In `Rpc.client` and `Rpc.with_client`, allowed the client to
  implement the rpcs.

  Added a new optional argument: `?implementations:_ Client_implementations.t`.
- Added new module `Versioned_rpc.Both_convert` to allow the caller
  and callee to independently upgrade to a new rpc.

  This is a new flavor of `Versioned_rpc` in which both sides do some
  type coercions.

## async_unix

- The `epoll`-based scheduler now supports sub-millisecond timeouts,
  using `Linux_ext.Timerfd`.

  Async still uses the `select`-based scheduler by default.  We plan
  to switch the default to `epoll` in a few weeks, once we have done
  more testing.
- Eliminated module `Work_group`, which was for limiting the number of
  threads used by jobs.

  This was a little-used module that significantly complicated the
  implementation of the Async thread pool.

  One should consider using a `Throttle` instead.

  Along the way, fixed a bug in Async helper threads in which the
  finalizer could fire too early, causing an unhandled exception.  The
  fix involves relaxing the requirements on when
  `Thread_pool.finished_with_helper_thread` functions can be called,
  allowing it to be called while the helper thread still has work, but
  so long as no future work will be added.

## core

- Changed the tolerance of `Time.Robustly_compare` functions from
  `1E-7` to `1E-6`.
- Fixed the names of some toplevel pretty-printers, which referred to
  nonexistent modules.

  Fix some of the `pp`'s for Core which are used to install printers
  in the top-level.  Some of the toplevel printers refer to
  non-existent modules like `Core.Nativeint.pp`; this feature changed
  to the correct name, like `Core.Std.Nativeint.pp`.
- Added to module `Unix` functionality for getting and setting flags
  in the open-file-descriptor table.

  ```ocaml
  module Open_flags : sig type t include Flags.S with type t :` t  ...  end
  val fcntl_getfl : File_descr.t -> Open_flags.t
  val fcntl_setfl : File_descr.t -> Open_flags.t -> unit
  ```
- Added module `Linux_ext.Timerfd`.

  This allows one to create a file descriptor that can be monitored by
  `epoll` or `select` and notify them at a certain time.  It makes it
  possible to use `epoll` with sub-millisecond timeouts.
- Added `Version_util.application_specific_fields`, which allows
  custom build-time information to be included in an executable.

## zero

This is a new library with general data structures like `Core` but
that emphasizes performance over usability.

- Added module `Pool`.

  This is an implementation of a heap-block allocator that provides
  the API of a set of tuples.  The point is to allocate a single
  long-lived block of memory (the pool) that lives in the OCaml major
  heap, and then to reuse the block, rather than continually
  allocating blocks on the minor heap, and then promoting them to the
  major heap.

# 109.17.00

## async_extra

- Added an option to `Async.Log.Rotation` to include the date in
  logfile names.

  This is mostly for archiving purposes.
- Made `Versioned_rpc.Callee_converts.Pipe_rpc.implement_multi` agree
  with `Rpc.Pipe_rpc.implement` on the type of pipe rpc
  implementations.
- Improved the performance of `Versioned_typed_tcp`.

  Avoided creating deferreds while reading the incoming messages.

## core

- Fixed `Random.self_init`, which was broken since 109.00.00 with the
  upgrade to OCaml 4.0

  The fix changed the type signature expressed in `core_random.ml` of
  the standard OCaml `caml_sys_random_seed` C function from `unit ->
  int` from `unit -> int array`.  That C function changed between
  OCaml 3.12 and 4.0.
- Moved module `Core_extended.Unix.Cidr` into `Core.Unix`.
- Wrapped `Unix.wordexp` into an `Or_error.t` to handle systems that
  does not implement it in the libc.
- Fixed two other printer names
- Added `Array.int_blit` and `Array.float_blit`, which are specialized
  fast blits for `int array` and `float array`.

  For motivation underlying this change and other design alternatives
  please see Section 3 "Fast, Slow and Incorrect Array blits" of
  http://janestreet.github.com/ocaml-perf-notes.html
- Added `Unpack_buffer.Unpack_one.sexp` for parsing sexps using the
  `Unpack_buffer` interface.

## zero

- Fixed `Obj_array.blit` to safely handle overlapping blits.

# 109.18.00

## async_unix

- added `Async.Unix.fcntl_{get,set}fl`.

  Made `Reader` and `Writer` detect if they are passed a file
  descriptor with incorrect permissions (`O_WRONLY` for `Reader`,
  `O_RDONLY` for `Writer`).

## core

- changed implementation of `Array.sort` to use introsort.

  See http://en.wikipedia.org/wiki/Introsort.
- tweaked a unit test in `Core.Flags` to not print a message to
  stderr.

## pa_ounit

- a number of improvements to `inline_tests_runner`, including a
  `-verbose` flag.

  1. Made pa_ounit errors more readable.
  2. Added `-verbose` flag.
  3. Made the `-only-test` locations compatible with those displayed
     by the `-verbose` flag.
  4. Renamed `-display` as `-show-counts` to avoid confusion with
     `-verbose`.
  5. Improved errors when parsing the command line.
  6. Updated the readme.
  7. Added a `-list-test-names` which shows what tests would be run,
     if this option was not given.

# 109.19.00

## async_extra

- Added function `Versioned_typed_tcp.Client.flushed : t ->
  [ `Flushed | `Pending of Time.t Deferred.t ]`.

  This exposes whether the underlying `Writer.t` has been flushed.

## async_unix

- Reworked a number of `Reader` functions to improve performance by
  avoiding deferreds.

  This is a followup to the `Reader` improvements in 109.14, and
  eliminates some last vestiges of performance degradation that had
  been introduced in 109.04.
- Added function `Reader.lseek : t -> int64 -> mode:[< `Set | `End] ->
  int64 Deferred.t`.

  `lseek t offset ~mode` clears `t`'s buffer and calls `Unix.lseek` on
  `t`'s file descriptor.
- Added function `Writer.bytes_received : t -> int`.
- Added function `Unix.mkfifo : ?perm:file_perm -> string -> unit
  Deferred.t`, which was mistakenly missing.

  This is a simple wrapper around `Core.Unix.mkfifo`.

## core

- Changed `Time.to_string` and `Time.sexp_of_t` to include the
  timezone.

  This is an incompatible change with very old programs in which
  `Time.of_string` and `Time.t_of_sexp` did not support the timezone.

  If you have programs that are:

  * very old and do Time string/sexp handling
  * rely on reading in time values without using `Time.of_string` and
    `Time.t_of_sexp`.
  * rely on chains of writing/reading/writing times across machines
    and timezones where the time is always intended to be taken as the
    local time on the currently reading machine

  you should recompile/review your code to make sure you won't have
  issues.
- Added function `List.remove_consecutive_duplicates : 'a t ->
  equal:('a -> 'a -> bool) -> 'a t`.

  This returns the input list with consecutive duplicates removed, and
  doesn't change the order of the remaining elements.
- Added module `User_and_group`, which is a pair of a unix username
  and primary unix group.

  The string/sexp converters follow the usual unix convention of
  `<user>:<group>`.
- Added function `Date.first_strictly_after : t -> on:Weekday.t -> t`.

  `first_strictly_after t ~on:day_of_week` returns the first
  occurrence of `day_of_week` strictly after `t`.
- Added functor `Type_equal.Lift`.

  It is always safe to conclude that if type `a` equals `b`, then type
  `a X.t` equals `b X.t`, for any type `X.t`.  The OCaml type checker
  uses this fact when it can.  However, sometimes, e.g. when using
  `Type_equal.conv`, one needs to explicitly use this fact to
  construct an appropriate `Type_equal.t`.  The `Type_equal.Lift*`
  functors do this.

  ```ocaml
  module Type_equal : sig
    type ('a, 'b) t
    ...
    module Lift (X : T1) : sig
      val lift : ('a, 'b) t -> ('a X.t, 'b X.t) t
    end
  end
  ```

## fieldslib

- Made `with fields` generate the same functions in the `Fields` and
  `Fields_of_*` modules whether the type is called `t` or not.

## zero

- Removed a performance test from `Pool` that was nondeterministically
  failing.

# 109.20.00

## async_core

- Added the ability for a `Throttle` to have resources that are
exclusively available to running jobs.

## async_unix

- Set `close-on-exec` for both ends of the pipe used to wake up the scheduler.

## core

- Wrapped `Unix.wordexp` in an `Or_error.t` since it is not available
on all systems.

- Added function `Process_env.parse_ssh_client`.
  This gets the address from which you're currently ssh'd in.

- Added to `Unix` module the ability to get and set
`IP_MULTICAST_LOOP` and `IP_MULTICAST_TTL`.

- Exposed module `Core.Std.Ref`, which was previously only available
via `Core.Ref`.

- Remove `Mutex.am_holding_mutex` and changed the type of `Mutex.try_lock`.

  With NPTL it is impossible to determine which thread is holding the
  lock.  So, `Mutex.am_holding_mutex` is unimplementable.  Also,
  `Mutex.try_lock` was incorrect because it claimed to raise if one was
  attempting to recursively lock.  Since it's not possible to
  distinguish between recursive locking and the lock being held by
  another thread, we changed the type to make this clear:

  ```ocaml
  val try_lock : t -> [ `Already_held_by_me_or_other | `Acquired ]
  ```

- Removed our custom version of the OCaml runtime's `core_sys_open` function.

  There used to be a bug in the OCaml runtime, PR#5069, in which
  `open_{in,out}_gen` could block while holding the OCaml lock, because
  they made a call to `fcntl` outside the blocking section.  We had our
  own C code with the bug fix and re-exposed the fixed versions of the
  functions in `Core`.

  The bug in OCaml has been fixed, so we have removed our patched
  function from `Core`.

- In `unix_stubs.c`, switched from using `FNM_FILE_NAME` to `FNM_PATHNAME`.

  The GNU project introduced FNM_FILE_NAME as a non-portable synonym for
  FNM_PATHNAME.

  We were using pre-processor macros to define FNM_FILE_NAME as
  FNM_PATHNAME if unavailable, but it is simpler to just use the more
  portable FNM_PATHNAME everywhere.

## ocaml_plugin

- Removed a test that (rarely) failed nondeterministically.

## sexplib

- Renamed converter generated by `with sexp` for polymorphic variants
so it is hidden from the toplevel.

  `of_sexp` created a value named `<type>_of_sexp__` to handle
  polymorphic variants.  To hide it from the toplevel, we renamed it as
  `__<type>_of_sexp__`.  We kept the `__` suffix to avoid any confusion
  with a type named `__<type>`.

## type_conv

- Removed some warnings caused by generated signatures.

  1. In signatures on local modules.
  2. When there are duplicate signature items like in this example:

    ```ocaml
    module Warnings : sig
      type t = private { foo : int } with fields (** used to say
unused value foo *)
      val foo : string
    end = struct
      type t = { foo : int } with fields
      let foo = "a"
    end
    ```

  3. In the signatures of all the parameters of functors that take multiple
     parameters; this used to work only for the last parameter.

## zero

- Added module `Timing_wheel`, a new priority-queue implementation
specialized for sets of time-based alarms.

# 109.21.00

## async_unix

- Added `Unix.remove`.

## core

- Massively improved the signatures of `Map` and `Set`, both for
  readability and ocamldoc, as well as improved type error messages.

  For instance the type of `Int.Set.singleton` was:

  ```ocaml
  ('a, 'comparator, 'a Core.Std.Int.Set.elt_ -> ('a, 'comparator)
Core.Std.Int.Set.t_) Core.Core_set_intf.without_comparator
  ```

  Now it is simply:

  ```ocaml
  int -> Int.Set.t
  ```
- Added an optional argument to `Command.run` that can be used to
  specify default flags from a user config file.

  The optional argument can extend the command line based on the path
  to the command.
- Rename module `Weekday` as `Day_of_week`.

  The name `Weekday` conflicted with ordinary usage of "weekday" to
  mean Monday through Friday.
- Changed `sexp_of_t` for `{Month,Ofday,Time,Time.Span}.{Set,Map}` to
  use the nice sexp format of the underlying atomic type.

  Previously, the converter had used thes raw type (`float`, `int`,
  etc.).  `t_of_sexp` still accepts both formats; we will remove the
  ability to accept the raw format in the distant future.

  This output-format change was planned when we originally in 108.06b
  improved those `t_of_sexp` functions to accept both formats.
- Added `Unix.remove`.
- Removed some `IFDEF`'s connected to OCaml <4 support.

## zero

- Added module `Flat_tuple_array` for tuples packed into an array.
- Added function `Pool.length : _ t -> int`, which returns the number
  of live tuples in a pool.

# 109.23.00

## core

- Exposed `Core.Std.Flags` module.
- Made the `Heap` module implement `Container.S1`.
- Added module `Ref.Permissioned`, which is a ref with `read_only` /
  `read_write` access control.
- Exposed the unique id in `Type_equal.Id`.

  This allows, e.g. hash tables indexed by unique ids.
- Removed the use of `Obj.magic` from the implementation of
  `Type_equal.Id.same`.

  It is not needed because the `Id.t` contains a `Uid.t` and we can
  just use `Uid.equal`.

-- 
Jeremie Dimino, for the Core team

--

-- 
Caml-list mailing list.  Subscription management and archives:
https://sympa.inria.fr/sympa/arc/caml-list
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs

GRLMC | 19 May 2013 18:53
Favicon

SSTiC 2013: next registration deadline 26 May

*To be removed from our mailing list, please respond to this message with
UNSUBSCRIBE in the subject line*

*********************************************************************

2013 INTERNATIONAL SUMMER SCHOOL ON TRENDS IN COMPUTING

SSTiC 2013

Tarragona, Spain

July 22-26, 2013

Organized by
Rovira i Virgili University

http://grammars.grlmc.com/SSTiC2013/

*********************************************************************

+++ next registration deadline: May 26 +++

*********************************************************************

AIM:

SSTiC 2013 will be an open forum for the convergence of top class well
recognized computer scientists and people at the beginning of their research
career (typically PhD students) as well as consolidated researchers.

SSTiC 2013 will cover the whole spectrum of computer science by means of 63
six-hour courses dealing with hot topics at the frontiers of the field. By
actively participating, lecturers and attendees will share the idea of
scientific excellence as the main motto of their research work.

ADDRESSED TO:

Graduate students from around the world. There are no pre-requisites in
terms of the academic degree the attendee must hold. However, since there
will be several levels among the courses, in the description of some of them
reference may be made to specific knowledge background.

SSTiC 2013 is appropriate also for people more advanced in their career who
want to keep themselves updated on developments in the field.

Finally, senior researchers will find it fruitful to listen and discuss with
people who are main references of the diverse branches of computing
nowadays.

REGIME:

7 parallel sessions will be held during the whole event. Participants will
be able to freely choose the courses they will be willing to attend as well
as to move from one to another.

VENUE:

Palau Firal i de Congressos de Tarragona
Arquitecte Rovira, 2
43001 Tarragona
http://www.palaucongrestgna.com

COURSES AND PROFESSORS:

Divyakant Agrawal (Santa Barbara) [intermediate] Scalable Data Management in
Enterprise and Cloud Computing Infrastructures

Shun-ichi Amari (Riken) [introductory] Information Geometry and Its
Applications

James Anderson (Chapel Hill) [intermediate] Scheduling and Synchronization
in Real-Time Multicore Systems

Pierre Baldi (Irvine) [intermediate] Big Data Informatics Challenges and
Opportunities in the Life Sciences

Yoshua Bengio (Montréal) [introductory/intermediate] Deep Learning of
Representations

Stephen Brewster (Glasgow) [advanced] Multimodal Human-Computer Interaction

Bruno Buchberger (Linz) [introductory] Groebner Bases: An Algorithmic Method
for Multivariate Polynomial Systems. Foundations and Applications

Rajkumar Buyya (Melbourne) [intermediate] Cloud Computing

Jan Camenisch (IBM Zurich) [intermediate] Cryptography for Privacy

Jeffrey S. Chase (Duke) [intermediate] Trust Logic as an Enabler for Secure
Federated Systems

Larry S. Davis (College Park) [intermediate] Video Analysis of Human
Activities

Paul De Bra (Eindhoven) [intermediate] Adaptive Systems

Marco Dorigo (Brussels) [introductory] An Introduction to Swarm Intelligence
and Swarm Robotics

Paul Dourish (Irvine) [introductory] Ubiquitous Computing in a Social
Context

Max J. Egenhofer (Maine) [introductory/intermediate] Qualitative Spatial
Relations: Formalizations and Inferences

Richard M. Fujimoto (Georgia Tech) [introductory] Parallel and Distributed
Simulation

David Garlan (Carnegie Mellon) [advanced] Software Architecture: Past,
Present and Future

Mario Gerla (Los Angeles) [intermediate] Vehicle Cloud Computing

Georgios B. Giannakis (Minnesota) [advanced] Sparsity and Low Rank for
Robust Data Analytics and Networking

Ralph Grishman (New York) [intermediate] Information Extraction from Natural
Language

Francisco Herrera (Granada) [intermediate] Imbalanced Classification:
Current Approaches and Open Problems

Paul Hudak (Yale) [introductory] Euterpea: From Signals to Symphonies Using
Haskell

Niraj K. Jha (Princeton) [intermediate] FinFET Circuit Design

George Karypis (Minnesota) [introductory] Introduction to Parallel
Computing: Architectures, Algorithms, and Programming

Aggelos K. Katsaggelos (Northwestern) [intermediate/advanced] Sparsity-based
Advances in Image Processing

Arie E. Kaufman (Stony Brook) [advanced] Advances in Visualization

Carl Kesselman (Southern California) [intermediate] Biomedical Informatics
and Big Data

Hugo Krawczyk (IBM Research) [intermediate] An Introduction to the Design
and Analysis of Authenticated Key Exchange Protocols

Pierre L'Ecuyer (Montréal) [intermediate] Quasi-Monte Carlo Methods in
Simulation: Theory and Practice

Laks Lakshmanan (British Columbia) [intermediate/advanced] Information and
Influence Spread in Social Networks

Wenke Lee (Georgia Tech) [introductory] DNS-based Monitoring of Malware
Activities

Maurizio Lenzerini (Roma La Sapienza) [intermediate] Ontology-based Data
Integration

Ming C. Lin (Chapel Hill) [introductory/intermediate] Physically-based
Modeling and Simulation

Jane W.S. Liu (Academia Sinica) [intermediate] Critical Information and
Communication Technologies for Disaster Preparedness and Response

Satoru Miyano (Tokyo) [intermediate] How to Hack Cancer Systems with
Computational Methods

Aloysius K. Mok (Austin) [intermediate] From Real-time Systems to
Cyber-physical Systems

Hermann Ney (Aachen) [intermediate/advanced] Probabilistic Modelling for
Natural Language Processing - with Applications to Speech Recognition,
Handwriting Recognition and Machine Translation

Cathleen A. Norris (North Texas) & Elliot Soloway (Ann Arbor) [introductory]
Primary & Secondary Educational Computing in the Age of Mobilism

Jeff Offutt (George Mason) [intermediate] Cutting Edge Research in
Engineering of Web Applications

David Padua (Urbana) [intermediate] Parallel Programming with Abstractions

Bijan Parsia (Manchester) [introductory] The Semantic Web: Conceptual and
Technical Foundations

Massoud Pedram (Southern California) [intermediate] Energy Efficient
Architectures and Information Processing Systems

Charles E. Perkins (FutureWei) [intermediate/advanced] Beyond 4G

Prabhakar Raghavan (Google) [introductory/intermediate] Web Search and
Advertising

Sudhakar M. Reddy (Iowa) [introductory] Design for Test and Test of Digital
VLSI Circuits

Phillip Rogaway (Davis) [introductory/intermediate] Provably Secure
Symmetric Encryption

Gustavo Rossi (La Plata) [intermediate] Topics in Model Driven Web
Engineering

Kaushik Roy (Purdue) [introductory/intermediate] Low-energy Computing

Robert Sargent (Syracuse) [introductory] Validating Models

Douglas C. Schmidt (Vanderbilt) [intermediate] Patterns and Frameworks for
Concurrent and Networked Software

Bart Selman (Cornell) [intermediate] Fast Large-scale Probabilistic and
Logical Inference Methods

Mubarak Shah (Central Florida) [intermediate/advanced] Visual Crowd
Surveillance

Ron Shamir (Tel Aviv) [introductory] Revealing Structure in Disease
Regulation and Networks

Satinder Singh (Ann Arbor) [introductory/advanced] Reinforcement Learning:
On Machines Learning to Act from Experience

Dawn Xiaodong Song (Berkeley) [introductory] Selected Topics in Computer
Security

Mike Thelwall (Wolverhampton) [introductory] Sentiment Strength Detection
for the Social Web

Julita Vassileva (Saskatchewan) [introductory/intermediate] Engaging Users
in Social Computing Systems

Philip Wadler (Edinburgh) [introductory] Topics in Lambda Calculus and Life

Yao Wang (Polytechnic New York) [introductory/advanced] Video Compression:
Fundamentals and Recent Development

Gio Wiederhold (Stanford) [introductory] Software Economics: How Do the
Results of the Intellectual Efforts Enter the Global Market Place

Limsoon Wong (National Singapore) [introductory/intermediate] The Use of
Context in Gene Expression and Proteomic Profile Analysis

Michael Wooldridge (Oxford) [introductory] Autonomous Agents and Multi-Agent
Systems

Ronald R. Yager (Iona) [introductory/intermediate] Fuzzy Sets and Soft
Computing

Philip S. Yu (Illinois Chicago) [advanced] Mining Big Data

REGISTRATION:

It has to be done at

http://grammars.grlmc.com/SSTiC2013/Registration.php 

Since the capacity of the venue is limited, registration requests will be
processed on a first come first served basis. The registration period will
be closed when the capacity of the venue will be complete.

FEES:

They are the same (a flat rate) for all people by the corresponding
deadline. They give the right to attend all courses.

ACCOMMODATION:

Information about accommodation is available on the website of the School.

CERTIFICATE:

Participants will be delivered a certificate of attendance.

IMPORTANT DATES:

Announcement of the programme: January 26, 2013

Six registration deadlines: February 26, March 26, April 26, May 26, June
26, July 26, 2013

QUESTIONS AND FURTHER INFORMATION:

Lilica Voicu:
florentinalilica.voicu <at> urv.cat 

POSTAL ADDRESS:

SSTiC 2013
Research Group on Mathematical Linguistics (GRLMC)
Rovira i Virgili University
Av. Catalunya, 35
43002 Tarragona, Spain

Phone: +34-977-559543
Fax: +34-977-558386

ACKNOWLEDGEMENTS:

Ajuntament de Tarragona
Diputació de Tarragona
Universitat Rovira i Virgili

--

-- 
Caml-list mailing list.  Subscription management and archives:
https://sympa.inria.fr/sympa/arc/caml-list
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs
Markus Mottl | 19 May 2013 17:14
Picon
Gravatar

First-class modules in functor bodies

Hi,

I've been wondering why the following is disallowed:

-----
module M (U : sig end) = struct
  module type S = sig val x : int end
  let a = ((module struct let x = 42 end : S))
  module A = (val a)
end
-----

The error message is:

-----
File "foo.ml", line 4, characters 13-20:
Error: This kind of expression is not allowed within the body of a functor.
-----

Making M a module by removing the functor argument works as expected.

Is there some inherent unsoundness issue with allowing this kind of
use of first-class modules within functor bodies, or would it just be
hard adding sound support for the above to the current type system?

Regards,
Markus

--
Markus Mottl        http://www.ocaml.info        markus.mottl <at> gmail.com

--

-- 
Caml-list mailing list.  Subscription management and archives:
https://sympa.inria.fr/sympa/arc/caml-list
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs

Florent Monnier | 17 May 2013 23:38
Picon
Gravatar

Re: 2D vector graphics

2013/5/10, Francois Berenger wrote:
> On 05/08/2013 11:32 AM, Francois Berenger wrote:
>> Hello,
>>
>> Is there a standard library for this purpose?
>
> By the way, I just saw in OPAM that there are bindings
> to cairo, which looks quite nice for 2D vector graphics.

There's even "Caboodle" a mini-puzzle game that uses it,
which is very simple but interesting as an example of what we can do with it.

For Mageia Linux users, just install it with:
$ su - -c "urpmi caboodle"
$ caboodle

If you don't have any package for your distro, you may want to get our
patches from:
http://svnweb.mageia.org/packages/cauldron/caboodle/current/
before to compile it.

Or more minimalist examples on Rosetta:
http://rosettacode.org/wiki/Category:Ocaml-cairo

For 2D accelerated graphics, you may also appreciate SFML 2.0,
there are 2 usable bindings: ocaml-sfml and ocsfml.
Both are good for the 2.0 version of SFML that was just released
several days ago.

-- 
Best regards

--

-- 
Caml-list mailing list.  Subscription management and archives:
https://sympa.inria.fr/sympa/arc/caml-list
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs

Richard W.M. Jones | 17 May 2013 18:15
Gravatar

Re: ANNOUNCE: ocaml-bitstring 2.0.4

On Wed, May 15, 2013 at 10:06:40AM +0900, Francois Berenger wrote:
[...]

I'm not familiar with the problem domain you mention, however:

> I mean, the bitstring can be huge, like millions of bits?

They can be as long as strings in OCaml.  Hence there's a limit of 16
MBytes on 32 bit architectures.  It's (generally) advisable to use a
64 bit machine, and bitstrings are effectively unlimited on 64 bit.

Sub-bitstrings are implemented efficiently, without copying.

Bitstring matching complexity depends on the number of fields you want
to match, not (at least, not obviously that I can see) on the size of
fields or the size of the bitstring.  If you write a bitmatch that
matches a really massive number of fields [thousands?], then you'll
probably run into problems with the OCaml compiler, since the
bitstring macros can generate a great deal of code behind the scenes.

It is a lot more efficient if the fields are aligned and the offset of
each field is known at compile time.  However it still works,
inefficiently, even if they are not.

I use bitstring a lot to parse files.  However I don't usually load up
the whole file into a single bitstring, but instead seek + read parts
of the file.  But that's just for programming convenience; it should
be possible to bitmatch over subbitstrings of a whole file if you find
that easier.

Rich.

--

-- 
Caml-list mailing list.  Subscription management and archives:
https://sympa.inria.fr/sympa/arc/caml-list
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs


Gmane