Skip to content

Commit 30ee5bb

Browse files
authored
Fix Array.empty precompilation (#25)
Fix #24
2 parents a8f8b83 + 05625e4 commit 30ee5bb

File tree

4 files changed

+10
-4
lines changed

4 files changed

+10
-4
lines changed

src/tac2compiledPrim.ml

+2-3
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,8 @@ let define name arity f =
4343
registered := (name,arity) :: !registered;
4444
f
4545

46-
(* Adds a thunk *)
4746
let define0 name v =
48-
define name 1 (fun (_:valexpr) -> v)
47+
define name 0 v
4948

5049
let define1 name r0 f =
5150
define name 1 (fun x0 -> f (repr_to r0 x0))
@@ -56,7 +55,7 @@ let define2 name r0 r1 f =
5655
let define3 name r0 r1 r2 f =
5756
define name 3 (fun x0 x1 x2 -> f (repr_to r0 x0) (repr_to r1 x1) (repr_to r2 x2))
5857

59-
let array_empty = define0 "array_empty" (return (ValBlk (0, [||])))
58+
let array_empty = define0 "array_empty" (ValBlk (0, [||]))
6059

6160
let array_make = define2 "array_make" int valexpr begin fun n x ->
6261
if n < 0 || n > Sys.max_array_length then throw err_outofbounds

src/tac2compiledPrim.mli

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
open Ltac2_plugin.Tac2val
1212
open Proofview
1313

14-
val array_empty : valexpr -> valexpr tactic
14+
val array_empty : valexpr
1515
val array_make : valexpr -> valexpr -> valexpr tactic
1616
val array_length : valexpr -> valexpr tactic
1717
val array_set : valexpr -> valexpr -> valexpr -> valexpr tactic

tests/_CoqProject

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ compiler_bug_6.v
1111
compiler_bug_14.v
1212
compiler_bug_16.v
1313
compiler_bug_17.v
14+
compiler_bug_24.v
1415

1516
-I src
1617

tests/compiler_bug_24.v

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
Require Import Ltac2Compiler.Ltac2Compiler.
2+
From Ltac2 Require Import Array.
3+
Ltac2 test () := Array.empty.
4+
Ltac2 Eval Array.length (test ()).
5+
Ltac2 Compile Array.empty.
6+
Ltac2 Eval Array.length (test ()).

0 commit comments

Comments
 (0)