0.2.0
0.2.0 (2023-09-13)
Features
- added align function used by the compiler plugin to modify the stack (586990b)
- added dsl main functions (d3cd4ff)
- added field data structure (5baddf2)
- aggregate: added first implementation of repeating function (c164d38)
- aggregate: added function with different signature to run multiple time (748d588)
- aggregate: added repeating implementation (7a6a34b)
- aggregate: added stack instance (24c6d48)
- aggregate: added the possibility to run multiple times (a755065)
- aggregate: added usage of messages (33c3d21)
- aggregate: aggregate can receive a network instance (2ed2b46)
- aggregate: changed generics type to allow all the function as argument (cc90ea9)
- aggregate: created computational options in a new file (74a7e74)
- aggregate: implemented neighbouring function (7bf7cbe)
- aggregate: implemented new version of neighbouring (b341030)
- aggregate: implemented repeating with new data structures (0436d5a)
- aggregate: implemented sharing with new data structure (4269872)
- aggregate: modified aggregate to use ID and network classes (1775d67)
- aggregate: neighbouring throws an exception if the field requested is not present (349694e)
- aggregate: neighbouring uses generics instead of any (d925d16)
- aggregate: neighbouring uses the new field implementation (bbb159c)
- aggregate: overloaded aggregate function to be able to create easily a multiple running program (f83cfcd)
- aggregate: run until can be created with a network instance to use for communication (9598bf4)
- aggregate: the messages are handled by switching the indexes only if necessary (d600c7a)
- aggregate: updated dsl function to use the stack object and removed stack handling (4df1596)
- collektive-test: added distance function to device (222da9b)
- collektive-test: added distance sensor device (0c0b567)
- collektive-test: added distance sensor to collektive device (d12bf03)
- collektive-test: added effect file (beddd4f)
- collektive-test: added gradient algorithm (e9afb45)
- collektive-test: added gradient extension function to aggregate (3211aa1)
- collektive-test: added node to constructor of the aggregate entry point to access the node (125bff2)
- collektive-test: changed class names (9936013)
- collektive-test: changed effect for gradient (6723250)
- collektive-test: changed number of nodes and steps (4dbd02e)
- collektive-test: created collektive-test module and used succesfully dsl in main (7db8753)
- collektive-test: fixed gradient example (8a2fd0b)
- collektive-test: functioning simulation with Alchemist GUI (b1bb64a)
- collektive-test: modified number of nodes generated and the range of their generation (87c7914)
- collektive-test: refactored execute function (ced34e9)
- compiler-plugin: added aggregate context class name as constant (9471c59)
- compiler-plugin: added aggregate function name (4de761e)
- compiler-plugin: added alignment to aggregateContext's extension functions (4cacfb2)
- compiler-plugin: added all the utility functions in the same file (a3c1e37)
- compiler-plugin: added extension function to look for a matching type in the irCall's receiver and arguments (ef2bbda)
- compiler-plugin: added extension function used to get the last value argument of a certain function call (d8a93f1)
- compiler-plugin: added file for all the branch extension functions (e46576e)
- compiler-plugin: added file for all the branch extension functions (05fd2cc)
- compiler-plugin: added handler for more return types (9d382ac)
- compiler-plugin: added handling of more than one condition in the if statement (9e83b26)
- compiler-plugin: added handling of when, which is basically an if else block (cdbf957)
- compiler-plugin: added if handling, with all the condition type and the block as body (aa79942)
- compiler-plugin: added the command line option to enable the compiler plugin (c706a9b)
- compiler-plugin: added the handling of the else branch (bb03a11)
- compiler-plugin: added the research to the alignment function (03c8307)
- compiler-plugin: added trasformer that activet the research of all the function called inside of aggregate (3fd0499)
- compiler-plugin: added visitor that collects all the function call inside of aggregate (6581156)
- compiler-plugin: changed name of the function that handle the alignment (90ba5a0)
- compiler-plugin: changed the return type of the aggregate context class retrieval (149ad88)
- compiler-plugin: created alignment function call and added function declaration to not modify (82fc0d8)
- compiler-plugin: created enum that contains all the element' names needed (8116a77)
- compiler-plugin: created handler when the result of the branch is not a block but an expression (6b6399d)
- compiler-plugin: created just one function to create a irStatement that will contains the alignOn call (efbce3d)
- compiler-plugin: created trasformer that modify the function declaration starting from function call (0196dec)
- compiler-plugin: created visitor that retrieve the aggregate context class (66eb4ff)
- compiler-plugin: created visitor used to search for the alignment function (41141b5)
- compiler-plugin: fixed alignment when a function call has a lambda body (ade36f9)
- compiler-plugin: implemented extension called during compilation to call the trasformer (6963a05)
- compiler-plugin: modified the function used to retrieve the alignedOn function (eb26757)
- compiler-plugin: modified the generation extention in order to retrieve alse the aggregate context class (5aa795f)
- compiler-plugin: registered the ir generation extension component (99bacde)
- compiler-plugin: removed branch extension functions from transformer (eedd883)
- compiler-plugin: removed the unused visitors (cba9a15)
- compiler-plugin: the alignedOn function and the AggregateContext class are found without needing to compile the dsl (8add0a1)
- compiler-plugin: the statement creation is in a separate file now (d0d3d74)
- compiler-plugin: the visitor for the aggregate context reference returns a irExpression? instead of a list of expression (816feda)
- compiler-plugin: trasform every function adding a print of the name as first statement (d370301)
- computation: at the beginning of each computational cycle the stack is cleared (d4d12a4)
- computation: the stack is cleared at the beginning and at the end of the computational cycle (758beec)
- created a main to briefly check how to use the functions (8e1778b)
- dsl: added documentation to aggregate functions (f6e93fb)
- dsl: added main with extension function in order to verify it works (8fb481d)
- dsl: added optional parameters to aggregate (ed912a0)
- dsl: fixed aggregate function layout (d7aae31)
- dsl: fixed main (552c118)
- dsl: fixed sharing behaviour (d7191ec)
- dsl: remove useless comments (14e5d3b)
- dsl: removed default parameters (3b1a685)
- dsl: removed main (7b44a0b)
- environment: added global fields instance (a42bdc0)
- environment: added id for test purposes (78d5b29)
- environment: incapsulated fields in environment (4262d03)
- event: added event class and interface (8d6df0f)
- event: added event interface and class (f873118)
- event: createdd strategy to calculate the event identifier by hashcode (4a60f36)
- field: added function to add a new entry in field (ac3d3cb)
- field: added function to get a value by id (519b0fa)
- field: added function to map a field (6ee5482)
- field: added function to retrieve the max value from a field (f0b7f97)
- field: added function used to retrieve the min in a field (fa3459d)
- field: added method to get the size of the field (c7d7d17)
- field: added neighbour messages to field as property (42e44f0)
- field: added plus operator (cdc9b02)
- field: added plus operator (4e29122)
- field: added to string method (173b7c0)
- field: changed field constructor (93d5590)
- field: changed implementation of min, max and plus (6ccff92)
- field: changed interface and used it instead of its implementation (d16a258)
- field: get by id throws an exception if the key does not exist (7a123f8)
- field: modified field constructor and private map (6737ffb)
- field: moved field into package and removed id generic (625b0e9)
- field: removed field plus operation from interface (c057f5d)
- fields: added data class for local fields (db94cf2)
- fields: added data structure to hold and create a field (d5de17b)
- fields: added global fields as data class (8f172a0)
- fields: added method to check if a certain field exists (db73c5b)
- fields: added retrieve field by type method (487e38d)
- fields: changed fields into a abstract class (44d3944)
- fields: changed map key in the hashCode of the event (535b491)
- field: the generic type is not bounded to Any (87c5cf6)
- gradle-plugin: added custom gradle property to enable or disable the plugin (cb6428a)
- gradle-plugin: created connection to the actual compiler plugin (8c3d04b)
- id: changed id type in int (d244f7b)
- id: created interface and data class for the device id (63b8bb8)
- identifier: create strategy to create an event identifier from stack trace (606ae48)
- main: added call to neighbouring function (6410f7f)
- main: calling repeating more time to check the final result (85527da)
- main: created basic main to easily test the dsl (36ace3a)
- main: created code in main to check how repeating looks (f3fe6d5)
- main: created example to run multiple devices multiple times (9e5b913)
- main: created main to check the possible result (a2543df)
- main: main uses the min operator in the field (79511a9)
- merged working dsl to master (86f9d8d)
- network: created network used to send and receive messages (163983b)
- network: removed local id from the network constructor and added in the send method (4b9bae4)
- path: created path data structure (5ead81a)
- path: removed function to remove a token from the path (fa531fb)
- plugin: added functions that have to be ignored by the plugin (68d5fc8)
- removed linter (342e8da)
- stack: created stack implementation, which also handles the current path updates (421640c)
- stack: created stack object and path (2abf063)
- stack: removed print of path when opening a new frame (cbb3abf)
- test: added dsl test to check if the expression in a lambda are aligned (f9ffc95)
- test: added stack tests (10b0dee)
- test: fixed field manipulation test (b414215)
- token: created enum for the known token at compile time (6ca3b8d)
- updated readme (995cdc4)
- util: added switch indexes operator to map data structure (e3df3b1)
Dependency updates
- core-deps: update kotlin monorepo to v1.9.10 (219f4ea)
- deps: cleanup dependencies and updated (0e33b70)
- deps: update dependency com.github.gmazzo.buildconfig to v4 (0cb3847)
- deps: update dependency gradle to v8.3 (c203ab0)
- deps: update dependency semantic-release-preconfigured-conventional-commits to v1.1.43 (0e1f21b)
- deps: update dependency semantic-release-preconfigured-conventional-commits to v1.1.44 (4a931c0)
- deps: update dependency semantic-release-preconfigured-conventional-commits to v1.1.46 (ed536fc)
- deps: update dependency semantic-release-preconfigured-conventional-commits to v1.1.47 (b2e5af9)
- deps: update dependency semantic-release-preconfigured-conventional-commits to v1.1.48 (aab5881)
- deps: update dependency semantic-release-preconfigured-conventional-commits to v1.1.49 (14f49c5)
- deps: update dependency semantic-release-preconfigured-conventional-commits to v1.1.50 (ebd0aa1)
- deps: update dependency semantic-release-preconfigured-conventional-commits to v1.1.51 (5ded159)
- deps: update dependency semantic-release-preconfigured-conventional-commits to v1.1.52 (6e68db9)
- deps: update dependency semantic-release-preconfigured-conventional-commits to v1.1.53 (072f86d)
- deps: update kotest to v5.7.0 (8ed1594)
- deps: update kotest to v5.7.1 (0916dfa)
- deps: update kotest to v5.7.2 (7174e3d)
- deps: update node.js to 16.20 (400dd7f)
- deps: update node.js to v18 (ae23b98)
- deps: update plugin com.gradle.enterprise to v3.14.1 (bb937c4)
- deps: update plugin multijvmtesting to v0.4.23 (8c99759)
- deps: update plugin multijvmtesting to v0.5.4 (157fa19)
- deps: update plugin multijvmtesting to v0.5.5 (86c5f20)
- deps: update plugin org.danilopianini.gradle-pre-commit-git-hooks to v1.1.10 (410a409)
- deps: update plugin org.gradle.toolchains.foojay-resolver-convention to v0.7.0 (adb4215)
- deps: update plugin publishoncentral to v5.0.11 (d0e4531)
- deps: update plugin publishoncentral to v5.0.12 (fe3b288)
- deps: update plugin publishoncentral to v5.0.13 (39d8fff)
- deps: update plugin tasktree to v2.1.1 (747eda1)
Bug Fixes
- adapted to usage of local fields data class (148290c)
- aggregate-context: adapted aggregate context to the new version of stack (508a932)
- aggregate: adapted code to use event calss (798d9f4)
- aggregate: added usage of event (6268498)
- aggregate: removed ID from field (f0b0a21)
- aggregate: removed id initialization in single cycle call (b13f05d)
- aggregate: removed inline and reified from neighbouring (62aca69)
- all: general work idea (7e664e1)
- collektive-test: moved file into correct folders (dfaaf0b)
- collektive-test: reduced line characters (d61319d)
- collektive-test: removed message to self (45b9a3d)
- collektive-test: removed println (ec7b804)
- compiler-plugin: added non empty alignment functions collection check (2d2770f)
- compiler-plugin: changed parameters from SimpleFunction to Function (b066afc)
- compiler-plugin: fixed problem when examining the children of a function, which has to be done only if that function does not have a reference to aggregate context (3b36d9c)
- compiler-plugin: removed the visitor of the aggregate call body because it was unnecessary (65cf0b3)
- compiler-plugin: the enum for elements' names is now an object (bb9fc15)
- compiler-plugin: the lambda body of aggregate is the last argument (24e546e)
- compiler-plugin: the search of the aggregate reference must be different if there is a irCall (237d7b2)
- compiler-plugin: the tranformer is applied to the aggregate body directly, without visiting the children (58305ac)
- computation: added default value in local id of single cycle (af69650)
- computation: removed the function to empty the stack after every computation of aggregate (3a671f8)
- dsl: removed java 8 requirment (965205d)
- dsl: removed unused paramenter to id's interface (85481e1)
- field: changed map from immutable to mutable (ae19be8)
- field: fixed generic type in field (55ace74)
- field: removed field size from the functions (fa6ef51)
- fields: added code to use event class (fdd1672)
- fields: added the usage of event (af7f6e2)
- fields: changed fields in a class and used a mutable map istead of a list (3d4d0e4)
- fields: retrieve field does not return a nullable field (8d85e9a)
- fields: the retrieval of the key from the map can return a nullable element (af5f331)
- identifier: used stack trace as return value in jvm (7d680e2)
- removed unsupported editor config (d5b597f)
- stack: changed stack from object to class (6ed2a07)
- stack: removed stack prints every time the stack is modified (316e53b)
- test: fixed tests to conform to the new field constructor (e3310fe)
- test: remove id from field (f6fa2eb)
- use error instead of throwing excpetion (5032120)
Documentation
- deps: update dependency org.jetbrains.dokka to v1.9.0 (7ff51bb)
Tests
- added check empty field in common test (eaf19f5)
- aggregate: added test for neighbouring (2da93d7)
- aggregate: added test for neighbouring successful and failing (8c6b37a)
- aggregate: added tests for sharing (80b8ccc)
- branch: added tests to verify the correct behaviour of if, else and when blocks (e08d113)
- branch: fixed test mistakes in branches tests (79d57f7)
- field: adapted get by id test to catch the exception (937b70c)
- field: added test for field with and without messages from other connected devices (44a89a8)
- field: added test when trying to retrieve a field by an id that does not exist (faa305f)
- field: added tests for field manipulation (097c344)
- field: fixed usage of IntId for id generation (a381d98)
- field: moved field tests in its package (d240b9a)
- field: moved field tests in its package (8c7c30e)
- fields: added modify field test (923db96)
- fields: added usage of event (3aad6fb)
- fields: changed test to match the new fields class (f05a7b8)
- fields: created add field test (9fd94d2)
- fields: fixed test of adding an element to the field (281c453)
- fields: removed println in modify field test (4b1e12c)
- field: test adding entry to field (dc1d5d0)
- field: test get by id (d6b9b9d)
- neighbouring: added test for neighbouring operator with no external messages (23cc9d2)
- neighbouring: added usage of event (85ffbe8)
- neighbouring: created test for the new version of neighbouring (114f5a3)
- neighbouring: fixed the argument from Event to simple function (dda0a30)
- path: added test for path class (62568b5)
- path: removed path tests (66a863c)
- removed test of old classes and data structures (e634e17)
- repeating: added test for repeating function (acd8b40)
- repeating: added test for the usage of repeating once and more than once times (64ab58b)
- repeating: added usage of event (06be2a4)
- stack: commented stack's test (4febf2a)
- stack: created test to verify the stack behaviour (9d7ad78)
- stack: fixed stack tests (a9673a2)
Build and continuous integration
- added test dependencies (a54061d)
- ci: added test execution on multiple os (50e78b1)
- ci: added test run on push (19014a3)
- ci: granted execution permission to gradlew (4752793)
- collektive-test: added required alchemist dependencies (5dd79fc)
- collektive-test: fixed alchemist dependencies (b90f432)
- collektive-test: fixed jupiter dependencies (6b1979e)
- collektive: added compiler plugin in library (6683a93)
- collektive: added linter (e8e0125)
- collektive: fixed library catalog (b616a4d)
- collektive: include collektive-test (33a88a3)
- compiler-plugin: added gradle build in compiler plugin subproject (420361e)
- compiler-plugin: removed unused dependencies (586e471)
- deps: update actions/checkout action to v3 (bcfd700)
- deps: update actions/checkout action to v4 (d621041)
- deps: update actions/setup-node action to v3.8.1 (50cc0d4)
- dsl: added dependency (1905480)
- dsl: added gradle setup for dsl project (c693c3d)
- dsl: added task to run all tests (6d444de)
- dsl: changed compiler plugin dependency (6bb748c)
- dsl: changed name of the plugin used for the compiler plugin (df46862)
- dsl: cleaned build.gradle (c5a4477)
- dsl: modified jvm target (1248be9)
- dsl: modified jvm target (2c0c478)
- dsl: the tests must dependo on the common code (d22cef9)
- gradle-plugin: created gradle plugin to expose (10d04d4)
- included projects and added dependecies (1b80ef9)
- organized dependencies (2101a96)
- remove uneeded file (8a0c27b)
- removed comments in setting gradle (68efff6)
- removed custom task to run all the tests (6cd0fb6)
- reorganized gradle's build (8f5e2f0)
- set gradle plugin portal credentials (38c1410)
- setup ci workflow for publish the library (6a649b2)
General maintenance
- add mergify config (81b5ceb)
- aggregate: added align on documentation (a527f78)
- build: minor gradle refactoring (b696c2a)
- build: setup pubblication for also the included build (compiler plugin and gradle plugin) (5e2d8cf)
- build: upload plugin project only from Linux runner (c08dcee)
- build: use a single catalog source for all submodules (f59e4f6)
- build: use compiler plugin as local project via classpath (4de3a0c)
- changed project name (3d6f0fb)
- compiler-plugin: added correct documentation (0f97b23)
- compiler-plugin: added documentation (28efed8)
- compiler-plugin: added the usage of the extension function getLastValueArgument (156de58)
- compiler-plugin: added the usege of all the utility functions (bd40fd3)
- compiler-plugin: added usage of extension function for irCall's matching type of receiver and arguments (0277403)
- compiler-plugin: fixed grammar error in documentation of alignment component registrar (af5bb00)
- compiler-plugin: fixed the package and the import of the statement and call utils (41dc124)
- compiler-plugin: modified the arguments order (993a68c)
- compiler-plugin: moved in correct packege call and statements utils (6d867ca)
- compiler-plugin: moved the argument order for the alingOnCall builder (f4f1e75)
- compiler-plugin: moved the name object in the utils\common folder (1304404)
- compiler-plugin: moved utility functions in file that underlines the usages (b07270d)
- compiler-plugin: moved utility functions in file that underlines the usages (39b70d0)
- compiler-plugin: refactor of the compiler plugin lambda creation (c293750)
- compiler-plugin: removed lambda utility classes from transformer (05e7251)
- compiler-plugin: removed unused import (20eb770)
- compiler-plugin: rename of arguments (259831b)
- compiler-plugin: renamed aggregate ir element transformer (b1cc6de)
- compiler-plugin: renamed and moved aggregate reference visitor (7872ea7)
- compiler-plugin: renamed arguments to make them more expressive (b4af587)
- compiler-plugin: renamed the class AggregateIrElementTransformer in AggregateCallTransformer (d1e5f2b)
- compiler-plugin: renamed the visitor that looks for the alignedOn function (3cdd5a0)
- computation: removed stack import (6fcf1ea)
- configure common metadata and refactoring (b88b312)
- convert into a real multiplatform project (d3be9af)
- deleted platform object (e5e0186)
- disable collektive-test project. It should be moved on a separate repository (53446de)
- dsl: moved dsl in a new gradle project (15822b2)
- exclude node_modules (bd6ff41)
- fields: removed print (256667c)
- gradle-plugin: added documentation to gradle extension (68d818b)
- gradle-plugin: changed name of the gradle plugin with a more expressive one (7c7ae59)
- ignore diabled target warning (70d1efa)
- moved neighbouring test in the aggregate test folder (ff9f863)
- remove no needed suppress warning (928ccdd)
- remove withJava (8439f71)
- removed environment (c5f466d)
- removed local properties file (b3bba5a)
- removed local.properties (dc33ff7)
- removed not used libraries (52e40f2)
- renamed project (89b8723)
- renovate: add renovate configuration (18bd739)
- revert to kotlin 1.9.0 (3b43ba5)
- setup config for semantic-release (f130859)
- stack: modified import of stack classes in aggregate (50d5df0)
- stack: moved stack related classes in the stack package (f855624)
- suppress problematic tasks (9243236)
- the main has nested function to verify the alignment (64514a5)
- there is hope here (c537c06)
- update renovate config (5ac66c2)
- updated readme (81b1b43)
- updated readme (bed4c70)
- updated test default folder (ba25249)
- use up-to-date compiler plugin API and fix bug usage (2350a1e)
- written main that can actually use the new implementation of the dsl operators (354cdfc)
Style improvements
Refactoring
- abstract stack into an interface providing a default implementation based on ArrayDequeue (41c86ab)
- move into private function raw cast suppression and implement rep, nbr and share into a more kotlin idiomatic fashion (74c28b6)
- remove kapt (0e681da)
- rename package in it.unibo.collektive (5b3dc6b)
- rewrite field implementation to avoid raw cast (6669c0c)