All Versions
13
Latest Version
Avg Release Cycle
108 days
Latest Release
1631 days ago

Changelog History
Page 1

  • v1.4.3 Changes

    January 07, 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)
  • v1.4.2 Changes

    December 09, 2019

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

    ๐Ÿ›  Bugfixes:

    • 0๏ธโƒฃ #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
  • v1.4.1 Changes

    August 08, 2019

    ๐Ÿ“š 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!

  • v1.4.0 Changes

    August 16, 2018

    ๐Ÿ“š 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 Mbindx -> 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!

  • v1.3.1 Changes

    October 23, 2017

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

    ๐Ÿ›  Fixes:

  • v1.3.0 Changes

    September 04, 2017

    ๐Ÿ“š 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!)
    • 0๏ธโƒฃ #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
  • v1.2.3 Changes

    May 15, 2017

    ๐Ÿ“š 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:

  • v1.2.2 Changes

    February 20, 2017

    ๐Ÿ›  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!)
  • v1.2.1 Changes

    February 15, 2017

    ๐Ÿ“š 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!)
  • v1.2.0 Changes

    September 24, 2016

    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