Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 21 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,11 +1,28 @@
.stack-work/
purescript-python.cabal
*~

.idea/
stack.yaml.lock

# for making statically built libs
pspy-blueprint-*.zip

.DS_Store
pspy-blueprint
stack.yaml.lock
.DS_Store
pspy-blueprint

# purescript
passing/bower_components/
passing/node_modules/
passing/.pulp-cache/
passing/output/
passing/generated-docs/
passing/.psc-package/
passing/.psc*
passing/.purs*
passing/.psa*
passing/.spago

# purescript-python
passing/.pure-py/
passing/passing
passing/**.src.py
170 changes: 86 additions & 84 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,85 +1,87 @@
# This is the complex Travis configuration, which is intended for use
# on open source libraries which need compatibility across multiple GHC
# versions, must work with cabal-install, and should be
# cross-platform. For more information and other options, see:
#
# https://docs.haskellstack.org/en/stable/travis_ci/
#
# Copy these contents into the root directory of your Github project in a file
# named .travis.yml

# Run jobs on Linux unless "os" is specified explicitly.
os: linux

# Do not choose a language; we provide our own build tools.
language: generic

# Caching so the next build will be fast too.
cache:
directories:
- $HOME/.ghc
- $HOME/.cabal
- $HOME/.stack

jobs:
include:
- env: BUILD=stack ARGS="--resolver lts-13.26"
compiler: ": #stack 8.6.5"
addons: {apt: {packages: [libgmp-dev]}}

# Travis includes an macOS which is incompatible with GHC 7.8.4
#- env: BUILD=stack ARGS="--resolver lts-2"

- env: BUILD=stack ARGS="--resolver lts-13.26"
compiler: ": #stack 8.6.5 osx"
os: osx


allow_failures:
- env: BUILD=cabal GHCVER=head CABALVER=head HAPPYVER=1.19.5 ALEXVER=3.1.7
- env: BUILD=stack ARGS="--resolver nightly"

before_install:
# Using compiler above sets CC to an invalid value, so unset it
- unset CC

# We want to always allow newer versions of packages when building on GHC HEAD
- CABALARGS=""
- if [ "x$GHCVER" = "xhead" ]; then CABALARGS=--allow-newer; fi

# Download and unpack the stack executable
- export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$HOME/.local/bin:/opt/alex/$ALEXVER/bin:/opt/happy/$HAPPYVER/bin:$HOME/.cabal/bin:$PATH
- mkdir -p ~/.local/bin
- |
if [ `uname` = "Darwin" ]
then
travis_retry curl --insecure -L https://get.haskellstack.org/stable/osx-x86_64.tar.gz | tar xz --strip-components=1 --include '*/stack' -C ~/.local/bin
else
travis_retry curl -L https://get.haskellstack.org/stable/linux-x86_64.tar.gz | tar xz --wildcards --strip-components=1 -C ~/.local/bin '*/stack'
fi

# Use the more reliable S3 mirror of Hackage
mkdir -p $HOME/.cabal
echo 'remote-repo: hackage.haskell.org:http://hackage.fpcomplete.com/' > $HOME/.cabal/config
echo 'remote-repo-cache: $HOME/.cabal/packages' >> $HOME/.cabal/config

script:
- |
set -ex
stack --no-terminal build
set +ex


before_deploy:
- source ./travis-env.sh
- git tag $RELEASE_TAG

deploy:
provider: releases
api_key: $GITHUB_TOKEN
file: $ZIP_FILE
skip_cleanup: true
draft: true

after_deploy:
# This is the complex Travis configuration, which is intended for use
# on open source libraries which need compatibility across multiple GHC
# versions, must work with cabal-install, and should be
# cross-platform. For more information and other options, see:
#
# https://docs.haskellstack.org/en/stable/travis_ci/
#
# Copy these contents into the root directory of your Github project in a file
# named .travis.yml

# Run jobs on Linux unless "os" is specified explicitly.
os: linux

# Do not choose a language; we provide our own build tools.
language: generic

# Caching so the next build will be fast too.
cache:
directories:
- $HOME/.ghc
- $HOME/.cabal
- $HOME/.stack

jobs:
include:
- env: BUILD=stack ARGS="--resolver lts-13.26"
compiler: ": #stack 8.6.5"
addons: {apt: {packages: [libgmp-dev]}}

# Travis includes an macOS which is incompatible with GHC 7.8.4
#- env: BUILD=stack ARGS="--resolver lts-2"

- env: BUILD=stack ARGS="--resolver lts-13.26"
compiler: ": #stack 8.6.5 osx"
os: osx


allow_failures:
- env: BUILD=cabal GHCVER=head CABALVER=head HAPPYVER=1.19.5 ALEXVER=3.1.7
- env: BUILD=stack ARGS="--resolver nightly"

before_install:
# Using compiler above sets CC to an invalid value, so unset it
- unset CC

# We want to always allow newer versions of packages when building on GHC HEAD
- CABALARGS=""
- if [ "x$GHCVER" = "xhead" ]; then CABALARGS=--allow-newer; fi

# Download and unpack the stack executable
- export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$HOME/.local/bin:/opt/alex/$ALEXVER/bin:/opt/happy/$HAPPYVER/bin:$HOME/.cabal/bin:$PATH
- mkdir -p ~/.local/bin
- |
if [ `uname` = "Darwin" ]
then
travis_retry curl --insecure -L https://get.haskellstack.org/stable/osx-x86_64.tar.gz | tar xz --strip-components=1 --include '*/stack' -C ~/.local/bin
else
travis_retry curl -L https://get.haskellstack.org/stable/linux-x86_64.tar.gz | tar xz --wildcards --strip-components=1 -C ~/.local/bin '*/stack'
fi

# Use the more reliable S3 mirror of Hackage
mkdir -p $HOME/.cabal
echo 'remote-repo: hackage.haskell.org:http://hackage.fpcomplete.com/' > $HOME/.cabal/config
echo 'remote-repo-cache: $HOME/.cabal/packages' >> $HOME/.cabal/config

script:
- |
set -ex
stack --no-terminal build
stack --no-terminal install
set +ex


before_deploy:
- source ./travis-env.sh
- source ./ci-passing.sh
- git tag $RELEASE_TAG

deploy:
provider: releases
api_key: $GITHUB_TOKEN
file: $ZIP_FILE
skip_cleanup: true
draft: true

after_deploy:
- ./pspy-blueprint || echo "done"
Empty file added 0.8
Empty file.
18 changes: 18 additions & 0 deletions ChangeLog.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,21 @@
to `throw Error("a" + ",".join(["b", "c"]))`.

\*Further optimizations can be done later.


2020-03-04: Version 0.1.2.0(Preview)
---------------------------------

0. codegen behavior: add default value `None` for each function argument. fix #10
1. faster codegen: avoid pretty print when not specified. #13
2. lighter volume: for generated files. type level computing can produce huge amount of code, to make generated code Git maintainable, we use bzip2 to compress stuffs. #13
3. options for pspy-blueprint changed.


2020-03-05: Version 0.1.2.0(Preview)
---------------------------------

- special optimization for repeating indices and attribute access.
- the `topdown` file format to allow Python to load large scale code.
- tagless final approach to support multiple data formats of output IR for codegen,
check `Topdown/{Raw.hs, Topdown.hs, Pretty.hs}.`.
Loading