<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/haskell.git, branch wip/static-pointers</title>
<subtitle>gitlab.haskell.org: ghc/ghc.git
</subtitle>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/haskell.git/'/>
<entry>
<title>Implement -XStaticValues.</title>
<updated>2014-12-02T14:55:30+00:00</updated>
<author>
<name>Facundo Domínguez</name>
<email>facundo.dominguez@tweag.io</email>
</author>
<published>2014-01-29T14:43:03+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/haskell.git/commit/?id=79c87c039c47be0baf7a6dd33ecf5434daa1501c'/>
<id>79c87c039c47be0baf7a6dd33ecf5434daa1501c</id>
<content type='text'>
Contains contributions from Alexander Vershilov and Mathieu Boespflug.

As proposed in [1], this extension introduces a new syntactic form
`static e`, where `e :: a` can be any closed expression. The static form
produces a value of type `StaticPtr a`, which works as a reference that
programs can "dereference" to get the value of `e` back. References are
like `Ptr`s, except that they are stable across invocations of a
program.

In essence the extension collects the arguments of the static form into
a global static pointer table. The expressions can be looked up by a
fingerprint computed from the package, the module and a fresh name
given to the expression. For more details we refer to the users guide
section contained in the patch.

The extension is a contribution to the Cloud Haskell ecosystem
(distributed-process and related), and thus has the potential to foster
Haskell as a programming language for distributed systems.

The immediate improvement brought by the extension is the elimination of
remote tables from Cloud Haskell applications. Such applications contain
table fragments spread throughout multiple modules and packages.
Eliminating these fragments saves the programmer the burden required to
construct and assemble the global remote table, a verbose and
error-prone process, even with the help of Template Haskell, that
moreover pollutes the export lists of all modules.

[1] Jeff Epstein, Andrew P. Black, and Simon Peyton-Jones. Towards
Haskell in the cloud. SIGPLAN Not., 46(12):118–129, September 2011. ISSN
0362-1340.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Contains contributions from Alexander Vershilov and Mathieu Boespflug.

As proposed in [1], this extension introduces a new syntactic form
`static e`, where `e :: a` can be any closed expression. The static form
produces a value of type `StaticPtr a`, which works as a reference that
programs can "dereference" to get the value of `e` back. References are
like `Ptr`s, except that they are stable across invocations of a
program.

In essence the extension collects the arguments of the static form into
a global static pointer table. The expressions can be looked up by a
fingerprint computed from the package, the module and a fresh name
given to the expression. For more details we refer to the users guide
section contained in the patch.

The extension is a contribution to the Cloud Haskell ecosystem
(distributed-process and related), and thus has the potential to foster
Haskell as a programming language for distributed systems.

The immediate improvement brought by the extension is the elimination of
remote tables from Cloud Haskell applications. Such applications contain
table fragments spread throughout multiple modules and packages.
Eliminating these fragments saves the programmer the burden required to
construct and assemble the global remote table, a verbose and
error-prone process, even with the help of Template Haskell, that
moreover pollutes the export lists of all modules.

[1] Jeff Epstein, Andrew P. Black, and Simon Peyton-Jones. Towards
Haskell in the cloud. SIGPLAN Not., 46(12):118–129, September 2011. ISSN
0362-1340.
</pre>
</div>
</content>
</entry>
<entry>
<title>Update validate settings now that containers and process have been</title>
<updated>2014-11-17T02:29:58+00:00</updated>
<author>
<name>David Terei</name>
<email>code@davidterei.com</email>
</author>
<published>2014-11-17T02:29:58+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/haskell.git/commit/?id=a2c0a8dd15de2023e17078fa5f421ba581b3a5fa'/>
<id>a2c0a8dd15de2023e17078fa5f421ba581b3a5fa</id>
<content type='text'>
updated to handle `-fwarn-trustworthy-safe`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
updated to handle `-fwarn-trustworthy-safe`.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix compilation of `integer-gmp2` with `-O0`</title>
<updated>2014-11-15T17:11:17+00:00</updated>
<author>
<name>Herbert Valerio Riedel</name>
<email>hvr@gnu.org</email>
</author>
<published>2014-11-15T17:05:58+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/haskell.git/commit/?id=c45e2e29dee8c38fc852388289d700605132278f'/>
<id>c45e2e29dee8c38fc852388289d700605132278f</id>
<content type='text'>
At optimization level `-O0` `wordToInteger` wasn't inlined, and this caused a
`__integer` literal to turn up in final Core, which would trigger the GHC panic

  ghc-stage1: panic! (the 'impossible' happened)
    (GHC version 7.9.20141114 for x86_64-unknown-linux):
	Can't use Integer in integer-*

