Skip to content

@evhub evhub released this Jan 7, 2020

See Coconut's documentation for more information on everything listed below.

Bugfixes:

  • #527: Coconut once again builds properly on Python 2 (thanks @hasufell for the issue!)
  • #526: fixes = function definition returning string literals not working (thanks @vietspaceanh for the issue!)
  • attributes now work properly in implicit function application (e.g. f b.x c.y)
Assets 2
  • v1.4.2
  • e701423
  • Compare
    Choose a tag to compare
    Search for a tag
  • v1.4.2
  • e701423
  • Compare
    Choose a tag to compare
    Search for a tag

@evhub evhub released this Dec 9, 2019 · 15 commits to master since this release

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

Bugfixes:

  • #521: prevents Coconut from installing an incompatible version of cPyparsing by default
  • #515: prevents Coconut from installing trollius on Python 3 when doing pip install coconut[all] (thanks @DennisMitchell for the issue!)

New features:

  • #496, #506: addpattern now issues a warning if passed a non-pattern-matching function unless allow_any_func=True is passed (thanks @m-burst for the PR and @pavelbraginskiy for the issue!)
  • #517: simple implicit function application such as f x y is now supported
Assets 2
  • v1.4.1
  • 850f78c
  • Compare
    Choose a tag to compare
    Search for a tag
  • v1.4.1
  • 850f78c
  • Compare
    Choose a tag to compare
    Search for a tag

@evhub evhub released this Aug 8, 2019 · 50 commits to master since this release

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

New features:

  • #465: new addpattern def shorthand syntax (thanks @MichalMarsalek for the issue!)
  • #301, #504, #505: full support for Python 3.6 f-strings on all targets including (thanks @m-burst for the PR!)
  • #323: added support for |**> kwargs pipes (thanks @ArneBachmann for the issue!)
  • #490: new (assert) operator function (thanks @arnauorriols for the issue!)
  • #503: added support for Python 3.8 positional-only arguments (thanks @pavelbraginskiy fo the issue!)
  • #483: fmap now works on numpy arrays (thanks @hoishing for the issue!)
  • #494: added support for pattern-matching in data definitions (thanks @arnauorriols for the issue!)
  • #493: added truncation for long MatchError messages (thanks @arnauorriols for the issue!)
  • #482: added support for Python 3.8 assignment expressions under --target 3.8 (thanks @terrdavis for the issue!)
  • #446, #458: data types are now hashable (thanks @m-burst for the PR!)
  • #502: addpattern, recursive_iterator, and TCO'd functions are now pickleable
  • #488: fewer __coconut__.py files are created when compiling in --package mode

Plus lots and lots of bugfixes!

Assets 2

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

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!

Assets 2

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

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

Fixes:

Assets 2

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

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
Assets 2

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

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:

Assets 2

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

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!)
Assets 2

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

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!)
Assets 2

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

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
Assets 2
You can’t perform that action at this time.