GithubHelp home page GithubHelp logo

krytarowski / mindy Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dylan-hackers/mindy

0.0 2.0 0.0 12.7 MB

Mindy - Mindy Is Not Dylan Yet - is a compiler, interpreter and base set of libraries for the Dylan language. It is not fully compliant, but it is very hackable.

License: Other

CMake 0.64% HTML 0.89% XSLT 0.18% Dylan 65.01% C 31.05% Groff 0.15% Lex 0.26% Yacc 1.23% C++ 0.54% Objective-C 0.03% Makefile 0.02%

mindy's Introduction

mindy

Join the chat at https://gitter.im/project-mindy/mindy https://travis-ci.org/project-mindy/mindy.svg?branch=master https://circleci.com/gh/project-mindy/mindy.svg?style=svg

Mindy is an implementation of a language that is very much like the language described in the Dylan Reference Manual (DRM). Mindy was named for "Mindy Is Not Dylan Yet", and it still is and will probably always remain a Dylan subset, primarily because mindycomp doesn’t do enough semantic analysis to implement macros or to implement the precise semantics of Dylan naming.

What is Dylan?

... Put more info here in the near future ...

Building and Installing Mindy

Mindy has very few dependencies:

  • flex
  • bison
  • cmake
  • ninja or make on all but Windows.
  • A C compiler that cmake and ninja or make know how to drive.

Packages for these are typically available on all platforms or may already be installed by default.

Mac OS X with homebrew (and Xcode already installed):

brew install cmake ninja

Mindy comes with a build system that uses cmake.

We recommend doing your build with ninja rather than make as it is significantly faster and therefore more enjoyable.

We also recommend using a separate directory for your build rather than doing it directly in the source directory. Fortunately, this is very easy to do.

mkdir build
cd build
cmake .. -G Ninja
ninja
ninja test

Building Documentation

If you want to build the documentation, make sure that you've installed Sphinx and then pass -DMINDY_BUILD_DOCS=ON when invoking cmake:

cmake .. -G Ninja -DMINDY_BUILD_DOCS=ON

Also, make sure that you've gotten the Git submodules along with the sources for this repository. You can do this by cloning recursively:

git clone --recursive https://github.com/project-mindy/mindy.git

If you've already cloned the repository, then you can:

git submodule update --init --recursive

The documentation will be present in your build directory in documentation/html.

Learning More

We'll link here when the documentation has been revived and placed online.

What Can You Do?

Apart from just using mindy, you're more than welcome to help us develop it further and improve it.

  • You can talk to us on Gitter (similar to Slack).
  • You can also talk to us on IRC in #dylan on irc.freenode.net if you prefer.
  • Join our mailing list.
  • Check out our list of open issues or our list of open easy issues.

Why Mindy?

Since we already have Open Dylan, why is Mindy useful?

  • It is very easy to compile and use.
  • It is very fast to compile code (despite running it more slowly).
  • It is a very small and self-contained code base, so it is easy to hack on and experiment with.
  • The built-in debugger is pretty powerful and convenient.
  • It may be useful as an embedded scripting engine.

Why not Mindy?

  • It doesn't implement the full Dylan language. Notably, macros and limited collections are not implemented.
  • Mindy is less functional and less complete than Open Dylan.
  • The libraries are less complete and less up to date.
  • The interpreter isn't terribly fast (although it may be fast enough).
  • The compiler doesn't do much analysis or modeling, so it isn't capable of doing much error checking, reporting or other diagnostics.

mindy's People

Contributors

housel avatar andreasdotorg avatar ggreif avatar emk avatar waywardmonkeys avatar robmacl avatar brucehoult avatar jdubrule avatar noahgibbs avatar promovicz avatar treerex avatar ndarilek avatar hannesm avatar hoelzl avatar sparkhom avatar wvdschel avatar cgay avatar doublec avatar krytarowski avatar magnusjonsson avatar phongphan avatar dram avatar baragent avatar scotek avatar gitter-badger avatar timpritlove avatar kaveman- avatar

Watchers

James Cloos avatar  avatar

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.