Skip to content

Releases: evhub/coconut

v1.2.3 [Colonel]

15 May 23:37
Compare
Choose a tag to compare

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 [Colonel]

20 Feb 07:29
Compare
Choose a tag to compare

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]

15 Feb 02:07
Compare
Choose a tag to compare

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 [Colonel]

24 Sep 20:43
Compare
Choose a tag to compare

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

v1.1.1 [Brontosaurus]

06 Jul 23:03
Compare
Choose a tag to compare

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]

24 Jun 08:21
Compare
Choose a tag to compare

Brontosaurus makes notable feature additions over v1.0.0 [Albatross], but should be fully backwards-compatible. The major changes were:

  • Adding addpattern and prepattern 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]

17 Jun 20:08
Compare
Choose a tag to compare

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

11 Apr 23:45
Compare
Choose a tag to compare

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

11 Jan 03:56
Compare
Choose a tag to compare

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

14 Dec 23:01
Compare
Choose a tag to compare

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, and open
  • 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.