summary refs log tree commit diff
path: root/pkgs/development/ocaml-modules/sexplib/sexp-3.10-compat.patch
blob: 45e2abc618640802a5e5300099f7118f930b00f1 (plain) (blame)
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
diff -ur orig/sexplib-7.0.5/lib/conv.ml sexplib-7.0.5/lib/conv.ml
--- orig/sexplib-7.0.5/lib/conv.ml	2012-03-20 17:41:54.000000000 +0100
+++ sexplib-7.0.5/lib/conv.ml	2012-03-26 20:04:58.128032729 +0200
@@ -665,7 +665,7 @@
         | Parse_error pe ->
             let ppos =
               match pe.parse_state with
-              | `Sexp { parse_pos } | `Annot { parse_pos } -> parse_pos
+              | `Sexp { parse_pos = parse_pos } | `Annot { parse_pos = parse_pos } -> parse_pos
             in
             List [
               Atom "Sexplib.Sexp.Parse_error";
diff -ur orig/sexplib-7.0.5/lib/pre_sexp.ml sexplib-7.0.5/lib/pre_sexp.ml
--- orig/sexplib-7.0.5/lib/pre_sexp.ml	2012-03-20 17:41:54.000000000 +0100
+++ sexplib-7.0.5/lib/pre_sexp.ml	2012-03-26 20:04:58.129032741 +0200
@@ -172,13 +172,7 @@
 (* Output of S-expressions to file *)
 
 let save_of_output ?perm output_function file sexp =
-  let tmp_name, oc =
-    let temp_dir =
-      if Filename.is_relative file then "."
-      else Filename.dir_sep
-    in
-    Filename.open_temp_file ~temp_dir file "tmp"
-  in
+  let tmp_name, oc = Filename.open_temp_file file "tmp" in
   try
     output_function oc sexp;
     close_out oc;
@@ -316,9 +310,9 @@
     else if text_char < 0 then fail "text_char < 0"
     else if global_offset < 0 then fail "global_offset < 0"
     else if buf_pos < 0 then fail "buf_pos < 0"
-    else { text_line; text_char; global_offset; buf_pos }
+    else { text_line = text_line; text_char = text_char; global_offset = global_offset; buf_pos = buf_pos }
 
-  let with_buf_pos t buf_pos = { t with buf_pos }
+  let with_buf_pos t buf_pos = { t with buf_pos = buf_pos }
 end
 
 type ('a, 't) parse_result =
@@ -347,11 +341,11 @@
 
 exception Parse_error of parse_error
 
-let bump_text_line { parse_pos } =
+let bump_text_line { parse_pos = parse_pos } =
   parse_pos.Parse_pos.text_line <- parse_pos.Parse_pos.text_line + 1;
   parse_pos.Parse_pos.text_char <- 0
 
-let bump_text_pos { parse_pos } =
+let bump_text_pos { parse_pos = parse_pos } =
   parse_pos.Parse_pos.text_char <- parse_pos.Parse_pos.text_char + 1
 
 let bump_pos_cont state str ~max_pos ~pos cont =
@@ -378,18 +372,18 @@
   parse_pos.Parse_pos.buf_pos <- buf_pos;
   parse_pos.Parse_pos.global_offset <- parse_pos.Parse_pos.global_offset + len
 
-let mk_parse_pos { parse_pos } buf_pos =
+let mk_parse_pos { parse_pos = parse_pos } buf_pos =
   set_parse_pos parse_pos buf_pos;
   parse_pos
 
 let raise_parse_error parse_state location buf_pos err_msg =
   begin
     match parse_state with
-    | `Sexp { parse_pos } | `Annot { parse_pos } ->
+    | `Sexp { parse_pos = parse_pos } | `Annot { parse_pos = parse_pos } ->
         set_parse_pos parse_pos buf_pos;
         parse_pos.Parse_pos.text_char <- parse_pos.Parse_pos.text_char + 1;
   end;
-  let parse_error = { location; err_msg; parse_state } in
+  let parse_error = { location = location; err_msg = err_msg; parse_state = parse_state } in
   raise (Parse_error parse_error)
 
 let raise_unexpected_char parse_state location buf_pos c =
@@ -657,7 +651,7 @@
     let max_pos = check_str_bounds "parse" ~pos ~len str in \
     let state = \
       { \
-        parse_pos; \
+        parse_pos = parse_pos; \
         pstack = INIT_PSTACK; \
         pbuf = Buffer.create 128; \
       } \
@@ -681,20 +675,20 @@
 
 let mk_annot_pos
       ({ Parse_pos.text_line = line; text_char = col } as parse_pos) pos =
-  { Annot.line; col; offset = get_glob_ofs parse_pos pos }
+  { Annot.line = line; col = col; offset = get_glob_ofs parse_pos pos }
 
 let mk_annot_pos1
       ({ Parse_pos.text_line = line; text_char = col } as parse_pos) pos =
-  { Annot.line; col = col + 1; offset = get_glob_ofs parse_pos pos }
+  { Annot.line = line; col = col + 1; offset = get_glob_ofs parse_pos pos }
 
-let add_annot_pos { parse_pos; pstack } pos =
+let add_annot_pos { parse_pos = parse_pos; pstack = pstack } pos =
   pstack.Annot.positions <- mk_annot_pos parse_pos pos :: pstack.Annot.positions
 
-let add_annot_pos1 { parse_pos; pstack } pos =
+let add_annot_pos1 { parse_pos = parse_pos; pstack = pstack } pos =
   pstack.Annot.positions <-
     mk_annot_pos1 parse_pos pos :: pstack.Annot.positions
 
-let get_annot_range { parse_pos; pstack } pos =
+let get_annot_range { parse_pos = parse_pos; pstack = pstack } pos =
   let start_pos =
     match pstack.Annot.positions with
     | [] -> assert false  (* impossible *)
@@ -708,7 +702,7 @@
       offset = get_glob_ofs parse_pos pos;
     }
   in
