An attempt to #load in js_of_ocaml

This should be run with something like

./iocamlserver.byte -static /home/andyman/.ipython/profile_iocamljs -serve /home/andyman/.opam/4.01.0-iocamljs /home/andyman/.opam/4.01.0-iocamljs

This enables iocamljs and serves the opam system directory where the libraries live.

Note that relative to previous versions of this notebook we are running with a cut down version of iocamljs. The camlp4 compilation mode which compiled the syntax extensions in has been disabled - this means we can use directives again, however, it also means we need to load camlp4...

I have also modified the filesystem so that it will automatically query the server for files when they are opened, hence no more Sys_js.register_file etc.

Stuff thats already loaded (in full iocamljs toplevel)


In [1]:
Js.string


Out[1]:
File "[1]", line 1, characters 0-9:
Error: Unbound module Js
Characters 0-9:
  Js.string
  ^^^^^^^^^

In [2]:
Firebug.console##log(Js.string "hello world")


Out[2]:
File "[2]", line 1, characters 16-17:
Error: Syntax error
Characters 16-17:
  Firebug.console##log(Js.string "hello world")
                  ^

In [3]:
Lwt.return


Out[3]:
- : 'a -> 'a Lwt.t = <fun>

In [4]:
let x = 
    lwt a = Lwt.return () in
    Lwt.return a


Out[4]:
File "[4]", line 2, characters 4-7:
Error: Unbound value lwt
Characters 13-16:
      lwt a = Lwt.return () in
      ^^^

Start up findlib


In [5]:
#use "topfind";;
Topfind.don't_load ["camlp4";"js_of_ocaml";"lwt";"js_of_ocaml.syntax";"lwt.syntax";"lwt";"lwt.simple-top"];;
Topfind.add_predicates ["preprocessor"; "syntax"; "camlp4o"];;


- : unit = ()
Findlib has been successfully loaded. Additional directives:
  #require "package";;      to load a package
  #list;;                   to list the available packages
  #camlp4o;;                to load camlp4 (standard syntax)
  #camlp4r;;                to load camlp4 (revised syntax)
  #predicates "p,q,...";;   to set these predicates
  Topfind.reset();;         to force that packages will be reloaded
  #thread;;                 to enable threads

- : unit = ()
Out[5]:
- : unit = ()
- : unit = ()

In [1]:
#use "topfind";;


- : unit = ()
Findlib has been successfully loaded. Additional directives:
  #require "package";;      to load a package
  #list;;                   to list the available packages
  #camlp4o;;                to load camlp4 (standard syntax)
  #camlp4r;;                to load camlp4 (revised syntax)
  #predicates "p,q,...";;   to set these predicates
  Topfind.reset();;         to force that packages will be reloaded
  #thread;;                 to enable threads

- : unit = ()
Out[1]:

Load a pure ocaml library


In [7]:
#require "uuidm"


/home/andyman/.opam/4.01.0-iocamljs/lib/uuidm: added to search path
/home/andyman/.opam/4.01.0-iocamljs/lib/uuidm/uuidm.cma: loaded
Out[7]:


In [8]:
Uuidm.(to_string (create `V4))


Out[8]:
- : string = "29b5f2b9-df98-4d4c-8b7e-f1be7e946bdd"

Load camlp4o


In [9]:
#camlp4o


/home/andyman/.opam/4.01.0-iocamljs/lib/ocaml/dynlink.cma: loaded
/home/andyman/.opam/4.01.0-iocamljs/lib/ocaml/camlp4: added to search path
/home/andyman/.opam/4.01.0-iocamljs/lib/ocaml/camlp4/camlp4o.cma: loaded
Out[9]:

Wow, that takes a long time.

There was a (de)marshalling error here. I've seen this before when camlp4 was marshalling AST's. It occured while loading camlp4o.cma.

I have added the failing tag to the deserialization error code and it was related to nativeints.

Heres a basic implementation that gets us past this problem, though I am a little bit unsure of it's soundness.

case "_n":
    // nativeint, first attempt
    var c = reader.read8u ();
    if (c === 1) {
        var v = reader.read32s ();
        if (intern_obj_table) intern_obj_table[obj_counter++] = v;
        return v;
    } else if (c === 2) {
        var v = reader.read32s ();
        var v2 = reader.read32s (); // just drop the top bits...
        if (intern_obj_table) intern_obj_table[obj_counter++] = v;
        return v;
    } else {
        caml_failwith("input_value: ill-formed native integer " + c);
    }

The LWT library is already loaded into the javascript, but the syntax extension is not. Lets load it.


In [ ]:
let x = 
    lwt a = Lwt.return () in
    Lwt.return a

In [ ]:
#require "lwt.syntax"

In [ ]:
let x = 
    lwt a = Lwt.return () in
    Lwt.return a

The same for pa_js is not working just yet. I'll need to look into that further.


In [ ]:
let x = math x with 0 -> 1 | _ -> 0

In [ ]:
#require "js_of_ocaml.syntax";;

In [ ]:
Firebug.console##log(Js.string "abc")

In [ ]:
#require "js_of_ocaml"

In [5]:
Camlp4Top.Top.initialization


Out[5]:
File "[5]", line 1:
Error: Reference to undefined global `Camlp4Top'

In [9]:
#require "hardcaml"


/home/andyman/.opam/4.01.0-iocamljs/lib/hardcaml: added to search path
/home/andyman/.opam/4.01.0-iocamljs/lib/hardcaml/HardCaml.cma: loaded
Out[9]:


In [10]:
HardCaml.Bits.Comb.IntbitsList.(+:)


Out[10]:
- : HardCaml.Bits.Comb.IntbitsList.t ->
    HardCaml.Bits.Comb.IntbitsList.t -> HardCaml.Bits.Comb.IntbitsList.t
= <fun>

In [11]:
#require "hardcaml.syntax"


/home/andyman/.opam/4.01.0-iocamljs/lib/ocaml/dynlink.cma: loaded
/home/andyman/.opam/4.01.0-iocamljs/lib/ocaml/camlp4: added to search path
/home/andyman/.opam/4.01.0-iocamljs/lib/hardcaml/pa_hardcaml.cmo: loaded
Out[11]:


In [12]:
module X = interface a b c end


Out[12]:
module X :
  sig
    type t 'a = { a : 'a; b : 'a; c : 'a };
    value t : t (string * int);
    value map : ('a -> 'b) -> t 'a -> t 'b;
    value map2 : ('a -> 'b -> 'c) -> t 'a -> t 'b -> t 'c;
    value to_list : t 'a -> list 'a;
  end

In [3]:
#require "lwt"


/home/andyman/.opam/4.01.0-iocamljs/lib/lwt: added to search path
/home/andyman/.opam/4.01.0-iocamljs/lib/lwt/lwt.cma: loaded
Out[3]:


In [2]:
Iocaml.jsoo_debug ["times"]


Out[2]:
- : unit = ()

In [3]:
#camlp4o


/home/andyman/.opam/4.01.0-iocamljs/lib/ocaml/dynlink.cma: loaded
  tail calls: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
Start Generation...
  free vars: 0.00
  code gen.: 0.00
Start Optimizing js...
Start Coloring...
Start Writing file...
  tail calls: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
Start Generation...
  free vars: 0.00
  code gen.: 0.00
Start Optimizing js...
Start Coloring...
Start Writing file...
/home/andyman/.opam/4.01.0-iocamljs/lib/ocaml/camlp4: added to search path
/home/andyman/.opam/4.01.0-iocamljs/lib/ocaml/camlp4/camlp4o.cma: loaded
  tail calls: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
Start Generation...
  free vars: 0.00
  code gen.: 0.00
Start Optimizing js...
Start Coloring...
Start Writing file...
  tail calls: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
Start Generation...
  free vars: 0.00
  code gen.: 0.00
Start Optimizing js...
Start Coloring...
Start Writing file...
  tail calls: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
Start Generation...
  free vars: 0.00
  code gen.: 0.00
Start Optimizing js...
Start Coloring...
Start Writing file...
  tail calls: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
Start Generation...
  free vars: 0.00
  code gen.: 0.00
Start Optimizing js...
Start Coloring...
Start Writing file...
  tail calls: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
Start Generation...
  free vars: 0.00
  code gen.: 0.00
Start Optimizing js...
Start Coloring...
Start Writing file...
  tail calls: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
Start Generation...
  free vars: 0.00
  code gen.: 0.00
Start Optimizing js...
Start Coloring...
Start Writing file...
  tail calls: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
Start Generation...
  free vars: 0.00
  code gen.: 0.00
Start Optimizing js...
Start Coloring...
Start Writing file...
  tail calls: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
Start Generation...
  free vars: 0.00
  code gen.: 0.00
Start Optimizing js...
Start Coloring...
Start Writing file...
Out[3]:


In [5]:
#require "lwt.syntax"


	Camlp4 Parsing version 4.01.0

/home/andyman/.opam/4.01.0-iocamljs/lib/lwt/lwt-syntax-options.cma: loaded
/home/andyman/.opam/4.01.0-iocamljs/lib/lwt/lwt-syntax.cma: loaded
Out[5]:


In [6]:
let x = 
    lwt a = Lwt.return () in
    Lwt.return a


Out[6]:
val x : unit Lwt.t = <abstr>

In [4]:
#require "js_of_ocaml"


	Camlp4 Parsing version 4.01.0

/home/andyman/.opam/4.01.0-iocamljs/lib/js_of_ocaml: added to search path
/home/andyman/.opam/4.01.0-iocamljs/lib/lwt: added to search path
/home/andyman/.opam/4.01.0-iocamljs/lib/lwt/lwt.cma: loaded
  tail calls: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
Start Generation...
  free vars: 0.00
  code gen.: 0.00
Start Optimizing js...
Start Coloring...
Start Writing file...
  tail calls: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
Start Generation...
  free vars: 0.00
  code gen.: 0.00
Start Optimizing js...
Start Coloring...
Start Writing file...
  tail calls: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
Start Generation...
  free vars: 0.00
  code gen.: 0.00
Start Optimizing js...
Start Coloring...
Start Writing file...
  tail calls: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
Start Generation...
  free vars: 0.00
  code gen.: 0.00
Start Optimizing js...
Start Coloring...
Start Writing file...
  tail calls: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
Start Generation...
  free vars: 0.00
  code gen.: 0.00
Start Optimizing js...
Start Coloring...
Start Writing file...
  tail calls: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
Start Generation...
  free vars: 0.00
  code gen.: 0.00
Start Optimizing js...
Start Coloring...
Start Writing file...
  tail calls: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
Start Generation...
  free vars: 0.00
  code gen.: 0.00
Start Optimizing js...
Start Coloring...
Start Writing file...
  tail calls: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
Start Generation...
  free vars: 0.00
  code gen.: 0.00
Start Optimizing js...
Start Coloring...
Start Writing file...
  tail calls: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
Start Generation...
  free vars: 0.00
  code gen.: 0.00
Start Optimizing js...
Start Coloring...
Start Writing file...
  tail calls: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
Start Generation...
  free vars: 0.00
  code gen.: 0.00
Start Optimizing js...
Start Coloring...
Start Writing file...
  tail calls: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
Start Generation...
  free vars: 0.00
  code gen.: 0.00
Start Optimizing js...
Start Coloring...
Start Writing file...
/home/andyman/.opam/4.01.0-iocamljs/lib/js_of_ocaml/js_of_ocaml.cma: loaded
  tail calls: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
Start Generation...
  free vars: 0.00
  code gen.: 0.00
Start Optimizing js...
Start Coloring...
Start Writing file...
  tail calls: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
Start Generation...
  free vars: 0.00
  code gen.: 0.00
Start Optimizing js...
Start Coloring...
Start Writing file...
  tail calls: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
Start Generation...
  free vars: 0.00
  code gen.: 0.00
Start Optimizing js...
Start Coloring...
Start Writing file...
  tail calls: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
Start Generation...
  free vars: 0.00
  code gen.: 0.00
Start Optimizing js...
Start Coloring...
Start Writing file...
  tail calls: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
Start Generation...
  free vars: 0.00
  code gen.: 0.00
Start Optimizing js...
Start Coloring...
Start Writing file...
  tail calls: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
Start Generation...
  free vars: 0.00
  code gen.: 0.00
Start Optimizing js...
Start Coloring...
Start Writing file...
  tail calls: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
Start Generation...
  free vars: 0.00
  code gen.: 0.00
Start Optimizing js...
Start Coloring...
Start Writing file...
  tail calls: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
Start Generation...
  free vars: 0.00
  code gen.: 0.00
Start Optimizing js...
Start Coloring...
Start Writing file...
  tail calls: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
Start Generation...
  free vars: 0.00
  code gen.: 0.00
Start Optimizing js...
Start Coloring...
Start Writing file...
  tail calls: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
Start Generation...
  free vars: 0.00
  code gen.: 0.00
Start Optimizing js...
Start Coloring...
Start Writing file...
  tail calls: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
Start Generation...
  free vars: 0.00
  code gen.: 0.00
Start Optimizing js...
Start Coloring...
Start Writing file...
  tail calls: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
Start Generation...
  free vars: 0.00
  code gen.: 0.00
Start Optimizing js...
Start Coloring...
Start Writing file...
  tail calls: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
Start Generation...
  free vars: 0.00
  code gen.: 0.00
Start Optimizing js...
Start Coloring...
Start Writing file...
  tail calls: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
Start Generation...
  free vars: 0.00
  code gen.: 0.00
Start Optimizing js...
Start Coloring...
Start Writing file...
  tail calls: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
Start Generation...
  free vars: 0.00
  code gen.: 0.00
Start Optimizing js...
Start Coloring...
Start Writing file...
  tail calls: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
Start Generation...
  free vars: 0.00
  code gen.: 0.00
Start Optimizing js...
Start Coloring...
Start Writing file...
  tail calls: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
Start Generation...
  free vars: 0.00
  code gen.: 0.00
Start Optimizing js...
Start Coloring...
Start Writing file...
  tail calls: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
Start Generation...
  free vars: 0.00
  code gen.: 0.00
Start Optimizing js...
Start Coloring...
Start Writing file...
  tail calls: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
Start Generation...
  free vars: 0.00
  code gen.: 0.00
Start Optimizing js...
Start Coloring...
Start Writing file...
  tail calls: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
Start Generation...
  free vars: 0.00
  code gen.: 0.00
Start Optimizing js...
Start Coloring...
Start Writing file...
Out[4]:


In [5]:
Js.to_string


  tail calls: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
Start Generation...
  free vars: 0.00
  code gen.: 0.00
Start Optimizing js...
Start Coloring...
Start Writing file...
Out[5]:
- : Js.js_string Js.t -> string = <fun>

In [6]:
Firebug.console


  tail calls: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
  dead code elim.: 0.00
    phi-simpl. 1: 0.00
    phi-simpl. 2: 0.00
  phi-simpl.: 0.00
    flow analysis 1: 0.00
    flow analysis 2: 0.00
    flow analysis 3: 0.00
    flow analysis 4: 0.00
    flow analysis 5: 0.00
  flow analysis: 0.00
  dead code elim.: 0.00
Start Generation...
  free vars: 0.00
  code gen.: 0.00
Start Optimizing js...
Start Coloring...
Start Writing file...
Out[6]:
- : Firebug.console Js.t = <abstr>

In [ ]: