Skip to content

Commit f55fbea

Browse files
authored
Merge pull request #124 from sugarlabs/prepare-release
Prepare Release v1.0.1
2 parents eb4cc5d + b992528 commit f55fbea

File tree

2 files changed

+71
-1
lines changed

2 files changed

+71
-1
lines changed

CHANGELOG.md

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
# Changelog
2+
3+
## 1.0.1 [2022-02-09]
4+
5+
- ([#122](https://github.com/sugarlabs/musicblocks-v4-lib/pull/122))
6+
Added provision to provide initialisation values in snapshot of data elements.
7+
- ([#119](https://github.com/sugarlabs/musicblocks-v4-lib/pull/119))
8+
Added function to **specification** snapshot.
9+
- ([#121](https://github.com/sugarlabs/musicblocks-v4-lib/pull/121))
10+
Removed custom type reliance for element name (`TElementName`).
11+
- ([#120](https://github.com/sugarlabs/musicblocks-v4-lib/pull/120))
12+
Updated package dependencies.
13+
- ([#118](https://github.com/sugarlabs/musicblocks-v4-lib/pull/118))
14+
Added validations in **specification** functions for registering and unregistering _syntax elements_.
15+
16+
## 1.0.0 [2022-01-26]
17+
18+
- Added 3 categories of components: **Syntax Representation**, **Execution Engine**, **Library**
19+
20+
- **Syntax Representation**
21+
22+
- Added **Element API**: represents **syntax elements** -- the atomic constructs for building
23+
programs. There are 2 kinds of **syntax elements**:
24+
- **Arguments** which return values. These are of 2 types:
25+
- **Data** which return a value inherently and without operating on other provided values
26+
- **Expression** which return a value after operating on other provided values
27+
- **Instructions** which perform a task. These are of 2 types:
28+
- **Statements** perform a single task
29+
- **Blocks** encapsulate _statements_ and generally set some states or control the flow to them
30+
31+
- Added **Specification** component: maintains a table of concrete **syntax elements** which can
32+
be used to build programs.
33+
- Added **Warehouse** component: maintains a table of instances of **syntax elements** registered
34+
in the **specification**. It can also generate statistics about the instances.
35+
- Added **Syntax Tree** component: represents the _abstract syntax tree_ or _AST_ by maintaining
36+
interconnections between **syntax elements**.
37+
38+
- **Execution Engine**
39+
40+
- Added **Symbol Table** component: maintains tables of dynamic global variables and states which
41+
the **syntax elements** can use during execution.
42+
- Added **Parser** component: parses the **syntax tree** in a postorder sequence, and maintains
43+
_call frame stacks_ and the _program counter_.
44+
- Added **Interpreter** component: fetches elements from the **parser** and executes them.
45+
46+
- There are 2 special constructs: **Process** and **Routine**. These are special _block_ elements.
47+
**Routines** encapsulate _instructions_ that can be executed by multiple **processes**. **Processes**
48+
encapsulate independent set of _instructions_, and multiple **processes** can run concurrently.
49+
- There is an additional terminology called **crumbs** which are sets of connected _syntax elements_
50+
not part of any _process_ or _routine_.
51+
52+
- **Library**
53+
54+
- Added basic **Concrete Syntax Elements**
55+
- **Values**
56+
- Represent stored values
57+
- Supports `boolean`, `number`, `string` data-types
58+
- **Boxes**
59+
- Represents variable values
60+
- Support `boolean`, `number`, `string`, `generic` data-types
61+
- **Box Identifiers**
62+
- Represents variable identifiers
63+
- Supports `boolean`, `number`, `string`, `generic` **boxes**
64+
- **Math Operators**
65+
- `plus`, `minus`, `times`, `divide`, `modulus` operators
66+
- **Conditionals**: `if`
67+
- **Loops**: generic `repeat`
68+
- **Program**: `process` and `routine`
69+
- **Miscellaneous**: `print`
70+
- Added a _specification_ of the above **syntax elements**

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@sugarlabs/musicblocks-v4-lib",
3-
"version": "1.0.0",
3+
"version": "1.0.1",
44
"description": "The core of the new Music Blocks (v4) application",
55
"repository": {
66
"type": "git",

0 commit comments

Comments
 (0)