ⓘ Due to COVID-19, CANOSP will operate virtually for the Winter 2022 semester, including an online Code Sprint.
Code Sprint - Fall 2021

Code Sprint - Fall 2021

This semester, we have 4 exciting projects:

Automated JIT Compiler Debugging Agent

The JIT compiler, and hence the JVM, is a non-deterministic program. While the output of a Java program is predictable each time the JVM executes it, the manner in which the JVM executes that program is not. There are a variety of reasons for this, including memory/CPU resource availability at execution time, timing of triggering JIT compilation, varying profiling metrics between runs, hardware support, and environmental settings.

Because the JVM is a non-deterministic program, it is often found that defects in the JVM are intermittent. Intermittent defects are software defects that do not occur 100% of the time that the program/test is run. The reasons for intermittency are the same reasons outline above, i.e. the JIT is a non-deterministic program and hence compilations can look different in different environment settings. This project aims to automate JIT compiler debugging by reducing the problem space using key insights into the JIT compilation process.

Participating Students

  • Qasim Khawaja (University of Alberta)
  • Shane Killoran (University of British Columbia)

Project Mentors

  • Filip Jeremic
  • Rahil Shah

Code Sprint Presentation

Eclipse Adoptium and Eclipse AQAvit

Adoptium is a community-driven, open-source project dedicated to building, testing and distributing high-quality, fully-testing OpenJDK binaries to the Java community. AQAvit (Adoptium Quality Assurance vitality project) is an ever-evolving program to “make quality certain to happen”. We create tools and innovate in the area of software verification, bringing research and prototypes to production grade solutions as part of our mission to provide high-quality OpenJDK binaries.

Participating Students

  • Amanda Nguyen (University of Alberta)
  • Paul Saunders (University of Alberta)
  • Shiyu Xiu (University of Alberta)

Project Mentors

  • Shelley Lambert
  • Lan Xia
  • Sophia Guo

Code Sprint Presentation

Language Server for Eclipse Jakarta EE (IBM)

Develop a language server and the associated Eclipse client for the set of open cloud-native Java APIs in Eclipse Jakarta EE to boost developer productivity. Eclipse Jakarta EE is an open source community-driven collaboration on defining and innovating on the next generation of cloud-native Java APIs.

The Language Server Protocol (LSP) enables language-specific assistance for IDEs and editors such as validations, auto-complete etc to be built in a common reusable way.

This project looks to develop a common Language Server using the Language Server Protocol for Jakarta EE APIs and the associated client for the Eclipse IDE.

Participating Students

  • Alvin Tan (McGill University)
  • Ananya Rao (University of Alberta)
  • Daniil Tiganov (University of Alberta)
  • Himanshu Chotwani (University of British Columbia)
  • Shaunak Tulshibagwale (University of British Columbia)
  • Zijian Pei (McGill University)

Project Mentors

  • Yee-Kang (YK) Chang
  • Kevin Sutter
  • Kathryn Kodama
  • Eric Lau

Code Sprint Presentation

Review Board (Beanbag)

Review Board is a powerful web-based code review tool that helps developers do peer review as they write code. Code review is a standard industry practice used to find bugs, improve quality, and mentor junior engineers.

Review Board is used by thousands of software companies including Yelp, LinkedIn, and VMware, as well as many open-source projects like Apache.

Students working on Review Board will have the opportunity to learn about back-end web development using Python and Django, as well as front-end development using HTML, CSS, Javascript, jQuery, and Backbone.js. Source control is managed via Git on GitHub. All patches are reviewed using Review Board, and students will be participating in the code review process.

Participating Students

  • Akim Ruslanov (University of British Columbia)
  • Cynthia (Lanhui) Shi (McGill University)
  • Jordan Van Den Bruel (University of Alberta)
  • Matthew Goodman (McGill University)
  • Michelle Aubin (University of Alberta)
  • Michelle Wang (University of Alberta)
  • Sandy Saji (University of Alberta)

Project Mentors

  • Mike Conley
  • David Trowbridge
  • Christian Hammond

Code Sprint Presentation

Participating Project Organizations

Eclipse Adoptium and Eclipse AQAvit Eclipse Foundation    IBM    Review Board

Participating Educational Institutions

University of Alberta    University of British Columbia McGill University