Developer Guide

Welcome to the Giac.jl Developer Guide. This documentation is intended for developers who want to contribute to Giac.jl or understand its internal architecture.

Audience

This guide is for:

  • Contributors wanting to add new mathematical functions
  • Maintainers needing to understand the codebase
  • Advanced users curious about performance optimization

Prerequisites

Before diving in, you should be familiar with:

  • Julia programming fundamentals
  • Basic understanding of C/C++ interop concepts
  • Git version control

Guide Contents

Package Architecture

Understand how Giac.jl is structured, including the purpose of each source file and how they interact.

Performance Tiers

Learn about the three-tier performance system that powers Giac.jl's function calls, from high-performance C++ wrappers to flexible string evaluation.

Adding Functions

Step-by-step guides for adding new mathematical functions at each tier level.

Memory Management

Understand how Giac.jl manages memory for C++ objects, including finalizers and thread safety.

Troubleshooting

Common issues and debugging strategies for development work.

Quick Reference

TaskWhere to Start
Add a new high-performance functionPerformance Tiers then Adding Functions
Understand the codebasePackage Architecture
Debug a crash or memory issueMemory Management then Troubleshooting
Fix a failing testTroubleshooting

Getting Started

  1. Clone the repository and set up your development environment
  2. Read the Package Architecture to understand the codebase structure
  3. Familiarize yourself with the Performance Tiers system
  4. Follow the Adding Functions guide for your contribution

Version Compatibility

This documentation applies to Giac.jl v0.x (current development version). API and internal structure may change before v1.0.