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 doingpip install coconut[all]
(thanks @DennisMitchell for the issue!)
๐ New features:
- #496, #506:
addpattern
now issues a warning if passed a non-pattern-matching function unlessallow_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
- 0๏ธโฃ #521: prevents Coconut from installing an incompatible version of
-
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!
- #465: new
-
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
M
bindx -> 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 of0
- #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 asf..(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
. Seev1.3.0
below for all the most recently added features.๐ Fixes:
- ๐ #326: fixed Jupyter kernel installation (thanks, @auscompgeek!)
- ๐ #333: fixed
--watch
placing compiled files in the wrong location (thanks, @dileep-kishore!) - ๐ #337: fixed
--jupyter console
on Windows (thanks, @mlarocca!) - ๐ #317: fixed numerous MyPy errors (thanks, @ArneBachmann!)
-
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 newmakedata
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
andBytesIO
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:
- #221, #234: Jupyter kernel issues resolved (thanks, @cgarciae!)
- #224, #189: issues with
--watch
flag resolved (thanks, @Nexus6!) - ๐ #246:
conda
installation bug fixed (thanks, @bmcguirk!) - #238: dependencies weakened for easier installation (thanks, @hasufell!)
- ๐ #215: mingw/cygwin bug fixed (thanks, @marawuti!)
- #237: new
-
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
andenumerate
built-ins (thanks @Nexus6!) - ๐ Fixed calling methods on integer literals (thanks @DomoSokrat!)
-
v1.2.0 Changes
September 24, 2016Colonel 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
fordata
andclass
- inline
nonlocal
andglobal
statements --keeplines
flag
- โ removed