In this post I want to collect all my work for Chapel during the summer for keeping it easily readable. This will not include all my commits or PRs to Chapel (you can find my commit list here), just a little presentation of what I’ve done.

This feature is quite complex and can be better explained by this (here) post. It introduces the concept of guard pages in Chapel tasks, avoiding the access and modification of some parts of the memory.

A little correction to a float precision bug in Chapel.

This is my project for the GSOC. You can see here for more details, but the main purpose of this project was adding the ability to Chapel to produce its own stack trace. Chapel (currently) only uses an “halt” approach for error handling but, on complex programs, this approach didn’t provide any indications about the state of the program at the moment of the error and it can be complex to understand. A stack trace is a valuable tool for developers during the debugging phase of complex application for better understand how an error is encountered.

Chapel compiler generates C code but it also possess a LLVM backend (you can activate it with CHPL_LLVM=llvm and using the –llvm compiler flag). However, this backend didn’t generate debug informations on newer versions of LLVM. My job was to update it and making it working with LLVM 3.7, the version currently provided by Chapel.