Skip to content

0.2.0

Choose a tag to compare

@github-actions github-actions released this 13 Sep 10:34
· 1415 commits to master since this release

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)