{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":571607607,"defaultBranch":"main","name":"dynamatic","ownerLogin":"EPFL-LAP","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2022-11-28T13:54:10.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/75378634?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1720203666.0","currentOid":""},"activityList":{"items":[{"before":"9fef8a5929f4575206f39b48cb97b32e611bd8b8","after":"6db10620892658395a2e88f199de26caf04f42ad","ref":"refs/heads/main","pushedAt":"2024-07-11T14:00:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lucas-rami","name":"Lucas Ramirez","path":"/lucas-rami","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11032120?s=80&v=4"},"commit":{"message":"[Handshake] Add `handshake::ReshapeOp` operation\n\nThis introduces a new reshaping operation to Handshake which can change\nthe nature of a channel type's signals without altering the actual\npayload carried by the channel, essentially performing an internal\nrewiring of the various signals making up the channel. This is mostly\nmeant to be used during a pre-processing pass for the backend to\nsimplify channels around components that do not know how to handle or\ncare for extra signals.","shortMessageHtmlLink":"[Handshake] Add handshake::ReshapeOp operation"}},{"before":"bebfb02cbe2f7daa921c56a9fc160f0de0f97939","after":"9fef8a5929f4575206f39b48cb97b32e611bd8b8","ref":"refs/heads/main","pushedAt":"2024-07-09T15:56:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lucas-rami","name":"Lucas Ramirez","path":"/lucas-rami","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11032120?s=80&v=4"},"commit":{"message":"[Handshake] Add `handshake::BundleOp` and `handshake::UnbundleOp`\n\nThis introduces two new reciprocal operations to Handshake that allow to\ngo back and forth between \"compound Handshake types\"\n(`!handshake.channel` and `!handshake.control`) and the individual\nsignals that make them up (making it possible to manipulate them\nindividually). These have rather complex (though almost identical)\nverification logic to ensure that the conversion, whatever the\ndirection, is valid. Many new unit tests check that the implementation\nproduced an error for all possible types of invalid conversions.\n\nThe operations' assembly format is a bit verbose at the moment, this\nshould be improved in a future commit.","shortMessageHtmlLink":"[Handshake] Add handshake::BundleOp and handshake::UnbundleOp"}},{"before":"e1d41b7644859c0db53beb66ac832845a2293c34","after":"d50e9dbf10213db294fbb67569f8ab6834cb30ff","ref":"refs/heads/fast-token-delivery","pushedAt":"2024-07-09T13:17:23.000Z","pushType":"push","commitsCount":15,"pusher":{"login":"AyaElAkhras","name":"Aya ElAkhras","path":"/AyaElAkhras","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/33686262?s=80&v=4"},"commit":{"message":"Merge branch 'fast-token-delivery' of https://github.com/EPFL-LAP/dynamatic into fast-token-delivery","shortMessageHtmlLink":"Merge branch 'fast-token-delivery' of https://github.com/EPFL-LAP/dyn…"}},{"before":"67e54b020d205d76ee3ad4a47103e8721d5e3db7","after":"e1d41b7644859c0db53beb66ac832845a2293c34","ref":"refs/heads/fast-token-delivery","pushedAt":"2024-07-09T12:23:29.000Z","pushType":"push","commitsCount":67,"pusher":{"login":"AyaElAkhras","name":"Aya ElAkhras","path":"/AyaElAkhras","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/33686262?s=80&v=4"},"commit":{"message":"rebased the main branch changes Merge branch 'fast-token-delivery' of https://github.com/EPFL-LAP/dynamatic into fast-token-delivery","shortMessageHtmlLink":"rebased the main branch changes Merge branch 'fast-token-delivery' of h…"}},{"before":"367622381ebd5f5d137fcc11ec6276137e8726ab","after":"bebfb02cbe2f7daa921c56a9fc160f0de0f97939","ref":"refs/heads/main","pushedAt":"2024-07-08T13:33:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lucas-rami","name":"Lucas Ramirez","path":"/lucas-rami","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11032120?s=80&v=4"},"commit":{"message":"[Handshake] Support for extra channel signals\n\nThe `handshake::ChannelType` type can now contain an arbitrary number of\nnamed downstream/upstream extra signals, each with a potentially\ndifferent index, integer, or float type. This change relies on\n\n- a custom `TypeParameter` in TableGen,\n- explicit parsing/printing/verification logic for\n `handshake::ChannelType`, and\n- custom data-structures and allocation code for extra signals.\n\nNew Handshake unit tests check the correctness of the\nparsing/verification logic for extra channel signals.","shortMessageHtmlLink":"[Handshake] Support for extra channel signals"}},{"before":"1c8df0094e5e0e81b06734e1d01980cc990a8a12","after":"67e54b020d205d76ee3ad4a47103e8721d5e3db7","ref":"refs/heads/fast-token-delivery","pushedAt":"2024-07-06T18:37:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"AyaElAkhras","name":"Aya ElAkhras","path":"/AyaElAkhras","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/33686262?s=80&v=4"},"commit":{"message":"added a function to return only forward control dependencies","shortMessageHtmlLink":"added a function to return only forward control dependencies"}},{"before":"84eb00db31ffe22e27ebfaafd6508a25d291be9c","after":"1c8df0094e5e0e81b06734e1d01980cc990a8a12","ref":"refs/heads/fast-token-delivery","pushedAt":"2024-07-06T12:35:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"AyaElAkhras","name":"Aya ElAkhras","path":"/AyaElAkhras","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/33686262?s=80&v=4"},"commit":{"message":"added support for nested dependencies in the CDG","shortMessageHtmlLink":"added support for nested dependencies in the CDG"}},{"before":"b053ab8ccfda97ec5db06cd7352e10e556004253","after":"367622381ebd5f5d137fcc11ec6276137e8726ab","ref":"refs/heads/main","pushedAt":"2024-07-05T20:53:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lucas-rami","name":"Lucas Ramirez","path":"/lucas-rami","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11032120?s=80&v=4"},"commit":{"message":"[rtl-config] Fix incorrect `cond_br` dependency\n\nIncorrectly set to itself instead of the dataless version of itself.","shortMessageHtmlLink":"[rtl-config] Fix incorrect cond_br dependency"}},{"before":null,"after":"d850ddb5b0889e21f85a34c3c37c53ed49eab6bc","ref":"refs/heads/Term-Rewrite","pushedAt":"2024-07-05T18:21:06.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"AnushkaAllawadi","name":"Anushka Allawadi","path":"/AnushkaAllawadi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/167964056?s=80&v=4"},"commit":{"message":"Term rewriting transformations","shortMessageHtmlLink":"Term rewriting transformations"}},{"before":null,"after":"d850ddb5b0889e21f85a34c3c37c53ed49eab6bc","ref":"refs/heads/Term-Rewrite","pushedAt":"2024-07-05T18:21:06.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"AnushkaAllawadi","name":"Anushka Allawadi","path":"/AnushkaAllawadi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/167964056?s=80&v=4"},"commit":{"message":"Term rewriting transformations","shortMessageHtmlLink":"Term rewriting transformations"}},{"before":"c8305e63130f253c5a63872ac548036b2fd09eba","after":"b053ab8ccfda97ec5db06cd7352e10e556004253","ref":"refs/heads/main","pushedAt":"2024-07-04T14:48:18.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"lucas-rami","name":"Lucas Ramirez","path":"/lucas-rami","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11032120?s=80&v=4"},"commit":{"message":"[Backend] Add missing support for `handshake::NotOp`\n\nThe `HandshakeToHW` pass was missing the conversion pattern declaration\nfor the operation and the DOT printer would not accept the operation in\nlegacy mode (it does now even though the legacy backend will not\nrecognize the operation).","shortMessageHtmlLink":"[Backend] Add missing support for handshake::NotOp"}},{"before":"64f2ddcc5c4ae13418b91e805d4f879412cb21f4","after":"c5298430d49a8fec12d2ea49fd54450f5518ac52","ref":"refs/heads/Dataflow-optimization","pushedAt":"2024-07-04T13:37:31.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"AnushkaAllawadi","name":"Anushka Allawadi","path":"/AnushkaAllawadi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/167964056?s=80&v=4"},"commit":{"message":"Merge branch 'main' into Dataflow-optimization","shortMessageHtmlLink":"Merge branch 'main' into Dataflow-optimization"}},{"before":"8b92095e2489d6875b98461d6f1c2fc072fbca83","after":"c8305e63130f253c5a63872ac548036b2fd09eba","ref":"refs/heads/main","pushedAt":"2024-07-04T11:06:24.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lucas-rami","name":"Lucas Ramirez","path":"/lucas-rami","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11032120?s=80&v=4"},"commit":{"message":"[Support] Boolean logic library\n\nThis adds support for expressing and manipulating boolean expressions.\r\nThe library uses a tree structure to represent a boolean expression. It\r\nsupports functions such as: creating a boolean expressions directly\r\n(through APIs) or by parsing a string, minimizing a boolean expression\r\nusing Espresso-II algorithm, and applying Shannon expansion to\r\ntransform a boolean expression into a tree of multiplexers (soon).","shortMessageHtmlLink":"[Support] Boolean logic library"}},{"before":"efec8c45a191374a66c836ccfb7c75271e681849","after":"0ae980d0ee21334f102315e932a0d2d32ea17049","ref":"refs/heads/boolean-logic-library","pushedAt":"2024-07-04T11:01:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lucas-rami","name":"Lucas Ramirez","path":"/lucas-rami","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11032120?s=80&v=4"},"commit":{"message":"Fix spurious change","shortMessageHtmlLink":"Fix spurious change"}},{"before":"8bbb89da3a739518e8182124cf73db56ad096044","after":"efec8c45a191374a66c836ccfb7c75271e681849","ref":"refs/heads/boolean-logic-library","pushedAt":"2024-07-03T17:06:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"DanaKossaybati","name":"danako","path":"/DanaKossaybati","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/103267380?s=80&v=4"},"commit":{"message":"Fixed Comment Style","shortMessageHtmlLink":"Fixed Comment Style"}},{"before":"e237d9215c18ff22434a9034e7fe404fbd292af0","after":"8bbb89da3a739518e8182124cf73db56ad096044","ref":"refs/heads/boolean-logic-library","pushedAt":"2024-07-03T16:34:50.000Z","pushType":"push","commitsCount":23,"pusher":{"login":"DanaKossaybati","name":"danako","path":"/DanaKossaybati","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/103267380?s=80&v=4"},"commit":{"message":"Added Espresso api call and fixed conflicting enum name of ExpressionType","shortMessageHtmlLink":"Added Espresso api call and fixed conflicting enum name of Expression…"}},{"before":"277bc92027bed84ef06f2a4c4e604e4c450d6dba","after":"8b92095e2489d6875b98461d6f1c2fc072fbca83","ref":"refs/heads/main","pushedAt":"2024-07-03T15:50:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lucas-rami","name":"Lucas Ramirez","path":"/lucas-rami","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11032120?s=80&v=4"},"commit":{"message":"[Espresso] Change file extensions from `.c` to `.cpp`\n\nCMake sometimes attempts to compile C files with clang instead of\nclang++, causing issues with `[[fallthrough]]`. This should force it to\nuse a C++ compiler.","shortMessageHtmlLink":"[Espresso] Change file extensions from .c to .cpp"}},{"before":"682d5efcfb127e10cbcdca48c134ebd875133945","after":"277bc92027bed84ef06f2a4c4e604e4c450d6dba","ref":"refs/heads/main","pushedAt":"2024-07-03T13:30:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lucas-rami","name":"Lucas Ramirez","path":"/lucas-rami","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11032120?s=80&v=4"},"commit":{"message":"[HandshakeToHW] Fix failure with conflicting module types\n\nWhen two MLIR operations had different operand/result types but ended up\nbecoming instances of the same external hardware module, the pass would\nfail because of conflicting IO types between the module and the hardware\ninstance corresponding to the MLIR operation converted last. This issue\narose for example with operations that, at the RTL level, do not care\nfor the data bus's actual content (e.g., buffers). If an integer and\nfloating point version of a specific buffer configuration existed\nconcurrently in the IR, the pass would fail. This is fixed by making the\npass's type converter replace floating point types with\nidentical-width integer types.\n\nGoing forward I think that using an `IntegerType` in HW to represent\neverything that ends up as an opaque bitvector in RTL is the easiest and\nsemantically consistent way to do things.","shortMessageHtmlLink":"[HandshakeToHW] Fix failure with conflicting module types"}},{"before":"983d9d6d2ec1feed889e9ba352b48c16b570b9b2","after":"e237d9215c18ff22434a9034e7fe404fbd292af0","ref":"refs/heads/boolean-logic-library","pushedAt":"2024-07-03T12:46:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"DanaKossaybati","name":"danako","path":"/DanaKossaybati","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/103267380?s=80&v=4"},"commit":{"message":"Fixed Implementation Details","shortMessageHtmlLink":"Fixed Implementation Details"}},{"before":"b51c5595ef43e86796ae168280ad26b25160c580","after":"64f2ddcc5c4ae13418b91e805d4f879412cb21f4","ref":"refs/heads/Dataflow-optimization","pushedAt":"2024-07-02T17:20:44.000Z","pushType":"push","commitsCount":12,"pusher":{"login":"AnushkaAllawadi","name":"Anushka Allawadi","path":"/AnushkaAllawadi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/167964056?s=80&v=4"},"commit":{"message":"Merge remote-tracking branch 'origin' into Dataflow-optimization","shortMessageHtmlLink":"Merge remote-tracking branch 'origin' into Dataflow-optimization"}},{"before":null,"after":"b51c5595ef43e86796ae168280ad26b25160c580","ref":"refs/heads/Dataflow-optimization","pushedAt":"2024-07-02T17:11:56.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"AnushkaAllawadi","name":"Anushka Allawadi","path":"/AnushkaAllawadi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/167964056?s=80&v=4"},"commit":{"message":"All except Rule-5","shortMessageHtmlLink":"All except Rule-5"}},{"before":"13698a51ae1c6b4817e44917b5eedbd605666e86","after":"983d9d6d2ec1feed889e9ba352b48c16b570b9b2","ref":"refs/heads/boolean-logic-library","pushedAt":"2024-07-02T16:20:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lucas-rami","name":"Lucas Ramirez","path":"/lucas-rami","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11032120?s=80&v=4"},"commit":{"message":"Remove spurious space","shortMessageHtmlLink":"Remove spurious space"}},{"before":"c237dfa2ca9931ab56af8e8fc31eb8dfaad1ab65","after":"13698a51ae1c6b4817e44917b5eedbd605666e86","ref":"refs/heads/boolean-logic-library","pushedAt":"2024-07-02T15:03:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lucas-rami","name":"Lucas Ramirez","path":"/lucas-rami","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11032120?s=80&v=4"},"commit":{"message":"Fix comparisons between different integer types\n\nReported by the compiler.","shortMessageHtmlLink":"Fix comparisons between different integer types"}},{"before":"400369060b19e6e1380be9e129becf9eb04bcdb2","after":"c237dfa2ca9931ab56af8e8fc31eb8dfaad1ab65","ref":"refs/heads/boolean-logic-library","pushedAt":"2024-07-02T14:59:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lucas-rami","name":"Lucas Ramirez","path":"/lucas-rami","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11032120?s=80&v=4"},"commit":{"message":"Fix useless checks for `this` to not be nullptr\n\nReported by the compiler.","shortMessageHtmlLink":"Fix useless checks for this to not be nullptr"}},{"before":"3456a7fc4d1a75c11e4908056d6113173b43cd64","after":"400369060b19e6e1380be9e129becf9eb04bcdb2","ref":"refs/heads/boolean-logic-library","pushedAt":"2024-07-02T14:57:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lucas-rami","name":"Lucas Ramirez","path":"/lucas-rami","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11032120?s=80&v=4"},"commit":{"message":"Move to dedicated experimental library and change namespace\n\nEverything now lives in the `::dynamatic::experimental::boolean`\nnamespace.","shortMessageHtmlLink":"Move to dedicated experimental library and change namespace"}},{"before":"92d3513e5e70e0fcfa8455d93cb5fa800bf5aa2c","after":"682d5efcfb127e10cbcdca48c134ebd875133945","ref":"refs/heads/main","pushedAt":"2024-07-02T14:22:39.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lucas-rami","name":"Lucas Ramirez","path":"/lucas-rami","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11032120?s=80&v=4"},"commit":{"message":"[Backend] Lazy fork and RTL config fixes (#93)\n\nThis commit fixes two things in the experimental backend.\r\n\r\n- `lazy_fork.vhd`: For each basic dataflow channel, the valid and\r\n ready signals should be mutually independent.\r\n- `rtl-config.json`: The dependencies of tfifo with zero bitwidth and\r\n non-zero bitwidths were swapped.","shortMessageHtmlLink":"[Backend] Lazy fork and RTL config fixes (#93)"}},{"before":"b6a9c04f39923435ed3279ab1a6377a27110b61f","after":"92d3513e5e70e0fcfa8455d93cb5fa800bf5aa2c","ref":"refs/heads/main","pushedAt":"2024-07-02T14:18:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lucas-rami","name":"Lucas Ramirez","path":"/lucas-rami","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11032120?s=80&v=4"},"commit":{"message":"[Espresso] Algorithm for boolean simplification\n\nThis commit adds a modernized C/C++ implementation of the Espresso\nalgorithm to the repository. The original code was written at\nBerkeley in 1989 and was modified throuhgout the years to port it to\nnewer C/C++ standards, on which we stack our own modifications to make\nit work for modern C++ compilers and together with Dynamatic's\ntoolchain. Given the size of the implementation and its C roots, we\ndon't bother fixing stylistic issues and disable clang-tidy on the\nsubdirectories containing the implementation.\n\nThe Espresso algorithm is available as the `DynamaticSupportEspresso`\nlibrary in Dynamatic.\n\nThe implementation we started from came from the following repository:\nhttps://github.com/classabbyamp/espresso-logic","shortMessageHtmlLink":"[Espresso] Algorithm for boolean simplification"}},{"before":"1c39a935c46b9bc3efe1dc4d2919327fcf1276ba","after":"84eb00db31ffe22e27ebfaafd6508a25d291be9c","ref":"refs/heads/fast-token-delivery","pushedAt":"2024-07-02T12:36:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"AyaElAkhras","name":"Aya ElAkhras","path":"/AyaElAkhras","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/33686262?s=80&v=4"},"commit":{"message":"cleaned the CDG analysis and instantiated it in FuncSSAToGSA pass","shortMessageHtmlLink":"cleaned the CDG analysis and instantiated it in FuncSSAToGSA pass"}},{"before":"2f62b71eaf86d2fad988229a4d1847529ab74885","after":"b6a9c04f39923435ed3279ab1a6377a27110b61f","ref":"refs/heads/main","pushedAt":"2024-07-02T12:35:49.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lucas-rami","name":"Lucas Ramirez","path":"/lucas-rami","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11032120?s=80&v=4"},"commit":{"message":"[Speculation] Add `enable` operand to `SpeculatorOp` and small fixes (#92)\n\nThis commit addresses several issues regarding the speculation\r\nimplementation:\r\n- Add the `$enable` control signal of type `NoneType` to SpeculatorOp,\r\nwhich is responsible for enabling the Speculator.\r\n- Add automatic connection of the enable signal to the edge from a\r\npredecessor BB carrying the control signal of `NoneType`.\r\n- Improve the commit-control routing, where the specTag after a branch\r\nisn't merged, but rather forked from the input.\r\n- Fix the tests for speculation passes to include the new enable signal\r\nand adapting to the new naming system.\r\n- Fix a bug in `CFG.cpp:getBBPredecessorArcs` where not initializing\r\n`BBEndpoints` could lead to unexpected errors.","shortMessageHtmlLink":"[Speculation] Add enable operand to SpeculatorOp and small fixes (#…"}},{"before":"406a75d8bafc7f2027bc2e9b063d224cf03e0a9f","after":"2f62b71eaf86d2fad988229a4d1847529ab74885","ref":"refs/heads/main","pushedAt":"2024-07-02T12:22:18.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lucas-rami","name":"Lucas Ramirez","path":"/lucas-rami","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11032120?s=80&v=4"},"commit":{"message":"[Build] Skip Polygeist build with `skip-polygeist` (#84)\n\nThis adds a new flag in the build script to skip building Polygeist\r\nand LLVM by specifying an existing folder on the user's machine\r\nwith these dependencies already built.","shortMessageHtmlLink":"[Build] Skip Polygeist build with skip-polygeist (#84)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEfObxCgA","startCursor":null,"endCursor":null}},"title":"Activity · EPFL-LAP/dynamatic"}