Giter VIP home page Giter VIP logo

pantherlang's Introduction

Logo

Panther

Statically typed, compiled, high-performance, general-purpose programming language.

Notes:

  • This compiler is currently super early into development, so there's not any way to use it without directly editing settings in pthr/main.cpp
  • It is not robust yet. For example, it is possible to get it to have a fatal error in some cases while parsing
  • The code is not optimized yet, nor is it the absolute cleanest.
  • There are lots of features that are disallowed now but will be added at some point in the future
  • The logo may change in the future, but for now it's good enough

Goals:

These are the goals that I wish to achieve with this language / compiler. In no particular order:

  • Fast compile times
    • fast enough to compile all source code at once (create just one translation unit)
  • Nice, readable, and helpful error messages
  • Compiler helps you find mistakes (for example, nodiscard by default)
  • Zero-cost abstractions
  • Fast runtime (performance on-par with languages like C++)
  • Language helps you catch mistakes without getting in the way (so nothing like Rust's borrow-checker)
  • Seamless interop with C code (like Zig)
  • Nice, readable code
    • No preprocessor
  • Enjoyable to use
  • Run arbitrary code at compile time (like Jai)
  • Improved optimizability
    • Give the compiler more information about language constructs (without being verbose)
    • Attempt to run as much code at compile time as possible (yes, I'm aware of the halting problem)
  • The build system is in Panther (like Zig and Jai)
  • Compile-time reflection

Long Term Goals:

These are the goals I have that are for after a 1.0.0 release:

  • Rich and high-performance standard library
  • Seamless interop with C++
    • May be impractical or impossible as Panther doesn't have features like inheritance or exceptions
  • Self-hosted compiler (meaning, the Panther compiler is written in Panther)
  • Panther debugger
  • Package manager

Downloading:

git clone https://github.com/12Thanjo/Panther.git --recursive

Building:

Instructions on how to build (work on progress) can be found here.

Updates:

List of changes for each version can be found here.

pantherlang's People

Contributors

12thanjo avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Forkers

gmh5225

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.