Releases: evhub/coconut
v1.2.3 [Colonel]
See Coconut's documentation for more information on all of the features listed below.
New features:
- #237: new
fmapbuilt-in that preserves data types (thanks, @hasufell!) - #214:
data name(*args)syntax now supported - #227:
data fromsyntax for data type inheritance - #232:
--no-tcooption 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
--watchflag resolved (thanks, @Nexus6!) - #246:
condainstallation bug fixed (thanks, @bmcguirk!) - #238: dependencies weakened for easier installation (thanks, @hasufell!)
- #215: mingw/cygwin bug fixed (thanks, @marawuti!)
v1.2.2 [Colonel]
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 [Colonel]
See Coconut's documentation for more information on all of the features listed below.
New features:
--mypyflag 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
%magiccommands 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-runcommand with shebang support (e.g.#!/usr/bin/env coconut-run) - Support for
COCONUT_STYLEenvironment 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
%coconutcommand multiple times - Fixed
--watchcompiling files twice (thanks @Nexus6!) - Version restrictions on dependencies loosened
- Enhanced
reversedandenumeratebuilt-ins (thanks @Nexus6!) - Fixed calling methods on integer literals (thanks @DomoSokrat!)
v1.2.0 [Colonel]
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
--autopep8flag
New features:
- automatic tail call optimization
- statement (multiline) lambdas
- command-line syntax highlighting
--jobsflag- assignment function notation
@recursive_iterator- star pattern matching
- implicit
passfordataandclass - inline
nonlocalandglobalstatements --keeplinesflag
v1.1.1 [Brontosaurus]
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
--watchflag (#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
v1.1.0 [Brontosaurus]
Brontosaurus makes notable feature additions over v1.0.0 [Albatross], but should be fully backwards-compatible. The major changes were:
- Adding
addpatternandprepatternbuilt-ins (#92, #103) - Changing recommended file extension from
.cocto.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
pyparsing2.1.5
v1.0.0 [Albatross]
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.
[P]innate
Pinnate (v0.4.1) is the first candidate release for v1.0.0. The language has become relatively stable and is unlikely to change much until a release is selected for v1.0.0.
Massive changes have been made to Coconut since Odisha (v0.3.6). If you've been following Coconut development, you should read the new tutorial and go over the new documentation to familiarize yourself with all the changes.
Pinnate is the type of leaf on the Coconut palm.
[O]disha
Major Changes:
- New:
--packageor-pand--standaloneor-aflags for forcing the type of compilation to perform --printor-pis now--displayor-d(-dis no longer an alias of--debug)- Fixes issues in
datamutability and augmented assignment - Significantly increases compilation speed
Odisha is a part of India famous for its coconuts.
[N]ucifera
Major Changes:
- New: Built-in
consumefunction for efficiently exhausting iterators - New: Only recompiles changed files (will recompile all files if
--forceis passed) - Improves
(-)to support subtraction and negation - Improves Python-version-cross-compatibility for
str,bytes, andopen - Warns on mixing of tabs and spaces even if
--strictisn't passed - Changes
coconut.convenience.setupfunction
Cocos Nucifera is the scientific name for the coconut tree.