@evhub evhub released this Aug 16, 2018 · 9 commits to master since this release

Assets 2

See Coconut's documentation for more information on all of the features listed below.

New features:

  • #320: added import hook to automatically compile imported Coconut files (thanks @ArneBachmann!)
  • #347: added where clauses
  • #270: added a memoize decorator (thanks @iamrecursion!)
  • #403: added a TYPE_CHECKING constant
  • #409: added support for M `bind` x -> y syntax
  • #419: data type equality is now typed (thanks everyone in #418!)
  • #331: support negative pattern-matching with match ... not in ...
  • #411: count now supports a step size of 0
  • #394: scan now has an initializer argument
  • #398: creating a new indented block after a colon is no longer necessary for any statement
  • #229: --strict now warns on unused imports
  • #327: interpreter now supports reload built-in (thanks, @ArneBachmann!)
  • #382: interpreter now supports compiling to arbitrary file names
  • #393: unicode operators for multiplication and matrix multiplication have been switched
  • #153: function composition precedence is now such that f..g(x) is the same as f..(g(x)) not (f..g)(x)
  • #395: built-in attributes changed to remove initial underscores

Plus lots and lots of bugfixes!

@evhub evhub released this Oct 23, 2017 · 234 commits to master since this release

Assets 2

This is a bugfix release for v1.3.0. See v1.3.0 below for all the most recently added features.

Fixes:

@evhub evhub released this Sep 4, 2017 · 283 commits to master since this release

Assets 2

See Coconut's documentation for more information on all of the features listed below.

New features:

  • #220: new function composition pipe operators (thanks, @cgarciae!)
  • #243: new none-aware operators
  • #200: new enhanced type annotation syntax (thanks, @fredcallaway!)
  • #257: data types now support default arguments
  • #276: data types now support type annotations (thanks, @jonathanplatzer!)
  • #275: pipes and infix calls now support lambdas in them
  • #256: new string destructuring pattern-matching
  • #267: improved dictionary pattern-matching (thanks, @cgarciae!)
  • #284: new starmap built-in
  • #271: new reiterable built-in (thanks, @pchampin!)
  • #266: new scan built-in
  • #297, #309: new groupsof built-in (thanks, @kbaskett248!)
  • #303: datamaker deprecated in favor of new makedata built-in
  • #283: prepattern deprecated
  • #282: fmap of a mapping now iterates over its .items()
  • #286: new --argv command-line option
  • #300: Coconut now installable via conda
  • #53: now supports cPyparsing for faster parsing

Fixes:

  • #280: fixed infix notation associativity
  • #268: tail call optimization now significantly faster
  • #147: removed interpreter lag on first line of code
  • #279: prettier interpreter errors
  • #298: pattern-matching function docstrings now actually get bound to __doc__
  • #285: type: ignore comments now work properly
  • #255: fixed nested attribute getter implicit partial (thanks, @Socialery!)
  • #269: fixed segfault in non-iterator functions (thanks, @pchampin!)
  • #264: fixed recursive_iterator error (thanks, @pchampin!)
  • #308: fixed importing StringIO and BytesIO on Python 2 (thanks, @cgarciae!)
  • #295: fixed Cygwin error (thanks, @halloleo!)
  • #288: fixed Pythonista installation error (thanks, @iamrecursion!)
  • #277: fixed Jupyter kernel installation error (thanks, @petrilli!)
  • #311: now gracefully handles old pyparsing versions
  • #294: piping into partials no longer creates intermediate partial objects

@evhub evhub released this May 15, 2017 · 604 commits to master since this release

Assets 2

See Coconut's documentation for more information on all of the features listed below.

New features:

  • #237: new fmap built-in that preserves data types (thanks, @hasufell!)
  • #214: data name(*args) syntax now supported
  • #227: data from syntax for data type inheritance
  • #232: --no-tco option to disable tail call optimization (also implied by --mypy)
  • #228: .method(**kwargs) implicit partial now supported
  • #231: .[a:b, c:d] implicit partial now supported (thanks, @cgarciae!)
  • #226: PEP 542 dotted function names now supported

Fixes:

@evhub evhub released this Feb 20, 2017 · 787 commits to master since this release