-  { Annot.start_pos; end_pos }
+  { Annot.start_pos = start_pos; end_pos = end_pos }
 
 let mk_annot_atom parse_state str pos =
   Annot.Atom (get_annot_range parse_state pos, Atom str)
@@ -780,7 +774,7 @@
   let rec loop this_parse ~pos ~len ~is_incomplete =
     if len > 0 then
       match this_parse ~pos ~len buf with
-      | Done (sexp, ({ Parse_pos.buf_pos } as parse_pos)) ->
+      | Done (sexp, ({ Parse_pos.buf_pos = buf_pos } as parse_pos)) ->
           rev_sexps_ref := sexp :: !rev_sexps_ref;
           let n_parsed = buf_pos - pos in
           let this_parse = mk_this_parse ~parse_pos my_parse in
@@ -813,7 +807,7 @@
 
 let of_string_bigstring loc this_parse ws_buf get_len get_sub str =
   match this_parse str with
-  | Done (_, { Parse_pos.buf_pos }) when buf_pos <> get_len str ->
+  | Done (_, { Parse_pos.buf_pos = buf_pos }) when buf_pos <> get_len str ->
       let prefix_len = min (get_len str - buf_pos) 20 in
       let prefix = get_sub str buf_pos prefix_len in
       let msg =
@@ -874,7 +868,7 @@
       failwith (sprintf "Sexplib.Sexp.gen_load_sexp: end of file: %s" file)
     else
       match this_parse ~pos:0 ~len buf with
-      | Done (sexp, ({ Parse_pos.buf_pos } as parse_pos))
+      | Done (sexp, ({ Parse_pos.buf_pos = buf_pos } as parse_pos))
         when strict ->
           let rec strict_loop this_parse ~pos ~len =
             match this_parse ~pos ~len buf with
@@ -938,7 +932,7 @@
 
   let get_conv_exn ~file ~exc annot_sexp =
     let range = get_range annot_sexp in
-    let { start_pos = { line; col } } = range in
+    let { start_pos = { line = line; col = col } } = range in
     let loc = sprintf "%s:%d:%d" file line col in
     Of_sexp_error (Annot.Conv_exn (loc, exc), get_sexp annot_sexp)
 end
@@ -1003,7 +997,7 @@
   let sexp = of_string str in
   try f sexp
   with Of_sexp_error (exc, sub_sexp) ->
-    raise (Of_string_conv_exn.E { Of_string_conv_exn.exc; sexp; sub_sexp })
+    raise (Of_string_conv_exn.E { Of_string_conv_exn.exc = exc; sexp = sexp; sub_sexp = sub_sexp })
 
 let of_string_conv_exn str f = gen_of_string_conv_exn of_string str f
 let of_bigstring_conv_exn bstr f = gen_of_string_conv_exn of_bigstring bstr f