Skip to content

Commit

Permalink
Tweaks
Browse files Browse the repository at this point in the history
  • Loading branch information
phadej committed Mar 9, 2020
1 parent 8982677 commit 35ad202
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 304 deletions.
6 changes: 3 additions & 3 deletions Cabal/Cabal.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -666,6 +666,9 @@ test-suite unit-tests
ghc-options: -Wall
default-language: Haskell2010

if !impl(ghc >= 7.10)
build-depends: void

-- Cabal-quickcheck
hs-source-dirs: Cabal-quickcheck/src
other-modules:
Expand Down Expand Up @@ -693,9 +696,6 @@ test-suite parser-tests
if !impl(ghc >= 8.0)
build-depends: semigroups

if !impl(ghc >= 7.10)
build-depends: void

if impl(ghc >= 7.8)
build-depends:
tree-diff >= 0.1 && <0.2
Expand Down
296 changes: 10 additions & 286 deletions Cabal/Distribution/Utils/CharSet.hs
Original file line number Diff line number Diff line change
Expand Up @@ -214,293 +214,17 @@ normalise' = CS . IM.fromList . go where
-- Alpha Numeric character list
-------------------------------------------------------------------------------

-- |
--
-- >>> size alpha
-- 102725
-- Computing this takes some time,
-- but they are not used in-non testing in Cabal's normal operation.

