[Piglit] [PATCH 10/15] piglit-dispatch: Code generation script
Eric Anholt
eric at anholt.net
Mon Mar 5 23:16:45 PST 2012
On Fri, 2 Mar 2012 15:40:28 -0800, Paul Berry <stereotype441 at gmail.com> wrote:
> This is the first in a series of patches that replaces GLEW with a new
> mechanism called "piglit-dispatch". This patch adds the script that
> will be used by piglit-dispatch to build its generated code.
>
> The input to the code generation script is a set of XML files
> describing the GL API, in the same form as used by Mesa. For the time
> being, these files can be found at
> git://github.com/stereotype441/glapi.git.
From talking today, it sounds like investigating glspec as a source for
this instead of the XML is very promising. But I'll review it anyway.
I have to say: This was really nice code to read. I'm usually not a fan
of python (I tend to find python code impenetrable), but I feel like I
understand what this code is doing, and I understand python in general
better as a result.
> +# Generate a top-of-file comment cautioning that the file is
> +# auto-generated and should not be manually edited.
> +def generated_boilerplate():
> + return """\
> +/**
> + * This file was automatically generated by the script {0!r}.
> + *
> + * DO NOT EDIT!
> + *
> + * To regenerate, run "make piglit_dispatch_gen" from the toplevel directory.
> + */
> +""".format(os.path.basename(sys.argv[0]))
Even though the files are generated, and they're describing an API in a
way that may or may not be copyrightable, it's probably a good idea to
put a license on it so people know they can at least use it in the usual
permissive way.
> + # Generate a list of Function objects representing all functions
> + # in the API. The resulting list is sorted by function name.
> + def compute_unique_functions(self):
> + functions = []
> + names_used = set()
> + for f in self.__functions:
> + if f.name in names_used:
> + continue
> + functions.append(f)
> + functions.sort(key = lambda f: f.name)
> + return functions
I was surprised to see this function -- I would have assumed that the
parsed Api contained uniquely-named Functions in the first place. Is it
to do with parsing GL/GLES variants of XML or something? Are those
all exact matches in terms of signature?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/piglit/attachments/20120305/b4a04606/attachment.pgp>
More information about the Piglit
mailing list