Assets 2

See the previous release, v1.2.1, for information on recently released features. v1.2.2 is simply a bugfix release for v1.2.1.

Fixes:

  • Version-dependent requirements are now properly installed when installing Coconut (thanks @Nexus6!)
  • Jupyter kernel works properly on Python 2 (thanks @DavidPratten!)
  • Jupyter kernel performance significantly improved (thanks @cgarciae!)
  • MyPy support is faster and emits fewer spurious errors
  • Fails nicely on missing optional dependencies (thanks @Nexus6!)

@evhub evhub released this Feb 15, 2017 · 816 commits to master since this release

Assets 2

See Coconut's documentation for more information on all of the features listed below.

New features:

  • --mypy flag for automatic type-checking (including real-time in the REPL)
  • Support for Python type annotations on all versions
  • New enhanced partial application (e.g. func$(?, y)) (thanks @Sitwon!)
  • Tail recursion elimination added in addition to tail call optimization
  • Support for %magic commands on Coconut's Jupyter kernel
  • Syntax highlighting for Coconut's Jupyter kernel
  • Support for keyword and star arguments in pattern-matching function definition
  • Support for pattern-matching in statement lambdas (e.g. def (x is int) -> x)
  • Adds coconut-run command with shebang support (e.g. #!/usr/bin/env coconut-run)
  • Support for COCONUT_STYLE environment variable for setting a default --style
  • New CONTRIBUTING.md
  • New Czech translation (thanks @Tovim!)

Fixes:

  • Method calls are now valid implicit partials (e.g. .method(args))
  • Compilation speed significantly increased
  • Fixed running IPython %coconut command multiple times
  • Fixed --watch compiling files twice (thanks @Nexus6!)
  • Version restrictions on dependencies loosened
  • Enhanced reversed and enumerate built-ins (thanks @Nexus6!)
  • Fixed calling methods on integer literals (thanks @DomoSokrat!)

@evhub evhub released this Sep 24, 2016 · 1059 commits to master since this release

Assets 2

Colonel is the next major release of Coconut, and makes major feature additions and minor breaking changes over v1.1.1 [Brontosaurus]. See the updated documentation for more information on everything below.

Breaking changes:

  • removed @recursive (now does auto tco)
  • function composition (..) precedence changed
  • removed --autopep8 flag

New features:

  • automatic tail call optimization
  • statement (multiline) lambdas
  • command-line syntax highlighting
  • --jobs flag
  • assignment function notation
  • @recursive_iterator
  • star pattern matching
  • implicit pass for data and class
  • inline nonlocal and global statements
  • --keeplines flag

@evhub evhub released this Jul 6, 2016 · 1518 commits to master since this release

Assets 2

v1.1.1 [Brontosaurus] makes only minor feature additions over v1.1.0 [Brontosaurus], and should be fully backwards-compatible. The major changes were:

  • Adding a --watch flag (#99, #106, thanks @Boscillator!)
  • Improving Jupyter / IPython console autocompletion (#114)
  • Adding methodcaller implicit partial (#112)
  • Adding links to 3rd party Vim and Emacs highlighters (thanks, @manicmaniac and @NickSeagull!)
  • Adding pip install coconut[...] as a way to install optional dependencies

@evhub evhub released this Jun 24, 2016 · 1557 commits to master since this release

Assets 2

Brontosaurus makes notable feature additions over v1.0.0 [Albatross], but should be fully backwards-compatible. The major changes were:

  • Adding addpattern and prepattern built-ins (#92, #103)
  • Changing recommended file extension from .coc to .coco (#88)
  • Making interpreter print the result of an expression (#100, thanks @Boscillator!)
  • Fixing IPython / Jupyter kernel support (#97)
  • Adding support for guards in pattern-matching function definition (#98)
  • Upgrading to pyparsing 2.1.5

@evhub evhub released this Jun 17, 2016 · 1599 commits to master since this release

Assets 2

Albatross is the first production release (v1.0.0) of the Coconut programming language. No new features have been added since Pinnate (v0.4.1), although there have been major stability improvements. For documentation, see our new website at http://coconut-lang.org.