2022-09-25 23:08:24 +02:00
|
|
|
# Changelog
|
|
|
|
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
|
|
|
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
|
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
|
|
2022-10-23 12:24:32 +02:00
|
|
|
## [Unreleased]
|
|
|
|
|
2022-12-01 00:52:53 +01:00
|
|
|
### Added
|
|
|
|
|
|
|
|
- Printing version number on non-quiet launch, or when provided `--version` or `:version`
|
|
|
|
- Builtin function documentation generation from C++ Musique implementation source code
|
2022-12-30 15:30:50 +01:00
|
|
|
- New builtins: digits
|
2022-12-01 00:52:53 +01:00
|
|
|
|
|
|
|
### Removed
|
|
|
|
|
|
|
|
- Release builder, since it's separate part of the project
|
|
|
|
|
2022-11-28 02:12:25 +01:00
|
|
|
## [0.3.1]
|
|
|
|
|
2022-11-21 17:03:14 +01:00
|
|
|
### Fixed
|
|
|
|
|
|
|
|
- release build script was producing executable with wrong path
|
|
|
|
- `examples/for-elise.mq` had bug in it
|
|
|
|
- in error reporting printing garbage instead of function name was fixed
|
2022-11-28 02:12:25 +01:00
|
|
|
- sending proper program change message
|
2022-11-21 17:03:14 +01:00
|
|
|
|
|
|
|
## [0.3.0]
|
|
|
|
|
2022-10-27 00:27:41 +02:00
|
|
|
### Added
|
|
|
|
|
2022-10-31 19:12:56 +01:00
|
|
|
- new builtins: map, while, set_len, set_oct, duration, pick
|
2022-10-27 21:03:37 +02:00
|
|
|
- `<note><octave>` notation like `c4` that mimics [scientific notation](https://en.wikipedia.org/wiki/Scientific_pitch_notation)
|
2022-10-28 00:56:11 +02:00
|
|
|
- operator pretty printing while printing values
|
2022-10-31 19:12:56 +01:00
|
|
|
- macros: builtin functions that takes AST and produces value
|
2022-11-11 19:24:45 +01:00
|
|
|
- early text-based snapshot system available via `:snap` command inside interactive session
|
2022-11-12 01:25:16 +01:00
|
|
|
- polish basic tutorial
|
2022-10-27 00:27:41 +02:00
|
|
|
|
2022-10-23 12:24:32 +02:00
|
|
|
### Changed
|
|
|
|
|
|
|
|
- Block can be called with more parameters then it requires
|
2022-10-27 00:27:41 +02:00
|
|
|
- reorganized fold argument order
|
2022-10-27 21:09:46 +02:00
|
|
|
- Moved from `(<note> <octave> <length>)` invocation to `(<note> <length>)`
|
2022-10-31 19:12:56 +01:00
|
|
|
- Moved from '[]' to '()' notation for blocks
|
|
|
|
- Moved from `a.n` index operator to `a[n]`
|
|
|
|
- Moved from ';' to ',' notation for expression separator
|
|
|
|
- Moved 'if', 'while' from beeing functions to macros - side effect of new notation
|
2022-10-31 22:29:43 +01:00
|
|
|
- Build system uses now Docker
|
2022-11-11 21:55:31 +01:00
|
|
|
- Array repetition using `number * array` like `3 * (c, e) == (c, e, c, e, c, e)`
|
2022-10-27 00:27:41 +02:00
|
|
|
|
|
|
|
### Fixed
|
|
|
|
|
|
|
|
- Index operation using booleans behaves like a mask and not fancy way of spelling 0 and 1
|
2022-10-28 00:56:11 +02:00
|
|
|
- Blocks are check against beeing a collection at runtime to prevent treating anonymous functions as collections and cousing assertions
|
2022-11-21 01:52:26 +01:00
|
|
|
- On Windows default terminal emulator ansi escape codes are conditionally supported. Review musique/pretty.cc for details
|
2022-10-23 12:24:32 +02:00
|
|
|
|
2022-10-27 21:03:37 +02:00
|
|
|
### Removed
|
|
|
|
|
|
|
|
- Removed `<note><absolute notes indexes>` chord notation like `c47` meaning c-major
|
2022-10-31 19:12:56 +01:00
|
|
|
- Removed obsolete documentation
|
2022-11-11 19:35:07 +01:00
|
|
|
- `h` as note literal
|
2022-10-27 21:03:37 +02:00
|
|
|
|
2022-10-23 12:24:32 +02:00
|
|
|
## [0.2.1] - 2022-10-21
|
|
|
|
|
|
|
|
### Fixed
|
|
|
|
|
|
|
|
- Windows build doesn't require pthread dll
|
|
|
|
|
2022-10-21 13:11:28 +02:00
|
|
|
## [0.2.0] - 2022-10-21
|
2022-09-25 23:08:24 +02:00
|
|
|
|
2022-10-07 17:33:38 +02:00
|
|
|
### Added
|
|
|
|
|
|
|
|
* Added `scan` builtin, which computes prefix sum of passed values when provided with addition operator
|
2022-10-08 12:48:42 +02:00
|
|
|
* Added [rtmidi](https://github.com/thestk/rtmidi/) dependency which should provide multiplatform MIDI support
|
2022-10-08 20:41:04 +02:00
|
|
|
* Support for Windows (with only basic REPL) (`make os=windows`)
|
2022-10-14 16:43:13 +02:00
|
|
|
* Support for MacOS (`make os=macos`)
|
2022-10-08 20:41:04 +02:00
|
|
|
* Release package now with compiled Windows binary
|
2022-10-11 11:01:01 +02:00
|
|
|
* `:load` REPL command to load Musique files inside Musique session. Allows for delayed file execution after a connection
|
|
|
|
* `:quit` REPL command that mirrors `:exit` command
|
2022-10-14 16:24:42 +02:00
|
|
|
* Virtual MIDI output port creation as default action (--output connects to existing one)
|
2022-10-20 14:37:50 +02:00
|
|
|
* Added build instructions
|
2022-10-20 16:42:05 +02:00
|
|
|
* `-f` commandline argument that will turn file into deffered function
|
2022-10-07 17:33:38 +02:00
|
|
|
|
2022-10-07 18:06:30 +02:00
|
|
|
### Changed
|
|
|
|
|
|
|
|
* Integrated libmidi library into Musique codebase
|
2022-10-08 12:48:42 +02:00
|
|
|
* Moved from custom ALSA interaction to using rtmidi for MIDI I/O operations
|
2022-10-21 13:11:28 +02:00
|
|
|
* VSCode extension has been re-created
|
2022-10-08 12:48:42 +02:00
|
|
|
|
|
|
|
### Removed
|
|
|
|
|
|
|
|
* Support for incoming MIDI messages handling due to poor implementation that didn't statisfy user needs
|
2022-10-07 18:06:30 +02:00
|
|
|
|
2022-10-07 17:33:38 +02:00
|
|
|
### Fixed
|
|
|
|
|
|
|
|
* Prevented accidental recursive construction of Arrays and Values by making convinience constructor `Value::Value(std::vector<Value>&&)` explicit
|
|
|
|
|
2022-09-25 23:08:24 +02:00
|
|
|
## [0.1.0] - 2022-09-25
|
|
|
|
|
|
|
|
### Added
|
|
|
|
|
|
|
|
* Musique programming language initial implementation that supports:
|
|
|
|
* Chord system
|
|
|
|
* Playing MIDI notes using par, sim and play
|
|
|
|
* Notes and chords as first-class citizens of Musique
|
|
|
|
* Bunch of builtins like math and array operations
|
|
|
|
* All numerical values as fractions (like in JavaScript but better)
|
|
|
|
* Primitive interactive mode
|
|
|
|
* Only ALSA MIDI Sequencer output
|
|
|
|
* Simple regression testing framework
|
|
|
|
* Basic documentation of builtin functions and operators
|