[go: nahoru, domu]

Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
Luna Team authored and pmlodawski committed Jun 30, 2017
0 parents commit 9cfd850
Show file tree
Hide file tree
Showing 231 changed files with 26,672 additions and 0 deletions.
105 changes: 105 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
#############
## Haskell ##
#############

dist
cabal-dev
*.o
*.hi
*.chi
*.chs.h
*.dyn_o
*.dyn_hi
.hpc
.hsenv
.cabal-sandbox/
cabal.sandbox.config
*.cabal
*.prof
*.aux
*.hp
.stack-work/


############
## Python ##
############

# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
*.egg-info/
.installed.cfg
*.egg

# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*,cover
.hypothesis/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py

# Flask instance folder
instance/

# Sphinx documentation
docs/_build/

# PyBuilder
target/

# IPython Notebook
.ipynb_checkpoints

# pyenv
.python-version

# ghc-mod
.haskell-ghc-mod.json

############################
## Luna compiler specific ##
############################

build/dist/
build/.stack-work/
bin/luna
70 changes: 70 additions & 0 deletions .stylish-haskell.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
steps:
- imports:
align: group
list_align: after_alias
long_list_align: inline
list_padding: 4
separate_lists: true

- language_pragmas:
style: vertical
align: true
remove_redundant: true

- records: {}

- tabs:
spaces: 4

- trailing_whitespace: {}

columns: 200

language_extensions:
- AllowAmbiguousTypes
- ApplicativeDo
- Arrows
- BangPatterns
- BinaryLiterals
- ConstraintKinds
- DataKinds
- DefaultSignatures
- DeriveDataTypeable
- DeriveFoldable
- DeriveFunctor
- DeriveGeneric
- DeriveTraversable
- DoAndIfThenElse
- DuplicateRecordFields
- EmptyDataDecls
- FlexibleContexts
- FlexibleInstances
- FunctionalDependencies
- GeneralizedNewtypeDeriving
- InstanceSigs
- LambdaCase
- MonadComprehensions
# - MonadFailDesugaring
- MultiWayIf
- NamedWildCards
- NegativeLiterals
- NoImplicitPrelude
- NumDecimals
- OverloadedLabels
- OverloadedStrings
- PackageImports
- RankNTypes
- RecursiveDo
- ScopedTypeVariables
- StandaloneDeriving
- TemplateHaskell
- TupleSections
- TypeApplications
- TypeFamilies
- TypeFamilyDependencies
- TypeOperators
- ViewPatterns

- LiberalTypeSynonyms
- RelaxedPolyRecs
- MultiParamTypeClasses
60 changes: 60 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# Luna programming language
### Visual and textual functional programming language with a focus on productivity, collaboration and development ergonomics.

Luna is a developer’s whiteboard on steroids. Design, prototype, develop and refactor any application simply by connecting visual elements together. Collaborate with co-workers, interactively fine tune parameters, inspect the results and visually profile the performance in real-time.

Visit www.luna-lang.org to learn more!

## Getting Started

These instructions give the most direct path to a working Luna development environment.

### System Requirements

Linux (Ubuntu 14.04-LTS, 15.10), MacOS (...) and Windows (...) are officialy supported host development operating systems.

