Matej Košík | 1 Feb 13:01
Picon

Re: how (within camlp4 printer) can I traverse AST ?

On 01/31/2012 10:58 PM, Gabriel Scherer wrote:
> Sig.Ast is the most general structure available, that you use if you
> want to manipulate any kind of grammar for Camlp4. If you know the AST
> you're manipulating corresponds to an OCaml program, you should use
> the more specific Sig.Camlp4Ast signature (as advertized in the
> documentation page for Sig.Ast, btw.). Registering a printer for
> Sig.Camlp4Ast is done with Register.OcamlPrinter, and if you want to
> see a full-blown example of printer, you just have too look at
> camlp4/Camlp4/Printers/OCaml.ml in the ocaml source.

Thank you.

Concerning camlp4/Camlp4/Printers*.ml I am struggling with two problems:

1. these examples are not compiled with ordinary ocamlc/camlp4 tools but
with special ocamlc/camlp4* version built at the "boot time" which are
not interchangeable with regular ocamlc/camlp4* programs. If I try to
use regular ocamlc/camlp4* tools in an attempt to compile those
printers, I will get syntax errors in those printers.

2. the code that registers the printers is not in printers themselves
but it is located in another file, in another context and it is not
obvious how to achieve this action in the context of the code of
individual printers (in an analogous way how sample printer
  http://brion.inria.fr/gallium/index.php/Setup_a_new_printer
directly registers itself.

How would the printer described here:
  http://brion.inria.fr/gallium/index.php/Setup_a_new_printer
look like if I wanted to use concrete instead of abstract syntax---like in:
(Continue reading)

Picon

Re: OpenGL ES for iPhone Simulator; working example app

I found a way to adapt your patch to cross compile ocaml 3.10
with the last Xcode and IOS SDK. But, I still get alignment warnings,
AND SEGFAULT if I use some ocaml instructions like (+.) (float addition).

However, I can get lucky and compile a stable binary (on iPhone) if I avoid some instructions..
I tried to adapt your patch to the last version of ocaml, but there was so many changes
in the assembler that I stop. If anyone has an idea to help me.

Question 2 : do you plan to release some general bindings to the iOS SDK ?

Thank you !

	Christophe

> 
> One extra comment occurred to me:
> 
> We're doing development under Xcode 4.0.2 right now, but the
> generated binaries work fine under iOS 5.0.  So any new
> difficulties in Xcode 4.2 are almost certainly caused by changes
> in Xcode's cross compilation toolchain.  Historically there have
> been a few of these in each new release of Xcode.
> 
> Regards,
> 
> Jeffrey
> 

--

-- 
Caml-list mailing list.  Subscription management and archives:
(Continue reading)

Jeffrey Scofield | 1 Feb 17:30
Favicon

Re: OpenGL ES for iPhone Simulator; working example app

Christophe:

> I found a way to adapt your patch to cross compile ocaml 3.10
> with the last Xcode and IOS SDK. But, I still get alignment
> warnings, AND SEGFAULT if I use some ocaml instructions like
> (+.) (float addition).

I'm glad you made some progress.  I have some earlier reports
of alignment warnings with Xcode 4.1, but things were otherwise
reported as working.  So the really worrying thing is the
segfault.  You kind of need (+.) to do real work!  There's some
chance this is the same alignment problem, though.

I'll pitch in to help get things working as soon as possible; I'd
love to see many people working with OCaml/iOS.

> However, I can get lucky and compile a stable binary (on
> iPhone) if I avoid some instructions..  I tried to adapt your
> patch to the last version of ocaml, but there was so many
> changes in the assembler that I stop. If anyone has an idea to
> help me.

The ARM code generator was completely rewritten for OCaml 3.12.
In fact our patches are based on the 3.12 version in some sense.
In particular, we adopted the 3.12 register assignment conventions
(which are consistent with iOS conventions).

I would expect almost all the patches to the code generator to
be unnecessary with 3.12.

(Continue reading)

Geoff Sutcliffe | 1 Feb 18:15
Picon

LPAR-18 participation


                      ==========================
                               LPAR-18
                             PARTICIPATION
                      ==========================

        ============================================================
                  The 18th International Conference on 
        Logic for Programming, Artificial Intelligence and Reasoning
                   Merida, Venezuela - March 11-15, 2012
                            www.LPAR-18.info 
        ============================================================

The series of International Conferences on Logic for Programming, Artificial 
Intelligence and Reasoning (LPAR) is a forum where, year after year, some of
the most renowned researchers in automated reasoning, computational logic, 
programming languages and their applications come to present cutting-edge 
results, to discuss advances in these fields, and to exchange ideas in a  
scientifically emerging part of the world. The 18th edition will be held in 
Merida, Venezuela.

LPAR-18 includes ...
+ IWIL-2012 - The 9th International Workshop on the Implementation of Logics
+ APS-6 - The 6th International Workshop on Analytic Proof Systems
+ Invited speakers 
  - Elvira Albert,     Complutense University of Madrid (Spain)
  - Kenneth McMillan,  Microsoft Research (USA)
  - Aart Middeldorp,   University of Innsbruck (Austria)
  - Boris Motik,       University of Oxford (UK)
+ Accepted papers 
(Continue reading)

Gerd Stolpmann | 1 Feb 22:55
Picon

ANN - Plasma-0.6 (Map/Reduce & distributed filesystem)

Hi,

I've just released Plasma-0.6, a major update of Plasma with numerous
changes. The most important:

 * For checking map/reduce out, there is now a mode that works without
   distributed filesystem, and that does not require any deployment.
   The files are just stored in the normal filesystem. Of course, the
   job can then only run on a single computer, but at least it can
   take advantage of multiple cores.

 * Added the Mapred_toolkit layer. This layer allows purely functional
   map/reduce programs. Running a job is only a matter of calling
   a function like

   val mapl_sort_fold :
        mapl:(mapred_info -> 'a -> 'b list) rfun ->
        hash:(mapred_info -> 'b -> int) rfun ->
        cmp:(mapred_info -> 'b -> 'b -> int) rfun ->
        initfold:(mapred_info -> int -> 'c) rfun ->
        fold:(mapred_info -> 'c -> 'b -> 'c * 'd list) rfun ->
        ?finfold:(mapred_info -> 'c -> 'd list) rfun ->
        partition_of:(mapred_info -> 'b -> int) rfun ->
        ?initcombine:(mapred_info -> 'e) rfun ->
        ?combine:(mapred_info -> 'e -> 'b -> 'e * 'b list) rfun ->
        ?fincombine:(mapred_info -> 'e -> 'b list) rfun ->
        'a Place.t ->
        'd Place.t ->
        config ->
        'b Place.codec ->
(Continue reading)

Gerd Stolpmann | 1 Feb 23:00
Picon

Plasma faster than Hadoop

And the most important thing in a second mail: I ran a performance test on
10 computers, and Plasma was a bit faster than Hadoop for a dataset of
100G. Read more here: http://blog.camlcity.org/blog/plasma6.html

Of course, this is still a small test, and one of the possible ways to
interpret the result is that Plasma is simply less CPU-hungry than Hadoop.
Which sounds logical given the fact that Hadoop is written in Java.
Anyway, it is an encouraging result.

Gerd
-- 
Gerd Stolpmann, Darmstadt, Germany    gerd <at> gerd-stolpmann.de
Creator of GODI and camlcity.org.
Contact details:        http://www.camlcity.org/contact.html
Company homepage:       http://www.gerd-stolpmann.de
*** Searching for new projects! Need consulting for system
*** programming in Ocaml? Gerd Stolpmann can help you.

--

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

Gabriel Scherer | 2 Feb 13:06
Picon
Gravatar

Re: What type strategy ?

I did not understand "the whole picture" of your question, but I think
I get the idea. You are looking for a way to manipulate an
heterogeneous set of values that have a common interface (possibly
a common subset of their interface), but may have different internal
representations. Your current solution is to parametrize the value
types by their internal details, which is not flexible because then
all values are required to have the same internals.

If I understood the issue correctly, the general answer is
"existential types". You don't want to abstract over the internal
types, but to encapsulate those type locally (so that they don't flow
out of your values). There are several ways to do this in OCaml, none
of them being "simple" -- because you're doing something subtle.

One way is to use the encoding of existential types as universal
types. Instead of saying "I have a value using internal types to
*produce* a result" you say "for any *consumer* of the result,
polymorphic over some types, I can run the consumer by feeding him
values":

  type 'internal_type internal_agent =
    ... (* the agent type, parametrized over its internal types *)

  type 'result consumer =
    { consume : 'internal_type . 'internal_type internal_agent -> 'result }
  type agent =
    { feed : 'result. 'result consumer -> 'result }

  let consume : 'a consumer -> agent -> 'a =
    fun consumer agent -> agent.feed consumer.consume
(Continue reading)

jcmoreno | 2 Feb 16:55
Picon

CfP: 9th International Symposium on Formal Aspects of Component Software (FACS 2012)

[We apologize for multiple copies]

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

                       First Call for Papers

                             FACS 2012

                    9th International Symposium
                Formal Aspects of Component Software

             http://www.cmu.edu/silicon-valley/facs12/

             Mountain View, USA, September 12-14, 2012

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

* Scope *

The component-based software development approach has emerged as a
promising paradigm to cope with the complexity of present-day software
systems by bringing sound engineering principles into software
engineering. However, many challenging conceptual and technological
issues still remain in component-based software development theory and
practice. Moreover, the advent of service-oriented computing has
brought to the fore new dimensions, such as quality of service and
robustness to withstand inevitable faults, that require revisiting
established component-based concepts in order to meet the new
requirements of the service-oriented paradigm.

(Continue reading)

Roberto Sebastiani | 2 Feb 17:11
Picon

SAT 2012: Final Call for Papers

      [ We apologize if you receive multiple copies of this CFP. ]

-------------------------------------------------------------------------
                  15th International Conference on 
        THEORY AND APPLICATIONS OF SATISFIABILITY TESTING 
                        --- SAT 2012 ---

                 Trento, Italy, June 17-20th, 2012
                      http://sat2012.fbk.eu/
-------------------------------------------------------------------------

AIM and SCOPE
=============

The International Conference on Theory and Applications of
Satisfiability Testing (SAT) is the primary annual meeting for
researchers studying the propositional satisfiability
problem. Importantly, here SAT is interpreted in a rather broad sense:
besides plain propositional satisfiability, it includes the domains of
MaxSAT and Pseudo-Boolean (PB) constraints, Quantified Boolean
Formulae (QBF), Satisfiability Modulo Theories (SMT), Constraints
Programming (CSP) techniques for word-level problems and their
propositional encoding.

To this extent, many hard combinatorial problems can be encoded as SAT
instances, in the broad sense mentioned above, including problems that
arise in hardware and software verification, AI planning and
scheduling, OR resource allocation, etc. The theoretical and practical
advances in SAT research over the past twenty years have contributed
to making SAT technology an indispensable tool in these domains.
(Continue reading)

Roberto Sebastiani | 2 Feb 17:11
Picon

SAT 2012: Final Call for Papers

      [ We apologize if you receive multiple copies of this CFP. ]

-------------------------------------------------------------------------
                  15th International Conference on 
        THEORY AND APPLICATIONS OF SATISFIABILITY TESTING 
                        --- SAT 2012 ---

                 Trento, Italy, June 17-20th, 2012
                      http://sat2012.fbk.eu/
-------------------------------------------------------------------------

AIM and SCOPE
=============

The International Conference on Theory and Applications of
Satisfiability Testing (SAT) is the primary annual meeting for
researchers studying the propositional satisfiability
problem. Importantly, here SAT is interpreted in a rather broad sense:
besides plain propositional satisfiability, it includes the domains of
MaxSAT and Pseudo-Boolean (PB) constraints, Quantified Boolean
Formulae (QBF), Satisfiability Modulo Theories (SMT), Constraints
Programming (CSP) techniques for word-level problems and their
propositional encoding.

To this extent, many hard combinatorial problems can be encoded as SAT
instances, in the broad sense mentioned above, including problems that
arise in hardware and software verification, AI planning and
scheduling, OR resource allocation, etc. The theoretical and practical
advances in SAT research over the past twenty years have contributed
to making SAT technology an indispensable tool in these domains.
(Continue reading)


Gmane