Skip to content

Commit

Permalink
remove outdated project info from Compiler (#2226)
Browse files Browse the repository at this point in the history
  • Loading branch information
vtjnash authored Jan 21, 2025
1 parent d6f6bcf commit 815109d
Showing 1 changed file with 1 addition and 45 deletions.
46 changes: 1 addition & 45 deletions jsoc/gsoc/compiler.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,35 +4,13 @@ There are a number of compiler projects that are currently being worked on. Plea
additional details and let us know what specifically interests you about this area of contribution.
That way, we can tailor your project to better suit your interests and skillset.

- **LLVM AliasAnalysis (175-350 hours)**
The Julia language utilizes LLVM as a backend for code generation, so the quality of code generation is very important for performance. This means that there are plenty of opportunities for those with knowledge of or interest in LLVM to contribute via working on Julia's code generation process. We have recently encountered issues with memcpy information only accepting a single aliasing metadata argument, rather than separate information for the source and destination. There are other similar missing descriptive or optimization steps in the aliasing information we produce or consume by LLVM's passes.

**Expected Outcomes**: Improve upon the alias information "LLVM level" of Julia codegen.\
**Skills**: C/C++ programming\
**Difficulty**: Hard

- **Macro hygiene re-implementation, to eliminate incorrect predictions inherent in current approach (350 hours)**

This may be a good project for someone that wants to learn lisp/scheme! Our current algorithm runs
in multiple passes, which means sometimes we compute the wrong scope for a variable in the earlier
pass than when we assign the actual scope to each value. See
<https://github.com/JuliaLang/julia/labels/macros>, and particularly issues such as
<https://github.com/JuliaLang/julia/issues/20241>,
<https://github.com/JuliaLang/julia/issues/53667>,
<https://github.com/JuliaLang/julia/issues/53673> and
<https://github.com/JuliaLang/julia/issues/34164>.

**Expected Outcomes**: Ideally, re-implementation of hygienic macros. Realistically, resolving some or any of the `macros` issues.\
**Skills**: Lisp/Scheme/Racket experience desired but not necessarily required.\
**Difficulty**: Medium

- **Better debug information output for variables (175 hours)**

We have part of the infrastructure in place for representing DWARF information for our variables,
but only from limited places. We could do much better since there are numerous opportunities for
improvement!

**Expected Outcomes**: Ability to see more variable, argument, and object details in gdb
**Expected Outcomes**: Ability to see more variable, argument, and object details in gdb\
**Recommended Skills**: Most of these projects involve algorithms work, requiring
a willingness and interest in seeing how to integrate with a large system.\
**Difficulty**: Medium\
Expand All @@ -51,25 +29,3 @@ Another related side-project might be to explore adding Type information to the

**Recommended Skills**: An eye for detail, a thrill for filing code issues, and the skill of breaking things.\
**Contact:** [Jameson Nash](https://github.com/vtjnash)

## Multi-threading Improvement Projects (175 hours each)

Continuous on-going work is being done to improve the correctness and threaded code.
A few ideas to get you started on how to join this effort, in brief, include:

- Measure and optimize the performance of the scheduler `partr` algorithm, and add the ability to dynamically
scale it by workload size. Or replace it with a `workstealing` implementation in Julia.

- Automatic insertion, and subsequent optimization, of GC safe-points/regions, particularly around loops.
Similarly for `ccall`, implement the ability to define a particular `ccall` as being a safe-region.

- Solve various thread-safety and data-race bugs in the runtime.
(e.g. <https://github.com/JuliaLang/julia/issues/49778> and <https://github.com/JuliaLang/julia/pull/42810>)

Join the regularly scheduled multithreading call for discussion of any of these at [#multithreading
BoF calendar invite][threadcall] on the Julia Language Public Events calendar.

[threadcall]: https://calendar.google.com/event?action=TEMPLATE&tmeid=MzQ1MnZxMGNucGt2NGQwYW1zZjA4MzM5dGtfMjAyMTAyMTdUMTYzMDAwWiBqdWxpYWxhbmcub3JnX2tvbWF1YXFldDE0ZW9nOW9pdjNwNm83cG1nQGc&tmsrc=julialang.org_komauaqet14eog9oiv3p6o7pmg%40group.calendar.google.com&scp=ALL

**Recommended Skills**: Varies by project, but generally some multi-threading and C experience is needed\
**Contact:** [Jameson Nash](https://github.com/vtjnash)

0 comments on commit 815109d

Please sign in to comment.