By forcing inlining via `inline` this is avoided.
This should hopefully address #9800.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
At optimization level `-O0` `wordToInteger` wasn't inlined, and this caused a
`__integer` literal to turn up in final Core, which would trigger the GHC panic

  ghc-stage1: panic! (the 'impossible' happened)
    (GHC version 7.9.20141114 for x86_64-unknown-linux):
	Can't use Integer in integer-*

By forcing inlining via `inline` this is avoided.
This should hopefully address #9800.
</pre>
</div>
</content>
</entry>
<entry>
<title>Update to (unreleased) `deepseq-1.4.0.0`</title>
<updated>2014-11-15T11:20:03+00:00</updated>
<author>
<name>Herbert Valerio Riedel</name>
<email>hvr@gnu.org</email>
</author>
<published>2014-11-15T11:16:38+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/haskell.git/commit/?id=609cd28a1a8616f4076088c87e443850d807ba7d'/>
<id>609cd28a1a8616f4076088c87e443850d807ba7d</id>
<content type='text'>
This pulls in the new `Generic`-based `-XDefaultSignature`-based default
implementation for `rnf`[1], and will be interesting to use in combination
with the soon to be merged `-XDeriveAnyClass` extension.

This requires updating several other submodules as well in order
to relax the upper bound on `deepseq` and/or in a few cases to
avoid relying on the default method implementation of `rnf`:

 - `Cabal`
 - `bytestring`
 - `containers`
 - `parallel`
 - `process`
 - `time`

 [1]: http://permalink.gmane.org/gmane.comp.lang.haskell.libraries/23031
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This pulls in the new `Generic`-based `-XDefaultSignature`-based default
implementation for `rnf`[1], and will be interesting to use in combination
with the soon to be merged `-XDeriveAnyClass` extension.

This requires updating several other submodules as well in order
to relax the upper bound on `deepseq` and/or in a few cases to
avoid relying on the default method implementation of `rnf`:

 - `Cabal`
 - `bytestring`
 - `containers`
 - `parallel`
 - `process`
 - `time`

 [1]: http://permalink.gmane.org/gmane.comp.lang.haskell.libraries/23031
</pre>
</div>
</content>
</entry>
<entry>
<title>Workaround 452d6aa95b7 breaking TrustworthySafe03</title>
<updated>2014-11-15T10:18:12+00:00</updated>
<author>
<name>Herbert Valerio Riedel</name>
<email>hvr@gnu.org</email>
</author>
<published>2014-11-15T10:18:12+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/haskell.git/commit/?id=185482524d4fa5954243476de1452219fb077228'/>
<id>185482524d4fa5954243476de1452219fb077228</id>
<content type='text'>
This is only a temporary kludge until the issue workarounded by 452d6aa95b7
gets properly fixed
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is only a temporary kludge until the issue workarounded by 452d6aa95b7
gets properly fixed
</pre>
</div>
</content>
</entry>
<entry>
<title>Generalize exposed-modules field in installed package database</title>
<updated>2014-11-15T08:36:03+00:00</updated>
<author>
<name>Edward Z. Yang</name>
<email>ezyang@cs.stanford.edu</email>
</author>
<published>2014-11-15T08:08:53+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/haskell.git/commit/?id=e14a973215102cb3774e3b4370c64edcff0e10bc'/>
<id>e14a973215102cb3774e3b4370c64edcff0e10bc</id>
<content type='text'>
Summary:
Instead of recording exposed-modules and reexported-modules as seperate
fields in the installed package database, this commit merges them into
a single field (exposed-modules).  The motivation for this change is
in preparation for the inclusion of *signatures* into the installed
package database, which may also be reexported.  Merging the representation
means that we can treat reexports uniformly, no matter if they're a normal
module or a signature.

This commit adds a stub for signatures, but that code isn't wired up to
anything yet.

Contains Cabal submodule update to accommodate these changes.

Signed-off-by: Edward Z. Yang &lt;ezyang@cs.stanford.edu&gt;

Test Plan: validate

Reviewers: simonpj, duncan, austin

Subscribers: thomie, carter, simonmar

