forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
dev-ml/eliom: fix build with ocaml 4.03 and add missing dep on camlp4
Package-Manager: portage-2.3.0
- Loading branch information
Showing
3 changed files
with
93 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
commit f157a5b913451b85e8cfe7549c66e5c98669233b | ||
Author: Vasilis Papavasileiou <[email protected]> | ||
Date: Wed Mar 2 14:23:02 2016 +0100 | ||
|
||
Compile against Camlp4 4.02+7 | ||
|
||
diff --git a/src/syntax/pa_eliom_seed.ml b/src/syntax/pa_eliom_seed.ml | ||
index c101ff8..dc31caa 100644 | ||
--- a/src/syntax/pa_eliom_seed.ml | ||
+++ b/src/syntax/pa_eliom_seed.ml | ||
@@ -632,8 +632,26 @@ module Register(Id : sig val name: string end)(Pass : Pass) = struct | ||
| None -> | ||
Printf.ksprintf (Syntax_error.raise loc) fmt | ||
|
||
- module E2 = Camlp4.ErrorHandler.Register(Syntax_error) | ||
- DELETE_RULE Gram expr: "{"; TRY [label_expr_list; "}"] END; | ||
+ module E2 = Camlp4.ErrorHandler.Register(Syntax_error) ;; | ||
+ | ||
+ try | ||
+ DELETE_RULE Gram expr: "{"; TRY [label_expr_list; "}"] END | ||
+ with Camlp4.Struct.Grammar.Delete.Rule_not_found _ -> | ||
+ (let test_record_field = | ||
+ Gram.Entry.of_parser "record_field" (fun strm -> | ||
+ let rec loop = function | ||
+ | [] -> () | ||
+ | (UIDENT _, _) :: (KEYWORD ".", _) :: rest -> loop rest | ||
+ | (LIDENT _, _) :: (KEYWORD "=", _) :: _ -> () | ||
+ | (LIDENT _, _) :: (KEYWORD ";", _) :: _ -> () | ||
+ | [LIDENT _, _] -> () | ||
+ | _ -> raise Stream.Failure | ||
+ in | ||
+ loop (Stream.npeek 100 strm)) | ||
+ in | ||
+ DELETE_RULE Gram expr: | ||
+ "{"; test_record_field; label_expr_list; "}" END) ;; | ||
+ | ||
DELETE_RULE Gram expr: "{"; TRY [expr LEVEL "."; "with"]; label_expr_list; "}" END; | ||
|
||
(* Extending syntax *) | ||
@@ -812,7 +830,7 @@ module Register(Id : sig val name: string end)(Pass : Pass) = struct | ||
expr: LEVEL "simple" | ||
|
||
[ [ KEYWORD "{"; lel = TRY [lel = label_expr_list; "}" -> lel] -> | ||
- <:expr< { $lel$ } >> | ||
+ Ast.ExRec (_loc, lel, Ast.ExNil _loc) | ||
| KEYWORD "{shared#"; | ||
typ = TRY [ typ = OPT ctyp; KEYWORD "{" -> typ]; | ||
opt_lvl = dummy_set_level_shared_value_expr ; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
Index: eliom-5.0.0/src/lib/eliom_lib.client.mli | ||
=================================================================== | ||
--- eliom-5.0.0.orig/src/lib/eliom_lib.client.mli | ||
+++ eliom-5.0.0/src/lib/eliom_lib.client.mli | ||
@@ -43,7 +43,6 @@ type 'a shared_value = 'a | ||
|
||
val create_shared_value : 'a -> 'a client_value -> 'a shared_value | ||
|
||
-exception Eliom_Internal_Error of string | ||
|
||
(** This exception is raised (in Lwt) on the client if a call to a | ||
server function {% <<a_api subproject="server"|val | ||
Index: eliom-5.0.0/src/lib/eliom_lib.server.mli | ||
=================================================================== | ||
--- eliom-5.0.0.orig/src/lib/eliom_lib.server.mli | ||
+++ eliom-5.0.0/src/lib/eliom_lib.server.mli | ||
@@ -50,7 +50,6 @@ type +'a shared_value | ||
*) | ||
exception Client_value_creation_invalid_context of string | ||
|
||
-exception Eliom_Internal_Error of string | ||
|
||
type file_info = Ocsigen_extensions.file_info | ||
|
||
Index: eliom-5.0.0/src/syntax/pa_include.ml | ||
=================================================================== | ||
--- eliom-5.0.0.orig/src/syntax/pa_include.ml | ||
+++ eliom-5.0.0/src/syntax/pa_include.ml | ||
@@ -27,7 +27,7 @@ module Make(Syntax : Camlp4.Sig.Camlp4Sy | ||
class subst_type env = object (self) | ||
inherit Ast.map as super | ||
method sig_item si = match si with | ||
- | Ast.SgTyp (_loc, (Ast.TyDcl (_, lid, _, Ast.TyNil _, _))) | ||
+ | Ast.SgTyp (_loc, rf, (Ast.TyDcl (_, lid, _, Ast.TyNil _, _))) | ||
when List.mem_assoc lid env -> <:sig_item< >> | ||
| si -> super#sig_item si | ||
method ctyp ty = match ty with |