Skip to content

Latest commit

 

History

History
43 lines (30 loc) · 1.78 KB

File metadata and controls

43 lines (30 loc) · 1.78 KB

Development

Source Code Structure

The C++ source code contain is organized into the following modules:

  • base: Basic data structures (e.g., UID)
  • cmd: Command-line interface, test suite, and main entry point
  • eval: Interpreter and evaluation engine for LODA programs
  • form: Formula generation (including PARI/GP integration)
  • gen: Random program generation
  • lang: LODA language core (parser, analyzer, program representation)
  • math: Internal math library (big numbers, integer sequences)
  • mine: Mining infrastructure (generators, matchers, miners)
  • seq: Sequence data management and OEIS integration
  • sys: System utilities (file I/O, git, logging, setup, web client)

Building

LODA supports Linux, macOS, and Windows. You need a standard C++ compiler and make (or nmake on Windows). The libcurl and zlib development libraries must be available at build time.

Build Dependencies

  • C++ compiler: g++, clang++, or MSVC (C++17 support required)
  • libcurl: Development headers and library (e.g., libcurl4-openssl-dev on Debian/Ubuntu)
  • zlib: Development headers and library (e.g., zlib1g-dev on Debian/Ubuntu)

To build from source, switch to the src/ folder and run the appropriate command for your platform:

  • Linux x86_64: make -f Makefile.linux-x86.mk
  • Linux ARM64: make -f Makefile.linux-arm64.mk
  • MacOS x86_64: make -f Makefile.macos-x86.mk
  • MacOS ARM64: make -f Makefile.macos-arm64.mk
  • Windows (x86_64 and ARM64): nmake /F Makefile.windows.mk

After building, the loda executable will be copied or symlinked into the main project folder.

Testing

Run tests from the main folder using the following commands:

  • Fast tests: ./loda test-fast
  • All tests: ./loda test