Differential Revision: https://phabricator.haskell.org/D421
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Summary:
Instead of recording exposed-modules and reexported-modules as seperate
fields in the installed package database, this commit merges them into
a single field (exposed-modules).  The motivation for this change is
in preparation for the inclusion of *signatures* into the installed
package database, which may also be reexported.  Merging the representation
means that we can treat reexports uniformly, no matter if they're a normal
module or a signature.

This commit adds a stub for signatures, but that code isn't wired up to
anything yet.

Contains Cabal submodule update to accommodate these changes.

Signed-off-by: Edward Z. Yang &lt;ezyang@cs.stanford.edu&gt;

Test Plan: validate

Reviewers: simonpj, duncan, austin

Subscribers: thomie, carter, simonmar

Differential Revision: https://phabricator.haskell.org/D421
</pre>
</div>
</content>
</entry>
<entry>
<title>Partially revert 475dd93efa</title>
<updated>2014-11-14T17:51:33+00:00</updated>
<author>
<name>Austin Seipp</name>
<email>austin@well-typed.com</email>
</author>
<published>2014-11-14T17:51:31+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/haskell.git/commit/?id=452d6aa95b754a08e1e61800680ccbf6f968aef0'/>
<id>452d6aa95b754a08e1e61800680ccbf6f968aef0</id>
<content type='text'>
This introduces ./validate failures for Windows right now, so in the
mean time let's just back this flag out as a default -Wall flag.

Signed-off-by: Austin Seipp &lt;austin@well-typed.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This introduces ./validate failures for Windows right now, so in the
mean time let's just back this flag out as a default -Wall flag.

Signed-off-by: Austin Seipp &lt;austin@well-typed.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Update .mailmap</title>
<updated>2014-11-14T11:18:42+00:00</updated>
<author>
<name>Thomas Miedema</name>
<email>thomasmiedema@gmail.com</email>
</author>
<published>2014-11-08T12:44:57+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/haskell.git/commit/?id=fa75309456a30b097b1003fcd7b7aa073bab9314'/>
<id>fa75309456a30b097b1003fcd7b7aa073bab9314</id>
<content type='text'>
[skip ci]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[skip ci]
</pre>
</div>
</content>
</entry>
<entry>
<title>Implement amap/coerce for Array (re #9796)</title>
<updated>2014-11-13T20:15:33+00:00</updated>
<author>
<name>David Feuer</name>
<email>David.Feuer@gmail.com</email>
</author>
<published>2014-11-13T20:12:05+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/haskell.git/commit/?id=603b7be7bd3abaf0e2c210e8d9015b1d613b4715'/>
<id>603b7be7bd3abaf0e2c210e8d9015b1d613b4715</id>
<content type='text'>
Implement an `amap`/`coerce` rule in `GHC.Arr` to match the
`map`/`coerce` rule in GHC.Base.

In order to do so, delay inlining `amap` until phase 1.

To prevent the inlining delay from causing major inefficiencies due to
missed list fusion, rewrite `amap` to avoid relying on list fusion. This
has the extra benefit of reducing the size of the compiled amap code by
skipping the impossible case of an array with a negative size.

Reviewed By: nomeata

Differential Revision: https://phabricator.haskell.org/D471
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Implement an `amap`/`coerce` rule in `GHC.Arr` to match the
`map`/`coerce` rule in GHC.Base.

In order to do so, delay inlining `amap` until phase 1.

To prevent the inlining delay from causing major inefficiencies due to
missed list fusion, rewrite `amap` to avoid relying on list fusion. This
has the extra benefit of reducing the size of the compiled amap code by
skipping the impossible case of an array with a negative size.

Reviewed By: nomeata

Differential Revision: https://phabricator.haskell.org/D471
</pre>
</div>
</content>
</entry>
<entry>
<title>When calling the success continuation of a matcher, pass existential tyvars</title>
<updated>2014-11-13T15:38:39+00:00</updated>
<author>
<name>Dr. ERDI Gergo</name>
<email>gergo@erdi.hu</email>
</author>
<published>2014-11-13T09:47:18+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/haskell.git/commit/?id=638991114f9358ee78f32d5d5c98bb3001b52ec9'/>
<id>638991114f9358ee78f32d5d5c98bb3001b52ec9</id>
<content type='text'>
as type arguments, not value arguments
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
as type arguments, not value arguments
</pre>
</div>
</content>
</entry>
</feed>
