package stog

  1. Overview
  2. Docs
Static web site compiler, able to handle blog posts as well as regular pages or any XML document in general

Install

Dune Dependency

Authors

Maintainers

Sources

stog-1.1.0.tar.bz2
md5=03c4072037bf05666a249d02954396c3
sha512=299fdb7036c92bd5317726ed20f982123f57897e0d8611dfae383251a6d793e63d372c6628742412d803224a3155ab021f79550fada2e980c7d6179d90f8e43f

doc/src/stog.base/ocaml_types.ml.html

Source file ocaml_types.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
(*********************************************************************************)
(*                Stog                                                           *)
(*                                                                               *)
(*    Copyright (C) 2012-2024 INRIA All rights reserved.                         *)
(*    Author: Maxence Guesdon, INRIA Saclay                                      *)
(*                                                                               *)
(*    This program is free software; you can redistribute it and/or modify       *)
(*    it under the terms of the GNU General Public License as                    *)
(*    published by the Free Software Foundation, version 3 of the License.       *)
(*                                                                               *)
(*    This program is distributed in the hope that it will be useful,            *)
(*    but WITHOUT ANY WARRANTY; without even the implied warranty of             *)
(*    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the               *)
(*    GNU General Public License for more details.                               *)
(*                                                                               *)
(*    You should have received a copy of the GNU General Public                  *)
(*    License along with this program; if not, write to the Free Software        *)
(*    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA                   *)
(*    02111-1307  USA                                                            *)
(*                                                                               *)
(*    As a special exception, you have permission to link this program           *)
(*    with the OCaml compiler and distribute executables, as long as you         *)
(*    follow the requirements of the GNU GPL in regard to all of the             *)
(*    software in the executable aside from the OCaml compiler.                  *)
(*                                                                               *)
(*    Contact: Maxence.Guesdon@inria.fr                                          *)
(*                                                                               *)
(*********************************************************************************)

(** *)

type input =
  { in_phrase : string ;
  }

type output =
  { stdout : string ;
    stderr : string ;
    topout : string ;
  }

type result =
  | Exc of string
  | Ok of output
  | Handled_error of output

let pid = Unix.getpid();;

let read_input ic =
  (*prerr_endline (Printf.sprintf "[%d] ocaml: read_input" pid);*)
  let (v : input) = input_value ic in
  (*prerr_endline "ocaml: read_input done";*)
  v
;;

let write_input oc (i : input) =
  (*prerr_endline (Printf.sprintf "ocaml: write_input len(phrase)=%d" (String.length i.in_phrase));*)
  output_value oc i;
  flush oc
  (*prerr_endline "ocaml: write_input done"*)
;;

let read_result ic =
  (*prerr_endline (Printf.sprintf "[%d] ocaml: read_result" pid);*)
  let (r : result) = input_value ic in
  (*prerr_endline "ocaml: read_result done";
  let s =
    match r with
      Exc s -> Printf.sprintf "Exc(%S)" s
    | Ok s -> Printf.sprintf "Ok(%S)" s.topout
    | Handled_error _ -> Printf.sprintf "Handled_error"
  in
  prerr_endline (Printf.sprintf "ocaml: read_result => %s" s);*)
  r
;;


let write_result oc (r : result) =
  (*let s =
    match r with
      Exc s -> Printf.sprintf "Exc(%S)" s
    | Ok s -> Printf.sprintf "Ok(%S)" s.stdout
    | Handled_error _ -> Printf.sprintf "Handled_error"
  in
  prerr_endline (Printf.sprintf "write_result %s" s);
  *)
  output_value oc r ;
  (*prerr_endline "ocaml: write_result done";*)
  flush oc
;;

OCaml

Innovation. Community. Security.