Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

un "gros" et trivial programme qui "plante" OCaml. #2736

Closed
vicuna opened this issue Mar 31, 2001 · 2 comments
Closed

un "gros" et trivial programme qui "plante" OCaml. #2736

vicuna opened this issue Mar 31, 2001 · 2 comments

Comments

@vicuna
Copy link

vicuna commented Mar 31, 2001

Original bug ID: 330
Reporter: administrator
Status: closed
Resolution: fixed
Priority: normal
Severity: feature
Category: ~DO NOT USE (was: OCaml general)

Bug description

Je travaille, entre autres, avec une technologie de génération

de code OCaml à partir de spécifications dans un autre language.

Lors de tests de montée en charge, je suis tombée sur un problème

similaire à celui "simulé" par le programme OCaml joint (toutes

les lignes sont identiques!).

J'utilise OCaml 3.01 sous Linux/x86, Suse 6.3.

Ce programme compile correctement avec ocamlc, génère un stack

overflow avec ocamlopt et génère une exception sous ocamlopt.opt.

JMEBER@lexifi-06:~/trying > ocamlc bug.ml

JMEBER@lexifi-06:~/trying > ocamlopt bug.ml

Uncaught exception: Stack overflow

JMEBER@lexifi-06:~/trying > ocamlopt.opt bug.ml

Fatal error: Interf.build_graph: too many pseudo-registers in function Bug_f_50

Uncaught exception: Misc.Fatal_error

JMEBER@lexifi-06:~/trying >

Est-ce un bug ou une limitation "intrinsèque" engendrée par la taille

(effectivement énorme, mais c'est "machine generated"!) de la fonction ?

Dans le second cas, existe-il un moyen simple d'écrire une fonction

similaire qui "passe" par le compilateur ?

Remarquons que si l'on "divise" (en gros) le fichier en deux, ça "passe"...

Jean-Marc Eber


<META content=text/html;charset=iso-8859-1 http-equiv=Content-Type>

Je travaille, entre autres, avec une technologie de génération

de code OCaml à partir de spécifications dans un autre language.

Lors de tests de montée en charge, je suis tombée sur un problème

similaire à celui "simulé" par le programme OCaml joint (toutes

les lignes sont identiques!).

J'utilise OCaml 3.01 sous Linux/x86, Suse 6.3.

Ce programme compile correctement avec ocamlc, génère un stack

overflow avec ocamlopt et génère une exception sous ocamlopt.opt.

JMEBER@lexifi-06:~/trying > ocamlc bug.ml

JMEBER@lexifi-06:~/trying > ocamlopt bug.ml

Uncaught exception: Stack overflow

JMEBER@lexifi-06:~/trying > ocamlopt.opt bug.ml

>> Fatal error: Interf.build_graph: too many pseudo-registers in function Bug_f_50

Uncaught exception: Misc.Fatal_error

JMEBER@lexifi-06:~/trying >

Est-ce un bug ou une limitation "intrinsèque" engendrée par la taille

(effectivement énorme, mais c'est "machine generated"!) de la fonction ?

Dans le second cas, existe-il un moyen simple d'écrire une fonction

similaire qui "passe" par le compilateur ?

Remarquons que si l'on "divise" (en gros) le fichier en deux, ça "passe"...

Jean-Marc Eber

 




(*
Je travaille, entre autres, avec une technologie de génération
de code OCaml à partir de spécifications dans un autre language.

Lors de tests de montée en charge, je suis tombée sur un problème
similaire à celui "simulé" par le programme OCaml que voici (toutes
les lignes sont identiques!).

J'utilise OCaml 3.01 sous Linux/x86, Suse 6.3.

Ce programme compile correctement avec ocamlc, génère un stack
overflow avec ocamlopt et génère une exception sous ocamlopt.opt.

JMEBER@lexifi-06:/trying > ocamlc bug.ml
JMEBER@lexifi-06:
/trying > ocamlopt bug.ml
Uncaught exception: Stack overflow
JMEBER@lexifi-06:~/trying > ocamlopt.opt bug.ml

Fatal error: Interf.build_graph: too many pseudo-registers in function Bug_f_50
Uncaught exception: Misc.Fatal_error
JMEBER@lexifi-06:~/trying >

Est-ce un bug ou une limitation "intrinsèque" engendrée par la taille
(effectivement énorme, mais c'est "machine generated"!) de la fonction ?

Dans le second cas, existe-il un moyen simple d'écrire une fonction
similaire qui "passe" par le compilateur ?

Remarquons que si l'on "divise" (en gros) le fichier en deux, ça "passe"...

Jean-Marc Eber

*)

open Format

let main () =

let f t =

let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;

let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;

let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;

let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;

let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;

let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;

let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;

let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;

let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;

let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;

let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;

let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;

let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;

let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;

let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;

let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;

let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;

let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;

let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2;
let g t = printf "%i" t in g 2

@vicuna
Copy link
Author

vicuna commented Apr 6, 2001

Comment author: administrator

Bonjour,

Est-ce un bug ou une limitation "intrins=E8que" engendr=E9e par la =
taille (effectivement =E9norme, mais c'est "machine generated"!) de
la fonction ?

C'est effectivement un problème de taille de la fonction. Le
compilateur fait des récursions assez complexes sur les arbres de
syntaxe abstraite, et peut donc tomber en "stack overflow" sur des
fonctions très grosses. Il y a aussi une limitation "en dur" dans le
compilateur optimisant sur le nombre de variables utilisées dans le
code intermédiaire (le message "too many pseudo-registers"). Cette
dernière limitation est presque un bug dans la mesure où un choix
différent de structures de données du compilateur permettrait de la
faire sauter.

Dans le second cas, existe-il un moyen simple d'=E9crire une fonction
similaire qui "passe" par le compilateur ?

Le seul moyen sûr que je vois est de couper le calcul en plusieurs
fonctions. (Chaque fonction est compilée séparément.)

Très cordialement,

  • Xavier Leroy

@vicuna
Copy link
Author

vicuna commented Nov 6, 2002

Comment author: administrator

Compiler capacity exceeded by huge function. One area for improvement in
Interf.build_graph: use different data structure.

Done in 3.04.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant