<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/libepoxy.git/test, branch python-gen-dispatch</title>
<subtitle>github.com: anholt/libepoxy.git
</subtitle>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libepoxy.git/'/>
<entry>
<title>Drop unnecessary inclusion of "config.h"</title>
<updated>2017-02-08T17:52:32+00:00</updated>
<author>
<name>Emmanuele Bassi</name>
<email>ebassi@gnome.org</email>
</author>
<published>2017-02-08T17:52:32+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libepoxy.git/commit/?id=2432daf4cf58b5ff11e008ca34811588285c43b3'/>
<id>2432daf4cf58b5ff11e008ca34811588285c43b3</id>
<content type='text'>
The WGL tests should not include "config.h", since we're trying to test
the use of Epoxy, not its internals.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The WGL tests should not include "config.h", since we're trying to test
the use of Epoxy, not its internals.
</pre>
</div>
</content>
</entry>
<entry>
<title>Allow enabling and disabling GLX support, part II</title>
<updated>2017-02-06T15:58:20+00:00</updated>
<author>
<name>Emmanuele Bassi</name>
<email>ebassi@gnome.org</email>
</author>
<published>2017-01-18T16:07:02+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libepoxy.git/commit/?id=2b6f01b0085e10b4644b672ef03b6120b1927911'/>
<id>2b6f01b0085e10b4644b672ef03b6120b1927911</id>
<content type='text'>
After doing this for Meson in commit fc014fa1, let's do the same dance
for the Autotools build.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
After doing this for Meson in commit fc014fa1, let's do the same dance
for the Autotools build.
</pre>
</div>
</content>
</entry>
<entry>
<title>Allow enabling and disabling GLX support</title>
<updated>2017-02-06T13:48:53+00:00</updated>
<author>
<name>Emmanuele Bassi</name>
<email>ebassi@gnome.org</email>
</author>
<published>2017-01-18T15:40:00+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libepoxy.git/commit/?id=476851ba416c0fa478a8ec0620d482ed5079e38b'/>
<id>476851ba416c0fa478a8ec0620d482ed5079e38b</id>
<content type='text'>
Currently, GLX support in libepoxy at build time is hard coded, but
various platforms have expressed their preference for having a
configure-time option for it.

For instance:

 - various embedded distributors do not ship with X11, but wish to use
   libraries that depend on libepoxy now that Wayland is available
 - distributors for macOS still wish to retain the ability to ship
   their software with X11 enabled

By default, we want epoxy to build with GLX enabled pretty much
everywhere it makes sense, since it's only a build-time option and it's
not a run-time dependency.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently, GLX support in libepoxy at build time is hard coded, but
various platforms have expressed their preference for having a
configure-time option for it.

For instance:

 - various embedded distributors do not ship with X11, but wish to use
   libraries that depend on libepoxy now that Wayland is available
 - distributors for macOS still wish to retain the ability to ship
   their software with X11 enabled

By default, we want epoxy to build with GLX enabled pretty much
everywhere it makes sense, since it's only a build-time option and it's
not a run-time dependency.
</pre>
</div>
</content>
</entry>
<entry>
<title>build: Rework the build rules for generated files in Meson</title>
<updated>2017-01-25T12:36:20+00:00</updated>
<author>
<name>Emmanuele Bassi</name>
<email>ebassi@gnome.org</email>
</author>
<published>2016-12-14T15:35:44+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libepoxy.git/commit/?id=59318edf6419afb850b7875ffee4d97522449a5a'/>
<id>59318edf6419afb850b7875ffee4d97522449a5a</id>
<content type='text'>
Instead of using a generator and having to deal with tweaking the
inclusion paths, we can use a custom target rule, which will do the
right thing and put the generate files where we expect them to be.

Due to how Meson and Ninja work we need to be a bit more careful as to
how we deal with dependencies and generated files, especially since
Epoxy is built on the assumption that the only inclusion path for the
headers lies under the 'include' sub-directory.

First of all, we need to split the dispatch table generation into two
separate steps, one for the headers and one for the source files.

Additionally, we need to munge the paths of the non-generated headers
so that we reference them by their correct path.

These changes are necessary to ensure that Epoxy can be built on a
system without Epoxy installed already; the previous Meson-based build
system relied on the headers being installed in a system directory.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Instead of using a generator and having to deal with tweaking the
inclusion paths, we can use a custom target rule, which will do the
right thing and put the generate files where we expect them to be.

Due to how Meson and Ninja work we need to be a bit more careful as to
how we deal with dependencies and generated files, especially since
Epoxy is built on the assumption that the only inclusion path for the
headers lies under the 'include' sub-directory.

First of all, we need to split the dispatch table generation into two
separate steps, one for the headers and one for the source files.

Additionally, we need to munge the paths of the non-generated headers
so that we reference them by their correct path.

These changes are necessary to ensure that Epoxy can be built on a
system without Epoxy installed already; the previous Meson-based build
system relied on the headers being installed in a system directory.
</pre>
</div>
</content>
</entry>
<entry>
<title>build: Add Meson build files</title>
<updated>2017-01-25T12:36:20+00:00</updated>
<author>
<name>Emmanuele Bassi</name>
<email>ebassi@gnome.org</email>
</author>
<published>2016-12-09T12:28:42+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libepoxy.git/commit/?id=08cc4d021dc523c4243a23b2b4ba432af760716b'/>
<id>08cc4d021dc523c4243a23b2b4ba432af760716b</id>
<content type='text'>
Meson is a Python-based build system that generates build rules of
Ninja, Visual Studio, and XCode. It's designed to be fast, and have a
small, non-Turing complete language to describe the build process,
tests, and dependencies. It's simpler than CMake, and faster than
autotools.

As a direct comparison in terms of speed, three build and check runs for
libepoxy from a clean Git repository clone yield these results on my
Kabylake Core i7 7500U (nproc=4):

- Autotools (make)
Run #1 (cold)   real: 22.384s, user: 20.011s, sys: 3.689s
Run #2 (warm)   real: 22.429s, user: 20.220s, sys: 3.708s
Run #3 (warm)   real: 22.068s, user: 19.743s, sys: 3.594s

- Meson (ninja)
Run #1 (cold)   real: 5.932s, user:  9.371s, sys: 1.625s
Run #2 (warm)   real: 6.273s, user: 10.066,  sys: 1.740s
Run #3 (warm)   real: 5.796s, user:  9.233s, sys: 1.607s

Which means that Meson and ninja are approximately 4x faster than
autotools.

In terms of simplicity, the autotools build takes six files and a total
of 645 lines; Meson requires 3 files, and 361 lines to achieve the same
result. Additionally, Meson automatically builds in a separate build
directory and does not leave files inside the source directory; and Meson
does not use libtool.

Since Meson is quite new and still actively developed, we're going to
leave the autotools build in place for a while, with the intention of
switching to Meson in the future.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Meson is a Python-based build system that generates build rules of
Ninja, Visual Studio, and XCode. It's designed to be fast, and have a
small, non-Turing complete language to describe the build process,
tests, and dependencies. It's simpler than CMake, and faster than
autotools.

As a direct comparison in terms of speed, three build and check runs for
libepoxy from a clean Git repository clone yield these results on my
Kabylake Core i7 7500U (nproc=4):

- Autotools (make)
Run #1 (cold)   real: 22.384s, user: 20.011s, sys: 3.689s
Run #2 (warm)   real: 22.429s, user: 20.220s, sys: 3.708s
Run #3 (warm)   real: 22.068s, user: 19.743s, sys: 3.594s

- Meson (ninja)
Run #1 (cold)   real: 5.932s, user:  9.371s, sys: 1.625s
Run #2 (warm)   real: 6.273s, user: 10.066,  sys: 1.740s
Run #3 (warm)   real: 5.796s, user:  9.233s, sys: 1.607s

Which means that Meson and ninja are approximately 4x faster than
autotools.

In terms of simplicity, the autotools build takes six files and a total
of 645 lines; Meson requires 3 files, and 361 lines to achieve the same
result. Additionally, Meson automatically builds in a separate build
directory and does not leave files inside the source directory; and Meson
does not use libtool.