For MacOS, you need [the latest Xcode](https://developer.apple.com/xcode/downloads/) and the following dependencies:

brew install git python3 pkg-config ghc cabal-install

For Ubuntu, you'll need the following development dependencies:

sudo apt-get install git python3 haskell-platform


### Getting Sources for Luna compiler and its ecosystem tools

**Via HTTPS** For those checking out sources as read-only, HTTPS works best:

git clone https://github.com/wdanilo/luna.git
git clone https://github.com/wdanilo/workflow.git


**Via SSH** For those who plan on regularly making direct commits,
cloning over SSH may provide a better experience (which requires
uploading SSH keys to GitHub):

git clone git@github.com:wdanilo/luna.git
git clone git@github.com:wdanilo/workflow.git

### Building Luna

The `workflow/build` script is a high-level build wrapper for every project from Luna's ecosystem. To learn about the supported options, use the `help` one:

workflow/build --help

Note: Arguments after `--` above are passed directly to Haskell's build system [Stack](http://haskellstack.org).

To fast start the development use the following command:

workflow/build luna/compiler

If you want to use the newest available libraries that Luna depends on, you can use the newest available versions on GitHub instead of Hackage. It is usefull if you are developing the libraries as well and don't want to wait until Hackage propagates information about new library versions:

workflow/build --nightly luna/compiler

You can also setup fully-flagged local development workspace and use local directories to override the sources of needed libraries. You will need a `libs` directory next to `workflow` and `luna` and use the `--develop` option:

workflow/build --develop luna/compiler

If you want to release a final Luna compiler version, you can enable the highest possible optimizations and disable some tricks used for compilation fastening using the `--release` flag instead.
22 changes: 22 additions & 0 deletions circle.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
machine:
python:
version: 3.5.2

dependencies:
pre:
- curl -L https://github.com/commercialhaskell/stack/releases/download/v1.3.0/stack-1.3.0-linux-x86_64.tar.gz | tar zx -C /tmp
- sudo mv /tmp/stack-1.3.0-linux-x86_64/stack /usr/bin
override:
- stack build --stack-yaml=shell/stack.yaml --only-dependencies --fast --install-ghc --test --ghc-options="-O0"
cache_directories:
- "~/.stack"
- "shell/.stack-work"

compile:
override:
- stack build --stack-yaml=shell/stack.yaml --fast --test --no-run-tests --no-run-benchmarks --ghc-options="-j2 -O0"

test:
override:
#- if [ "$CIRCLE_BRANCH" == "master" ]; then ~/.local/bin/hlint -XTypeApplications -XRecursiveDo .; fi
- stack build --stack-yaml=shell/stack.yaml --fast --test
127 changes: 127 additions & 0 deletions core/package.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
name: luna-core
version: "0.1"
author: Luna Team <contact@luna-lang.org>
maintainer: Luna Team <contact@luna-lang.org>

library:
source-dirs:
- src
- src-libs
other-modules: Paths_luna_core

flags:
debug:
manual: false
default: false

when:
- condition: flag(debug)
cpp-options: -DDEBUG

benchmarks:
graph-builder:
main: Main.hs
source-dirs: test/bench
dependencies:
- criterion
- luna-core

tests:
spec:
main: Main.hs
source-dirs: test/spec
dependencies:
- luna-core
- directory
- filepath
- hspec
- hspec-jenkins
- open-browser

dependencies:
- aeson
- base
- binary
- data-base
- data-construction
- dependent-state
- ghc
- mtl
- prologue
- transformers
- ansi-wl-pprint # from now on src-libs deps vvv
- bytestring
- constraints
- container
- convert
- data-default
- data-prop
- data-rtuple
- either
- exceptions
- functor-utils
- hspec
- lens
- lens-utils
- open-browser
- primitive
- reflection
- template-haskell
- text
- time
- time-locale-compat
- typelevel
- vector
- ansi-terminal
- text-processing
- vector-text
- ansi-terminal
- terminal-text

default-extensions:
- AllowAmbiguousTypes
- ApplicativeDo
- Arrows
- BangPatterns
- BinaryLiterals
- ConstraintKinds
- DataKinds
- DefaultSignatures
- DeriveDataTypeable
- DeriveFoldable
- DeriveFunctor
- DeriveGeneric
- DeriveTraversable
- DoAndIfThenElse
- DuplicateRecordFields
- EmptyDataDecls
- FlexibleContexts
- FlexibleInstances
- FunctionalDependencies
- GeneralizedNewtypeDeriving
- InstanceSigs
- LambdaCase
- MonadComprehensions
# - MonadFailDesugaring
- MultiWayIf
- NamedWildCards
- NegativeLiterals
- NoImplicitPrelude
- NumDecimals
- OverloadedLabels
- PackageImports
- QuasiQuotes
- RankNTypes
- RecursiveDo
- ScopedTypeVariables
- StandaloneDeriving
- TemplateHaskell
- TupleSections
- TypeApplications
- TypeFamilies
- TypeFamilyDependencies
- TypeOperators
- ViewPatterns

- LiberalTypeSynonyms
- RelaxedPolyRec
Loading

0 comments on commit 9cfd850

Please sign in to comment.