- Sep 24, 2016
-
-
Joachim Breitner authored
-
Joachim Breitner authored
as the latter is the official, correct spelling, and the former just a misspelling accepted by GHC. Also document in the user’s guide that the alternative spelling is accepted This commit was brough to you by HIW 2016.
-
- Sep 23, 2016
-
-
Matthew Pickering authored
It is a self-recursive function so will always be the loop-breaker and hence never able to be inlined. It is dubious whether the INLINABLE pragma will ever help as it is not a very polymorphic function but some specialisation could occur.
-
Richard Eisenberg authored
The problem is described in the ticket. This patch adds new variants of the access points to the pure unifier that allow unification of types only when the caller wants this behavior. (The unifier used to also unify kinds.) This behavior is appropriate when the kinds are either already known to be the same, or the list of types provided are a list of well-typed arguments to some type constructor. In the latter case, unifying earlier types in the list will unify the kinds of any later (dependent) types. At use sites, I went through and chose the unification function according to the criteria above. This patch includes some modest performance improvements as we are now doing less work.
-
Simon Marlow authored
We had better docs for the underlying functions in GHC.ForeignPtr, but this wasn't propagated to the re-exported versions in Foreign.Concurrent.
-
Simon Marlow authored
Summary: And document it. See the docmentation for the reason I want this. Test Plan: It's an existing API, just exposing it. Reviewers: bgamari, niteria, austin, erikd Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2531
-
Simon Marlow authored
If we want to keep the RTS alive a bit longer by having another hs_init()/hs_exit() pair in a library that will destruct itself after main() has exited, then the forced shutdown here thwarts that. I think we just "fixed" #5402 in the wrong way before, this should be better.
-
- Sep 21, 2016
-
-
Tamar Christina authored
Summary: Test T12504 does it's checking in the Makefile using grep but still specified an stdout. the stdout has the old output and would always fail. Since the stdout isn't needed, let's not check it. Test Plan: make test TEST=T12504 Reviewers: bgamari, austin, erikd, rcook Reviewed By: rcook Subscribers: thomie, #ghc_windows_task_force Differential Revision: https://phabricator.haskell.org/D2537 GHC Trac Issues: #12504
-
- Sep 20, 2016
-
-
Matthew Pickering authored
Fixes #12519
-
Ömer Sinan Ağacan authored
New unarise (714bebff) eliminates void binders in patterns already, so no need to eliminate them here. I leave assertions to make sure this is the case. Assertion failure -> bug in unarise Reviewers: bgamari, simonpj, austin, simonmar, hvr Reviewed By: simonpj Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2416
-
- Sep 16, 2016
-
-
Previously this was a relative path which worked in the GHC tree, but failed elsewhere. This caused trouble for out-of-tree users as well as Hadrian, which wants to move build artifacts out of the working directory. Fixes #8040. Test Plan: Validate Reviewers: thomie, austin, snowleopard, hvr Reviewed By: snowleopard, hvr Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2530 GHC Trac Issues: #8040
-
- Sep 15, 2016
-
-
Joachim Breitner authored
basically using the machinery from the test case of #2110.
-
Simon Peyton Jones authored
See Note [Data for non-algebraic types]
-
Simon Peyton Jones authored
-
Ben Gamari authored
Here we introduce compatibility wrappers for HasCallStack constraints. This is necessary as we must support GHC 7.10.1 which lacks sane call stack support. We also introduce another constraint synonym, HasDebugCallStack, which only provides a call stack when DEBUG is set.
-
Simon Marlow authored
-
Simon Marlow authored
Summary: * getNonClobberedReg instead of getSomeReg, because the reg needs to survive across t_code * Use a new reg for the table offset calculation instead of clobbering the reg returned by expr (this was the bug affecting #12433) Test Plan: New unit test; validate Reviewers: rwbarton, bgamari, austin, erikd Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2529 GHC Trac Issues: #12433
-
- Sep 13, 2016
-
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
-
- Sep 12, 2016
-
-
Simon Peyton Jones authored
Sigh. I added some comments to the source files, and failed to revalidate. But the comments change the line number in the error messages. Doh.
-
Simon Peyton Jones authored
I must have failed to validate properly, sorry. These testsuite wibbles belong with commit 03541cba Author: Simon Peyton Jones <simonpj@microsoft.com> Date: Fri Sep 9 17:42:42 2016 +0100 Be less picky about reporing inaccessible code
-
Biographical profiling is not thread-safe as documented in #12019. Throw an error when it is used in this way. Test Plan: Validate Reviewers: simonmar, austin, erikd Reviewed By: erikd Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2516 GHC Trac Issues: #12019
-
Ben Gamari authored
As requested in #10267. However we still lack support in typed splices. See #10945 and #10946.
-
Ben Gamari authored
Remove a leftover note in the users guide claiming that TH doesn't support pattern synonyms.
-
Ben Gamari authored
Not sure how this snuck through but it seems to be the only one.
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
Triggered by the discussion on Trac #12466, this patch makes GHC less aggressive about reporting an error when there are insoluble Givens. Being so agressive was making some libraries fail to compile, and is arguably wrong in at least some cases. See the discussion on the ticket. Several test now pass when they failed before; see the files-modified list for this patch.
-
Simon Marlow authored
Summary: This is a fast, non-blocking, asynchronous, interface to tryPutMVar that can be called from C/C++. It's useful for callback-based C/C++ APIs: the idea is that the callback invokes hs_try_putmvar(), and the Haskell code waits for the callback to run by blocking in takeMVar. The callback doesn't block - this is often a requirement of callback-based APIs. The callback wakes up the Haskell thread with minimal overhead and no unnecessary context-switches. There are a couple of benchmarks in testsuite/tests/concurrent/should_run. Some example results comparing hs_try_putmvar() with using a standard foreign export: ./hs_try_putmvar003 1 64 16 100 +RTS -s -N4 0.49s ./hs_try_putmvar003 2 64 16 100 +RTS -s -N4 2.30s hs_try_putmvar() is 4x faster for this workload (see the source for hs_try_putmvar003.hs for details of the workload). An alternative solution is to use the IO Manager for this. We've tried it, but there are problems with that approach: * Need to create a new file descriptor for each callback * The IO Manger thread(s) become a bottleneck * More potential for things to go wrong, e.g. throwing an exception in an IO Manager callback kills the IO Manager thread. Test Plan: validate; new unit tests Reviewers: niteria, erikd, ezyang, bgamari, austin, hvr Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2501
-
- Sep 11, 2016
-
-
Ryan Scott authored
A folow-up to D2521 (which addressed #12583), where the `Outputable` `ppr` output was tweaked to display a list comprehension with only one `Stmt` as `[Foo]` instead of `[Foo|]` (which isn't valid Haskell). I forgot to update the corresponding code in `Language.Haskell.TH.Ppr` which pretty-prints `CompE`, however, so this commit takes care of that.
-
Ryan Scott authored
Summary: Standalone-derived `Ix` instances would panic on GADTs with exactly one constructor, since the list of fields was being passed to a function that uses `foldl1` in order to generate an implementation for `inRange`. This adds a simple check that makes `inRange` be `True` whenever a product type has no fields. Fixes #12583. Test Plan: make test TEST=12583 Reviewers: simonpj, austin, bgamari Reviewed By: bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2521 GHC Trac Issues: #12583
-
Matthew Pickering authored
You can now just use `mkMatchGroup`.
-
Matthew Pickering authored
-
- Sep 10, 2016
-
-
Tamar Christina authored
Summary: The generated documentation for thhe Foreign.C.Types module is generated based on the platform which ran Haddock. This is generating incorrect types for e.g. Windows. Add a disclaimer to the top of the page to ask people to keep this in mind. Test Plan: make documentation and inspect Haddock Reviewers: erikd, austin, hvr, bgamari Reviewed By: erikd Subscribers: RyanGlScott, #ghc_windows_task_force, thomie Differential Revision: https://phabricator.haskell.org/D2523 GHC Trac Issues: #12586
-
Ryan Scott authored
Summary: D2461 seemed to (inadvertently, I think) add the `-flocal-ghci-history` flag to the list of `defaultFlags` that are enabled automatically. As a result, every invocation of `ghci` caused a local GHCi history to be saved to the current directory, which probably shouldn't be the default. Test Plan: Run `ghci`, observe the lack of a `.ghci_history` file in your working directory Reviewers: austin, thomie, bgamari Reviewed By: bgamari Subscribers: ak3n Differential Revision: https://phabricator.haskell.org/D2520 GHC Trac Issues: #9089
-
- Sep 09, 2016
-
-
Summary: We stumbled upon a case where an external library (OpenCL) does not work if a specific address (0x200000000) is taken. It so happens that `osReserveHeapMemory` starts trying to mmap at 0x200000000: ``` void *hint = (void*)((W_)8 * (1 << 30) + attempt * BLOCK_SIZE); at = osTryReserveHeapMemory(*len, hint); ``` This makes it impossible to use Haskell programs compiled with GHC 8 with C functions that use OpenCL. See this example https://github.com/chpatrick/oclwtf for a repro. This patch allows the user to work around this kind of behavior outside our control by letting the user override the starting address through an RTS command line flag. Reviewers: bgamari, Phyx, simonmar, erikd, austin Reviewed By: Phyx, simonmar Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D2513
-
Alan Zimmerman authored
Summary: The external interpreter is launched by calling 'System.Process.createProcess' with a 'CreateProcess' parameter. The current value for this has the 'std_in', 'std_out' and 'std_err' fields use the default of 'Inherit', meaning that the remote interpreter shares the stdio with the original ghc/ghci process. This patch introduces a new hook to the DynFlags, which has an opportunity to override the 'CreateProcess' fields, launch the process, and retrieve the stdio handles actually used. So if a ghci external interpreter session is launched from the GHC API the stdio can be redirected if required, which is useful for tooling/IDE integration. Test Plan: ./validate Reviewers: austin, hvr, simonmar, bgamari Reviewed By: simonmar, bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2518
-
- Sep 08, 2016
-
-
Edward Z. Yang authored
Fixes readdir validation error (fixes #12572). Signed-off-by:
Edward Z. Yang <ezyang@cs.stanford.edu>
-
Edward Z. Yang authored
Test Plan: none Reviewers: austin, niteria, bgamari Reviewed By: niteria Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2514 GHC Trac Issues: #12485
-
Test Plan: Read it Reviewers: dfeuer, austin Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2515 GHC Trac Issues: #11691
-