From Fedora Project Wiki
(Add link to Cauldron 2016 slides from Testing BoF) |
(→GCC work: Add GCC 11 static analysis blog post) |
||
(12 intermediate revisions by the same user not shown) | |||
Line 5: | Line 5: | ||
My Fedora People page: http://dmalcolm.fedorapeople.org/ | My Fedora People page: http://dmalcolm.fedorapeople.org/ | ||
My blog: http://dmalcolm.livejournal.com/ | I'm currently working on [https://gcc.gnu.org/ GCC] upstream. Previously I worked on the [[SIGs/Python|Python runtimes within Fedora]] and Red Hat Enterprise Linux. | ||
I'm interested in [[StaticAnalysis|static code analysis]] | |||
My old blog: http://dmalcolm.livejournal.com/ | |||
A very old, out-of-date Red Hat People Page: http://people.redhat.com/dmalcolm | A very old, out-of-date Red Hat People Page: http://people.redhat.com/dmalcolm | ||
= GCC work = | |||
* GCC 11: | |||
** Blog post: [https://developers.redhat.com/blog/2021/01/28/static-analysis-updates-in-gcc-11/ Static analysis updates in GCC 11] | |||
* GCC 10: | |||
** Implemented experimental new [https://gcc.gnu.org/wiki/DavidMalcolm/StaticAnalyzer static analysis pass] | |||
** Blog post: [https://developers.redhat.com/blog/2020/03/26/static-analysis-in-gcc-10/ Static analysis in GCC 10] | |||
* GCC 9: | |||
** Blog post: [https://developers.redhat.com/blog/2019/03/08/usability-improvements-in-gcc-9/ Usability improvements in GCC 9] | |||
** Presentation (Cauldron 2018): [https://dmalcolm.fedorapeople.org/presentations/cauldron-2018/ Optimization records] | |||
* GCC 8: | |||
** Blog post: [https://developers.redhat.com/blog/2018/03/15/gcc-8-usability-improvements/ Usability improvements in GCC 8] | |||
** Presentation (Cauldron 2017): [https://dmalcolm.fedorapeople.org/presentations/cauldron-2017/ Diagnostic and location-tracking improvements for GCC 8] | |||
* GCC 7: | |||
** Unit testing and RTL "frontend" | |||
*** Blog post: [https://developers.redhat.com/blog/2017/02/13/testing-testing-gcc/ Testing... Testing… GCC] | |||
*** Presentation (Cauldron 2016): [https://dmalcolm.fedorapeople.org/presentations/cauldron-2016/ Testing BoF] | |||
* GCC 6: | |||
** [https://developers.redhat.com/blog/2016/02/26/gcc-6-wmisleading-indentation-vs-goto-fail/ -Wmisleading-indentation vs “goto fail;”] | |||
** implemented underlined ranges of source, rather than just points | |||
* GCC 5 improvements: | |||
** RTL typesafety | |||
*** Blog post: [https://developers.redhat.com/blog/2014/09/16/improving-gccs-internals/ Improving GCC’s internals] | |||
*** Presentation (Cauldron 2014): [https://dmalcolm.fedorapeople.org/presentations/cauldron-2014/rtl/ A proposal for typesafe RTL] | |||
** libgccjit | |||
*** Blog post: [https://developers.redhat.com/blog/2015/04/07/jit-compilation-using-gcc-5-2/ JIT-compilation using GCC 5] | |||
*** Presentation (Cauldron 2014): [https://dmalcolm.fedorapeople.org/presentations/cauldron-2014/jit/ Just-In-Time compilation using GCC] | |||
= Some of the software I've written = | = Some of the software I've written = | ||
* [http://gcc.gnu.org/wiki/JIT libgccjit]: a branch of GCC allowing it to be built as a shared library for use in Just-In-Time compilation | * [http://gcc.gnu.org/wiki/JIT libgccjit]: a branch of GCC allowing it to be built as a shared library for use in Just-In-Time compilation | ||
* [https:// | * [https://github.com/davidmalcolm/gcc-python-plugin/ gcc-python-plugin]: allowing you to write new GCC plugins in Python. | ||
* [https://gcc-python-plugin.readthedocs.org/en/latest/cpychecker.html cpychecker]: a static analysis pass for GCC to find bugs in C extensions to Python, written in Python using gcc-python-plugin | * [https://gcc-python-plugin.readthedocs.org/en/latest/cpychecker.html cpychecker]: a static analysis pass for GCC to find bugs in C extensions to Python, written in Python using gcc-python-plugin | ||
* [http://docs.python.org/devguide/gdb.html#gdb-7-and-later gdb Python hooks] for debugging CPython itself | * [http://docs.python.org/devguide/gdb.html#gdb-7-and-later gdb Python hooks] for debugging CPython itself | ||
Line 22: | Line 53: | ||
* [https://github.com/fedora-static-analysis/mock-with-analysis mock-with-analysis]: a way of rebuilding an RPM in mock, injecting static analysis, and capturing the result in Firehose format | * [https://github.com/fedora-static-analysis/mock-with-analysis mock-with-analysis]: a way of rebuilding an RPM in mock, injecting static analysis, and capturing the result in Firehose format | ||
* [https://github.com/davidmalcolm/gcc-build gcc-build]: some scripts to make it easier to hack on GCC | * [https://github.com/davidmalcolm/gcc-build gcc-build]: some scripts to make it easier to hack on GCC | ||
= Older stuff = | = Older stuff = | ||
* [https://fedorahosted.org/rpmgrok/ rpmgrok] | * [https://fedorahosted.org/rpmgrok/ rpmgrok] | ||
* [http://www.conglomerate.org/ conglomerate]: an XML editor aimed at non-technical users (I rewrote the prototype) | * [http://www.conglomerate.org/ conglomerate]: an XML editor aimed at non-technical users (I rewrote the prototype) |
Revision as of 21:00, 29 January 2021
David Malcolm
Email: dmalcolm@redhat.com
My Fedora People page: http://dmalcolm.fedorapeople.org/
I'm currently working on GCC upstream. Previously I worked on the Python runtimes within Fedora and Red Hat Enterprise Linux.
I'm interested in static code analysis
My old blog: http://dmalcolm.livejournal.com/
A very old, out-of-date Red Hat People Page: http://people.redhat.com/dmalcolm
GCC work
- GCC 11:
- Blog post: Static analysis updates in GCC 11
- GCC 10:
- Implemented experimental new static analysis pass
- Blog post: Static analysis in GCC 10
- GCC 9:
- Blog post: Usability improvements in GCC 9
- Presentation (Cauldron 2018): Optimization records
- GCC 8:
- Blog post: Usability improvements in GCC 8
- Presentation (Cauldron 2017): Diagnostic and location-tracking improvements for GCC 8
- GCC 7:
- Unit testing and RTL "frontend"
- Blog post: Testing... Testing… GCC
- Presentation (Cauldron 2016): Testing BoF
- Unit testing and RTL "frontend"
- GCC 6:
- -Wmisleading-indentation vs “goto fail;”
- implemented underlined ranges of source, rather than just points
- GCC 5 improvements:
- RTL typesafety
- Blog post: Improving GCC’s internals
- Presentation (Cauldron 2014): A proposal for typesafe RTL
- libgccjit
- Blog post: JIT-compilation using GCC 5
- Presentation (Cauldron 2014): Just-In-Time compilation using GCC
- RTL typesafety
Some of the software I've written
- libgccjit: a branch of GCC allowing it to be built as a shared library for use in Just-In-Time compilation
- gcc-python-plugin: allowing you to write new GCC plugins in Python.
- cpychecker: a static analysis pass for GCC to find bugs in C extensions to Python, written in Python using gcc-python-plugin
- gdb Python hooks for debugging CPython itself
- gdb-heap, an extension to gdb for analyzing malloc/free
- squeal: a SQL-like syntax for use in shell pipelines
- asmdiff: tool for comparing objdump results
- gccinvocation: Python module for parsing GCC invocation lines
- jamais-vu: a tool for working with DejaGnu output
- firehose: a proposed common format for static analyzer output, along with a Python module for working with it
- mock-with-analysis: a way of rebuilding an RPM in mock, injecting static analysis, and capturing the result in Firehose format
- gcc-build: some scripts to make it easier to hack on GCC
Older stuff
- rpmgrok
- conglomerate: an XML editor aimed at non-technical users (I rewrote the prototype)