<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gf-core.git/src/runtime/haskell/PGF/ByteCode.hs, branch optimize</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>https://git.adelon.net/gf-core.git/atom?h=optimize</id>
<link rel='self' href='https://git.adelon.net/gf-core.git/atom?h=optimize'/>
<link rel='alternate' type='text/html' href='https://git.adelon.net/gf-core.git/'/>
<updated>2018-04-18T17:18:10+00:00</updated>
<entry>
<title>Fixes for GHC 8.4.1 compatibility</title>
<updated>2018-04-18T17:18:10+00:00</updated>
<author>
<name>Thomas Hallgren</name>
<email>th-github@altocumulus.org</email>
</author>
<published>2018-04-18T17:18:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adelon.net/gf-core.git/commit/?id=820d2d503fde7b29634262fd07db2a4744cf813d'/>
<id>urn:sha1:820d2d503fde7b29634262fd07db2a4744cf813d</id>
<content type='text'>
* In GHC 8.4.1, the operator &lt;&gt; has become a method of the Semigroup class
  and is exported from the Prelude. This is unfortunate, since &lt;&gt; is also
  exported from the standard library module Text.PrettyPrint, so in any
  module that defines a pretty printer, there is likely to be an ambiguity.

  This affects ~18 modules in GF. Solution:

    import Prelude hiding (&lt;&gt;)

  This works also in older versions of GHC, since GHC does't complain if
  you hide something that doesn't exists.

* In GHC 8.4.1, Semigroup has become a superclass of Monoid. This means
  that anywhere you define an instance of the Monoid class you also have to
  define an instance in the Semigroup class.

  This affects Data.Binary.Builder in GF. Solution: conditionally define
  a Semigroup instance if compiling with base&gt;=4.11 (ghc&gt;=8.4.1)
</content>
</entry>
<entry>
<title>now (+) in the abstract syntax works, i.e. it knows how to deal with partial sums</title>
<updated>2014-10-31T14:16:11+00:00</updated>
<author>
<name>kr.angelov</name>
<email>kr.angelov@gmail.com</email>
</author>
<published>2014-10-31T14:16:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adelon.net/gf-core.git/commit/?id=b1e6a21c56c5aef62716c35546d4596e11bbbf94'/>
<id>urn:sha1:b1e6a21c56c5aef62716c35546d4596e11bbbf94</id>
<content type='text'>
</content>
</entry>
<entry>
<title>a more efficient tail call by using the new TUCK instruction</title>
<updated>2014-10-30T13:09:50+00:00</updated>
<author>
<name>kr.angelov</name>
<email>kr.angelov@gmail.com</email>
</author>
<published>2014-10-30T13:09:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adelon.net/gf-core.git/commit/?id=9b0f354c7cef175c172edae582dcfa48817db7ba'/>
<id>urn:sha1:9b0f354c7cef175c172edae582dcfa48817db7ba</id>
<content type='text'>
</content>
</entry>
<entry>
<title>an explicit SAVE instruction</title>
<updated>2014-10-26T11:40:12+00:00</updated>
<author>
<name>kr.angelov</name>
<email>kr.angelov@gmail.com</email>
</author>
<published>2014-10-26T11:40:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adelon.net/gf-core.git/commit/?id=efedec187cef6e422c4dbcd50454dd2e29f1a3f8'/>
<id>urn:sha1:efedec187cef6e422c4dbcd50454dd2e29f1a3f8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>an explicit PUSH_FRAME instruction</title>
<updated>2014-10-22T14:11:41+00:00</updated>
<author>
<name>kr.angelov</name>
<email>kr.angelov@gmail.com</email>
</author>
<published>2014-10-22T14:11:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adelon.net/gf-core.git/commit/?id=c8b3865338d3399dd983b36e1e0ad17f326bdd86'/>
<id>urn:sha1:c8b3865338d3399dd983b36e1e0ad17f326bdd86</id>
<content type='text'>
</content>
</entry>
<entry>
<title>finally proper stack unwind in the evaluator</title>
<updated>2014-10-16T10:00:32+00:00</updated>
<author>
<name>kr.angelov</name>
<email>kr.angelov@gmail.com</email>
</author>
<published>2014-10-16T10:00:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adelon.net/gf-core.git/commit/?id=26ad164cecc65afd9420e0ac34a15d49b02e6cbf'/>
<id>urn:sha1:26ad164cecc65afd9420e0ac34a15d49b02e6cbf</id>
<content type='text'>
</content>
</entry>
<entry>
<title>the compiler now allows + to be used as a floating point addition in the abstract syntax</title>
<updated>2014-10-14T11:15:18+00:00</updated>
<author>
<name>kr.angelov</name>
<email>kr.angelov@gmail.com</email>
</author>
<published>2014-10-14T11:15:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adelon.net/gf-core.git/commit/?id=ac288386c44bdfab783ae2cdc0882d411a9c6b00'/>
<id>urn:sha1:ac288386c44bdfab783ae2cdc0882d411a9c6b00</id>
<content type='text'>
</content>
</entry>
<entry>
<title>using instruction RET was wrong; now use EVAL</title>
<updated>2014-10-06T15:57:42+00:00</updated>
<author>
<name>kr.angelov</name>
<email>kr.angelov@gmail.com</email>
</author>
<published>2014-10-06T15:57:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adelon.net/gf-core.git/commit/?id=13c7721bc52ca2ee998c0a4347f15264c78a951b'/>
<id>urn:sha1:13c7721bc52ca2ee998c0a4347f15264c78a951b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>bugfix in the pattern matching compiler and a number of other fixes that I somehow did not push before</title>
<updated>2014-09-29T15:00:04+00:00</updated>
<author>
<name>kr.angelov</name>
<email>kr.angelov@gmail.com</email>
</author>
<published>2014-09-29T15:00:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adelon.net/gf-core.git/commit/?id=80acad444792b77a77b6fa232989e1d2caf8c673'/>
<id>urn:sha1:80acad444792b77a77b6fa232989e1d2caf8c673</id>
<content type='text'>
</content>
</entry>
<entry>
<title>a major revision of the bytecode generator and JIT compiler. the effect is that now we can compute with lambda functions and with true tail recursion</title>
<updated>2014-09-11T15:39:39+00:00</updated>
<author>
<name>kr.angelov</name>
<email>kr.angelov@gmail.com</email>
</author>
<published>2014-09-11T15:39:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adelon.net/gf-core.git/commit/?id=621d748bac0914a93e3d399f81616c70fd083bb5'/>
<id>urn:sha1:621d748bac0914a93e3d399f81616c70fd083bb5</id>
<content type='text'>
</content>
</entry>
</feed>