Since Meson is quite new and still actively developed, we're going to
leave the autotools build in place for a while, with the intention of
switching to Meson in the future.
</pre>
</div>
</content>
</entry>
<entry>
<title>tests/wgl: Use the right array offsets</title>
<updated>2017-01-25T12:28:29+00:00</updated>
<author>
<name>Emmanuele Bassi</name>
<email>ebassi@gnome.org</email>
</author>
<published>2017-01-19T18:00:01+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libepoxy.git/commit/?id=4fe238e023d152e55c7aac210be2e930b06b412c'/>
<id>4fe238e023d152e55c7aac210be2e930b06b412c</id>
<content type='text'>
And avoid an out of bounds access warning.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
And avoid an out of bounds access warning.
</pre>
</div>
</content>
</entry>
<entry>
<title>build: Skip GLESv1 tests if there's no GLESv1</title>
<updated>2017-01-25T12:28:29+00:00</updated>
<author>
<name>Emmanuele Bassi</name>
<email>ebassi@gnome.org</email>
</author>
<published>2017-01-18T14:24:09+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libepoxy.git/commit/?id=6b68ddeaa04d2eebae79a148738bfe619c58f088'/>
<id>6b68ddeaa04d2eebae79a148738bfe619c58f088</id>
<content type='text'>
It's pretty much pointless to build and run tests for a library that we
know is not available.

The Meson build already skips the GLES 1.0 test, so let's make the
Autotools build do the same.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It's pretty much pointless to build and run tests for a library that we
know is not available.

The Meson build already skips the GLES 1.0 test, so let's make the
Autotools build do the same.
</pre>
</div>
</content>
</entry>
<entry>
<title>test: Fix dlwrap on ppc64 and s390x</title>
<updated>2017-01-25T12:28:29+00:00</updated>
<author>
<name>Adam Jackson</name>
<email>ajax@redhat.com</email>
</author>
<published>2015-11-05T15:26:03+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libepoxy.git/commit/?id=2aec628eb015b85ab08650289277de2af2b2efc4'/>
<id>2aec628eb015b85ab08650289277de2af2b2efc4</id>
<content type='text'>
These have dlsym versions of GLIBC_2.3 and GLIBC_2.2, respectively.

Signed-off-by: Adam Jackson &lt;ajax@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These have dlsym versions of GLIBC_2.3 and GLIBC_2.2, respectively.

Signed-off-by: Adam Jackson &lt;ajax@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>dlwrap: add GLIBC_2.4 version to be able to run tests from ARM</title>
<updated>2016-12-07T15:09:02+00:00</updated>
<author>
<name>Olivier Blin</name>
<email>mageia@blino.org</email>
</author>
<published>2015-09-21T11:04:50+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libepoxy.git/commit/?id=f62c9d92d0cb721b5b1ba0ea68bd00756c644425'/>
<id>f62c9d92d0cb721b5b1ba0ea68bd00756c644425</id>
<content type='text'>
See sysdeps/unix/sysv/linux/arm/libdl.abilist in glibc

Signed-off-by: Emmanuele Bassi &lt;ebassi@gnome.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
See sysdeps/unix/sysv/linux/arm/libdl.abilist in glibc

Signed-off-by: Emmanuele Bassi &lt;ebassi@gnome.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert all changes since 8bbc0d40</title>
<updated>2016-12-07T14:45:14+00:00</updated>
<author>
<name>Emmanuele Bassi</name>
<email>ebassi@gnome.org</email>
</author>
<published>2016-12-07T14:45:14+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libepoxy.git/commit/?id=8dead45cb366bf5c08539bef2ccaa36b80eb1483'/>
<id>8dead45cb366bf5c08539bef2ccaa36b80eb1483</id>
<content type='text'>
Most of the changes that happened after commit 8bbc0d40 broke epoxy
pretty much irreparably because of the CMake build and the attempt at
making libepoxy a static library that can be copy-pasted into another
project without generating files.

Since all the commits are entangled, and are full of unrelated changes,
we cannot simply do a localized set of reverts; instead, we need to hit
the reset button.

From this point forward, we're going to improve libepoxy's build while
attempting to keep the existing build system working. This may mean
reinstating the CMake build system at a later date.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Most of the changes that happened after commit 8bbc0d40 broke epoxy
pretty much irreparably because of the CMake build and the attempt at
making libepoxy a static library that can be copy-pasted into another
project without generating files.

Since all the commits are entangled, and are full of unrelated changes,
we cannot simply do a localized set of reverts; instead, we need to hit
the reset button.

From this point forward, we're going to improve libepoxy's build while
attempting to keep the existing build system working. This may mean
reinstating the CMake build system at a later date.
</pre>
</div>
</content>
</entry>
</feed>
