Skip to content

Development Tools

Julia development tools, compilers, debuggers, DevOps.

Organizations

Resources

Static analysis

  • aviatesk/JET.jl : experimental code analyzer for Julia.
  • JuliaLang/AllocCheck.jl : a Julia package that statically checks if a function call may allocate by analyzing the generated LLVM IR of it and its callees.
  • tonyhffong/Lint.jl : A lint tool to hunt for imperfections and dodgy structures that could be improved for Julia code.

Style Guidelines

Official Julia style guide

Developing Julia packages

Package registry

Package templates

Prebuilt Binaries


Compilers

Test-driven development (TDD)


Logging

See also the built-in Julia logging facilities.

Benchmarking and Regression Testing


Debugger


  • dfdx/Ghost.jl : a code tracer for the Julia programming language. It lets you trace the function execution, recording all primitive operations onto a linearized tape.
  • JuliaDebug/Debugger.jl : Julia debugger using the @enter macro.
  • JuliaDebug/Infiltrator.jl : @infiltrate macro sets a "breakpoint" in a local context. All code is completely compiled.
  • JuliaDebug/JuliaInterpreter.jl : Interpreter for Julia code.
  • JuliaIO/Suppressor.jl : Julia macros for suppressing output (STDOUT), warnings (STDERR) or both streams at the same time.
  • MasonProtter/ToggleableAsserts.jl : Assertions that can be turned on or off with a switch, without runtime penalty when they're off.
  • timholy/Rebugger.jl : An expression-level debugger for Julia, sans the ability to interact with or manipulate call stacks, but it can trace execution via the manipulation of Julia expressions.

Documentation and report generation

Julia docstrings

Integrated development environment (IDE)

Julia editor suport organization.

Emacs

Vim

Jupyter Notebooks

Jupyter

Web IDE

Wikipedia: web IDE

Shell scripting

GUI

Continuous integration (CI) providers

PkgTemplates.jl and PkgSkeleton.jl can generate the CI/CD configuration files.

Gitlab-CI

  • GitlabJuliaDemo.jl : A minimal example for setting up CI with Julia on Gitlab. The blog post describing how a Julia package repo in Gitlab can be setup with continuous integration and coverage summary. A sample CI file .gitlab-ci.yml is here.

GitHub

GitHub actions for Julia. A sample CI file can be accessed here.

Containers and Virtualization

Virtualization