The above graph shows the (condensed) results of the measurements. For each kind of foreign definition in cl-sdl's "gl.lisp" (constants, routines and types) you can see the number of identifiers which are not used (in blue), the number of identifiers which are used and covered by my generator (in yellow) and the number of identifiers which are used but which my generator does not cover (in red). As you can see, only a very small percentage of all identifiers is causing problems; nine identifiers in all. They are: light-fv, fog-fv, fog-f, scale-f, translate-f, fog-i, rotate-f, material-fv and tex-parameter-i.
Possible choices before me now are (1) to refactor cl-sdl to have these nine identifiers match those generated by my script, or (2) to have my script treat these nine identifiers as exceptions defined by the user. The first choice entails updating 139 use-sites in cl-sdl, the second an extension to my generator script. I think I'll go for the latter solution as I expect it will involve less work.
I'll be keeping the analysis scripts around, as it will allow me to check when my generator is covering all the cases. It also doubles as a very basic coverage calculation tool, which might also prove interesting down the line.
No comments:
Post a Comment