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
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!)
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:
--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 [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
--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
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
--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
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
addpattern
andprepattern
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
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:
--package
or-p
and--standalone
or-a
flags for forcing the type of compilation to perform --print
or-p
is now--display
or-d
(-d
is no longer an alias of--debug
)- Fixes issues in
data
mutability and augmented assignment - Significantly increases compilation speed
Odisha is a part of India famous for its coconuts.
[N]ucifera
Major Changes:
- New: Built-in
consume
function for efficiently exhausting iterators - New: Only recompiles changed files (will recompile all files if
--force
is 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
--strict
isn't passed - Changes
coconut.convenience.setup
function
Cocos Nucifera is the scientific name for the coconut tree.