From 8c7e45492532c94bcefa1ea052955ee87d1b2a88 Mon Sep 17 00:00:00 2001 From: CloverCho Date: Thu, 28 Apr 2022 14:48:59 -0700 Subject: [PATCH 01/12] Change TS Generator to support serialization for communication in federate execution --- .../C/src/TaskSet/TaskSetGenerator.lf | 125 ++++++++++++++++++ org.lflang/src/lib/ts/reactor-ts | 2 +- .../lflang/generator/ts/TSActionGenerator.kt | 4 +- .../org/lflang/generator/ts/TSExtensions.kt | 6 +- .../org/lflang/generator/ts/TSGenerator.kt | 9 +- .../generator/ts/TSReactionGenerator.kt | 12 +- .../src/federated/DistributedCount.lf | 8 +- .../src/federated/PingPongDistributed.lf | 66 +++++++++ .../src/federated/StopAtShutdown.lf | 38 ++++++ util/tracing/trace_to_chrome.o | Bin 0 -> 12432 bytes util/tracing/trace_to_csv.o | Bin 0 -> 12320 bytes util/tracing/trace_to_influxdb.o | Bin 0 -> 27608 bytes util/tracing/trace_util.o | Bin 0 -> 12432 bytes 13 files changed, 243 insertions(+), 27 deletions(-) create mode 100644 experimental/C/src/TaskSet/TaskSetGenerator.lf create mode 100644 test/TypeScript/src/federated/PingPongDistributed.lf create mode 100644 test/TypeScript/src/federated/StopAtShutdown.lf create mode 100644 util/tracing/trace_to_chrome.o create mode 100644 util/tracing/trace_to_csv.o create mode 100644 util/tracing/trace_to_influxdb.o create mode 100644 util/tracing/trace_util.o diff --git a/experimental/C/src/TaskSet/TaskSetGenerator.lf b/experimental/C/src/TaskSet/TaskSetGenerator.lf new file mode 100644 index 0000000000..a60cdb3f98 --- /dev/null +++ b/experimental/C/src/TaskSet/TaskSetGenerator.lf @@ -0,0 +1,125 @@ +target C; + + +// 1. sleep -> lf_nano_sleep +// 2. concurrent thread : GPU - self- +// 3. tasks -> including period job +// 4. critical instant +// 5. key - generate tasks set +// 6. if not GUI on Python -> C +// + + +reactor Task { + + input in_name: char*; + input[2] in_time: time; // (exe_time, release_time) + + + state name:char*("unnamed task"); + state exe_time:time(1 sec); + state release_time:time(0 sec); + + logical action a; + + + reaction(startup){= + srand(time(0)); + // schedule(a, self->release_time); + =} + + reaction(in_name) {= + if(in_name->is_present){ + self->name = in_name->value; + info_print("Task name: %s", self->name); + } + =} + + reaction(in_time){= + if (in_time[0]->is_present && in_time[1]->is_present){ + self->exe_time = in_time[0]->value; + self->release_time = in_time[1]->value; + info_print("Execute time: %f, Release time: %f", self->exe_time, self->release_time); + } + =} + + + + reaction(a) -> a {= + interval_t physical_start_time = get_physical_time(); + printf("Task %s released at logical time %lld nsec, physical time %lld nsec\n", + self->name, + get_elapsed_logical_time(), + get_elapsed_physical_time() + ); + while (get_physical_time() < physical_start_time + self->exe_time) { + + }; + printf("Task %s finished execution at physical time %lld nsec\n", + self->name, + get_elapsed_physical_time()); +=} +} + + + +reactor Generator( + num_task:int(3), + utilization:float(0.6), + finish_time:time(10 sec) +){ + //tasks = new[5] Task(); + + + + + + reaction(startup) {= + //float execute_time = utilization * finish_time; + + // tasks[0] = new Task(name = "J0", exe_time= 3 sec, release_time = 0 sec); + // tasks[1] = new Task(name = "J1", exe_time= 3 sec, release_time = 4 sec); + // tasks[2] = new Task(name = "J2", exe_time= 3 sec, release_time = 8 sec); + // tasks[3] = new Task(name = "J3", exe_time= 3 sec, release_time = 12 sec); + // tasks[4] = new Task(name = "J4", exe_time= 3 sec, release_time = 16 sec); + + // for (int i = 0; i < num_tasks; i++){ + // char name[20]; + // sprintf(name, "J%d", i); + // tasks[i] = new Task(name = name, exe_time=execute_time / num_task, release_time=0 sec); + // } + info_print("Hello World!"); + + =} + + +} + + + +main reactor TaskSetGenerator { + + //g = new Generator(); + tasks = new[2] Task(); + + + reaction(startup) -> tasks.in_name {= + time[2] times; + + time[0] = time(3 sec); + time[1] = time(0 sec); + + + SET(tasks[0].in_name, "T0"); + //SET(tasks[0].in_time, times); + + time[0] = time(3 sec); + time[1] = time(4 sec); + + SET(tasks[1].in_name, "T1"); + //SET(tasks[1].in_time, times); + + + =} + +} \ No newline at end of file diff --git a/org.lflang/src/lib/ts/reactor-ts b/org.lflang/src/lib/ts/reactor-ts index ba90b9ccaa..c051709a91 160000 --- a/org.lflang/src/lib/ts/reactor-ts +++ b/org.lflang/src/lib/ts/reactor-ts @@ -1 +1 @@ -Subproject commit ba90b9ccaa7b3c64af7fc11490efd42bc65a6477 +Subproject commit c051709a91f42af4d164ed39510612dbf73d84e8 diff --git a/org.lflang/src/org/lflang/generator/ts/TSActionGenerator.kt b/org.lflang/src/org/lflang/generator/ts/TSActionGenerator.kt index 0fee968933..7420d128c4 100644 --- a/org.lflang/src/org/lflang/generator/ts/TSActionGenerator.kt +++ b/org.lflang/src/org/lflang/generator/ts/TSActionGenerator.kt @@ -26,7 +26,7 @@ class TSActionGenerator ( // duplicate action if we included the one generated // by LF. if (action.name != "shutdown") { - stateClassProperties.add("${action.name}: __Action<${getActionType(action, federate)}>;") + stateClassProperties.add("${action.name}: __Action<${getActionType(action)}>;") } } return stateClassProperties.joinToString("\n") @@ -51,7 +51,7 @@ class TSActionGenerator ( } } actionInstantiations.add( - "this.${action.name} = new __Action<${getActionType(action, federate)}>($actionArgs);") + "this.${action.name} = new __Action<${getActionType(action)}>($actionArgs);") } } return actionInstantiations.joinToString("\n") diff --git a/org.lflang/src/org/lflang/generator/ts/TSExtensions.kt b/org.lflang/src/org/lflang/generator/ts/TSExtensions.kt index f8ed80ae68..0110561a62 100644 --- a/org.lflang/src/org/lflang/generator/ts/TSExtensions.kt +++ b/org.lflang/src/org/lflang/generator/ts/TSExtensions.kt @@ -58,14 +58,12 @@ fun Parameter.getTargetType(): String = TSTypes.getTargetType(this) * @param action The action * @return The TS type. */ -fun getActionType(action: Action, federate: FederateInstance): String { +fun getActionType(action: Action): String { // Special handling for the networkMessage action created by // FedASTUtils.makeCommunication(), by assigning TypeScript // Buffer type for the action. Action is used as // FederatePortAction in federation.ts. - if (action in federate.networkMessageActions) { - return "Buffer" - } else if (action.type != null) { + if (action.type != null) { return action.type.getTargetType() } else { return "Present" diff --git a/org.lflang/src/org/lflang/generator/ts/TSGenerator.kt b/org.lflang/src/org/lflang/generator/ts/TSGenerator.kt index 3b85cde150..077f1a688b 100644 --- a/org.lflang/src/org/lflang/generator/ts/TSGenerator.kt +++ b/org.lflang/src/org/lflang/generator/ts/TSGenerator.kt @@ -534,11 +534,9 @@ class TSGenerator( serializer: SupportedSerializers ): String { return with(PrependOperator) {""" - |// FIXME: For now assume the data is a Buffer, but this is not checked. - |// Replace with ProtoBufs or MessagePack. |// generateNetworkReceiverBody |if (${action.name} !== undefined) { - | ${receivingPort.container.name}.${receivingPort.variable.name} = ${action.name}.toString(); // defaults to utf8 encoding + | ${receivingPort.container.name}.${receivingPort.variable.name} = ${action.name}; |} """.trimMargin()} } @@ -573,11 +571,8 @@ class TSGenerator( serializer: SupportedSerializers ): String { return with(PrependOperator) {""" - |// FIXME: For now assume the data is a Buffer, but this is not checked. - |// Use SupportedSerializers for determining the serialization later. |if (${sendingPort.container.name}.${sendingPort.variable.name} !== undefined) { - | let buf = Buffer.from(${sendingPort.container.name}.${sendingPort.variable.name}) - | this.util.sendRTITimedMessage(buf, ${receivingFed.id}, ${receivingPortID}); + | this.util.sendRTITimedMessage(${sendingPort.container.name}.${sendingPort.variable.name}, ${receivingFed.id}, ${receivingPortID}); |} """.trimMargin()} } diff --git a/org.lflang/src/org/lflang/generator/ts/TSReactionGenerator.kt b/org.lflang/src/org/lflang/generator/ts/TSReactionGenerator.kt index 7d4e420e69..71b3294462 100644 --- a/org.lflang/src/org/lflang/generator/ts/TSReactionGenerator.kt +++ b/org.lflang/src/org/lflang/generator/ts/TSReactionGenerator.kt @@ -140,16 +140,10 @@ class TSReactionGenerator( } private fun generateReactionSignatureForTrigger(trigOrSource: VarRef): String { - var reactSignatureElementType = if (trigOrSource.variable.name.startsWith("networkMessage")) { - // Special handling for the networkMessage action created by - // FedASTUtils.makeCommunication(), by assigning TypeScript - // Buffer type for the action. Action is used as - // FederatePortAction in federation.ts. - "Buffer" - } else if (trigOrSource.variable is Timer) { + var reactSignatureElementType = if (trigOrSource.variable is Timer) { "__Tag" } else if (trigOrSource.variable is Action) { - getActionType(trigOrSource.variable as Action, federate) + getActionType(trigOrSource.variable as Action) } else if (trigOrSource.variable is Port) { getPortType(trigOrSource.variable as Port) } else { @@ -333,7 +327,7 @@ class TSReactionGenerator( if (effect.variable is Timer) { errorReporter.reportError("A timer cannot be an effect of a reaction") } else if (effect.variable is Action){ - reactSignatureElement += ": Sched<" + getActionType(effect.variable as Action, federate) + ">" + reactSignatureElement += ": Sched<" + getActionType(effect.variable as Action) + ">" schedActionSet.add(effect.variable as Action) } else if (effect.variable is Port){ reactSignatureElement += ": ${generateReactionSignatureElementForPortEffect(effect)}" diff --git a/test/TypeScript/src/federated/DistributedCount.lf b/test/TypeScript/src/federated/DistributedCount.lf index 988b10b012..2c1d2c6ec1 100644 --- a/test/TypeScript/src/federated/DistributedCount.lf +++ b/test/TypeScript/src/federated/DistributedCount.lf @@ -13,23 +13,23 @@ // TODO(hokeun): Replace the following reactor with import Count from "../lib/Count.lf"; // once TypeScript serialization is implemented. reactor Count(offset:time(0), period:time(1 sec)) { - output out:string; + output out:number; timer t(offset, period); state count:number(1); reaction(t) -> out {= - out = String(count++); + out = count++; =} } reactor Print { // TODO(hokeun): Change type of inp to number once // once TypeScript serialization is implemented. - input inp:string; + input inp:number; state c:number(1); reaction(inp) {= const elapsedTime = util.getElapsedLogicalTime(); console.log("At time " + elapsedTime + ", received " + inp); - if (inp !== String(c)) { + if (inp !== c) { util.requestErrorStop("Expected to receive " + c + "."); } if (elapsedTime.isEqualTo(TimeValue.msec(200).add(TimeValue.sec(c - 1)))) { diff --git a/test/TypeScript/src/federated/PingPongDistributed.lf b/test/TypeScript/src/federated/PingPongDistributed.lf new file mode 100644 index 0000000000..a147eb07d9 --- /dev/null +++ b/test/TypeScript/src/federated/PingPongDistributed.lf @@ -0,0 +1,66 @@ +/** +* This checks communication between federates +*/ + +target TypeScript; + +/* TODO(yunsang): Federate can send and receive only string type in current. +* Therefore, in this example, both the input and output of +* Ping and Pong are string types, although in reality they are +* suitable for number type. +* If federate communication in typescript is upgraded to support +* other data types, input and ouput in this example should be +* modified to number type. +*/ +reactor Ping(count:number(10)) { + input receive:number; + output send:number; + state pingsLeft:number(count); + logical action serve; + reaction (startup, serve) -> send {= + console.log(`At lo${util.getElapsedLogicalTime()}, Ping sending ${pingsLeft}`); + send = pingsLeft; + pingsLeft = pingsLeft - 1; + =} + reaction (receive) -> serve {= + if(pingsLeft > 0){ + actions.serve.schedule(0, null); + } + else{ + util.requestStop(); + } + =} + +} + + +reactor Pong(expected:number(10)) { + input receive:number; + output send:number; + state count:number(0); + reaction(receive) -> send {= + count += 1; + console.log(`At logical time ${util.getElapsedLogicalTime()}, Pong received ${receive}`) + send = receive; + if (count == expected){ + util.requestStop(); + } + =} + + reaction(shutdown) {= + if (count != expected){ + util.requestErrorStop(`Pong expected to receive ${expected} inputs, but it received ${count}`); + } + console.log(`Pong received ${count} pings.`); + =} + +} + + +federated reactor PingPongDistributed(count: number(10)){ + + ping = new Ping(count=count); + pong = new Pong(expected=count); + ping.send -> pong.receive; + pong.send -> ping.receive; +} \ No newline at end of file diff --git a/test/TypeScript/src/federated/StopAtShutdown.lf b/test/TypeScript/src/federated/StopAtShutdown.lf new file mode 100644 index 0000000000..62f8d7e3c1 --- /dev/null +++ b/test/TypeScript/src/federated/StopAtShutdown.lf @@ -0,0 +1,38 @@ +/** + * + */ + target TypeScript { + timeout: 2 sec +} + +reactor A { + input inp:string; + reaction(startup) {= + console.log("Hello World!"); + =} + + reaction(inp) {= + console.log("Got it"); + =} + + reaction(shutdown) {= + util.requestStop(); + =} +} + +reactor B { + output out:string; + timer t(1 sec); + reaction(t) -> out {= + out = '1'; + =} + reaction(shutdown) {= + util.requestStop(); + =} +} + +federated reactor { + a = new A(); + b = new B(); + b.out -> a.inp; +} \ No newline at end of file diff --git a/util/tracing/trace_to_chrome.o b/util/tracing/trace_to_chrome.o new file mode 100644 index 0000000000000000000000000000000000000000..60509a157167b1627d3146be35a2d8bd0dda3838 GIT binary patch literal 12432 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 ZEXIwR@Y{{I{xnQ%C_9~7@vn;`rBna_ literal 0 HcmV?d00001 diff --git a/util/tracing/trace_to_csv.o b/util/tracing/trace_to_csv.o new file mode 100644 index 0000000000000000000000000000000000000000..affe9ec76edfc18c361fe19c1be4eece04df8a23 GIT binary patch literal 12320 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 LG-nz6vXB1{jt529 literal 0 HcmV?d00001 diff --git a/util/tracing/trace_to_influxdb.o b/util/tracing/trace_to_influxdb.o new file mode 100644 index 0000000000000000000000000000000000000000..738bba5cb9f54e66ee4c587c337f8696a8809c88 GIT binary patch literal 27608 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 KkIc83|9=6d__mY) literal 0 HcmV?d00001 diff --git a/util/tracing/trace_util.o b/util/tracing/trace_util.o new file mode 100644 index 0000000000000000000000000000000000000000..94e4e815b4c45b0c211fffd46933b69ad2d8f703 GIT binary patch literal 12432 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 literal 0 HcmV?d00001 From 9d492ff049d00e10c36222aefce6d38c39224cdd Mon Sep 17 00:00:00 2001 From: CloverCho Date: Thu, 28 Apr 2022 14:54:23 -0700 Subject: [PATCH 02/12] Remove unrelated to previous commit(Serialization) --- .../C/src/TaskSet/TaskSetGenerator.lf | 125 ------------------ util/tracing/trace_to_chrome.o | Bin 12432 -> 0 bytes util/tracing/trace_to_csv.o | Bin 12320 -> 0 bytes util/tracing/trace_to_influxdb.o | Bin 27608 -> 0 bytes util/tracing/trace_util.o | Bin 12432 -> 0 bytes 5 files changed, 125 deletions(-) delete mode 100644 experimental/C/src/TaskSet/TaskSetGenerator.lf delete mode 100644 util/tracing/trace_to_chrome.o delete mode 100644 util/tracing/trace_to_csv.o delete mode 100644 util/tracing/trace_to_influxdb.o delete mode 100644 util/tracing/trace_util.o diff --git a/experimental/C/src/TaskSet/TaskSetGenerator.lf b/experimental/C/src/TaskSet/TaskSetGenerator.lf deleted file mode 100644 index a60cdb3f98..0000000000 --- a/experimental/C/src/TaskSet/TaskSetGenerator.lf +++ /dev/null @@ -1,125 +0,0 @@ -target C; - - -// 1. sleep -> lf_nano_sleep -// 2. concurrent thread : GPU - self- -// 3. tasks -> including period job -// 4. critical instant -// 5. key - generate tasks set -// 6. if not GUI on Python -> C -// - - -reactor Task { - - input in_name: char*; - input[2] in_time: time; // (exe_time, release_time) - - - state name:char*("unnamed task"); - state exe_time:time(1 sec); - state release_time:time(0 sec); - - logical action a; - - - reaction(startup){= - srand(time(0)); - // schedule(a, self->release_time); - =} - - reaction(in_name) {= - if(in_name->is_present){ - self->name = in_name->value; - info_print("Task name: %s", self->name); - } - =} - - reaction(in_time){= - if (in_time[0]->is_present && in_time[1]->is_present){ - self->exe_time = in_time[0]->value; - self->release_time = in_time[1]->value; - info_print("Execute time: %f, Release time: %f", self->exe_time, self->release_time); - } - =} - - - - reaction(a) -> a {= - interval_t physical_start_time = get_physical_time(); - printf("Task %s released at logical time %lld nsec, physical time %lld nsec\n", - self->name, - get_elapsed_logical_time(), - get_elapsed_physical_time() - ); - while (get_physical_time() < physical_start_time + self->exe_time) { - - }; - printf("Task %s finished execution at physical time %lld nsec\n", - self->name, - get_elapsed_physical_time()); -=} -} - - - -reactor Generator( - num_task:int(3), - utilization:float(0.6), - finish_time:time(10 sec) -){ - //tasks = new[5] Task(); - - - - - - reaction(startup) {= - //float execute_time = utilization * finish_time; - - // tasks[0] = new Task(name = "J0", exe_time= 3 sec, release_time = 0 sec); - // tasks[1] = new Task(name = "J1", exe_time= 3 sec, release_time = 4 sec); - // tasks[2] = new Task(name = "J2", exe_time= 3 sec, release_time = 8 sec); - // tasks[3] = new Task(name = "J3", exe_time= 3 sec, release_time = 12 sec); - // tasks[4] = new Task(name = "J4", exe_time= 3 sec, release_time = 16 sec); - - // for (int i = 0; i < num_tasks; i++){ - // char name[20]; - // sprintf(name, "J%d", i); - // tasks[i] = new Task(name = name, exe_time=execute_time / num_task, release_time=0 sec); - // } - info_print("Hello World!"); - - =} - - -} - - - -main reactor TaskSetGenerator { - - //g = new Generator(); - tasks = new[2] Task(); - - - reaction(startup) -> tasks.in_name {= - time[2] times; - - time[0] = time(3 sec); - time[1] = time(0 sec); - - - SET(tasks[0].in_name, "T0"); - //SET(tasks[0].in_time, times); - - time[0] = time(3 sec); - time[1] = time(4 sec); - - SET(tasks[1].in_name, "T1"); - //SET(tasks[1].in_time, times); - - - =} - -} \ No newline at end of file diff --git a/util/tracing/trace_to_chrome.o b/util/tracing/trace_to_chrome.o deleted file mode 100644 index 60509a157167b1627d3146be35a2d8bd0dda3838..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12432 zcmcIq4RBP|6~0OM6Oo`rr9$g#Bo=De!T?1hwOQhm#}tAB3)2d&%kE2dCD~o~y@db< z8JAeLODv8$LtCap>ra`f?a-N)#*D>8(O^fX*r`f8wN3qLiAh`Rq+=A@^ql+7-934E zPpI0GHjuc$eIH{a~)`pvX>^ zQ2%8Uh3M7yV|V|16VNoN=!XmXe&c}A(>KA$KTU99TzPwUYyDH>6dTy_l$%~|6!gRS zmyC`}k@^@a7~BmHa`3&}=m_mK@~?oX6NtQi#K^TB5tZ%t1A~VW=;VgS+cW*TCS)%v z4e7{0gP+_)e~O8tDK2DuFvueif=&-s8qL1Zqv?jxbc-zG==Rjb_|ZhXWX$a`x_-Cr*Jgr{I3#lOpT`Ur&kcvy~@>&?%#1 zF;3^Gne4~O1<}4yqJ5sC4}hqLdoYQ4{Xwser4WZKjBHh(Q3xG2I`l)q{Cg|%XS~?G z^f5aoReqxzR%5=~=$PIv-FI>v(=B>Z&1Tuj5%5_h|H)qc0E+exfu;xi+Gx0-@6C0W z<@E!VM%=?q$W&**97$ULc}O=EN1;jyy0(q!}oZ?14$2OFmJkH zR-XlxVn`ssUZSNH<&neS^zJ>MEmGw5laO|Yyl8wZ8qR9Hv4GRn2HK%cBR4o{{Ydsi zA$wrGp6^+aANGowk%Kk;;UOg1#6`fy;mPZXke#ucGX}ZH0bFMjYbLt^C$8zb%CO{>*p_;1N)Rj`e5aKTSrDl zdiB%Nr4_yU8MH94prD`W*o)JooXnmngiZ&&ciWtPrpS0^*YO;%DFdf>J>IJiA!omi zX+~~_hK%TMjGouW!|qn7o0c0c%O<`0i~@`{^d>(zJs6CFF{7Zr*^w?Qajd{_<^Smw z*8X3BJ0;0cp0syo>%6**!p&e}sAR(MV;|V)r7s6r?#FG+DCtPYyPS=EY>MXep<--@ zD)&A9pOF!xAfKyXCnF27X3`F>Z#db&OZs$EyMM@9C=W(v*_VKO@$dk*J+WB{j>AWNfR{Hj^<+tc}LaShm^JqLJoiGbTco znVAYZ_KGEU(oX%%+H)*lKEKb0lp+ut#~JRW~=s0@~Uw ziF8_q62qdwJY}{Aa4mcY4|n~XG-78}hBBwBR;#vZs<=8r;73i>DBp@`OCp*{S+ZSY<+@d)IfnvPk};Wm8B2rtAGOG(7oXhtKJvIc(^YRZqgi>dr5bt2O8$Pt zc;OM~9DOn(u=QzHJhd%};Tg4FYhjuui+O3m4v{;oR8s7Ob%xurj^`)tG`CI`n?Usc zTb9??*J^V@o3lwft1SsE4$PmoFe_UNb}hIzFn`fp2PH42)4goR8d26dt!(C$iIeuj zL(nY1@xl_6f2K~mx4izM33q`2w6Sj~;!y5@4}c;_{T1d!l)(Ot*a_ure3&ctzg4dK z?~=Vjd=nqKiv8_njs@y;-B5I#cxS`~%Vve=7gHfB;Gb8iz!w#dQX%AHyKO!DTD;ut;a&-3R_e!}xL%#>anrG>nDed<<{PBy4#1 zz&)Luz_$&j-$7g8Eg%&YRx+JQB<)7gWZL1><~z)&9gdk+G?S3;9TK*kV_uFx$d@u{ z5~?vXlM#)?5V5Gzm@!QO?=s+gSegxoK`XiiUWB%U8zYHk;kegg+L2hqj)Y}^EYT=o zL0;IA&CO=mf`{u-h_F-Xa5HE$Lr@Y)a3Yh8wxosGny^JGZ6>8j%Nc4M;sKFzirNuz zi^pB_Ny4Yl9rul?aD4#p$yji|#G>RU!@Oge;oRhY!{x6eT**%-`Pn}5*SO?sNPfPL zd@aK(p|1SAmGPj@3Xd~+JUbPBACt#8WXSHL49D*+DlSI}$M{?Zm*RPma2zj}e~sbD ze;4upgK*@z94^IEPW_4p`>|X~IJPn7N`8q;Ug2we@Cd`vpS!8OgW>4E;(5pie}v)4 zvxnM0b>a6@`y|7WzXmQWZxD{-`ZQe1?!TBk@*kx36buX$6`$EoQ(VsQD*#hGn;4FE z)pJvv;avXv44=t(9%nfEqsIRP;pqP?CjSDH=RB`69C_roVYt8P!}9@?NB`AXbSXU= zVK?Gv8_QybBmW}OUq(3k`5CxWd_qhfc@&;uIP(0A+IRcl1sA@X?Eb)o-$VElE_@H+ zFEadM=FeXlj(#qJ3(I005EN8LKNU|M!#Pi!;V6GE*|iwXXyI1WX{?S8`1e|{bvX7b3d z&aX~}BhM^aSHEIB{5*P%$#b5wKKM9#u)w%s%v5}4GMw|wW;mB$!f=#V`&*FVeBNUW z$8pV}acyzoiwJKe+?@}PGF)T+Kg)Qy-QO`B?f!xI|Hyc%7|-9CJm)#faO7EvjzO73 zFKli8Xuf+_n1|Bt!OBv4X)-xRKK1gr-%ag07k-G^8r{`=QB%~paOKbKE?j-T+wH>D_cal)wzt67 z8o1jT=N?zJ4E!V}k6zvei-TO7$Q~ZItB&-wiP3>Np7XPJGFR zV&KObDEObUP*>%X%9E=Jr?iBYQ^GF03U}MDfez$!>)%fLbc`u=>1(k8l`p}CoR}ZH zDE$KM2dYo`ui6Ws;x&GOn;w)?&P|RV*Ok&&8w=3yhN7lojbQ6FA7=plP2Vea_1lKuggzVcte z%~0_g|B-7PiQ7pK^AC>zrLW@eHTS484PQc_OhR%f_^s1RAM+yOQNKW;(!jtZ31 ZEXIwR@Y{{I{xnQ%C_9~7@vn;`rBna_ diff --git a/util/tracing/trace_to_csv.o b/util/tracing/trace_to_csv.o deleted file mode 100644 index affe9ec76edfc18c361fe19c1be4eece04df8a23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12320 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 LG-nz6vXB1{jt529 diff --git a/util/tracing/trace_to_influxdb.o b/util/tracing/trace_to_influxdb.o deleted file mode 100644 index 738bba5cb9f54e66ee4c587c337f8696a8809c88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27608 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 KkIc83|9=6d__mY) diff --git a/util/tracing/trace_util.o b/util/tracing/trace_util.o deleted file mode 100644 index 94e4e815b4c45b0c211fffd46933b69ad2d8f703..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12432 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 From 85b0d0a1edd7a94f37957159eb9b6f2c13c4ac1c Mon Sep 17 00:00:00 2001 From: CloverCho Date: Thu, 28 Apr 2022 16:32:10 -0700 Subject: [PATCH 03/12] Instantiate network message action as FederatePortAction --- .../src/org/lflang/generator/ts/TSActionGenerator.kt | 11 ++++++++--- .../org/lflang/generator/ts/TSConstructorGenerator.kt | 2 +- .../src/org/lflang/generator/ts/TSExtensions.kt | 4 ---- .../lflang/generator/ts/TSImportPreambleGenerator.kt | 2 +- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/org.lflang/src/org/lflang/generator/ts/TSActionGenerator.kt b/org.lflang/src/org/lflang/generator/ts/TSActionGenerator.kt index 7420d128c4..afc6736c87 100644 --- a/org.lflang/src/org/lflang/generator/ts/TSActionGenerator.kt +++ b/org.lflang/src/org/lflang/generator/ts/TSActionGenerator.kt @@ -32,7 +32,7 @@ class TSActionGenerator ( return stateClassProperties.joinToString("\n") } - fun generateInstantiations(): String { + fun generateInstantiations(networkMessageActions: List): String { val actionInstantiations = LinkedList() for (action in actions) { // Shutdown actions are handled internally by the @@ -50,8 +50,13 @@ class TSActionGenerator ( actionArgs+= ", " + action.minDelay.getTargetValue() } } - actionInstantiations.add( - "this.${action.name} = new __Action<${getActionType(action)}>($actionArgs);") + if (action in networkMessageActions){ + actionInstantiations.add( + "this.${action.name} = new __FederatePortAction<${getActionType(action)}>($actionArgs);") + } else { + actionInstantiations.add( + "this.${action.name} = new __Action<${getActionType(action)}>($actionArgs);") + } } } return actionInstantiations.joinToString("\n") diff --git a/org.lflang/src/org/lflang/generator/ts/TSConstructorGenerator.kt b/org.lflang/src/org/lflang/generator/ts/TSConstructorGenerator.kt index eab9dd9d56..db7234763c 100644 --- a/org.lflang/src/org/lflang/generator/ts/TSConstructorGenerator.kt +++ b/org.lflang/src/org/lflang/generator/ts/TSConstructorGenerator.kt @@ -145,7 +145,7 @@ class TSConstructorGenerator ( ${" | "..timers.generateInstantiations()} ${" | "..parameters.generateInstantiations()} ${" | "..states.generateInstantiations()} - ${" | "..actions.generateInstantiations()} + ${" | "..actions.generateInstantiations(federate.networkMessageActions)} ${" | "..ports.generateInstantiations()} ${" | "..connections.generateInstantiations()} ${" | "..if (reactor.isFederated) generateFederatePortActionRegistrations(federate.networkMessageActions) else ""} diff --git a/org.lflang/src/org/lflang/generator/ts/TSExtensions.kt b/org.lflang/src/org/lflang/generator/ts/TSExtensions.kt index 0110561a62..300966b797 100644 --- a/org.lflang/src/org/lflang/generator/ts/TSExtensions.kt +++ b/org.lflang/src/org/lflang/generator/ts/TSExtensions.kt @@ -59,10 +59,6 @@ fun Parameter.getTargetType(): String = TSTypes.getTargetType(this) * @return The TS type. */ fun getActionType(action: Action): String { - // Special handling for the networkMessage action created by - // FedASTUtils.makeCommunication(), by assigning TypeScript - // Buffer type for the action. Action is used as - // FederatePortAction in federation.ts. if (action.type != null) { return action.type.getTargetType() } else { diff --git a/org.lflang/src/org/lflang/generator/ts/TSImportPreambleGenerator.kt b/org.lflang/src/org/lflang/generator/ts/TSImportPreambleGenerator.kt index a80a6d832b..2855be06ad 100644 --- a/org.lflang/src/org/lflang/generator/ts/TSImportPreambleGenerator.kt +++ b/org.lflang/src/org/lflang/generator/ts/TSImportPreambleGenerator.kt @@ -52,7 +52,7 @@ class TSImportPreambleGenerator( |import commandLineArgs from 'command-line-args' |import commandLineUsage from 'command-line-usage' |import {Parameter as __Parameter, Timer as __Timer, Reactor as __Reactor, App as __App} from './core/reactor' - |import {Action as __Action, Startup as __Startup} from './core/action' + |import {Action as __Action, Startup as __Startup, FederatePortAction as __FederatePortAction} from './core/action' |import {Bank as __Bank} from './core/bank' |import {FederatedApp as __FederatedApp} from './core/federation' |import {InPort as __InPort, OutPort as __OutPort, Port as __Port} from './core/port' From 066c47623eea3188db97a9df4e65c7fc2379c846 Mon Sep 17 00:00:00 2001 From: CloverCho Date: Thu, 28 Apr 2022 17:02:58 -0700 Subject: [PATCH 04/12] Update reactor-ts version --- org.lflang/src/lib/ts/reactor-ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/org.lflang/src/lib/ts/reactor-ts b/org.lflang/src/lib/ts/reactor-ts index c051709a91..4f8fd96a89 160000 --- a/org.lflang/src/lib/ts/reactor-ts +++ b/org.lflang/src/lib/ts/reactor-ts @@ -1 +1 @@ -Subproject commit c051709a91f42af4d164ed39510612dbf73d84e8 +Subproject commit 4f8fd96a89a17d273a158fc7b41c9cd855cc3883 From 8979883170b30f95aa9bac5703239cd57520c6ef Mon Sep 17 00:00:00 2001 From: CloverCho <43602849+CloverCho@users.noreply.github.com> Date: Tue, 3 May 2022 13:55:57 +0900 Subject: [PATCH 05/12] Update PingPongDistributed.lf Delete outdated comments --- test/TypeScript/src/federated/PingPongDistributed.lf | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/test/TypeScript/src/federated/PingPongDistributed.lf b/test/TypeScript/src/federated/PingPongDistributed.lf index a147eb07d9..c893c35d12 100644 --- a/test/TypeScript/src/federated/PingPongDistributed.lf +++ b/test/TypeScript/src/federated/PingPongDistributed.lf @@ -3,15 +3,7 @@ */ target TypeScript; - -/* TODO(yunsang): Federate can send and receive only string type in current. -* Therefore, in this example, both the input and output of -* Ping and Pong are string types, although in reality they are -* suitable for number type. -* If federate communication in typescript is upgraded to support -* other data types, input and ouput in this example should be -* modified to number type. -*/ + reactor Ping(count:number(10)) { input receive:number; output send:number; @@ -63,4 +55,4 @@ federated reactor PingPongDistributed(count: number(10)){ pong = new Pong(expected=count); ping.send -> pong.receive; pong.send -> ping.receive; -} \ No newline at end of file +} From 608aa44337ad46f2f60303c7a184fb5804eb15ad Mon Sep 17 00:00:00 2001 From: CloverCho Date: Wed, 4 May 2022 13:58:52 +0900 Subject: [PATCH 06/12] Update reactor-ts version --- org.lflang/src/lib/ts/reactor-ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/org.lflang/src/lib/ts/reactor-ts b/org.lflang/src/lib/ts/reactor-ts index 4f8fd96a89..65c57f6682 160000 --- a/org.lflang/src/lib/ts/reactor-ts +++ b/org.lflang/src/lib/ts/reactor-ts @@ -1 +1 @@ -Subproject commit 4f8fd96a89a17d273a158fc7b41c9cd855cc3883 +Subproject commit 65c57f6682cfc402283e1f728fbf048eb51aec46 From fd1bb394c232d4168cc2f4e8a4f5a69575a3a7c6 Mon Sep 17 00:00:00 2001 From: CloverCho <43602849+CloverCho@users.noreply.github.com> Date: Mon, 9 May 2022 14:33:30 +0900 Subject: [PATCH 07/12] Remove extra blank lines --- test/TypeScript/src/federated/PingPongDistributed.lf | 6 ------ 1 file changed, 6 deletions(-) diff --git a/test/TypeScript/src/federated/PingPongDistributed.lf b/test/TypeScript/src/federated/PingPongDistributed.lf index c893c35d12..d96434f8d3 100644 --- a/test/TypeScript/src/federated/PingPongDistributed.lf +++ b/test/TypeScript/src/federated/PingPongDistributed.lf @@ -22,10 +22,8 @@ reactor Ping(count:number(10)) { util.requestStop(); } =} - } - reactor Pong(expected:number(10)) { input receive:number; output send:number; @@ -38,19 +36,15 @@ reactor Pong(expected:number(10)) { util.requestStop(); } =} - reaction(shutdown) {= if (count != expected){ util.requestErrorStop(`Pong expected to receive ${expected} inputs, but it received ${count}`); } console.log(`Pong received ${count} pings.`); =} - } - federated reactor PingPongDistributed(count: number(10)){ - ping = new Ping(count=count); pong = new Pong(expected=count); ping.send -> pong.receive; From 028a9b78d5eaf469240e7571e309dbfb32b288d3 Mon Sep 17 00:00:00 2001 From: CloverCho <43602849+CloverCho@users.noreply.github.com> Date: Mon, 9 May 2022 14:34:50 +0900 Subject: [PATCH 08/12] Add extra line for end of file --- test/TypeScript/src/federated/StopAtShutdown.lf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/TypeScript/src/federated/StopAtShutdown.lf b/test/TypeScript/src/federated/StopAtShutdown.lf index 62f8d7e3c1..9322c8ef61 100644 --- a/test/TypeScript/src/federated/StopAtShutdown.lf +++ b/test/TypeScript/src/federated/StopAtShutdown.lf @@ -35,4 +35,4 @@ federated reactor { a = new A(); b = new B(); b.out -> a.inp; -} \ No newline at end of file +} From c7e48f580d551b6be2512b021aa4101b8dd03df4 Mon Sep 17 00:00:00 2001 From: CloverCho <43602849+CloverCho@users.noreply.github.com> Date: Mon, 9 May 2022 14:36:02 +0900 Subject: [PATCH 09/12] Update StopAtShutdown.lf --- test/TypeScript/src/federated/StopAtShutdown.lf | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/test/TypeScript/src/federated/StopAtShutdown.lf b/test/TypeScript/src/federated/StopAtShutdown.lf index 9322c8ef61..3aaeb826c3 100644 --- a/test/TypeScript/src/federated/StopAtShutdown.lf +++ b/test/TypeScript/src/federated/StopAtShutdown.lf @@ -6,25 +6,23 @@ } reactor A { - input inp:string; + input inp:number; reaction(startup) {= console.log("Hello World!"); =} - reaction(inp) {= console.log("Got it"); =} - reaction(shutdown) {= util.requestStop(); =} } reactor B { - output out:string; + output out:number; timer t(1 sec); reaction(t) -> out {= - out = '1'; + out = 1; =} reaction(shutdown) {= util.requestStop(); From b63f8f937ba0689f1327c43d79d27eebf898f2f2 Mon Sep 17 00:00:00 2001 From: CloverCho <43602849+CloverCho@users.noreply.github.com> Date: Mon, 9 May 2022 14:48:38 +0900 Subject: [PATCH 10/12] Update DistributedCount.lf --- test/TypeScript/src/federated/DistributedCount.lf | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/test/TypeScript/src/federated/DistributedCount.lf b/test/TypeScript/src/federated/DistributedCount.lf index 2c1d2c6ec1..d58c38e0da 100644 --- a/test/TypeScript/src/federated/DistributedCount.lf +++ b/test/TypeScript/src/federated/DistributedCount.lf @@ -10,20 +10,8 @@ timeout: 5 sec }; -// TODO(hokeun): Replace the following reactor with import Count from "../lib/Count.lf"; -// once TypeScript serialization is implemented. -reactor Count(offset:time(0), period:time(1 sec)) { - output out:number; - timer t(offset, period); - state count:number(1); - reaction(t) -> out {= - out = count++; - =} -} - +import Count from "../lib/Count.lf"; reactor Print { - // TODO(hokeun): Change type of inp to number once - // once TypeScript serialization is implemented. input inp:number; state c:number(1); reaction(inp) {= From 52b3fd7bea3fb0618fb0eaff0665621aec8a4188 Mon Sep 17 00:00:00 2001 From: Hokeun Kim Date: Tue, 10 May 2022 08:57:42 +0900 Subject: [PATCH 11/12] Add comments for StopAtShutdown.lf and update reactor-ts version. --- org.lflang/src/lib/ts/reactor-ts | 2 +- test/TypeScript/src/federated/StopAtShutdown.lf | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/org.lflang/src/lib/ts/reactor-ts b/org.lflang/src/lib/ts/reactor-ts index 65c57f6682..7d6d8e963d 160000 --- a/org.lflang/src/lib/ts/reactor-ts +++ b/org.lflang/src/lib/ts/reactor-ts @@ -1 +1 @@ -Subproject commit 65c57f6682cfc402283e1f728fbf048eb51aec46 +Subproject commit 7d6d8e963d135529d21bfa603010cd15eddcd64c diff --git a/test/TypeScript/src/federated/StopAtShutdown.lf b/test/TypeScript/src/federated/StopAtShutdown.lf index 3aaeb826c3..bde91c3a7d 100644 --- a/test/TypeScript/src/federated/StopAtShutdown.lf +++ b/test/TypeScript/src/federated/StopAtShutdown.lf @@ -1,5 +1,8 @@ /** - * + * Check that request_stop() doesn't cause + * any issues at the shutdown tag. + * + * Original bug discovered by Steven Wong */ target TypeScript { timeout: 2 sec From 0115cbb95617c140f724025e4044003332327241 Mon Sep 17 00:00:00 2001 From: Hokeun Kim Date: Tue, 10 May 2022 12:20:53 +0900 Subject: [PATCH 12/12] Update reactor-ts version. --- org.lflang/src/lib/ts/reactor-ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/org.lflang/src/lib/ts/reactor-ts b/org.lflang/src/lib/ts/reactor-ts index 7d6d8e963d..008087ba80 160000 --- a/org.lflang/src/lib/ts/reactor-ts +++ b/org.lflang/src/lib/ts/reactor-ts @@ -1 +1 @@ -Subproject commit 7d6d8e963d135529d21bfa603010cd15eddcd64c +Subproject commit 008087ba8064a1220aa52a96654741c730e4d86f