John Pennycook
John Pennycook
### Feature/behavior summary Inspired by the Python bindings for `libclang`, we can provide an iterator-based API to walk through specialization trees. As a simple example, this would allow us to...
### Feature/behavior summary The amount of output generated by `codebasin` for a real project is overwhelming to new users. We should separate configuration warnings/errors from warnings that occur during file...
### Feature/behavior summary The `configuration` dictionary used by Code Base Investigator 1.x stores a subset of the information available in a compilation database. Rather than maintain support for two data...
### Feature/behavior summary These two files are large, complicated, and poorly documented. The desired functionality is actually very simple: - "Clean" source files, by stripping comments and combining whitespace. -...
The definition of [CL_DEVICE_LOCAL_MEM_SIZE](https://registry.khronos.org/OpenCL/specs/3.0-unified/html/OpenCL_API.html#CL_DEVICE_LOCAL_MEM_SIZE) is given as: > Size of local memory region in bytes. The minimum value is 32 KB for devices that are not of type [CL_DEVICE_TYPE_CUSTOM](https://registry.khronos.org/OpenCL/specs/3.0-unified/html/OpenCL_API.html#CL_DEVICE_TYPE_CUSTOM). I...
### Feature/behavior summary CBI is developed on Linux and only tested on Linux, but it would be nice to support Windows as well. ### Request attributes - [ ] Would...
### Feature/behavior summary Several legacy functions are missing type hints. Although we've made good progress in adding missing type hints as we've developed new features, we still have a backlog...
### Feature/behavior summary Running `codebasin`, `cbi-cov` or `cbi-tree` can take a long time for large projects, because each file must be parsed and preprocessed each time the command is run....
### Feature/behavior summary Direct access to the internals of the `codebasin` package was deprecated in CBI 1.2, to give us time to refactor and finalize the public interface. The purpose...
### Feature/behavior summary The concept of a "setmap" is littered throughout the code. The type of each `setmap` is `defaultdict[frozenset[str, int], int]`, and it's not really obvious how to interpret...