Libraries
Threads by month
- ----- 2025 -----
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2003 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2002 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2001 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
July 2021
- 25 participants
- 11 discussions
I’d like to gather a feedback on the semantics of size hints in `text` package, as outlined at https://github.com/haskell/text/issues/356 <https://github.com/haskell/text/issues/356>.
Best regards,
Andrew
1
0
The documentation of withMVar (in Control.Concurrent.MVar module of base
package) says:
{-| 'withMVar' is an exception-safe wrapper for operating on the
contents of an 'MVar'. This operation is exception-safe: it will
replace the original contents of the 'MVar' if an exception is raised
(see "Control.Exception"). However, it is only atomic if there are
no other producers for this 'MVar'.-}withMVar :: MVar a -> (a -> IO
b) -> IO bwithMVar m io = mask $ \restore -> do a <- takeMVar m
b <- restore (io a) `onException` putMVar m a putMVar m a return
b
Can someone shed some light on what is meant by the statement -
"However, it is only atomic if there are no other producers for this 'MVar'."?
I hope this is the right mailing list for this question.
Thanks,
Harendra
4
3
We have
class Monad m => MonadFree f m | m -> f where
wrap :: f (m a) -> m a
liftF :: (Functor f, MonadFree f m) => f a -> m a
liftF = wrap . fmap pure
I propose we change this to
class Monad m => MonadFree f m | m -> f where
wrap :: f (m a) -> m a
liftF :: f a -> m a
default liftF :: Functor f => f a -> m a
liftF = wrap . fmap pure
and add a function
defaultWrap :: MonadFree f m => f (m a) -> m a
defaultWrap = join . liftF
This change is not strictly backwards compatible. Some instances might,
hypothetically, have to add a Functor constraint. For example, the classic
Control.Monad.Free and Control.Monad.Trans.Free would need them. However,
those instances already have (currently redundant) Functor constraints, so
that doesn't seem like a big deal.
An alternative would be to hew more strictly to backwards compatibility by
placing a Functor f constraint on liftF. This seems a bit sad for "freer"
instances that don't need it. For example, we have
newtype FT f m a = FT
{ runFT :: forall r. (a -> m r) -> (forall x. (x -> m r) -> f x -> m r)
-> m r }
for which
liftF :: f a -> FT f m a
liftF fa = FT $ \pur bndf -> bndf pur fa
Pull request at https://github.com/ekmett/free/pull/208
3
4
Hi all
Two weeks ago, I proposed “Support Unicode characters in instance Show
String” [0] in the GHC issue tracker, and chessai asked me to post it
here for wider feedback. The proposal posted here is edited to reflect
new ideas proposed and insights accumulated over the days:
1. (Proposal) Now the proposal itself is now modeled after Python.
2. (Alternative Options) Alternative 2 is the original proposal.
3. (Downsides) New. About breakage.
4. (Prior Art) New.
5. (Unresolved Problems) New. Included for discussion.
Even though I wanted to summarize everything here, some insightful
comments are perhaps not included or misunderstood. These original
comments can be found at the original feature request.
[0] https://gitlab.haskell.org/ghc/ghc/-/issues/20027
Motivation
==========
Unicode has been widely adopted and people around the world rely on
Unicode to write in their native languages. Haskell, however, has been
stuck in ASCII, and escape all non-ASCII characters in the String's
instance of the Showclass, despite the fact that each element of a
String is typically a Unicode code point, and putStrLn actually works as
expected. Consider the following examples:
ghci> print "Hello, 世界”
"Hello, \19990\30028”
ghci> print "Hello, мир”
"Hello, \1084\1080\1088”
ghci> print "Hello, κόσμος”
"Hello, \954\972\963\956\959\962”
ghci> "Hello, 世界" -- ghci calls `show`, so string literals are also escaped
"Hello, \19990\30028”
ghci> "😀" -- Not only human scripts, but also emojis!
"\128512”
This status quo is unsatisfactory for a number of reasons:
1. Even though it's small, it somehow creates an unwelcoming atmosphere
for native speakers of languages whose scripts are not representable
in ASCII.
2. This is an actual annoyance during debugging localized software, or
strings with emojis.
3. Following 1, Haskell teachers are forced to use other languages
instead of the students' mother tongues, or relying on I/O functions
like putStrLn, creating a rather unnecessary burden.
4. Other string types, like Text [1], rely on this Show instance.
Moreover, `read` already can handle Unicode strings today, so relaxing
constraints on `show` doesn't affect `read . show == id`.
Proposal
========
It's proposed here to change the Show instance of String, to achieve the following output:
ghci> print "Hello, 世界”
"Hello, 世界”
ghci> print "Hello, мир”
"Hello, мир”
ghci> print "Hello, κόσμος”
"Hello, κόσμος”
ghci> "Hello, 世界”
“Hello, 世界”
ghci> "😀”
“😀"
More concretely, it means:
1. Modify a few guards in GHC.Show.showLitChar to not escape _readable_
Unicode characters out of the range of ASCII.
2. Provide a function showEscaped or newtype Escaped = Escaped String to
obtain the current escaping behavior, in case anyone wants the
current behavior back.
This proposal isn't about unescaping everything, but only readable
Unicode characters. u_iswprint (GHC.Unicode.isPrint) seems to do the
job, and indeed, there was a similar proposal before [2]. In summary,
the behavior is similar to what Python `repr` does.
Alternative Options
===================
1. Always use putStrLn.
This is viable today but unsatisfactory as it requires stdout. In
some cases, stdout is not accessible, e.g. Telegram or Discord bots.
2. Don't escape anything.
`show` itself refrains from escaping most of the characters, and let
ghci do the job instead.
3. Customize ghci instead.
ghci intercepts output strings and check if they can be converted
back to readable characters. This potentially allows for better
compatibility with a variety of strangely behaving terminals, and
finer-grained user control.
Tom Ellis proposed `-interactive-print`-based solutions in the
comment section.
4. A new language extension, e.g. ShowStringUnicode.
Proposed by Julian Ospald. When enabled, readable Unicode characters
are not escaped, and this is enabled by default by ghci. There are
concerns about how this would affect cross-module behavior.
Downsides
=========
This is definitely a breaking change, but the breakage, to our current
understanding, is limited.
First, use of `show` in production code is discouraged. Even if someone
really does that, the breakage only happens when one tries to send the
"serialized" data over wire:
Suppose Machine A `show`-ed a string and saved it into a UTF-8-encoded
file, and sends it to Machine B, which expects another encoding. This
would be surprising for those who are used to the old behavior.
Second, though the breakage is not likely to be catastrophic for correct
production code, test suites could be badly affected, as pointed out by
Oleg Grenrus and vdukhovni in the comment section. Some test suites
compare `show` results with expected results. vdukhovni further
commented that Haskell escapes are not universally supported by
non-Haskell tools, so the impact would be confined to Haskell.
Prior Art
=========
Python supports Unicode natively since 3. Python's approach is
intuitive and capable. Its `repr`, which is equivalent to Haskell's
`show`, automatically escapes unreadable characters, but leaves readable
characters unescaped. The criteria of "readable" can be found in
CPython's code [3]. If we were to realize this proposal, Python could
be a source of inspiration.
Unresolved Problems
===================
There are some currently unresolved (not discussed enough) issues.
+ Locales.
What if the specified locale does not support Unicode? Hécate
Moonlight pointed out PEP-538 [4] could be a reference.
+ Unicode versions.
Javran Cheng pointed out u_iswprint is generated from a Unicode table,
which is manually updated. This raises a concern that the definition
of "printable" characters could change from version to version.
+ Definition of "readable".
Unicode already defined "printability". It's good, but it is not
necessarily what we want here.
- Should we support RTL?
- Should we design a Haskell-specific definition of readability, to
avoid Unciode version silently introducing breakage?
(More?)
Some issues here perhaps require better answers to: What is our
expectation of Show? Where should it be used? Should we expect it to
break on every Unicode update?
[1] https://hackage.haskell.org/package/text-1.2.4.1/docs/src/Data.Text.Show.ht…
[2] https://mail.haskell.org/pipermail/haskell-cafe/2016-February/122874.html
[3] https://github.com/python/cpython/blob/bb3e0c240bc60fe08d332ff5955d54197f79…
[4] https://www.python.org/dev/peps/pep-0538/
10
25
This seems long overdue and aside from some redundant import warnings
likely low breakage risk
Thoughts?
8
13

Why base library changes are only discussed on GHC issue tracker and not on the libraries@ list?
by Andrew Lelechenko 07 Jul '21
by Andrew Lelechenko 07 Jul '21
07 Jul '21
To put it blunt, libraries mail list has a reputation of a place, where things are never got done. Using it for any meaningful discussion is an obsolete practice and is actually less inclusive than relevant issue trackers.
I suggest we use libraries mail list to announce (controversial) proposals, but rely on other, more suitable media to discuss them.
Best regards,
Andrew
> Date: Wed, 7 Jul 2021 18:11:41 +0300
> From: Oleg Grenrus <oleg.grenrus(a)iki.fi>
>
> For example
>
> - https://gitlab.haskell.org/ghc/ghc/-/issues/20044 ByteArray migration
> from primitive to base
> - https://gitlab.haskell.org/ghc/ghc/-/issues/20027 Changing Show String
> behavior
>
> Why they are discussed "in private", I thought libraries@ list is where
> such changes should be discussed.
>
> - Oleg
2
2

