| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
These predicates use the standard Unicode case properties and are more intuitive than isUpper and isLower.
Approved by CLC in https://github.com/haskell/core-libraries-committee/issues/90#issuecomment-1276649403.
Fixes #14589
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Switch to a pure Haskell implementation of base:GHC.Unicode, based on the implementation of the package unicode-data (https://github.com/composewell/unicode-data/).
Approved by CLC as per https://github.com/haskell/core-libraries-committee/issues/59#issuecomment-1132106691.
- Remove current Unicode cbits.
- Add generator for Unicode property files from Unicode Character Database.
- Generate internal modules.
- Update GHC.Unicode.
- Add unicode003 test for general categories and case mappings.
- Add Python scripts to check 'base' Unicode tests outputs and characters properties.
Fixes #21375
-------------------------
Metric Decrease:
T16875
Metric Increase:
T4029
T18304
haddock.base
-------------------------
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It's simpler to assume that base is NoImplicitPrelude,
otherwise running doctest on `GHC.*` modules would be tricky.
OTOH, most `GHC.List` (where the most name clashes are) examples
could be changed to use `import qualified Data.List as L`.
(GHC.List examples won't show for Foldable methods...).
With these changes majority of doctest examples are GHCi-"faithful",
my WIP GHC-independent doctest runner reports nice summary:
Examples: 582; Tried: 546; Skipped: 34; Success: 515; Errors: 33; Property Failures 2
Most error cases are *Hangs forever*.
I have yet to figure out how to demonstrate that in GHCi.
Some of divergences are actually stack overflows, i.e. caught by
runtime.
Few errorful cases are examples of infinite output, e.g.
>>> cycle [42]
[42,42,42,42,42,42,42,42,42,42...
while correct, they confuse doctest.
Another erroneous cases are where expected output has line comment, like
>>> fmap show (Just 1) -- (a -> b) -> f a -> f b
Just "1" -- (Int -> String) -> Maybe Int -> Maybe String
I think I just have to teach doctest to strip comments from expected
output.
This is a first patch in a series.
There is plenty of stuff already.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This exposes a Data.Version.Version representing the version of the
Unicode database used by `base`. This should clear up some confusion I
have seen in tickets regarding with which Unicode versions a given GHC
can be expected to work.
While in town I also regenerated (but did not update) the Unicode
database with database 12.0.0. Strangely, the file cited in the README
no longer existed. Consequently, I used
https://www.unicode.org/Public/12.0.0/ucd/UnicodeData.txt and was
slightly surprised to find that there were a few changes.
|
|
|
|
|
| |
The `Ix` class seems rather orthogonal to its original home in
`GHC.Arr`.
|
|
|
|
| |
GHC Trac Issues: #15447
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This drastically cuts down on the number of Haddock warnings when making
docs for `base`. Plus this means more actual links end up in the docs!
Also fixed other small mostly markup issues in the documentation along
the way.
This is a docs-only change.
Reviewers: hvr, bgamari, thomie
Reviewed By: thomie
Subscribers: thomie, rwbarton, carter
Differential Revision: https://phabricator.haskell.org/D5055
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Corrects the inconsistency between Data.Char.isAlphaNum,
Data.Char.isAlpha and Data.Char.isNumber. Indeed, isAlphaNum was
returning True not only when isAlpha or isNumber returned True but
also when isMark did. The selectors for the Mn, Mc and Me general
categories where removed from the macro generating u_iswalnum in
ubconfc.
Also, Data.Char.isAlphaNum's documentation was changed to state that
isAlphaNum returns true not only for Unicode number digits but for
Unicode numbers in general in Unicode.hs.
Signed-off-by: ARJANEN Loïc Jean David <arjanen.loic@gmail.com>
Reviewers: hvr, ekmett, lelf, bgamari
Reviewed By: bgamari
Subscribers: thomie, carter
GHC Trac Issues: #10412
Differential Revision: https://phabricator.haskell.org/D4593
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Test Plan: ./validate
Reviewers: hvr, goldfire, bgamari, RyanGlScott
Reviewed By: RyanGlScott
Subscribers: rwbarton, thomie, carter
GHC Trac Issues: #11767
Differential Revision: https://phabricator.haskell.org/D4452
|
|
|
|
|
|
|
|
|
|
| |
This allows these to be used from Text.Read.Lex import cycles.
Reviewed By: thomie, austin
Differential Revision: https://phabricator.haskell.org/D1121
GHC Trac Issues: #10444
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Make things less branchy; use unsigned comparisons for range checking.
Eliminate non-spaces more quickly in common cases in isSpace.
Reviewers: ekmett, carter, austin
Reviewed By: austin
Subscribers: thomie, carter, ezyang, simonmar
Differential Revision: https://phabricator.haskell.org/D340
GHC Trac Issues: #1473
|
|
|
|
|
|
|
|
|
|
|
| |
This avoids the import-cycle caused by the import of `Foreign.C.Types`
by using `Int` instead of `CInt` for the Unicode classification
functions. This refactoring also allows to remove a couple of
`fromIntegral`s.
Reviewed By: rwbarton, ekmett
Differential Revision: https://phabricator.haskell.org/D328
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This removes language pragmas from Haskell modules which are implicitly
active with `default-language: Haskell2010`. Specifically, the following
language extension pragmas are removed by this commit:
- PatternGuards
- ForeignFunctionInterface
- EmptyDataDecls
- NoBangPatterns
Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The now obsolete (and redundant) `#hide` pragmas have been superseded by
`{-# OPTIONS_HADDOCK hide #-}` pragmas which are used by most of the
affected modules anyway.
This commit also adds proper `{-# OPTIONS_HADDOCK hide #-}` pragmas to
`GHC.Desugar` and `GHC.IO.Encoding.Iconv` which had only the ineffective
`#hide` annotation.
Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
|
| |
|
|
|
|
| |
Commented out since 2005, so doesn't seem worth maintaining it
|
|
|
|
| |
This eliminates a SOURCE import
|
|
|
|
|
| |
Part of trac #5529. We also now import the constructors in various
modules that use them in FFI decls.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Add explicit {-# LANGUAGE xxx #-} pragmas to each module, that say
what extensions that module uses. This makes it clearer where
different extensions are used in the (large, variagated) base package.
Now base.cabal doesn't need any extensions field
Thanks to Bas van Dijk for doing all the work.
|
|
|
|
| |
RebindableSyntax
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Data.Char docs, and hide GHC.Unicode
|
|
|
|
| |
remove unused WInt type
|
|
|
|
| |
move general categories and derived predicates to Data.Char
|
|
|
|
|
| |
- isDigit only returns True for ASCII digits
- Export the new predicates from Data.Char
|
|
|
|
|
|
|
| |
Add Dimitry Golubovsky <dimitry@golubovsky.org>'s Unicode character
class implementation. This will remove the dependency on libc's
locale code and give us much more consistent support for Unicode
across platforms.
|
|
|
|
| |
hide GHC internals from Haddock
|
|
|
|
| |
Remove some unnecessary #includes of ghcconfig.h
|
|
|
|
|
|
|
| |
Catch up with updates to platform #defines.
Generally: use _HOST_ rather than _TARGET_ (except in Cabal where we
have to retain compatibility with previous GHC versions).
|
|
|
|
| |
Use OPTIONS_GHC instead of OPTIONS
|
|
|
|
| |
Missing #include following per-package config changes
|
|
|
|
| |
Note Haskell 98 divergence in isAlpha.
|
|
|
|
|
| |
Changes required be merge of backend-hacking-branch. Mostly config.h
==> ghcconfig.h.
|
|
|
|
|
| |
Again: Fixed previous commit. Our QA department must really be on an
extended vacation... :-]
|
|
Convert Unicode.hsc to a plain .hs file to fix bootstrapping problems.
|