Skip to content

JohnDTill/Forscape

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Forscape

A language and editor for scientific computation

alt text

Focus on the problem, not the implementation details

Forscape aims to solve engineering problems with low-cost abstraction, safety checks, and an intuitive user experience. The editor supports math rendering so that objects such as matrices, fractions, and symbols can be programmed in parity with scientific papers and notes.

alt text

Forscape has particular emphasis on matrices. Standard matrix operations such as multiplication, norm, cross product, transpose, etcetera are supported with mathematical syntax.

alt text

The editor code-model interaction has various features for matrices. The syntax highlighting will bold matrix identifiers. Where possible, dimensions are checked at compile time with violations highlighted in real time while typing. Hovering over an identifier will show the compile-time dimensions in the tooltip.

alt text

Installation

But first, a warning. Forscape is in early alpha. Feedback and bug reports are welcome, but backward compatibility will be broken. The language syntax will be broken. The file encoding will be broken. Crashes are likely.

Windows

Download and run ForscapeInstaller_Win64.exe. Alternately, install the development prerequisites listed below and compile from source.

Linux

Compile from source following the instructions in source_instructions.sh.

Development Prerequisites

  • Qt5/6 (https://www.qt.io/download)
    • QtSvg module
  • Python3 on the system path
  • Conan (after installing, pick up the Qt plugin for easy use)

Optional

  • GraphViz on system path for debugging AST

External libraries / assets (no setup required)

License

This project aims to be financially maintainable while ultimately resulting in an entirely open source codebase. The core is licensed under the MIT License - see the LICENSE file for details. Additional modules will be sold commercially for a fixed period starting at release, after which they will be added to the open source core.

Contributing

Creating solid design foundations is a current challenge, but this work is interesting and anyone who is willing to tolerate a bit of ambiguity between prototype and production code may enjoy contributing. Forscape development is about learning, having fun, and embracing the Neumann architecture.

Progress and feature ideas are tracked in a Jira board and backlog. Tests are run automatically by GitHub runners and required to pass before merging to main. There is no official communication outlet yet -- feel free to reach out to me directly with questions or interest.

There is no documentation yet, either user or design docs. Crafting Interpreters is an excellent programming-languages primer and instant classic for anyone wanting to experiment with languages.

C++ Integration Tests (ubuntu-latest gcc)

C++ Integration Tests (ubuntu-latest gcc 32-bit)

C++ Integration Tests (ubuntu-latest clang)

C++ Integration Tests (windows-latest msbuild)

C++ Integration Tests (macos-latest)

Qt Integration Tests (ubuntu-latest gcc)

Qt Integration Tests (macos-latest)

Qt Integration Tests (Qt6, ubuntu-latest gcc)

Forscape App Compiles And Runs (ubuntu-latest gcc)

Publish Windows Installer

Build from source (ubuntu-latest gcc)