-- | Note: this set varies depending on @base@ version.
--
alpha :: CharSet
alpha = CS $ IM.fromList
[(65,90), (97,122), (170,170), (181,181), (186,186), (192,214),
(216,246), (248,705), (710,721), (736,740), (748,748), (750,750),
(880,884), (886,887), (890,893), (895,895), (902,902), (904,906),
(908,908), (910,929), (931,1013), (1015,1153), (1162,1327),
(1329,1366), (1369,1369), (1377,1415), (1488,1514), (1520,1522),
(1568,1610), (1646,1647), (1649,1747), (1749,1749), (1765,1766),
(1774,1775), (1786,1788), (1791,1791), (1808,1808), (1810,1839),
(1869,1957), (1969,1969), (1994,2026), (2036,2037), (2042,2042),
(2048,2069), (2074,2074), (2084,2084), (2088,2088), (2112,2136),
(2208,2226), (2308,2361), (2365,2365), (2384,2384), (2392,2401),
(2417,2432), (2437,2444), (2447,2448), (2451,2472), (2474,2480),
(2482,2482), (2486,2489), (2493,2493), (2510,2510), (2524,2525),
(2527,2529), (2544,2545), (2565,2570), (2575,2576), (2579,2600),
(2602,2608), (2610,2611), (2613,2614), (2616,2617), (2649,2652),
(2654,2654), (2674,2676), (2693,2701), (2703,2705), (2707,2728),
(2730,2736), (2738,2739), (2741,2745), (2749,2749), (2768,2768),
(2784,2785), (2821,2828), (2831,2832), (2835,2856), (2858,2864),
(2866,2867), (2869,2873), (2877,2877), (2908,2909), (2911,2913),
(2929,2929), (2947,2947), (2949,2954), (2958,2960), (2962,2965),
(2969,2970), (2972,2972), (2974,2975), (2979,2980), (2984,2986),
(2990,3001), (3024,3024), (3077,3084), (3086,3088), (3090,3112),
(3114,3129), (3133,3133), (3160,3161), (3168,3169), (3205,3212),
(3214,3216), (3218,3240), (3242,3251), (3253,3257), (3261,3261),
(3294,3294), (3296,3297), (3313,3314), (3333,3340), (3342,3344),
(3346,3386), (3389,3389), (3406,3406), (3424,3425), (3450,3455),
(3461,3478), (3482,3505), (3507,3515), (3517,3517), (3520,3526),
(3585,3632), (3634,3635), (3648,3654), (3713,3714), (3716,3716),
(3719,3720), (3722,3722), (3725,3725), (3732,3735), (3737,3743),
(3745,3747), (3749,3749), (3751,3751), (3754,3755), (3757,3760),
(3762,3763), (3773,3773), (3776,3780), (3782,3782), (3804,3807),
(3840,3840), (3904,3911), (3913,3948), (3976,3980), (4096,4138),
(4159,4159), (4176,4181), (4186,4189), (4193,4193), (4197,4198),
(4206,4208), (4213,4225), (4238,4238), (4256,4293), (4295,4295),
(4301,4301), (4304,4346), (4348,4680), (4682,4685), (4688,4694),
(4696,4696), (4698,4701), (4704,4744), (4746,4749), (4752,4784),
(4786,4789), (4792,4798), (4800,4800), (4802,4805), (4808,4822),
(4824,4880), (4882,4885), (4888,4954), (4992,5007), (5024,5108),
(5121,5740), (5743,5759), (5761,5786), (5792,5866), (5873,5880),
(5888,5900), (5902,5905), (5920,5937), (5952,5969), (5984,5996),
(5998,6000), (6016,6067), (6103,6103), (6108,6108), (6176,6263),
(6272,6312), (6314,6314), (6320,6389), (6400,6430), (6480,6509),
(6512,6516), (6528,6571), (6593,6599), (6656,6678), (6688,6740),
(6823,6823), (6917,6963), (6981,6987), (7043,7072), (7086,7087),
(7098,7141), (7168,7203), (7245,7247), (7258,7293), (7401,7404),
(7406,7409), (7413,7414), (7424,7615), (7680,7957), (7960,7965),
(7968,8005), (8008,8013), (8016,8023), (8025,8025), (8027,8027),
(8029,8029), (8031,8061), (8064,8116), (8118,8124), (8126,8126),
(8130,8132), (8134,8140), (8144,8147), (8150,8155), (8160,8172),
(8178,8180), (8182,8188), (8305,8305), (8319,8319), (8336,8348),
(8450,8450), (8455,8455), (8458,8467), (8469,8469), (8473,8477),
(8484,8484), (8486,8486), (8488,8488), (8490,8493), (8495,8505),
(8508,8511), (8517,8521), (8526,8526), (8579,8580), (11264,11310),
(11312,11358), (11360,11492), (11499,11502), (11506,11507),
(11520,11557), (11559,11559), (11565,11565), (11568,11623),
(11631,11631), (11648,11670), (11680,11686), (11688,11694),
(11696,11702), (11704,11710), (11712,11718), (11720,11726),
(11728,11734), (11736,11742), (11823,11823), (12293,12294),
(12337,12341), (12347,12348), (12353,12438), (12445,12447),
(12449,12538), (12540,12543), (12549,12589), (12593,12686),
(12704,12730), (12784,12799), (13312,19893), (19968,40908),
(40960,42124), (42192,42237), (42240,42508), (42512,42527),
(42538,42539), (42560,42606), (42623,42653), (42656,42725),
(42775,42783), (42786,42888), (42891,42894), (42896,42925),
(42928,42929), (42999,43009), (43011,43013), (43015,43018),
(43020,43042), (43072,43123), (43138,43187), (43250,43255),
(43259,43259), (43274,43301), (43312,43334), (43360,43388),
(43396,43442), (43471,43471), (43488,43492), (43494,43503),
(43514,43518), (43520,43560), (43584,43586), (43588,43595),
(43616,43638), (43642,43642), (43646,43695), (43697,43697),
(43701,43702), (43705,43709), (43712,43712), (43714,43714),
(43739,43741), (43744,43754), (43762,43764), (43777,43782),
(43785,43790), (43793,43798), (43808,43814), (43816,43822),
(43824,43866), (43868,43871), (43876,43877), (43968,44002),
(44032,55203), (55216,55238), (55243,55291), (63744,64109),
(64112,64217), (64256,64262), (64275,64279), (64285,64285),
(64287,64296), (64298,64310), (64312,64316), (64318,64318),
(64320,64321), (64323,64324), (64326,64433), (64467,64829),
(64848,64911), (64914,64967), (65008,65019), (65136,65140),
(65142,65276), (65313,65338), (65345,65370), (65382,65470),
(65474,65479), (65482,65487), (65490,65495), (65498,65500),
(65536,65547), (65549,65574), (65576,65594), (65596,65597),
(65599,65613), (65616,65629), (65664,65786), (66176,66204),
(66208,66256), (66304,66335), (66352,66368), (66370,66377),
(66384,66421), (66432,66461), (66464,66499), (66504,66511),
(66560,66717), (66816,66855), (66864,66915), (67072,67382),
(67392,67413), (67424,67431), (67584,67589), (67592,67592),
(67594,67637), (67639,67640), (67644,67644), (67647,67669),
(67680,67702), (67712,67742), (67840,67861), (67872,67897),
(67968,68023), (68030,68031), (68096,68096), (68112,68115),
(68117,68119), (68121,68147), (68192,68220), (68224,68252),
(68288,68295), (68297,68324), (68352,68405), (68416,68437),
(68448,68466), (68480,68497), (68608,68680), (69635,69687),
(69763,69807), (69840,69864), (69891,69926), (69968,70002),
(70006,70006), (70019,70066), (70081,70084), (70106,70106),
(70144,70161), (70163,70187), (70320,70366), (70405,70412),
(70415,70416), (70419,70440), (70442,70448), (70450,70451),
(70453,70457), (70461,70461), (70493,70497), (70784,70831),
(70852,70853), (70855,70855), (71040,71086), (71168,71215),
(71236,71236), (71296,71338), (71840,71903), (71935,71935),
(72384,72440), (73728,74648), (77824,78894), (92160,92728),
(92736,92766), (92880,92909), (92928,92975), (92992,92995),
(93027,93047), (93053,93071), (93952,94020), (94032,94032),
(94099,94111), (110592,110593), (113664,113770), (113776,113788),
(113792,113800), (113808,113817), (119808,119892), (119894,119964),
(119966,119967), (119970,119970), (119973,119974), (119977,119980),
(119982,119993), (119995,119995), (119997,120003), (120005,120069),
(120071,120074), (120077,120084), (120086,120092), (120094,120121),
(120123,120126), (120128,120132), (120134,120134), (120138,120144),
(120146,120485), (120488,120512), (120514,120538), (120540,120570),
(120572,120596), (120598,120628), (120630,120654), (120656,120686),
(120688,120712), (120714,120744), (120746,120770), (120772,120779),
(124928,125124), (126464,126467), (126469,126495), (126497,126498),
(126500,126500), (126503,126503), (126505,126514), (126516,126519),
(126521,126521), (126523,126523), (126530,126530), (126535,126535),
(126537,126537), (126539,126539), (126541,126543), (126545,126546),
(126548,126548), (126551,126551), (126553,126553), (126555,126555),
(126557,126557), (126559,126559), (126561,126562), (126564,126564),
(126567,126570), (126572,126578), (126580,126583), (126585,126588),
(126590,126590), (126592,126601), (126603,126619), (126625,126627),
(126629,126633), (126635,126651), (131072,173782), (173824,177972),
(177984,178205), (194560,195101)]

