From Fedora Project Wiki

(Add link to Cauldron 2018 presentation on optimization records)
m (David Malcolm: add link to GCC website)
 
(5 intermediate revisions by the same user not shown)
Line 9: Line 9:
 
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
  
= Some of the software I've written =
+
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.
* [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://fedorahosted.org/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
 
* [http://docs.python.org/devguide/gdb.html#gdb-7-and-later gdb Python hooks] for debugging CPython itself
 
* [https://fedorahosted.org/gdb-heap/ gdb-heap], an extension to gdb for analyzing malloc/free
 
* [https://fedorahosted.org/squeal/ squeal]: a SQL-like syntax for use in shell pipelines
 
* [https://github.com/davidmalcolm/asmdiff asmdiff]: tool for comparing objdump results
 
* [https://github.com/fedora-static-analysis/gccinvocation gccinvocation]: Python module for parsing GCC invocation lines
 
* [https://github.com/davidmalcolm/jamais-vu jamais-vu]: a tool for working with DejaGnu output
 
* [https://github.com/fedora-static-analysis/firehose firehose]: a proposed common format for static analyzer output, along with a Python module for working with it
 
* [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
 
 
 
I'm currently working on 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]]
 
I'm interested in [[StaticAnalysis|static code analysis]]
Line 31: Line 17:
 
** RTL typesafety
 
** RTL typesafety
 
*** Blog post: [https://developers.redhat.com/blog/2014/09/16/improving-gccs-internals/ Improving GCC’s internals]
 
*** Blog post: [https://developers.redhat.com/blog/2014/09/16/improving-gccs-internals/ Improving GCC’s internals]
*** Presentation: [https://dmalcolm.fedorapeople.org/presentations/cauldron-2014/rtl/ A proposal for typesafe RTL]
+
*** Presentation (Cauldron 2014): [https://dmalcolm.fedorapeople.org/presentations/cauldron-2014/rtl/ A proposal for typesafe RTL]
 
** libgccjit
 
** libgccjit
 
*** Blog post: [https://developers.redhat.com/blog/2015/04/07/jit-compilation-using-gcc-5-2/ JIT-compilation using GCC 5]
 
*** Blog post: [https://developers.redhat.com/blog/2015/04/07/jit-compilation-using-gcc-5-2/ JIT-compilation using GCC 5]
*** Presentation: [https://dmalcolm.fedorapeople.org/presentations/cauldron-2014/jit/ Just-In-Time compilation using GCC]
+
*** Presentation (Cauldron 2014): [https://dmalcolm.fedorapeople.org/presentations/cauldron-2014/jit/ Just-In-Time compilation using GCC]
 
* GCC 6:
 
* GCC 6:
 
** [https://developers.redhat.com/blog/2016/02/26/gcc-6-wmisleading-indentation-vs-goto-fail/ -Wmisleading-indentation vs “goto fail;”]
 
** [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 7:
 
* GCC 7:
 
** Unit testing and RTL "frontend"
 
** Unit testing and RTL "frontend"
 
*** Blog post: [https://developers.redhat.com/blog/2017/02/13/testing-testing-gcc/ Testing... Testing… GCC]
 
*** Blog post: [https://developers.redhat.com/blog/2017/02/13/testing-testing-gcc/ Testing... Testing… GCC]
*** Presentation: [https://dmalcolm.fedorapeople.org/presentations/cauldron-2016/ Testing BoF]
+
*** Presentation (Cauldron 2016): [https://dmalcolm.fedorapeople.org/presentations/cauldron-2016/ Testing BoF]
 
* GCC 8:
 
* GCC 8:
 
** Blog post: [https://developers.redhat.com/blog/2018/03/15/gcc-8-usability-improvements/ Usability improvements in GCC 8]
 
** Blog post: [https://developers.redhat.com/blog/2018/03/15/gcc-8-usability-improvements/ Usability improvements in GCC 8]
** Presentation: [https://dmalcolm.fedorapeople.org/presentations/cauldron-2017/ Diagnostic and location-tracking improvements for GCC 8]
+
** Presentation (Cauldron 2017): [https://dmalcolm.fedorapeople.org/presentations/cauldron-2017/ Diagnostic and location-tracking improvements for GCC 8]
 
* GCC 9:
 
* GCC 9:
** Presentation: [https://dmalcolm.fedorapeople.org/presentations/cauldron-2018/ Optimization records]
+
** 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]
 +
 
 +
= 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
 +
* [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
 +
* [http://docs.python.org/devguide/gdb.html#gdb-7-and-later gdb Python hooks] for debugging CPython itself
 +
* [https://fedorahosted.org/gdb-heap/ gdb-heap], an extension to gdb for analyzing malloc/free
 +
* [https://fedorahosted.org/squeal/ squeal]: a SQL-like syntax for use in shell pipelines
 +
* [https://github.com/davidmalcolm/asmdiff asmdiff]: tool for comparing objdump results
 +
* [https://github.com/fedora-static-analysis/gccinvocation gccinvocation]: Python module for parsing GCC invocation lines
 +
* [https://github.com/davidmalcolm/jamais-vu jamais-vu]: a tool for working with DejaGnu output
 +
* [https://github.com/fedora-static-analysis/firehose firehose]: a proposed common format for static analyzer output, along with a Python module for working with it
 +
* [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
  
 
= 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)

Latest revision as of 19:38, 18 September 2019

David Malcolm

Email: dmalcolm@redhat.com

My Fedora People page: http://dmalcolm.fedorapeople.org/

My blog: http://dmalcolm.livejournal.com/

A very old, out-of-date Red Hat People Page: http://people.redhat.com/dmalcolm

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

GCC work

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