<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/haskell.git/testsuite/tests/codeGen, branch master</title>
<subtitle>gitlab.haskell.org: ghc/ghc.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/haskell.git/'/>
<entry>
<title>Fix remaining issues with bound checking (#23123)</title>
<updated>2023-05-04T18:58:51+00:00</updated>
<author>
<name>Sylvain Henry</name>
<email>sylvain@haskus.fr</email>
</author>
<published>2023-04-27T14:58:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/haskell.git/commit/?id=2d5c1ddecf195da9a8ee4f7b38fbb79d3b680aeb'/>
<id>2d5c1ddecf195da9a8ee4f7b38fbb79d3b680aeb</id>
<content type='text'>
While fixing these I've also changed the way we store addresses into
ByteArray#. Addr# are composed of two parts: a JavaScript array and an
offset (32-bit number).

Suppose we want to store an Addr# in a ByteArray# foo at offset i.
Before this patch, we were storing both fields as a tuple in the "arr"
array field:

  foo.arr[i] = [addr_arr, addr_offset];

Now we only store the array part in the "arr" field and the offset
directly in the array:

  foo.dv.setInt32(i, addr_offset):
  foo.arr[i] = addr_arr;

It avoids wasting space for the tuple.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
While fixing these I've also changed the way we store addresses into
ByteArray#. Addr# are composed of two parts: a JavaScript array and an
offset (32-bit number).

Suppose we want to store an Addr# in a ByteArray# foo at offset i.
Before this patch, we were storing both fields as a tuple in the "arr"
array field:

  foo.arr[i] = [addr_arr, addr_offset];

Now we only store the array part in the "arr" field and the offset
directly in the array:

  foo.dv.setInt32(i, addr_offset):
  foo.arr[i] = addr_arr;

It avoids wasting space for the tuple.
</pre>
</div>
</content>
</entry>
<entry>
<title>JS: fix bounds checking (Issue 23123)</title>
<updated>2023-05-04T18:58:51+00:00</updated>
<author>
<name>Josh Meredith</name>
<email>joshmeredith2008@gmail.com</email>
</author>
<published>2023-04-03T15:28:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/haskell.git/commit/?id=116d7312ec4c76f75a26bd0ad2b2815710049e0e'/>
<id>116d7312ec4c76f75a26bd0ad2b2815710049e0e</id>
<content type='text'>
* For ByteArray-based bounds-checking, the JavaScript backend must use the
`len` field, instead of the inbuild JavaScript `length` field.

* Range-based operations must also check both the start and end of the range
for bounds

* All indicies are valid for ranges of size zero, since they are essentially no-ops

* For cases of ByteArray accesses (e.g. read as Int), the end index is
(i * sizeof(type) + sizeof(type) - 1), while the previous implementation
uses (i + sizeof(type) - 1). In the Int32 example, this is (i * 4 + 3)

* IndexByteArrayOp_Word8As* primitives use byte array indicies (unlike
the previous point), but now check both start and end indicies

* Byte array copies now check if the arrays are the same by identity and
then if the ranges overlap.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* For ByteArray-based bounds-checking, the JavaScript backend must use the
`len` field, instead of the inbuild JavaScript `length` field.

* Range-based operations must also check both the start and end of the range
for bounds

* All indicies are valid for ranges of size zero, since they are essentially no-ops

* For cases of ByteArray accesses (e.g. read as Int), the end index is
(i * sizeof(type) + sizeof(type) - 1), while the previous implementation
uses (i + sizeof(type) - 1). In the Int32 example, this is (i * 4 + 3)

* IndexByteArrayOp_Word8As* primitives use byte array indicies (unlike
the previous point), but now check both start and end indicies

* Byte array copies now check if the arrays are the same by identity and
then if the ranges overlap.
</pre>
</div>
</content>
</entry>
<entry>
<title>testsuite: wasm32-specific fixes</title>
<updated>2023-04-27T20:00:35+00:00</updated>
<author>
<name>Cheng Shao</name>
<email>terrorjack@type.dance</email>
</author>
<published>2023-04-02T12:09:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/haskell.git/commit/?id=bd2bfdecc8040a9a70478cd8d646a34b5fa77c35'/>
<id>bd2bfdecc8040a9a70478cd8d646a34b5fa77c35</id>
<content type='text'>
This patch includes all wasm32-specific testsuite fixes.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch includes all wasm32-specific testsuite fixes.
</pre>
</div>
</content>
</entry>
<entry>
<title>testsuite: add the req_ghc_with_threaded_rts predicate</title>
<updated>2023-04-27T20:00:35+00:00</updated>
<author>
<name>Cheng Shao</name>
<email>terrorjack@type.dance</email>
</author>
<published>2023-04-01T19:48:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/haskell.git/commit/?id=aa6afe8ab48b5fbe09d332a25ce6af4719c5cb44'/>
<id>aa6afe8ab48b5fbe09d332a25ce6af4719c5cb44</id>
<content type='text'>
This patch adds the req_ghc_with_threaded_rts predicate to the
testsuite to assert the platform has threaded RTS, and mark some tests
as req_ghc_with_threaded_rts. Also makes ghc_with_threaded_rts a
config field instead of a global variable.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch adds the req_ghc_with_threaded_rts predicate to the
testsuite to assert the platform has threaded RTS, and mark some tests
as req_ghc_with_threaded_rts. Also makes ghc_with_threaded_rts a
config field instead of a global variable.
</pre>
</div>
</content>
</entry>
<entry>
<title>testsuite/T20137: Avoid impl.-defined behavior</title>
<updated>2023-04-24T16:19:06+00:00</updated>
<author>
<name>Ben Gamari</name>
<email>ben@well-typed.com</email>
</author>
<published>2023-04-11T21:23:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/haskell.git/commit/?id=787c6e8c5b96c95ead6cc7c213d12c5983975084'/>
<id>787c6e8c5b96c95ead6cc7c213d12c5983975084</id>
<content type='text'>
Previously we would cast pointers to uint64_t. However, implementations
are allowed to either zero- or sign-extend such casts. Instead cast to
uintptr_t to avoid this.

Fixes #23247.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously we would cast pointers to uint64_t. However, implementations
are allowed to either zero- or sign-extend such casts. Instead cast to
uintptr_t to avoid this.

Fixes #23247.
</pre>
</div>
</content>
</entry>
<entry>
<title>StgToCmm: Upgrade -fcheck-prim-bounds behavior</title>
<updated>2023-04-04T05:04:10+00:00</updated>
<author>
<name>Matthew Craven</name>
<email>5086-clyring@users.noreply.gitlab.haskell.org</email>
</author>
<published>2023-03-15T02:13:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/haskell.git/commit/?id=f7da530c80c0117d5684bb52481e4a40d7e724cc'/>
<id>f7da530c80c0117d5684bb52481e4a40d7e724cc</id>
<content type='text'>
Fixes #21054. Additionally, we can now check for range overlap
when generating Cmm for primops that use memcpy internally.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes #21054. Additionally, we can now check for range overlap
when generating Cmm for primops that use memcpy internally.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix tests</title>
<updated>2023-03-30T18:35:57+00:00</updated>
<author>
<name>Bodigrim</name>
<email>andrew.lelechenko@gmail.com</email>
</author>
<published>2023-01-19T00:50:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/haskell.git/commit/?id=d2d8251b32a3546bb4984c9bd027917883ab4969'/>
<id>d2d8251b32a3546bb4984c9bd027917883ab4969</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>testsuite: Skip some tests when sanity checking is enabled</title>
<updated>2023-03-08T20:02:31+00:00</updated>
<author>
<name>Ben Gamari</name>
<email>ben@smart-cactus.org</email>
</author>
<published>2023-01-27T17:44:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/haskell.git/commit/?id=e84f716798e0d3431aa7ec42b243dc0998cb6444'/>
<id>e84f716798e0d3431aa7ec42b243dc0998cb6444</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>ncg/aarch64: Handle MULTILINE_COMMENT identically as COMMENTs</title>
<updated>2023-03-03T03:44:35+00:00</updated>
<author>
<name>Zubin Duggal</name>
<email>zubin.duggal@gmail.com</email>
</author>
<published>2023-02-22T11:39:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/haskell.git/commit/?id=68dd64ffa6f164dce4ac010b9f5e1adfefeae7c7'/>
<id>68dd64ffa6f164dce4ac010b9f5e1adfefeae7c7</id>
<content type='text'>
Commit 7566fd9de38c67360c090f828923d41587af519c with the fix for #22798 was
incomplete as it failed to handle MULTILINE_COMMENT pseudo-instructions, and
didn't completly fix the compiler panics when compiling with `-fregs-graph`.

Fixes #23002
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Commit 7566fd9de38c67360c090f828923d41587af519c with the fix for #22798 was
incomplete as it failed to handle MULTILINE_COMMENT pseudo-instructions, and
didn't completly fix the compiler panics when compiling with `-fregs-graph`.

Fixes #23002
</pre>
</div>
</content>
</entry>
<entry>
<title>Testsuite: replace some js_skip with req_cmm</title>
<updated>2023-02-28T16:12:03+00:00</updated>
<author>
<name>Sylvain Henry</name>
<email>sylvain@haskus.fr</email>
</author>
<published>2023-02-27T14:36:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/haskell.git/commit/?id=239202a2b14714740e016d7bbcd4f351356fcb00'/>
<id>239202a2b14714740e016d7bbcd4f351356fcb00</id>
<content type='text'>
req_cmm is more informative than js_skip
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
req_cmm is more informative than js_skip
</pre>
</div>
</content>
</entry>
</feed>