-- |
--
-- >>> size alphanum
-- 105901
alpha = foldl' (flip insert) empty [ c | c <- [ minBound .. maxBound ], isAlpha c ]
{-# NOINLINE alpha #-}

-- | Note: this set varies depending on @base@ version.
--
{-# NOINLINE alphanum #-}
alphanum :: CharSet
-- Note: to pretty print use
--
-- :m *Distribution.Utils.CharSet
-- :m +Text.PrettyPrint
--
-- let xs = foldl' (flip insert) Distribution.Utils.CharSet.empty [ c | c <- [ minBound .. maxBound ], isAlphaNum c ]
-- brackets $ fsep $ punctuate comma [ parens (int x Prelude.<> comma Prelude.<> int y) | (x,y) <- IM.toList $ unCS xs ]

alphanum = CS $ IM.fromList
[(48,57), (65,90), (97,122), (170,170), (178,179), (181,181),
(185,186), (188,190), (192,214), (216,246), (248,705), (710,721),
(736,740), (748,748), (750,750), (768,884), (886,887), (890,893),
(895,895), (902,902), (904,906), (908,908), (910,929), (931,1013),
(1015,1153), (1155,1327), (1329,1366), (1369,1369), (1377,1415),
(1425,1469), (1471,1471), (1473,1474), (1476,1477), (1479,1479),
(1488,1514), (1520,1522), (1552,1562), (1568,1641), (1646,1747),
(1749,1756), (1759,1768), (1770,1788), (1791,1791), (1808,1866),
(1869,1969), (1984,2037), (2042,2042), (2048,2093), (2112,2139),
(2208,2226), (2276,2403), (2406,2415), (2417,2435), (2437,2444),
(2447,2448), (2451,2472), (2474,2480), (2482,2482), (2486,2489),
(2492,2500), (2503,2504), (2507,2510), (2519,2519), (2524,2525),
(2527,2531), (2534,2545), (2548,2553), (2561,2563), (2565,2570),
(2575,2576), (2579,2600), (2602,2608), (2610,2611), (2613,2614),
(2616,2617), (2620,2620), (2622,2626), (2631,2632), (2635,2637),
(2641,2641), (2649,2652), (2654,2654), (2662,2677), (2689,2691),
(2693,2701), (2703,2705), (2707,2728), (2730,2736), (2738,2739),
(2741,2745), (2748,2757), (2759,2761), (2763,2765), (2768,2768),
(2784,2787), (2790,2799), (2817,2819), (2821,2828), (2831,2832),
(2835,2856), (2858,2864), (2866,2867), (2869,2873), (2876,2884),
(2887,2888), (2891,2893), (2902,2903), (2908,2909), (2911,2915),
(2918,2927), (2929,2935), (2946,2947), (2949,2954), (2958,2960),
(2962,2965), (2969,2970), (2972,2972), (2974,2975), (2979,2980),
(2984,2986), (2990,3001), (3006,3010), (3014,3016), (3018,3021),
(3024,3024), (3031,3031), (3046,3058), (3072,3075), (3077,3084),
(3086,3088), (3090,3112), (3114,3129), (3133,3140), (3142,3144),
(3146,3149), (3157,3158), (3160,3161), (3168,3171), (3174,3183),
(3192,3198), (3201,3203), (3205,3212), (3214,3216), (3218,3240),
(3242,3251), (3253,3257), (3260,3268), (3270,3272), (3274,3277),
(3285,3286), (3294,3294), (3296,3299), (3302,3311), (3313,3314),
(3329,3331), (3333,3340), (3342,3344), (3346,3386), (3389,3396),
(3398,3400), (3402,3406), (3415,3415), (3424,3427), (3430,3445),
(3450,3455), (3458,3459), (3461,3478), (3482,3505), (3507,3515),
(3517,3517), (3520,3526), (3530,3530), (3535,3540), (3542,3542),
(3544,3551), (3558,3567), (3570,3571), (3585,3642), (3648,3662),
(3664,3673), (3713,3714), (3716,3716), (3719,3720), (3722,3722),
(3725,3725), (3732,3735), (3737,3743), (3745,3747), (3749,3749),
(3751,3751), (3754,3755), (3757,3769), (3771,3773), (3776,3780),
(3782,3782), (3784,3789), (3792,3801), (3804,3807), (3840,3840),
(3864,3865), (3872,3891), (3893,3893), (3895,3895), (3897,3897),
(3902,3911), (3913,3948), (3953,3972), (3974,3991), (3993,4028),
(4038,4038), (4096,4169), (4176,4253), (4256,4293), (4295,4295),
(4301,4301), (4304,4346), (4348,4680), (4682,4685), (4688,4694),
(4696,4696), (4698,4701), (4704,4744), (4746,4749), (4752,4784),
(4786,4789), (4792,4798), (4800,4800), (4802,4805), (4808,4822),
(4824,4880), (4882,4885), (4888,4954), (4957,4959), (4969,4988),
(4992,5007), (5024,5108), (5121,5740), (5743,5759), (5761,5786),
(5792,5866), (5870,5880), (5888,5900), (5902,5908), (5920,5940),
(5952,5971), (5984,5996), (5998,6000), (6002,6003), (6016,6099),
(6103,6103), (6108,6109), (6112,6121), (6128,6137), (6155,6157),
(6160,6169), (6176,6263), (6272,6314), (6320,6389), (6400,6430),
(6432,6443), (6448,6459), (6470,6509), (6512,6516), (6528,6571),
(6576,6601), (6608,6618), (6656,6683), (6688,6750), (6752,6780),
(6783,6793), (6800,6809), (6823,6823), (6832,6846), (6912,6987),
(6992,7001), (7019,7027), (7040,7155), (7168,7223), (7232,7241),
(7245,7293), (7376,7378), (7380,7414), (7416,7417), (7424,7669),
(7676,7957), (7960,7965), (7968,8005), (8008,8013), (8016,8023),
(8025,8025), (8027,8027), (8029,8029), (8031,8061), (8064,8116),
(8118,8124), (8126,8126), (8130,8132), (8134,8140), (8144,8147),
(8150,8155), (8160,8172), (8178,8180), (8182,8188), (8304,8305),
(8308,8313), (8319,8329), (8336,8348), (8400,8432), (8450,8450),
(8455,8455), (8458,8467), (8469,8469), (8473,8477), (8484,8484),
(8486,8486), (8488,8488), (8490,8493), (8495,8505), (8508,8511),
(8517,8521), (8526,8526), (8528,8585), (9312,9371), (9450,9471),
(10102,10131), (11264,11310), (11312,11358), (11360,11492),
(11499,11507), (11517,11517), (11520,11557), (11559,11559),
(11565,11565), (11568,11623), (11631,11631), (11647,11670),
(11680,11686), (11688,11694), (11696,11702), (11704,11710),
(11712,11718), (11720,11726), (11728,11734), (11736,11742),
(11744,11775), (11823,11823), (12293,12295), (12321,12335),
(12337,12341), (12344,12348), (12353,12438), (12441,12442),
(12445,12447), (12449,12538), (12540,12543), (12549,12589),
(12593,12686), (12690,12693), (12704,12730), (12784,12799),
(12832,12841), (12872,12879), (12881,12895), (12928,12937),
(12977,12991), (13312,19893), (19968,40908), (40960,42124),
(42192,42237), (42240,42508), (42512,42539), (42560,42610),
(42612,42621), (42623,42653), (42655,42737), (42775,42783),
(42786,42888), (42891,42894), (42896,42925), (42928,42929),
(42999,43047), (43056,43061), (43072,43123), (43136,43204),
(43216,43225), (43232,43255), (43259,43259), (43264,43309),
(43312,43347), (43360,43388), (43392,43456), (43471,43481),
(43488,43518), (43520,43574), (43584,43597), (43600,43609),
(43616,43638), (43642,43714), (43739,43741), (43744,43759),
(43762,43766), (43777,43782), (43785,43790), (43793,43798),
(43808,43814), (43816,43822), (43824,43866), (43868,43871),
(43876,43877), (43968,44010), (44012,44013), (44016,44025),
(44032,55203), (55216,55238), (55243,55291), (63744,64109),
(64112,64217), (64256,64262), (64275,64279), (64285,64296),
(64298,64310), (64312,64316), (64318,64318), (64320,64321),
(64323,64324), (64326,64433), (64467,64829), (64848,64911),
(64914,64967), (65008,65019), (65024,65039), (65056,65069),
(65136,65140), (65142,65276), (65296,65305), (65313,65338),
(65345,65370), (65382,65470), (65474,65479), (65482,65487),
(65490,65495), (65498,65500), (65536,65547), (65549,65574),
(65576,65594), (65596,65597), (65599,65613), (65616,65629),
(65664,65786), (65799,65843), (65856,65912), (65930,65931),
(66045,66045), (66176,66204), (66208,66256), (66272,66299),
(66304,66339), (66352,66378), (66384,66426), (66432,66461),
(66464,66499), (66504,66511), (66513,66517), (66560,66717),
(66720,66729), (66816,66855), (66864,66915), (67072,67382),
(67392,67413), (67424,67431), (67584,67589), (67592,67592),
(67594,67637), (67639,67640), (67644,67644), (67647,67669),
(67672,67702), (67705,67742), (67751,67759), (67840,67867),
(67872,67897), (67968,68023), (68030,68031), (68096,68099),
(68101,68102), (68108,68115), (68117,68119), (68121,68147),
(68152,68154), (68159,68167), (68192,68222), (68224,68255),
(68288,68295), (68297,68326), (68331,68335), (68352,68405),
(68416,68437), (68440,68466), (68472,68497), (68521,68527),
(68608,68680), (69216,69246), (69632,69702), (69714,69743),
(69759,69818), (69840,69864), (69872,69881), (69888,69940),
(69942,69951), (69968,70003), (70006,70006), (70016,70084),
(70096,70106), (70113,70132), (70144,70161), (70163,70199),
(70320,70378), (70384,70393), (70401,70403), (70405,70412),
(70415,70416), (70419,70440), (70442,70448), (70450,70451),
(70453,70457), (70460,70468), (70471,70472), (70475,70477),
(70487,70487), (70493,70499), (70502,70508), (70512,70516),
(70784,70853), (70855,70855), (70864,70873), (71040,71093),
(71096,71104), (71168,71232), (71236,71236), (71248,71257),
(71296,71351), (71360,71369), (71840,71922), (71935,71935),
(72384,72440), (73728,74648), (74752,74862), (77824,78894),
(92160,92728), (92736,92766), (92768,92777), (92880,92909),
(92912,92916), (92928,92982), (92992,92995), (93008,93017),
(93019,93025), (93027,93047), (93053,93071), (93952,94020),
(94032,94078), (94095,94111), (110592,110593), (113664,113770),
(113776,113788), (113792,113800), (113808,113817), (113821,113822),
(119141,119145), (119149,119154), (119163,119170), (119173,119179),
(119210,119213), (119362,119364), (119648,119665), (119808,119892),
(119894,119964), (119966,119967), (119970,119970), (119973,119974),
(119977,119980), (119982,119993), (119995,119995), (119997,120003),
(120005,120069), (120071,120074), (120077,120084), (120086,120092),
(120094,120121), (120123,120126), (120128,120132), (120134,120134),
(120138,120144), (120146,120485), (120488,120512), (120514,120538),
(120540,120570), (120572,120596), (120598,120628), (120630,120654),
(120656,120686), (120688,120712), (120714,120744), (120746,120770),
(120772,120779), (120782,120831), (124928,125124), (125127,125142),
(126464,126467), (126469,126495), (126497,126498), (126500,126500),
(126503,126503), (126505,126514), (126516,126519), (126521,126521),
(126523,126523), (126530,126530), (126535,126535), (126537,126537),
(126539,126539), (126541,126543), (126545,126546), (126548,126548),
(126551,126551), (126553,126553), (126555,126555), (126557,126557),
(126559,126559), (126561,126562), (126564,126564), (126567,126570),
(126572,126578), (126580,126583), (126585,126588), (126590,126590),
(126592,126601), (126603,126619), (126625,126627), (126629,126633),
(126635,126651), (127232,127244), (131072,173782), (173824,177972),
(177984,178205), (194560,195101), (917760,917999)]
alphanum = foldl' (flip insert) empty [ c | c <- [ minBound .. maxBound ], isAlphaNum c ]
{-# NOINLINE alphanum #-}
Loading

0 comments on commit 35ad202

Please sign in to comment.