Why base library changes are only discussed on GHC issue tracker and not on the libraries@ list?
by Oleg Grenrus 07 Jul '21
by Oleg Grenrus 07 Jul '21
07 Jul '21
For example
- https://gitlab.haskell.org/ghc/ghc/-/issues/20044 ByteArray migration
from primitive to base
- https://gitlab.haskell.org/ghc/ghc/-/issues/20027 Changing Show String
behavior
Why they are discussed "in private", I thought libraries@ list is where
such changes should be discussed.
- Oleg
6
12

07 Jul '21
I'm proposing to add HasCallStack constraint for partial functions
in base package for functions in Data.List and Data.List.NonEmpty:
- head, tail, init, last, ...
- foldr1, foldl1, maximum, minimum, ...
- (!!)
---
The previous discussions started by Luo Chen can be found at
https://gitlab.haskell.org/ghc/ghc/-/issues/17040 (from August 2019)
and libraries list from June 2019
https://mail.haskell.org/pipermail/libraries/2019-June/029652.html
---
My motivation comes from seeing GHCJS failing with
"Prelude.!! negative index" exception and
cabal-install with head of empty list.
---
In #17040 issue Ben Gamari comments [1]
> In general, adding HasCallStack constraints on things like simple
> non-recursive functions like fromJust and head seems like a reasonable
> trade-off; these functions will essentially always inline and
> consequently the cost of the constraint will vanish.
Such patch is now available at
https://gitlab.haskell.org/ghc/ghc/-/merge_requests/5833
After accepting few changed test outputs, no further changes were needed.
---
Ben continues:
> Adding HasCallStack constraints on typeclass-overloaded methods isn't
> as clear. After all, it's quite likely that these functions will be
> reached by dynamic dispatch which will become more expensive with the
> additional callstack argument.
I agree. Foldable.foldr1 may not be partial, e.g. it isn't for NonEmpty.
More correct approach would be to add Foldable1 [2] class to base, and
in some distant future remove potentially partial members from Foldable.
Therefore my patch _does not change_ Foldable.
> nofib may not be a very good test for this patch as it doesn't contain
> many uses of the affected functions
Indeed. These functions are hardly ever in tight performance critical
code, thus I'm skeptical about they affecting a code written by
performance aware people. Re-implementing `head` in a loop where it
causes performance regression is trivial.
I have run `nofib` anyway. Results are at the end.
> I think it would be a good idea to start with a minimal patch adding
> constraints to the simple cases. We should then verify that the patch
> doesn't affect the Core produced by typical use-cases (perhaps even
> adding tests such that these don't regress). Once we know that the
> simple cases are safe we can move on to the harder cases.
Such patch is now available at
https://gitlab.haskell.org/ghc/ghc/-/merge_requests/5833
---
Let me go through other comments in previous discussions, to have fuller
overview.
---
Some people are in favour, e.g.
- Simon Jakobi,
https://mail.haskell.org/pipermail/libraries/2019-June/029655.html
- Hécate, https://gitlab.haskell.org/ghc/ghc/-/issues/17040#note_355561
---
Richard [3] thinks that e.g. a year prior addition of HasCallStack to
fromJust
[4] is not a right thing.
> I don't have any particular insight to how to do call stacks better --
> and I am swayed by the argument that we need call stacks even in
> production -- but I don't think HasCallStack is the way. That was
> always meant as just a small hack!
This patch is indeed more pragmatic than elegant, but takes us from
takes us from spending potentially many hours finding the source of a
crash to being pointed at the very line where it happens directly, which
is invaluable for production systems. I.e. let not (unknown) perfect be
an enemy of good solution.
---
In fromJust issue discussion [4] Ben comments
> However, I should emphasize to that we don't want to simply scatter
> HasCallStacks on every partial function. We should be thoughtful and
> deliberate (and probably consult with the CLC) when making changes
> like this.
This email is indeed a request for CLC to comment.
---
Edward Kmett comments was in favour [5]
> I’m starting to warm to the idea of putting HasCallStack constraints
> on the obviously partial combinators in base if we can demonstrate
> that the performance impact isn't bad in practice, and even really, to
> some extent if there is a somewhat middling impact on the performance
> of code that leans on these hard to debug combinators, so long as the
> performance of their more total siblings remains unaffected. The
> impact on the perceived debuggability of Haskell seems _likely_ to
> significantly outweigh the performance concerns.
The results (to follow) shows that impact isn't bad.
> Heck, off of the HEAD of cabal, which we’re encouraging folks to build
> to play with the ghc 8.8.1 alpha, just today we ran into an issue
> where the very build system we are using spat out an oh so informative
> “Prelude.foldr1: Empty list” when using a pkgconfig-depends stanza
> that didnt include any explicit bounds.
---
David Feuer is worried about performance of recursive functions [6]
> As I recall, the main things to watch out for, performance-wise, are
> recursive definitions. When we throw an error from a library function,
> we *typically* mean that the caller made a mistake. We don't want to
> build up the call stacks we'd need to debug the library function
> itself, unless we're actually doing so (in which case we can edit it
> in, of course).
In current base implementation all recursive functions (like foldr1, or
!!) have internal workers, so the callstack is not building-up.
Eric Seidel comments later [8]
> What I remember finding back then was that there was a small overhead
> for non-recursive functions like `head` but a substantial overhead for
> recursive functions.
> I'd suggest extra care around recursive functions ((!!) comes to
> mind). Perhaps rewrite them to use an inner recursive loop that does
> not extend the CallStack (this might produce nicer stacktraces
> anyway).
That is how (!!) is currently written in base. It has an inner worker.
(His benchmark link is not valid anymore, so I cannot tell what !!
variant he benchmarked).
---
Matthew Pickering comments [7] about -xc RTS flag.
> I find this thread a bit concerning. In my opinion the current best
> way to get call stacks on exceptions is with `-xc`. Adding runtime
> overhead to every user program is not acceptable.
-xc requires recompiling the program for profiling.
He continues with
> There is an argument that it would be good to disentangle `-xc` from
> `prof` but you would still have to compile `base` in this way which
> instruments these partial functions (as a user can not do it herself).
> I'm not too sure on the details but I don't think -xc uses any
> information from the profiling header so the fact it's connected with
> -prof seems more like convenience than necessity.
If that work is done, we can drop HasCallStack from partial functions,
until then again let not perfect be the enemy of good.
For example, me seeing GHCJS throwing on !!, of Edward cabal-install on
foldr1 doesn't help. Rebuilding cabal-install with profiling is viable
(but not for an average person who downloads it with ghcup),
rebuilding GHCJS for profiling is a skill few people have.
Already in his original proposal Luo Chen says:
> When we run a long running program, such as a web service, it is not
> easy to reproduce the issue, most of the time, you have no chance to
> recompile or restart your program to debug, all you can rely on is the
> printed logs, this makes -xc not as useful as HasCallStack.
---
People are worried about performance.
GHC itself uses some of the a affected functions.
There are 30 foldr1, some head and tail calls, and also !! in `compiler/`
The performance metrics in MR do not regress.
GHC is not slowed down.
I also run `nofib` using `--cachegrind -s Norm -j 16`, geometric means:
- allocations: -0.12%
- instructions: +0.05%
- LLC cache misses: +0.58%
- L1 cache misses: +0.03%
And also using `--perf` (without `-j`):
- perf instructions: +0.02%
- perf cycles: -0.80%
I don't know if this in bounds of "small changes to GHC".
For me this looks acceptable.
---
There is also off-thread blog post from 2018.
https://neilmitchell.blogspot.com/2018/03/safe-library-with-better-stack-tr…
referencing e.g.
https://hackage.haskell.org/package/extra-1.7.9/docs/Data-List-Extra.html#v…
and https://hackage.haskell.org/package/safe
safe library has plenty of reverse dependencies:
https://packdeps.haskellers.com/reverse/safe, and extra is used by shake.
---
In summary:
- fromJust has HasCallStack, head doesn't. Let us fix this.
- Ben asked for patch so we can test performance, now such patch exists,
and it passes GHC CI.
- GHC itself uses partial functions, its performance metrics don't
regress
- -prof and +RTS -xc is an option, but it needs special build of an
executable.
- This is ultimately for CLC to decide, so chessai, emilypi please tell
your opinion.
Discussion period one month, until 2021-06-30 (end of June this year).
Oleg
[1]: https://gitlab.haskell.org/ghc/ghc/-/issues/17040#note_231634
[2]: https://mail.haskell.org/pipermail/libraries/2019-November/030059.html
https://gitlab.haskell.org/ghc/ghc/-/issues/13573
[3]: https://gitlab.haskell.org/ghc/ghc/-/issues/17040#note_218035
[4]: https://gitlab.haskell.org/ghc/ghc/-/issues/15559
[5]: https://mail.haskell.org/pipermail/libraries/2019-June/029665.html
[6]: https://mail.haskell.org/pipermail/libraries/2019-June/029666.html
[7]: https://mail.haskell.org/pipermail/libraries/2019-June/029672.html
[8]: https://mail.haskell.org/pipermail/libraries/2019-June/029667.html
---
# bytes allocated
+-------------------------------++--+-------------+------------------+
| || | master/ | callstack/ (rel) |
+===============================++==+=============+==================+
| imaginary/bernouilli || | 2.823e9 | 0.00% |
| imaginary/digits-of-e1 || | 1.069e9 | 0.00% |
| imaginary/digits-of-e2 || | 2.152e9 | 0.00% |
| imaginary/exp3_8 || | 5.888e9 | 0.00% |
| imaginary/gen_regexps || | 9.104e8 | 0.00% |
| imaginary/integrate || | 3.768e9 | 0.00% |
| imaginary/kahan || | 49088.000 | 0.00% |
| imaginary/paraffins || | 3.829e9 | 0.00% |
| imaginary/primes || | 2.928e9 | 0.00% |
| imaginary/queens || | 6.709e8 | 0.00% |
| imaginary/rfib || | 139952.000 | 0.00% |
| imaginary/tak || | 97344.000 | 0.00% |
| imaginary/wheel-sieve1 || | 1.344e8 | 0.00% |
| imaginary/wheel-sieve2 || | 2.430e9 | 0.00% |
| imaginary/x2n1 || | 2.561e8 | 0.00% |
| parallel/blackscholes || | 1.980e9 | 0.00% |
| parallel/coins || | 5.252e9 | 0.00% |
| parallel/gray || | 2.010e9 | +0.00% |
| parallel/mandel || | 8.524e9 | 0.00% |
| parallel/matmult || | 8.974e7 | 0.00% |
| parallel/minimax || | 2.212e10 | 0.00% |
| parallel/nbody || | 1498304.000 | 0.00% |
| parallel/parfib || | 3.651e8 | 0.00% |
| parallel/partree || | 3.290e9 | 0.00% |
| parallel/prsa || | 2.097e9 | 0.00% |
| parallel/queens || | 6.846e8 | 0.00% |
| parallel/ray || | 1.357e10 | 0.00% |
| parallel/sumeuler || | 1785016.000 | 0.00% |
| parallel/transclos || | 8.976e9 | 0.00% |
| real/anna || | 2.022e9 | +0.01% |
| real/ben-raytrace || | 3.418e10 | 0.00% |
| real/bspt || | 3.747e9 | 0.00% |
| real/cacheprof || | 2.689e9 | 0.00% |
| real/compress || | 2.807e9 | 0.00% |
| real/compress2 || | 3.436e9 | 0.00% |
| real/eff/CS || | 1.601e8 | 0.00% |
| real/eff/CSD || | 1.600e9 | 0.00% |
| real/eff/FS || | 1.760e9 | 0.00% |
| real/eff/S || | 2.401e8 | 0.00% |
| real/eff/VS || | 4.831e8 | 0.00% |
| real/eff/VSD || | 50736.000 | 0.00% |
| real/eff/VSM || | 4.001e8 | 0.00% |
| real/fem || | 4.947e9 | -2.81% |
| real/fluid || | 2.169e9 | -0.00% |
| real/fulsom || | 1.961e9 | 0.00% |
| real/gamteb || | 4.447e9 | 0.00% |
| real/gg || | 2.654e9 | 0.00% |
| real/grep || | 4.623e9 | 0.00% |
| real/hidden || | 5.100e9 | 0.00% |
| real/hpg || | 3.160e9 | -0.10% |
| real/infer || | 1.731e9 | 0.00% |
| real/lift || | 2.761e9 | 0.00% |
| real/linear || | 5.412e9 | -0.07% |
| real/maillist || | 3.331e9 | 0.00% |
| real/mkhprog || | 9748392.000 | 0.00% |
| real/parser || | 2.666e9 | 0.00% |
| real/pic || | 1.469e9 | 0.00% |
| real/prolog || | 2.922e9 | -0.02% |
| real/reptile || | 5.121e9 | 0.00% |
| real/rsa || | 8.414e8 | 0.00% |
| real/scs || | 4.044e9 | 0.00% |
| real/smallpt || | 2.874e9 | 0.00% |
| real/symalg || | 3.195e8 | 0.00% |
| real/veritas || | 4.172e9 | 0.00% |
| shootout/binary-trees || | 4.300e9 | 0.00% |
| shootout/fannkuch-redux || | 69144.000 | -0.03% |
| shootout/fasta || | 1.718e9 | +0.00% |
| shootout/k-nucleotide || | 7.081e7 | +0.00% |
| shootout/n-body || | 130608.000 | 0.00% |
| shootout/pidigits || | 1.027e10 | 0.00% |
| shootout/reverse-complement || | 59768.000 | 0.00% |
| shootout/spectral-norm || | 178112.000 | 0.00% |
| smp/callback001 || | 1.114e9 | 0.00% |
| smp/callback002 || | 3.264e9 | 0.00% |
| smp/chan || | 1.240e9 | 0.00% |
| smp/sieve || | 1.410e9 | 0.00% |
| smp/threads001 || | 1.072e10 | 0.00% |
| smp/threads003 || | 3.051e8 | -0.01% |
| smp/threads006 || | 2.242e8 | 0.00% |
| smp/threads007 || | 1.778e9 | -0.00% |
| spectral/ansi || | 6.713e9 | 0.00% |
| spectral/atom || | 3.580e9 | 0.00% |
| spectral/awards || | 4.759e9 | 0.00% |
| spectral/banner || | 6.156e9 | 0.00% |
| spectral/boyer || | 4.665e9 | 0.00% |
| spectral/boyer2 || | 1.153e9 | 0.00% |
| spectral/calendar || | 7.102e9 | 0.00% |
| spectral/cichelli || | 1.969e9 | 0.00% |
| spectral/circsim || | 4.850e9 | 0.00% |
| spectral/clausify || | 2.095e9 | 0.00% |
| spectral/constraints || | 4.872e9 | 0.00% |
| spectral/cryptarithm1 || | 5.981e9 | 0.00% |
| spectral/cryptarithm2 || | 3.663e9 | 0.00% |
| spectral/cse || | 3.802e9 | 0.00% |
| spectral/dom-lt || | 3.890e9 | 0.00% |
| spectral/eliza || | 4.102e9 | +0.00% |
| spectral/exact-reals || | 9.584e8 | -0.00% |
| spectral/expert || | 2.090e9 | 0.00% |
| spectral/fft2 || | 1.431e9 | -0.22% |
| spectral/fibheaps || | 4.737e9 | 0.00% |
| spectral/fish || | 6.193e9 | 0.00% |
| spectral/gcd || | 2.069e9 | 0.00% |
| spectral/hartel/comp_lab_zift || | 4.740e9 | 0.00% |
| spectral/hartel/event || | 3.635e9 | -12.13% |
| spectral/hartel/fft || | 1.611e9 | 0.00% |
| spectral/hartel/genfft || | 8.020e9 | 0.00% |
| spectral/hartel/ida || | 3.515e9 | 0.00% |
| spectral/hartel/listcompr || | 6.157e9 | 0.00% |
| spectral/hartel/listcopy || | 6.758e9 | 0.00% |
| spectral/hartel/nucleic2 || | 2.965e9 | 0.00% |
| spectral/hartel/parstof || | 1.368e9 | 0.00% |
| spectral/hartel/sched || | 3.675e9 | 0.00% |
| spectral/hartel/solid || | 3.509e9 | 0.00% |
| spectral/hartel/transform || | 3.959e9 | 0.00% |
| spectral/hartel/typecheck || | 2.570e9 | 0.00% |
| spectral/hartel/wang || | 4.735e9 | 0.00% |
| spectral/hartel/wave4main || | 1.147e9 | 0.00% |
| spectral/integer || | 3.260e9 | 0.00% |
| spectral/knights || | 1.094e9 | 0.00% |
| spectral/lambda || | 2.950e9 | 0.00% |
| spectral/last-piece || | 6.852e8 | 0.00% |
| spectral/lcss || | 6.565e9 | 0.00% |
| spectral/life || | 6.799e9 | 0.00% |
| spectral/mandel || | 1.972e9 | 0.00% |
| spectral/mandel2 || | 5.231e8 | 0.00% |
| spectral/mate || | 4.598e9 | 0.00% |
| spectral/minimax || | 2.683e9 | 0.00% |
| spectral/multiplier || | 2.850e9 | 0.00% |
| spectral/para || | 4.056e9 | 0.00% |
| spectral/power || | 1.428e9 | 0.00% |
| spectral/pretty || | 136880.000 | -0.11% |
| spectral/primetest || | 8.455e8 | 0.00% |
| spectral/puzzle || | 1.809e9 | 0.00% |
| spectral/rewrite || | 1.694e9 | 0.00% |
| spectral/scc || | 58280.000 | 0.00% |
| spectral/simple || | 2.316e9 | 0.00% |
| spectral/sorting || | 3.078e9 | 0.00% |
| spectral/sphere || | 2.298e9 | 0.00% |
| spectral/treejoin || | 2.796e9 | 0.00% |
+===============================++==+=============+==================+
| geom mean || | -0.12% | |
+-------------------------------++--+-------------+------------------+
# instructions
+-------------------------------++--+------------+------------------+
| || | master/ | callstack/ (rel) |
+===============================++==+============+==================+
| imaginary/bernouilli || | 7.057e9 | +0.00% |
| imaginary/digits-of-e1 || | 5.549e9 | -0.00% |
| imaginary/digits-of-e2 || | 5.555e9 | -0.01% |
| imaginary/exp3_8 || | 8.779e9 | +0.03% |
| imaginary/gen_regexps || | 8.650e9 | -0.00% |
| imaginary/integrate || | 6.276e9 | +0.00% |
| imaginary/kahan || | 6.707e9 | +0.00% |
| imaginary/paraffins || | 8.089e9 | -0.00% |
| imaginary/primes || | 8.278e9 | +0.01% |
| imaginary/queens || | 1.010e10 | -0.00% |
| imaginary/rfib || | 5.299e9 | +0.00% |
| imaginary/tak || | 5.867e9 | +0.00% |
| imaginary/wheel-sieve1 || | 6.615e9 | +0.04% |
| imaginary/wheel-sieve2 || | 6.286e9 | +0.02% |
| imaginary/x2n1 || | 7.452e9 | +0.00% |
| parallel/blackscholes || | 8.022e9 | +0.00% |
| parallel/coins || | 1.149e10 | +0.00% |
| parallel/gray || | 6.141e9 | +0.14% |
| parallel/mandel || | 3.288e10 | -0.01% |
| parallel/matmult || | 1.115e10 | -0.00% |
| parallel/minimax || | 3.863e10 | -0.08% |
| parallel/nbody || | 7.939e8 | +0.00% |
| parallel/parfib || | 2.231e10 | +0.00% |
| parallel/partree || | 7.347e9 | +0.01% |
| parallel/prsa || | 1.811e10 | -0.00% |
| parallel/queens || | 1.037e10 | +0.00% |
| parallel/ray || | 1.299e10 | +0.00% |
| parallel/sumeuler || | 3.483e9 | +0.00% |
| parallel/transclos || | 1.982e10 | +0.00% |
| real/anna || | 5.343e9 | +0.05% |
| real/ben-raytrace || | 1.215e11 | +0.00% |
| real/bspt || | 9.226e9 | -0.00% |
| real/cacheprof || | 6.763e9 | +0.02% |
| real/compress || | 5.820e9 | -0.00% |
| real/compress2 || | 4.569e9 | +0.00% |
| real/eff/CS || | 7.758e8 | +0.00% |
| real/eff/CSD || | 3.745e9 | +0.00% |
| real/eff/FS || | 2.799e9 | +0.00% |
| real/eff/S || | 4.334e9 | +0.00% |
| real/eff/VS || | 2.221e9 | +0.01% |
| real/eff/VSD || | 8.075e7 | +0.00% |
| real/eff/VSM || | 9.635e8 | +0.00% |
| real/fem || | 6.649e9 | -0.64% |
| real/fluid || | 3.904e9 | -0.00% |
| real/fulsom || | 2.490e9 | +0.00% |
| real/gamteb || | 1.013e10 | +0.01% |
| real/gg || | 7.253e9 | +0.01% |
| real/grep || | 7.546e9 | +0.00% |
| real/hidden || | 7.198e9 | +1.64% |
| real/hpg || | 4.966e9 | +0.88% |
| real/infer || | 8.318e9 | +0.00% |
| real/lift || | 4.430e9 | -0.00% |
| real/linear || | 8.436e9 | +1.97% |
| real/maillist || | 1.974e9 | +0.05% |
| real/mkhprog || | 2.249e7 | +0.00% |
| real/parser || | 5.178e9 | -0.00% |
| real/pic || | 3.268e9 | -0.00% |
| real/prolog || | 5.742e9 | +0.01% |
| real/reptile || | 6.046e9 | +0.00% |
| real/rsa || | 7.191e9 | +0.00% |
| real/scs || | 6.174e9 | +0.00% |
| real/smallpt || | 1.128e10 | +0.00% |
| real/symalg || | 8.230e9 | +0.00% |
| real/veritas || | 4.832e9 | -0.01% |
| shootout/binary-trees || | 1.073e10 | +0.01% |
| shootout/fannkuch-redux || | 1.909e10 | -0.00% |
| shootout/fasta || | 4.189e9 | +0.00% |
| shootout/k-nucleotide || | 4.219e9 | +0.01% |
| shootout/n-body || | 3.721e9 | +0.00% |
| shootout/pidigits || | 8.084e9 | +0.00% |
| shootout/reverse-complement || | 781364.000 | +0.51% |
| shootout/spectral-norm || | 4.252e9 | +0.00% |
| smp/callback001 || | 1.573e9 | +0.01% |
| smp/callback002 || | 2.621e9 | +0.00% |
| smp/chan || | 8.718e9 | +2.56% |
| smp/sieve || | 5.538e9 | -0.87% |
| smp/threads001 || | 5.139e9 | -0.00% |
| smp/threads003 || | 2.903e9 | -0.05% |
| smp/threads006 || | 7.402e8 | +0.01% |
| smp/threads007 || | 4.090e9 | -0.00% |
| spectral/ansi || | 5.961e9 | -0.00% |
| spectral/atom || | 5.861e9 | +0.01% |
| spectral/awards || | 8.744e9 | +0.00% |
| spectral/banner || | 8.824e9 | +0.23% |
| spectral/boyer || | 7.657e9 | -0.00% |
| spectral/boyer2 || | 8.881e9 | -0.00% |
| spectral/calendar || | 7.546e9 | -0.00% |
| spectral/cichelli || | 8.625e9 | +0.01% |
| spectral/circsim || | 6.850e9 | +0.00% |
| spectral/clausify || | 6.223e9 | -0.00% |
| spectral/constraints || | 8.314e9 | +0.14% |
| spectral/cryptarithm1 || | 7.787e9 | -0.00% |
| spectral/cryptarithm2 || | 6.761e9 | +0.00% |
| spectral/cse || | 6.358e9 | -0.00% |
| spectral/dom-lt || | 7.774e9 | -0.00% |
| spectral/eliza || | 8.273e9 | +0.00% |
| spectral/exact-reals || | 5.597e9 | +0.01% |
| spectral/expert || | 5.087e9 | +0.04% |
| spectral/fft2 || | 8.831e9 | +0.31% |
| spectral/fibheaps || | 8.011e9 | -0.00% |
| spectral/fish || | 7.314e9 | -0.00% |
| spectral/gcd || | 6.386e9 | -0.00% |
| spectral/hartel/comp_lab_zift || | 8.717e9 | -0.00% |
| spectral/hartel/event || | 9.071e9 | -2.06% |
| spectral/hartel/fft || | 3.239e9 | +0.00% |
| spectral/hartel/genfft || | 1.020e10 | +0.00% |
| spectral/hartel/ida || | 5.413e9 | -0.30% |
| spectral/hartel/listcompr || | 6.142e9 | +0.02% |
| spectral/hartel/listcopy || | 6.757e9 | +0.02% |
| spectral/hartel/nucleic2 || | 4.402e9 | +0.00% |
| spectral/hartel/parstof || | 5.555e9 | -0.00% |
| spectral/hartel/sched || | 5.800e9 | +0.00% |
| spectral/hartel/solid || | 5.845e9 | +0.24% |
| spectral/hartel/transform || | 5.709e9 | -0.00% |
| spectral/hartel/typecheck || | 5.841e9 | +0.00% |
| spectral/hartel/wang || | 8.731e9 | +0.12% |
| spectral/hartel/wave4main || | 6.024e9 | -0.00% |
| spectral/integer || | 7.068e9 | -0.00% |
| spectral/knights || | 8.294e9 | -0.00% |
| spectral/lambda || | 8.081e9 | +0.00% |
| spectral/last-piece || | 1.878e9 | +0.00% |
| spectral/lcss || | 8.761e9 | -0.00% |
| spectral/life || | 9.136e9 | -0.00% |
| spectral/mandel || | 7.037e9 | +0.00% |
| spectral/mandel2 || | 3.957e9 | +0.00% |
| spectral/mate || | 7.565e9 | +0.01% |
| spectral/minimax || | 8.649e9 | -0.00% |
| spectral/multiplier || | 6.096e9 | +0.00% |
| spectral/para || | 6.561e9 | +0.00% |
| spectral/power || | 6.749e9 | -0.00% |
| spectral/pretty || | 851224.000 | +0.17% |
| spectral/primetest || | 7.391e9 | -0.00% |
| spectral/puzzle || | 6.401e9 | +0.00% |
| spectral/rewrite || | 5.553e9 | +0.67% |
| spectral/scc || | 774059.000 | +0.49% |
| spectral/simple || | 1.214e10 | +0.01% |
| spectral/sorting || | 9.074e9 | -0.00% |
| spectral/sphere || | 5.371e9 | -0.00% |
| spectral/treejoin || | 9.768e9 | +0.00% |
+===============================++==+============+==================+
| geom mean || | +0.05% | |
+-------------------------------++--+------------+------------------+
# LLC cache misses
+-------------------------------++--+-------------+------------------+
| || | master/ | callstack/ (rel) |
+===============================++==+=============+==================+
| imaginary/bernouilli || | 4964.000 | +1.37% |
| imaginary/digits-of-e1 || | 4863.000 | -0.35% |
| imaginary/digits-of-e2 || | 4958.000 | +1.63% |
| imaginary/exp3_8 || | 4513.000 | +0.42% |
| imaginary/gen_regexps || | 4535.000 | +0.09% |
| imaginary/integrate || | 4733.000 | +1.08% |
| imaginary/kahan || | 4447.000 | -0.13% |
| imaginary/paraffins || | 4826.000 | -0.08% |
| imaginary/primes || | 4876.000 | +0.94% |
| imaginary/queens || | 4541.000 | -0.07% |
| imaginary/rfib || | 4485.000 | -0.13% |
| imaginary/tak || | 4461.000 | +0.25% |
| imaginary/wheel-sieve1 || | 4865.000 | +1.29% |
| imaginary/wheel-sieve2 || | 4893.000 | +1.25% |
| imaginary/x2n1 || | 4630.000 | +0.22% |
| parallel/blackscholes || | 12862.000 | +0.30% |
| parallel/coins || | 6455583.000 | +0.00% |
| parallel/gray || | 6372.000 | +1.77% |
| parallel/mandel || | 852468.000 | -0.02% |
| parallel/matmult || | 4615.000 | -0.30% |
| parallel/minimax || | 4617.000 | +0.84% |
| parallel/nbody || | 4455.000 | -0.04% |
| parallel/parfib || | 4528.000 | +0.22% |
| parallel/partree || | 4627.000 | +0.43% |
| parallel/prsa || | 4619.000 | +0.54% |
| parallel/queens || | 4528.000 | +1.37% |
| parallel/ray || | 4626.000 | +0.35% |
| parallel/sumeuler || | 4446.000 | +0.13% |
| parallel/transclos || | 4741.000 | -0.17% |
| real/anna || | 6443.000 | +5.34% |
| real/ben-raytrace || | 6819.000 | -0.13% |
| real/bspt || | 5195.000 | -0.21% |
| real/cacheprof || | 6734.000 | +1.62% |
| real/compress || | 4914.000 | +0.53% |
| real/compress2 || | 4783.000 | -0.25% |
| real/eff/CS || | 4439.000 | +0.38% |
| real/eff/CSD || | 4446.000 | 0.00% |
| real/eff/FS || | 4451.000 | -0.04% |
| real/eff/S || | 5619842.000 | -0.00% |
| real/eff/VS || | 1254362.000 | +0.00% |
| real/eff/VSD || | 4403.000 | -0.43% |
| real/eff/VSM || | 4445.000 | -0.11% |
| real/fem || | 4967.000 | +2.07% |
| real/fluid || | 6117.000 | +0.85% |
| real/fulsom || | 5060.000 | -0.10% |
| real/gamteb || | 5615.000 | +0.64% |
| real/gg || | 5242.000 | +0.88% |
| real/grep || | 4866.000 | +0.62% |
| real/hidden || | 5576.000 | +2.06% |
| real/hpg || | 5614.000 | +2.92% |
| real/infer || | 4833.000 | -0.14% |
| real/lift || | 4809.000 | +1.48% |
| real/linear || | 5368.000 | +4.53% |
| real/maillist || | 12942.000 | +0.32% |
| real/mkhprog || | 4483.000 | +0.20% |
| real/parser || | 5309.000 | +1.64% |
| real/pic || | 4937.000 | +0.81% |
| real/prolog || | 4843.000 | +1.03% |
| real/reptile || | 5548.000 | -0.43% |
| real/rsa || | 4667.000 | +0.26% |
| real/scs || | 5667.000 | +1.48% |
| real/smallpt || | 5836.000 | +1.29% |
| real/symalg || | 5422.000 | +0.30% |
| real/veritas || | 6984.000 | +2.61% |
| shootout/binary-trees || | 5079.000 | +0.73% |
| shootout/fannkuch-redux || | 4478.000 | -0.51% |
| shootout/fasta || | 4625.000 | -0.13% |
| shootout/k-nucleotide || | 1161663.000 | -2.58% |
| shootout/n-body || | 4512.000 | +0.04% |
| shootout/pidigits || | 4651.000 | -0.39% |
| shootout/reverse-complement || | 4416.000 | 0.00% |
| shootout/spectral-norm || | 4477.000 | +0.25% |
| smp/callback001 || | 488453.000 | -0.01% |
| smp/callback002 || | 4513.000 | -0.11% |
| smp/chan || | 1.110e7 | +7.03% |
| smp/sieve || | 4555.000 | +0.72% |
| smp/threads001 || | 4481.000 | +0.49% |
| smp/threads003 || | 83898.000 | -1.63% |
| smp/threads006 || | 1804659.000 | +0.49% |
| smp/threads007 || | 2427701.000 | -0.24% |
| spectral/ansi || | 4759.000 | +0.27% |
| spectral/atom || | 4691.000 | +0.62% |
| spectral/awards || | 4717.000 | +1.14% |
| spectral/banner || | 5056.000 | +1.21% |
| spectral/boyer || | 5045.000 | +0.06% |
| spectral/boyer2 || | 4832.000 | -0.04% |
| spectral/calendar || | 4622.000 | +0.74% |
| spectral/cichelli || | 4728.000 | +1.67% |
| spectral/circsim || | 40269.000 | -1.55% |
| spectral/clausify || | 4835.000 | -0.17% |
| spectral/constraints || | 4871.000 | +1.44% |
| spectral/cryptarithm1 || | 4562.000 | +0.18% |
| spectral/cryptarithm2 || | 4600.000 | +0.07% |
| spectral/cse || | 4534.000 | +0.33% |
| spectral/dom-lt || | 5179.000 | +0.10% |
| spectral/eliza || | 4968.000 | +0.34% |
| spectral/exact-reals || | 4840.000 | +1.34% |
| spectral/expert || | 4770.000 | +2.81% |
| spectral/fft2 || | 5296.000 | +1.91% |
| spectral/fibheaps || | 4858.000 | +0.02% |
| spectral/fish || | 4687.000 | +0.04% |
| spectral/gcd || | 4575.000 | +0.22% |
| spectral/hartel/comp_lab_zift || | 4960.000 | +0.58% |
| spectral/hartel/event || | 4875.000 | +0.96% |
| spectral/hartel/fft || | 5121.000 | +0.70% |
| spectral/hartel/genfft || | 4875.000 | +0.04% |
| spectral/hartel/ida || | 4877.000 | +0.84% |
| spectral/hartel/listcompr || | 4651.000 | +1.76% |
| spectral/hartel/listcopy || | 4649.000 | +1.96% |
| spectral/hartel/nucleic2 || | 5998.000 | +0.68% |
| spectral/hartel/parstof || | 5583.000 | -0.05% |
| spectral/hartel/sched || | 4856.000 | -0.23% |
| spectral/hartel/solid || | 5282.000 | +1.21% |
| spectral/hartel/transform || | 4875.000 | +1.56% |
| spectral/hartel/typecheck || | 4724.000 | +0.95% |
| spectral/hartel/wang || | 4993.000 | +2.38% |
| spectral/hartel/wave4main || | 4877.000 | -0.04% |
| spectral/integer || | 4619.000 | -0.13% |
| spectral/knights || | 4694.000 | +0.58% |
| spectral/lambda || | 4984.000 | +0.66% |
| spectral/last-piece || | 4869.000 | -0.21% |
| spectral/lcss || | 4876.000 | +0.04% |
| spectral/life || | 4884.000 | +1.29% |
| spectral/mandel || | 4900.000 | +0.16% |
| spectral/mandel2 || | 4479.000 | -0.13% |
| spectral/mate || | 5086.000 | +1.83% |
| spectral/minimax || | 4605.000 | -0.04% |
| spectral/multiplier || | 4672.000 | +0.98% |
| spectral/para || | 4935.000 | +0.83% |
| spectral/power || | 4918.000 | +0.18% |
| spectral/pretty || | 4432.000 | +0.14% |
| spectral/primetest || | 5021.000 | -0.04% |
| spectral/puzzle || | 4603.000 | +0.04% |
| spectral/rewrite || | 4618.000 | +0.97% |
| spectral/scc || | 4415.000 | +0.34% |
| spectral/simple || | 2413361.000 | -1.18% |
| spectral/sorting || | 5357.000 | -1.55% |
| spectral/sphere || | 5717.000 | +0.84% |
| spectral/treejoin || | 5130.000 | +0.02% |
+===============================++==+=============+==================+
| geom mean || | +0.58% | |
+-------------------------------++--+-------------+------------------+
# L1 cache misses
+-------------------------------++--+-------------+------------------+
| || | master/ | callstack/ (rel) |
+===============================++==+=============+==================+
| imaginary/bernouilli || | 4.235e7 | +0.13% |
| imaginary/digits-of-e1 || | 3708507.000 | -0.06% |
| imaginary/digits-of-e2 || | 2.913e7 | -0.16% |
| imaginary/exp3_8 || | 1.881e8 | -0.07% |
| imaginary/gen_regexps || | 2.915e7 | -0.05% |
| imaginary/integrate || | 1341520.000 | -4.99% |
| imaginary/kahan || | 7577.000 | +0.15% |
| imaginary/paraffins || | 5.994e7 | -0.02% |
| imaginary/primes || | 1.165e8 | -0.01% |
| imaginary/queens || | 315321.000 | -0.94% |
| imaginary/rfib || | 7833.000 | -0.46% |
| imaginary/tak || | 7688.000 | +0.03% |
| imaginary/wheel-sieve1 || | 7508229.000 | +0.51% |
| imaginary/wheel-sieve2 || | 4.338e7 | -0.02% |
| imaginary/x2n1 || | 129793.000 | +0.50% |
| parallel/blackscholes || | 1.550e7 | -0.16% |
| parallel/coins || | 3.952e7 | +0.26% |
| parallel/gray || | 1.736e7 | +1.38% |
| parallel/mandel || | 1.356e7 | +0.20% |
| parallel/matmult || | 5.267e8 | -0.01% |
| parallel/minimax || | 1.140e8 | -0.14% |
| parallel/nbody || | 1.248e7 | -0.02% |
| parallel/parfib || | 252463.000 | +6.49% |
| parallel/partree || | 5.642e7 | +0.08% |
| parallel/prsa || | 5700667.000 | +0.27% |
| parallel/queens || | 3129546.000 | +0.19% |
| parallel/ray || | 1.260e7 | +4.27% |
| parallel/sumeuler || | 35221.000 | -0.07% |
| parallel/transclos || | 1.863e7 | +0.17% |
| real/anna || | 3.737e7 | +0.10% |
| real/ben-raytrace || | 6.695e7 | +0.59% |
| real/bspt || | 1.492e8 | +0.01% |
| real/cacheprof || | 5.661e7 | -0.24% |
| real/compress || | 3.247e7 | -2.71% |
| real/compress2 || | 2.717e7 | +0.13% |
| real/eff/CS || | 54141.000 | -0.28% |
| real/eff/CSD || | 532877.000 | -0.07% |
| real/eff/FS || | 512883.000 | +0.18% |
| real/eff/S || | 1.412e7 | -0.07% |
| real/eff/VS || | 6730192.000 | -0.42% |
| real/eff/VSD || | 7449.000 | -0.30% |
| real/eff/VSM || | 121912.000 | -0.22% |
| real/fem || | 3.841e7 | +6.86% |
| real/fluid || | 1.579e7 | +0.91% |
| real/fulsom || | 1.036e7 | +0.03% |
| real/gamteb || | 3.473e7 | -0.02% |
| real/gg || | 7.439e7 | +0.09% |
| real/grep || | 7.940e7 | +0.08% |
| real/hidden || | 1.074e7 | +0.20% |
| real/hpg || | 1.757e7 | +0.32% |
| real/infer || | 2.006e8 | -0.02% |
| real/lift || | 2.741e7 | +0.20% |
| real/linear || | 8.899e7 | +1.27% |
| real/maillist || | 9646364.000 | -0.06% |
| real/mkhprog || | 11950.000 | +3.72% |
| real/parser || | 1.269e7 | +0.92% |
| real/pic || | 4.450e7 | -0.24% |
| real/prolog || | 2.973e7 | -0.34% |
| real/reptile || | 1.945e7 | -0.07% |
| real/rsa || | 1310283.000 | -0.18% |
| real/scs || | 1.916e7 | +0.06% |
| real/smallpt || | 7088127.000 | +0.47% |
| real/symalg || | 5981494.000 | -0.11% |
| real/veritas || | 1.860e7 | -1.22% |
| shootout/binary-trees || | 3.661e7 | +0.01% |
| shootout/fannkuch-redux || | 7741.000 | -0.62% |
| shootout/fasta || | 5.215e7 | +0.01% |
| shootout/k-nucleotide || | 1.247e7 | +0.01% |
| shootout/n-body || | 8025.000 | +0.04% |
| shootout/pidigits || | 2.316e8 | +0.02% |
| shootout/reverse-complement || | 7627.000 | -0.20% |
| shootout/spectral-norm || | 21764.000 | +0.23% |
| smp/callback001 || | 5824201.000 | +0.07% |
| smp/callback002 || | 8288204.000 | -0.09% |
| smp/chan || | 2.846e7 | +2.62% |
| smp/sieve || | 5.400e7 | -1.10% |
| smp/threads001 || | 2.312e7 | +0.45% |
| smp/threads003 || | 4.773e7 | -0.22% |
| smp/threads006 || | 9331792.000 | +0.02% |
| smp/threads007 || | 2.721e7 | +0.36% |
| spectral/ansi || | 6.940e7 | -0.01% |
| spectral/atom || | 1.248e8 | +0.01% |
| spectral/awards || | 7810137.000 | -1.82% |
| spectral/banner || | 3.727e7 | +2.57% |
| spectral/boyer || | 2.284e7 | -0.19% |
| spectral/boyer2 || | 3.926e7 | -0.63% |
| spectral/calendar || | 7366268.000 | -0.91% |
| spectral/cichelli || | 1.797e7 | +0.02% |
| spectral/circsim || | 9.138e7 | +0.07% |
| spectral/clausify || | 6134801.000 | -0.11% |
| spectral/constraints || | 2.950e7 | +0.38% |
| spectral/cryptarithm1 || | 3139494.000 | +0.08% |
| spectral/cryptarithm2 || | 3481535.000 | +0.35% |
| spectral/cse || | 4798864.000 | -7.01% |
| spectral/dom-lt || | 2.556e7 | -0.11% |
| spectral/eliza || | 1.921e7 | +1.14% |
| spectral/exact-reals || | 2391927.000 | +1.24% |
| spectral/expert || | 2.311e7 | -0.08% |
| spectral/fft2 || | 1.917e8 | +0.81% |
| spectral/fibheaps || | 5.236e7 | -0.06% |
| spectral/fish || | 8017906.000 | +0.13% |
| spectral/gcd || | 1652038.000 | +0.07% |
| spectral/hartel/comp_lab_zift || | 6.167e7 | -0.11% |
| spectral/hartel/event || | 4.857e7 | -2.47% |
| spectral/hartel/fft || | 3.723e7 | -0.04% |
| spectral/hartel/genfft || | 2.201e7 | +1.31% |
| spectral/hartel/ida || | 1.316e7 | +0.16% |
| spectral/hartel/listcompr || | 9143834.000 | +1.54% |
| spectral/hartel/listcopy || | 1.018e7 | +2.27% |
| spectral/hartel/nucleic2 || | 1.035e7 | -2.83% |
| spectral/hartel/parstof || | 2.290e7 | -2.36% |
| spectral/hartel/sched || | 6090930.000 | -0.15% |
| spectral/hartel/solid || | 3.408e7 | +0.00% |
| spectral/hartel/transform || | 2.255e7 | +0.25% |
| spectral/hartel/typecheck || | 1.447e7 | -1.37% |
| spectral/hartel/wang || | 1.089e8 | +0.19% |
| spectral/hartel/wave4main || | 8.229e7 | +0.29% |
| spectral/integer || | 1101168.000 | -0.06% |
| spectral/knights || | 3.424e7 | +0.92% |
| spectral/lambda || | 6.667e7 | +0.14% |
| spectral/last-piece || | 3620219.000 | -0.43% |
| spectral/lcss || | 7.252e7 | -0.26% |
| spectral/life || | 1.231e8 | -0.11% |
| spectral/mandel || | 741678.000 | +0.09% |
| spectral/mandel2 || | 311375.000 | +0.79% |
| spectral/mate || | 4858523.000 | -1.23% |
| spectral/minimax || | 1172869.000 | +0.51% |
| spectral/multiplier || | 1.060e8 | +0.03% |
| spectral/para || | 5.089e7 | +0.15% |
| spectral/power || | 4.488e7 | -0.00% |
| spectral/pretty || | 7649.000 | +0.38% |
| spectral/primetest || | 500918.000 | +1.32% |
| spectral/puzzle || | 3210919.000 | -0.09% |
| spectral/rewrite || | 825290.000 | -7.73% |
| spectral/scc || | 7483.000 | +0.16% |
| spectral/simple || | 8.786e7 | +0.01% |
| spectral/sorting || | 1.261e8 | -0.02% |
| spectral/sphere || | 4854033.000 | +0.43% |
| spectral/treejoin || | 8.455e7 | +0.03% |
+===============================++==+=============+==================+
| geom mean || | +0.03% | |
+-------------------------------++--+-------------+------------------+
# perf instructions
+-------------------------------++--+-------------+------------------+
| || | master/ | callstack/ (rel) |
+===============================++==+=============+==================+
| imaginary/bernouilli || | 7.085e9 | -0.22% |
| imaginary/digits-of-e1 || | 5.547e9 | -0.03% |
| imaginary/digits-of-e2 || | 5.549e9 | -0.06% |
| imaginary/exp3_8 || | 8.785e9 | -0.06% |
| imaginary/gen_regexps || | 8.650e9 | -0.04% |
| imaginary/integrate || | 6.260e9 | +0.20% |
| imaginary/kahan || | 6.699e9 | +0.16% |
| imaginary/paraffins || | 8.112e9 | -0.24% |
| imaginary/primes || | 8.244e9 | -0.24% |
| imaginary/queens || | 1.009e10 | +0.04% |
| imaginary/rfib || | 5.298e9 | +0.14% |
| imaginary/tak || | 5.861e9 | +0.10% |
| imaginary/wheel-sieve1 || | 6.662e9 | -0.76% |
| imaginary/wheel-sieve2 || | 6.278e9 | +0.38% |
| imaginary/x2n1 || | 7.453e9 | -0.12% |
| parallel/blackscholes || | 8.096e9 | -0.18% |
| parallel/coins || | 1.194e10 | -0.03% |
| parallel/gray || | 6.154e9 | -0.07% |
| parallel/mandel || | 3.293e10 | +0.12% |
| parallel/matmult || | 1.118e10 | +0.06% |
| parallel/minimax || | 3.867e10 | -0.11% |
| parallel/nbody || | 7.934e8 | +0.05% |
| parallel/parfib || | 2.232e10 | -0.01% |
| parallel/partree || | 7.358e9 | +0.02% |
| parallel/prsa || | 1.808e10 | +0.14% |
| parallel/queens || | 1.037e10 | -0.03% |
| parallel/ray || | 1.301e10 | +0.01% |
| parallel/sumeuler || | 3.487e9 | -0.01% |
| parallel/transclos || | 1.983e10 | -0.02% |
| real/anna || | 5.334e9 | +0.27% |
| real/ben-raytrace || | 1.216e11 | -0.02% |
| real/bspt || | 9.224e9 | -0.05% |
| real/cacheprof || | 6.735e9 | -0.46% |
| real/compress || | 5.810e9 | +0.07% |
| real/compress2 || | 4.580e9 | -0.21% |
| real/eff/CS || | 7.582e8 | +1.19% |
| real/eff/CSD || | 3.758e9 | -0.56% |
| real/eff/FS || | 2.792e9 | +0.02% |
| real/eff/S || | 4.760e9 | -0.60% |
| real/eff/VS || | 2.285e9 | +0.20% |
| real/eff/VSD || | 8.315e7 | +0.02% |
| real/eff/VSM || | 9.480e8 | +1.48% |
| real/fem || | 6.641e9 | -0.53% |
| real/fluid || | 3.914e9 | +0.00% |
| real/fulsom || | 2.497e9 | -0.22% |
| real/gamteb || | 1.013e10 | -0.01% |
| real/gg || | 7.243e9 | +0.12% |
| real/grep || | 7.563e9 | -0.10% |
| real/hidden || | 7.209e9 | +1.57% |
| real/hpg || | 4.982e9 | +0.91% |
| real/infer || | 8.312e9 | +0.11% |
| real/lift || | 4.441e9 | -0.18% |
| real/linear || | 8.438e9 | +1.90% |
| real/maillist || | 4.297e9 | -0.94% |
| real/mkhprog || | 2.874e7 | -0.06% |
| real/parser || | 5.177e9 | +0.14% |
| real/pic || | 3.265e9 | +0.10% |
| real/prolog || | 5.755e9 | -0.18% |
| real/reptile || | 6.050e9 | +0.07% |
| real/rsa || | 7.177e9 | +0.03% |
| real/scs || | 6.184e9 | -0.23% |
| real/smallpt || | 1.129e10 | -0.16% |
| real/symalg || | 8.247e9 | -0.14% |
| real/veritas || | 4.833e9 | -0.01% |
| shootout/binary-trees || | 1.071e10 | +0.12% |
| shootout/fannkuch-redux || | 1.912e10 | +0.12% |
| shootout/fasta || | 4.273e9 | -0.50% |
| shootout/k-nucleotide || | 4.227e9 | -1.34% |
| shootout/n-body || | 3.725e9 | -0.23% |
| shootout/pidigits || | 8.095e9 | -0.04% |
| shootout/reverse-complement || | 3245583.000 | -2.41% |
| shootout/spectral-norm || | 4.238e9 | -0.15% |
| smp/callback001 || | 1.601e9 | +0.55% |
| smp/callback002 || | 2.619e9 | +0.19% |
| smp/chan || | 7.817e9 | -0.01% |
| smp/sieve || | 2.361e9 | +0.85% |
| smp/threads001 || | 5.145e9 | +0.17% |
| smp/threads003 || | 2.922e9 | -0.06% |
| smp/threads006 || | 1.081e9 | +4.82% |
| smp/threads007 || | 4.328e9 | +0.63% |
| spectral/ansi || | 5.961e9 | +0.21% |
| spectral/atom || | 5.864e9 | -0.10% |
| spectral/awards || | 8.749e9 | -0.02% |
| spectral/banner || | 8.862e9 | +0.12% |
| spectral/boyer || | 7.669e9 | -0.09% |
| spectral/boyer2 || | 8.888e9 | +0.04% |
| spectral/calendar || | 7.541e9 | +0.13% |
| spectral/cichelli || | 8.675e9 | -0.17% |
| spectral/circsim || | 6.901e9 | +0.12% |
| spectral/clausify || | 6.227e9 | -0.09% |
| spectral/constraints || | 8.308e9 | +0.36% |
| spectral/cryptarithm1 || | 7.804e9 | -0.23% |
| spectral/cryptarithm2 || | 6.757e9 | +0.11% |
| spectral/cse || | 6.357e9 | +0.01% |
| spectral/dom-lt || | 7.774e9 | +0.17% |
| spectral/eliza || | 8.279e9 | -0.12% |
| spectral/exact-reals || | 5.599e9 | -0.07% |
| spectral/expert || | 5.096e9 | -0.09% |
| spectral/fft2 || | 8.818e9 | +0.48% |
| spectral/fibheaps || | 8.019e9 | -0.12% |
| spectral/fish || | 7.319e9 | -0.03% |
| spectral/gcd || | 6.381e9 | +0.26% |
| spectral/hartel/comp_lab_zift || | 8.747e9 | -0.45% |
| spectral/hartel/event || | 9.153e9 | -1.50% |
| spectral/hartel/fft || | 3.237e9 | -0.02% |
| spectral/hartel/genfft || | 1.020e10 | +0.14% |
| spectral/hartel/ida || | 5.420e9 | -0.32% |
| spectral/hartel/listcompr || | 6.143e9 | +0.12% |
| spectral/hartel/listcopy || | 6.759e9 | +0.01% |
| spectral/hartel/nucleic2 || | 4.413e9 | -0.67% |
| spectral/hartel/parstof || | 5.552e9 | +0.04% |
| spectral/hartel/sched || | 5.807e9 | -0.02% |
| spectral/hartel/solid || | 5.850e9 | +0.22% |
| spectral/hartel/transform || | 5.713e9 | -0.01% |
| spectral/hartel/typecheck || | 5.844e9 | -0.04% |
| spectral/hartel/wang || | 8.727e9 | +0.29% |
| spectral/hartel/wave4main || | 6.034e9 | -0.20% |
| spectral/integer || | 7.048e9 | +0.64% |
| spectral/knights || | 8.310e9 | -0.08% |
| spectral/lambda || | 8.091e9 | -0.12% |
| spectral/last-piece || | 1.877e9 | +0.11% |
| spectral/lcss || | 8.776e9 | -0.10% |
| spectral/life || | 9.143e9 | -0.05% |
| spectral/mandel || | 7.015e9 | +0.24% |
| spectral/mandel2 || | 3.957e9 | +0.03% |
| spectral/mate || | 7.573e9 | +0.11% |
| spectral/minimax || | 8.645e9 | +0.10% |
| spectral/multiplier || | 6.097e9 | +0.06% |
| spectral/para || | 6.562e9 | +0.03% |
| spectral/power || | 6.758e9 | -0.23% |
| spectral/pretty || | 3371581.000 | -0.75% |
| spectral/primetest || | 7.409e9 | -0.04% |
| spectral/puzzle || | 6.405e9 | -0.19% |
| spectral/rewrite || | 5.558e9 | +0.62% |
| spectral/scc || | 3244220.000 | -1.55% |
| spectral/simple || | 1.220e10 | +0.25% |
| spectral/sorting || | 9.082e9 | -0.05% |
| spectral/sphere || | 5.371e9 | -0.18% |
| spectral/treejoin || | 9.881e9 | -0.07% |
+===============================++==+=============+==================+
| geom mean || | +0.02% | |
+-------------------------------++--+-------------+------------------+
# perf cycles
+-------------------------------++--+-------------+------------------+
| || | master/ | callstack/ (rel) |
+===============================++==+=============+==================+
| imaginary/bernouilli || | 3.726e9 | +0.96% |
| imaginary/digits-of-e1 || | 2.561e9 | +3.96% |
| imaginary/digits-of-e2 || | 2.828e9 | -1.96% |
| imaginary/exp3_8 || | 3.231e9 | +2.40% |
| imaginary/gen_regexps || | 4.250e9 | +0.26% |
| imaginary/integrate || | 2.968e9 | -9.55% |
| imaginary/kahan || | 3.062e9 | -0.40% |
| imaginary/paraffins || | 3.083e9 | -1.94% |
| imaginary/primes || | 2.593e9 | +1.49% |
| imaginary/queens || | 4.713e9 | -0.75% |
| imaginary/rfib || | 3.942e9 | -0.09% |
| imaginary/tak || | 4.385e9 | -0.60% |
| imaginary/wheel-sieve1 || | 4.582e9 | -43.27% |
| imaginary/wheel-sieve2 || | 2.563e9 | -2.37% |
| imaginary/x2n1 || | 2.867e9 | +0.10% |
| parallel/blackscholes || | 4.854e9 | -1.40% |
| parallel/coins || | 4.809e9 | -0.08% |
| parallel/gray || | 3.600e9 | +2.96% |
| parallel/mandel || | 1.481e10 | -1.08% |
| parallel/matmult || | 1.570e10 | -2.83% |
| parallel/minimax || | 2.420e10 | +7.85% |
| parallel/nbody || | 4.377e8 | +1.37% |
| parallel/parfib || | 1.752e10 | +0.16% |
| parallel/partree || | 3.345e9 | +2.19% |
| parallel/prsa || | 7.052e9 | +6.03% |
| parallel/queens || | 4.686e9 | +0.06% |
| parallel/ray || | 9.246e9 | -2.73% |
| parallel/sumeuler || | 4.166e9 | -1.20% |
| parallel/transclos || | 1.095e10 | +1.05% |
| real/anna || | 5.456e9 | -0.28% |
| real/ben-raytrace || | 6.268e10 | +2.87% |
| real/bspt || | 3.695e9 | -0.12% |
| real/cacheprof || | 3.822e9 | +5.28% |
| real/compress || | 2.389e9 | -0.41% |
| real/compress2 || | 3.284e9 | -4.00% |
| real/eff/CS || | 1.825e8 | +0.07% |
| real/eff/CSD || | 1.185e9 | -0.92% |
| real/eff/FS || | 9.959e8 | +8.14% |
| real/eff/S || | 2.161e9 | +3.14% |
| real/eff/VS || | 9.353e8 | -4.17% |
| real/eff/VSD || | 2.326e7 | +3.42% |
| real/eff/VSM || | 3.006e8 | -15.15% |
| real/fem || | 3.274e9 | -5.66% |
| real/fluid || | 3.224e9 | -2.00% |
| real/fulsom || | 1.922e9 | -1.85% |
| real/gamteb || | 5.555e9 | -0.95% |
| real/gg || | 3.717e9 | +6.49% |
| real/grep || | 3.266e9 | -4.20% |
| real/hidden || | 5.666e9 | -6.63% |
| real/hpg || | 3.082e9 | +8.56% |
| real/infer || | 4.526e9 | +4.02% |
| real/lift || | 3.450e9 | -0.91% |
| real/linear || | 6.195e9 | -3.28% |
| real/maillist || | 3.815e9 | -3.44% |
| real/mkhprog || | 1.859e7 | -4.29% |
| real/parser || | 3.315e9 | +1.96% |
| real/pic || | 2.259e9 | -2.02% |
| real/prolog || | 4.197e9 | +0.39% |
| real/reptile || | 3.234e9 | -1.87% |
| real/rsa || | 2.852e9 | -1.52% |
| real/scs || | 2.870e9 | -2.91% |
| real/smallpt || | 7.328e9 | +0.78% |
| real/symalg || | 3.427e9 | +0.10% |
| real/veritas || | 2.909e9 | +0.50% |
| shootout/binary-trees || | 5.018e9 | -0.06% |
| shootout/fannkuch-redux || | 1.014e10 | -2.68% |
| shootout/fasta || | 2.439e9 | +1.45% |
| shootout/k-nucleotide || | 3.488e9 | +4.66% |
| shootout/n-body || | 2.098e9 | -0.03% |
| shootout/pidigits || | 3.265e9 | -0.18% |
| shootout/reverse-complement || | 3311908.000 | -6.15% |
| shootout/spectral-norm || | 1.525e9 | +0.62% |
| smp/callback001 || | 8.318e8 | +9.35% |
| smp/callback002 || | 1.337e9 | +5.34% |
| smp/chan || | 3.236e9 | -0.99% |
| smp/sieve || | 7.368e8 | -0.27% |
| smp/threads001 || | 2.874e9 | -0.77% |
| smp/threads003 || | 1.841e9 | -0.36% |
| smp/threads006 || | 1.144e9 | +2.09% |
| smp/threads007 || | 3.534e9 | +3.85% |
| spectral/ansi || | 1.973e9 | -2.41% |
| spectral/atom || | 2.944e9 | -0.80% |
| spectral/awards || | 5.452e9 | -11.68% |
| spectral/banner || | 4.185e9 | -0.68% |
| spectral/boyer || | 4.195e9 | -1.23% |
| spectral/boyer2 || | 4.586e9 | -1.21% |
| spectral/calendar || | 3.726e9 | -1.97% |
| spectral/cichelli || | 4.325e9 | -0.26% |
| spectral/circsim || | 5.746e9 | -0.23% |
| spectral/clausify || | 3.735e9 | +0.10% |
| spectral/constraints || | 5.202e9 | +2.10% |
| spectral/cryptarithm1 || | 3.909e9 | -4.03% |
| spectral/cryptarithm2 || | 3.759e9 | -1.27% |
| spectral/cse || | 4.564e9 | -2.83% |
| spectral/dom-lt || | 4.830e9 | -0.05% |
| spectral/eliza || | 4.631e9 | -6.18% |
| spectral/exact-reals || | 3.471e9 | -0.08% |
| spectral/expert || | 4.020e9 | -1.27% |
| spectral/fft2 || | 4.706e9 | -1.71% |
| spectral/fibheaps || | 4.492e9 | +0.55% |
| spectral/fish || | 4.004e9 | +3.76% |
| spectral/gcd || | 3.413e9 | -2.86% |
| spectral/hartel/comp_lab_zift || | 5.377e9 | +4.10% |
| spectral/hartel/event || | 5.456e9 | -1.84% |
| spectral/hartel/fft || | 1.732e9 | +0.20% |
| spectral/hartel/genfft || | 5.124e9 | +2.82% |
| spectral/hartel/ida || | 4.414e9 | +2.00% |
| spectral/hartel/listcompr || | 3.458e9 | +3.84% |
| spectral/hartel/listcopy || | 3.776e9 | -4.30% |
| spectral/hartel/nucleic2 || | 4.137e9 | +4.49% |
| spectral/hartel/parstof || | 4.609e9 | -0.54% |
| spectral/hartel/sched || | 4.245e9 | -0.19% |
| spectral/hartel/solid || | 3.587e9 | +1.04% |
| spectral/hartel/transform || | 3.793e9 | +4.13% |
| spectral/hartel/typecheck || | 4.627e9 | -1.51% |
| spectral/hartel/wang || | 4.369e9 | -1.01% |
| spectral/hartel/wave4main || | 4.844e9 | -5.68% |
| spectral/integer || | 3.150e9 | -5.21% |
| spectral/knights || | 4.198e9 | +21.03% |
| spectral/lambda || | 3.534e9 | +1.90% |
| spectral/last-piece || | 1.134e9 | +0.65% |
| spectral/lcss || | 3.905e9 | -0.64% |
| spectral/life || | 5.646e9 | -6.52% |
| spectral/mandel || | 3.529e9 | -6.31% |
| spectral/mandel2 || | 2.570e9 | -0.24% |
| spectral/mate || | 5.761e9 | +4.42% |
| spectral/minimax || | 4.569e9 | -1.24% |
| spectral/multiplier || | 3.060e9 | +6.04% |
| spectral/para || | 4.232e9 | +1.90% |
| spectral/power || | 3.808e9 | -1.38% |
| spectral/pretty || | 3403388.000 | -22.39% |
| spectral/primetest || | 3.203e9 | -4.45% |
| spectral/puzzle || | 4.362e9 | -0.34% |
| spectral/rewrite || | 3.840e9 | +4.16% |
| spectral/scc || | 3133857.000 | +1.57% |
| spectral/simple || | 7.219e9 | -1.59% |
| spectral/sorting || | 4.285e9 | -0.29% |
| spectral/sphere || | 3.674e9 | -3.88% |
| spectral/treejoin || | 4.910e9 | +0.19% |
+===============================++==+=============+==================+
| geom mean || | -0.80% | |
+-------------------------------++--+-------------+------------------+
17
28
Are you sure about this approach? I think you need to start with an open
discussion , And have a open ended thread about ideas for how to improve
how we do things.
A proposals process / formal process isn’t always a win. This sortah
approach demands a lot more dedicated human power and support admin than I
think is tenable for the libraries ecosystem today.
Merry Friday and be well
-Carter
---------- Forwarded message ---------
From: chessai <chessai1996(a)gmail.com>
Date: Fri, Sep 11, 2020 at 10:02 PM
Subject: Re: New Libraries Proposal process
To: Carter Schonwald <carter.schonwald(a)gmail.com>
This has been discussed on and off for a few months now, amongst CLC,
between members of CLC and GHC Steering/Haskell.org, Tweag, Target, IOHK,
Serokell, etc. My only regret is that a lot of the conversation happened
privately.
> All libraries process needs to start on the libraries mailing list
Not anymore.
The libraries mailing list has proven to be ineffective when it comes to
getting stuff done. Mailing lists are not the right format for this.
Furthermore, I don't see how emails are more conducive to deep discussion
than github comments. There are many GitHub issue trackers and PRs which
show otherwise.
This new process will never be perfect and of course will need some
tweaking, but the current process is very poor and gets little done. Most
proposals I ever see end up with no resolution.
Since the GHC Proposals process has proven to be a net positive, much of
the structure was taken from there and adapted to core libraries.
On Fri, Sep 11, 2020, 19:52 Carter Schonwald <carter.schonwald(a)gmail.com>
wrote:
> Where was this discussed or proposed? All libraries process needs to start
> on the libraries mailing list. And soemtimes Perhaps moving to clc list for
> resolving tie breaking on controversial choices.
>
> The libraries archive goes back pretty far and email threading seems to
> scale far better for participating in complex discussions than does githubs
> comment collapsing on large discussions.
>
> On Fri, Sep 11, 2020 at 3:20 PM chessai <chessai1996(a)gmail.com> wrote:
>
>> All,
>>
>>
>> There is a new Libraries Proposal process, inspired by the GHC Proposals
>> process.
>>
>> Core Library APIs are critical. It's easy for a sensible proposal to
>> languish or simply get dropped on the floor; and (in the other direction) a
>> bit too easy for a proposal to make it into the core libraries without
>> receiving the scrutiny it deserves. Most of the proposals that have been
>> made on this mailing list, become lost to the archives. It's not easy for
>> anyone to answer the question "what decisions has the CLC made recently?"
>> without trawling a huge email archive.
>>
>> Of course, this is mostly for breaking changes or "big" introductions; we
>> don't need a full proposal over something tiny, e.g. "a module from vector
>> is missing a fold". That would be more appropriate on vector's issue
>> tracker, and left to the maintainers to deal with.
>>
>> I encourage anyone interested to get started by reading the README at
>> https://github.com/haskell-core/core-libraries-proposals.
>>
>>
>>
>> _______________________________________________
>>
>> Libraries mailing list
>>
>> Libraries(a)haskell.org
>>
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
>>
>>
>
>
10
13
All,
There is a new Libraries Proposal process, inspired by the GHC Proposals
process.
Core Library APIs are critical. It's easy for a sensible proposal to
languish or simply get dropped on the floor; and (in the other direction) a
bit too easy for a proposal to make it into the core libraries without
receiving the scrutiny it deserves. Most of the proposals that have been
made on this mailing list, become lost to the archives. It's not easy for
anyone to answer the question "what decisions has the CLC made recently?"
without trawling a huge email archive.
Of course, this is mostly for breaking changes or "big" introductions; we
don't need a full proposal over something tiny, e.g. "a module from vector
is missing a fold". That would be more appropriate on vector's issue
tracker, and left to the maintainers to deal with.
I encourage anyone interested to get started by reading the README at
https://github.com/haskell-core/core-libraries-proposals.
5
7