Skip to content

Commit 8a1af69

Browse files
committed
snapshot
1 parent 6a9a871 commit 8a1af69

12 files changed

+22436
-22028
lines changed

lib/4.06.1/bsb.ml

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1286,8 +1286,10 @@ let init n f =
12861286

12871287
let rec rev_append l1 l2 =
12881288
match l1 with
1289-
[] -> l2
1290-
| a :: l -> rev_append l (a :: l2)
1289+
| [] -> l2
1290+
| [a0] -> a0::l2 (* single element is common *)
1291+
| [a0 ; a1] -> a1 :: a0 :: l2
1292+
| a0::a1::a2::rest -> rev_append rest (a2::a1::a0::l2)
12911293

12921294
let rev l = rev_append l []
12931295

@@ -1364,7 +1366,16 @@ let rec rev_map_append l1 l2 f =
13641366
let rec flat_map_aux f acc append lx =
13651367
match lx with
13661368
| [] -> rev_append acc append
1367-
| a0::rest -> flat_map_aux f (rev_append (f a0) acc ) append rest
1369+
| a0::rest ->
1370+
let new_acc =
1371+
match f a0 with
1372+
| [] -> acc
1373+
| [a0] -> a0::acc
1374+
| [a0;a1] -> a1::a0::acc
1375+
| a0::a1::a2::rest ->
1376+
rev_append rest (a2::a1::a0::acc)
1377+
in
1378+
flat_map_aux f new_acc append rest
13681379

13691380
let flat_map lx f =
13701381
flat_map_aux f [] [] lx

lib/4.06.1/bsb_helper.ml

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1278,8 +1278,10 @@ let init n f =
12781278

12791279
let rec rev_append l1 l2 =
12801280
match l1 with
1281-
[] -> l2
1282-
| a :: l -> rev_append l (a :: l2)
1281+
| [] -> l2
1282+
| [a0] -> a0::l2 (* single element is common *)
1283+
| [a0 ; a1] -> a1 :: a0 :: l2
1284+
| a0::a1::a2::rest -> rev_append rest (a2::a1::a0::l2)
12831285

12841286
let rev l = rev_append l []
12851287

@@ -1356,7 +1358,16 @@ let rec rev_map_append l1 l2 f =
13561358
let rec flat_map_aux f acc append lx =
13571359
match lx with
13581360
| [] -> rev_append acc append
1359-
| a0::rest -> flat_map_aux f (rev_append (f a0) acc ) append rest
1361+
| a0::rest ->
1362+
let new_acc =
1363+
match f a0 with
1364+
| [] -> acc
1365+
| [a0] -> a0::acc
1366+
| [a0;a1] -> a1::a0::acc
1367+
| a0::a1::a2::rest ->
1368+
rev_append rest (a2::a1::a0::acc)
1369+
in
1370+
flat_map_aux f new_acc append rest
13601371

13611372
let flat_map lx f =
13621373
flat_map_aux f [] [] lx

lib/4.06.1/unstable/all_ounit_tests.ml

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5963,8 +5963,10 @@ let init n f =
59635963

59645964
let rec rev_append l1 l2 =
59655965
match l1 with
5966-
[] -> l2
5967-
| a :: l -> rev_append l (a :: l2)
5966+
| [] -> l2
5967+
| [a0] -> a0::l2 (* single element is common *)
5968+
| [a0 ; a1] -> a1 :: a0 :: l2
5969+
| a0::a1::a2::rest -> rev_append rest (a2::a1::a0::l2)
59685970

59695971
let rev l = rev_append l []
59705972

@@ -6041,7 +6043,16 @@ let rec rev_map_append l1 l2 f =
60416043
let rec flat_map_aux f acc append lx =
60426044
match lx with
60436045
| [] -> rev_append acc append
6044-
| a0::rest -> flat_map_aux f (rev_append (f a0) acc ) append rest
6046+
| a0::rest ->
6047+
let new_acc =
6048+
match f a0 with
6049+
| [] -> acc
6050+
| [a0] -> a0::acc
6051+
| [a0;a1] -> a1::a0::acc
6052+
| a0::a1::a2::rest ->
6053+
rev_append rest (a2::a1::a0::acc)
6054+
in
6055+
flat_map_aux f new_acc append rest
60456056

60466057
let flat_map lx f =
60476058
flat_map_aux f [] [] lx

lib/4.06.1/unstable/bsb_native.ml

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1286,8 +1286,10 @@ let init n f =
12861286

12871287
let rec rev_append l1 l2 =
12881288
match l1 with
1289-
[] -> l2
1290-
| a :: l -> rev_append l (a :: l2)
1289+
| [] -> l2
1290+
| [a0] -> a0::l2 (* single element is common *)
1291+
| [a0 ; a1] -> a1 :: a0 :: l2
1292+
| a0::a1::a2::rest -> rev_append rest (a2::a1::a0::l2)
12911293

12921294
let rev l = rev_append l []
12931295

@@ -1364,7 +1366,16 @@ let rec rev_map_append l1 l2 f =
13641366
let rec flat_map_aux f acc append lx =
13651367
match lx with
13661368
| [] -> rev_append acc append
1367-
| a0::rest -> flat_map_aux f (rev_append (f a0) acc ) append rest
1369+
| a0::rest ->
1370+
let new_acc =
1371+
match f a0 with
1372+
| [] -> acc
1373+
| [a0] -> a0::acc
1374+
| [a0;a1] -> a1::a0::acc
1375+
| a0::a1::a2::rest ->
1376+
rev_append rest (a2::a1::a0::acc)
1377+
in
1378+
flat_map_aux f new_acc append rest
13681379

13691380
let flat_map lx f =
13701381
flat_map_aux f [] [] lx

lib/4.06.1/unstable/bspack.ml

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9253,8 +9253,10 @@ let init n f =
92539253

92549254
let rec rev_append l1 l2 =
92559255
match l1 with
9256-
[] -> l2
9257-
| a :: l -> rev_append l (a :: l2)
9256+
| [] -> l2
9257+
| [a0] -> a0::l2 (* single element is common *)
9258+
| [a0 ; a1] -> a1 :: a0 :: l2
9259+
| a0::a1::a2::rest -> rev_append rest (a2::a1::a0::l2)
92589260

92599261
let rev l = rev_append l []
92609262

@@ -9331,7 +9333,16 @@ let rec rev_map_append l1 l2 f =
93319333
let rec flat_map_aux f acc append lx =
93329334
match lx with
93339335
| [] -> rev_append acc append
9334-
| a0::rest -> flat_map_aux f (rev_append (f a0) acc ) append rest
9336+
| a0::rest ->
9337+
let new_acc =
9338+
match f a0 with
9339+
| [] -> acc
9340+
| [a0] -> a0::acc
9341+
| [a0;a1] -> a1::a0::acc
9342+
| a0::a1::a2::rest ->
9343+
rev_append rest (a2::a1::a0::acc)
9344+
in
9345+
flat_map_aux f new_acc append rest
93359346

93369347
let flat_map lx f =
93379348
flat_map_aux f [] [] lx

0 commit comments

Comments
 (0)