feat(core): programs' threads, and FILIUS' echo server and generic client after Java, measured against Java
Programs run as generators that yield what they wait for (threads.ts); the engine resumes them after every event. TCP connect, send, receive, accept and name resolution exist as such steps; the blocking calls wrap them. EchoRun records eight stories in Java FILIUS, frames, tables and each program's window lines; echoJava.test.ts plays them card by card. Not taken from Java: a connection without a route hangs for ever; a server switched off leaves its connections' last FIN unanswered. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,377 @@
|
||||
{
|
||||
"frames": {
|
||||
"00000000-0000-0000-0000-000000000101": [
|
||||
{
|
||||
"time": 641,
|
||||
"source": "02:00:00:00:01:12",
|
||||
"destination": "FF:FF:FF:FF:FF:FF",
|
||||
"arp": 1,
|
||||
"senderIp": "192.168.0.20",
|
||||
"targetIp": "192.168.0.30"
|
||||
}
|
||||
],
|
||||
"00000000-0000-0000-0000-000000000102": [
|
||||
{
|
||||
"time": 519,
|
||||
"source": "02:00:00:00:01:12",
|
||||
"destination": "FF:FF:FF:FF:FF:FF",
|
||||
"arp": 1,
|
||||
"senderIp": "192.168.0.20",
|
||||
"targetIp": "192.168.0.30"
|
||||
},
|
||||
{
|
||||
"time": 755,
|
||||
"source": "02:00:00:00:01:13",
|
||||
"destination": "02:00:00:00:01:12",
|
||||
"arp": 2,
|
||||
"senderIp": "192.168.0.30",
|
||||
"targetIp": "192.168.0.20"
|
||||
},
|
||||
{
|
||||
"time": 758,
|
||||
"source": "02:00:00:00:01:12",
|
||||
"destination": "02:00:00:00:01:13",
|
||||
"sourceIp": "192.168.0.20",
|
||||
"destinationIp": "192.168.0.30",
|
||||
"protocol": 6,
|
||||
"sourcePort": 58845,
|
||||
"destinationPort": 55555,
|
||||
"payload": null,
|
||||
"tcpFlags": "S",
|
||||
"sequence": 2000000,
|
||||
"acknowledgement": 0
|
||||
}
|
||||
],
|
||||
"00000000-0000-0000-0000-000000000103": [
|
||||
{
|
||||
"time": 641,
|
||||
"source": "02:00:00:00:01:12",
|
||||
"destination": "FF:FF:FF:FF:FF:FF",
|
||||
"arp": 1,
|
||||
"senderIp": "192.168.0.20",
|
||||
"targetIp": "192.168.0.30"
|
||||
},
|
||||
{
|
||||
"time": 643,
|
||||
"source": "02:00:00:00:01:13",
|
||||
"destination": "02:00:00:00:01:12",
|
||||
"arp": 2,
|
||||
"senderIp": "192.168.0.30",
|
||||
"targetIp": "192.168.0.20"
|
||||
},
|
||||
{
|
||||
"time": 871,
|
||||
"source": "02:00:00:00:01:12",
|
||||
"destination": "02:00:00:00:01:13",
|
||||
"sourceIp": "192.168.0.20",
|
||||
"destinationIp": "192.168.0.30",
|
||||
"protocol": 6,
|
||||
"sourcePort": 58845,
|
||||
"destinationPort": 55555,
|
||||
"payload": null,
|
||||
"tcpFlags": "S",
|
||||
"sequence": 2000000,
|
||||
"acknowledgement": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
"rows": {
|
||||
"00000000-0000-0000-0000-000000000101": [
|
||||
[
|
||||
"1",
|
||||
"02:00:00:00:01:12",
|
||||
"FF:FF:FF:FF:FF:FF",
|
||||
"",
|
||||
"Netzzugang",
|
||||
"0x806"
|
||||
],
|
||||
[
|
||||
"1",
|
||||
"192.168.0.20",
|
||||
"192.168.0.30",
|
||||
"ARP",
|
||||
"Vermittlung",
|
||||
"Suche nach MAC für 192.168.0.30 [op=REQUEST, sender=02:00:00:00:01:12|192.168.0.20, target=FF:FF:FF:FF:FF:FF|192.168.0.30]"
|
||||
]
|
||||
],
|
||||
"00000000-0000-0000-0000-000000000102": [
|
||||
[
|
||||
"1",
|
||||
"02:00:00:00:01:12",
|
||||
"FF:FF:FF:FF:FF:FF",
|
||||
"",
|
||||
"Netzzugang",
|
||||
"0x806"
|
||||
],
|
||||
[
|
||||
"1",
|
||||
"192.168.0.20",
|
||||
"192.168.0.30",
|
||||
"ARP",
|
||||
"Vermittlung",
|
||||
"Suche nach MAC für 192.168.0.30 [op=REQUEST, sender=02:00:00:00:01:12|192.168.0.20, target=FF:FF:FF:FF:FF:FF|192.168.0.30]"
|
||||
],
|
||||
[
|
||||
"2",
|
||||
"02:00:00:00:01:13",
|
||||
"02:00:00:00:01:12",
|
||||
"",
|
||||
"Netzzugang",
|
||||
"0x806"
|
||||
],
|
||||
[
|
||||
"2",
|
||||
"192.168.0.30",
|
||||
"192.168.0.20",
|
||||
"ARP",
|
||||
"Vermittlung",
|
||||
"MAC ist 02:00:00:00:01:13 [op=REPLY, sender=02:00:00:00:01:13|192.168.0.30, target=02:00:00:00:01:12|192.168.0.20]"
|
||||
],
|
||||
[
|
||||
"3",
|
||||
"02:00:00:00:01:12",
|
||||
"02:00:00:00:01:13",
|
||||
"",
|
||||
"Netzzugang",
|
||||
"0x800"
|
||||
],
|
||||
[
|
||||
"3",
|
||||
"192.168.0.20",
|
||||
"192.168.0.30",
|
||||
"IP",
|
||||
"Vermittlung",
|
||||
"Protokoll: 6, TTL: 64"
|
||||
],
|
||||
[
|
||||
"3",
|
||||
"192.168.0.20:58845",
|
||||
"192.168.0.30:55555",
|
||||
"TCP",
|
||||
"Transport",
|
||||
"SYN, SEQ: 2.000.000"
|
||||
]
|
||||
],
|
||||
"00000000-0000-0000-0000-000000000103": [
|
||||
[
|
||||
"1",
|
||||
"02:00:00:00:01:12",
|
||||
"FF:FF:FF:FF:FF:FF",
|
||||
"",
|
||||
"Netzzugang",
|
||||
"0x806"
|
||||
],
|
||||
[
|
||||
"1",
|
||||
"192.168.0.20",
|
||||
"192.168.0.30",
|
||||
"ARP",
|
||||
"Vermittlung",
|
||||
"Suche nach MAC für 192.168.0.30 [op=REQUEST, sender=02:00:00:00:01:12|192.168.0.20, target=FF:FF:FF:FF:FF:FF|192.168.0.30]"
|
||||
],
|
||||
[
|
||||
"2",
|
||||
"02:00:00:00:01:13",
|
||||
"02:00:00:00:01:12",
|
||||
"",
|
||||
"Netzzugang",
|
||||
"0x806"
|
||||
],
|
||||
[
|
||||
"2",
|
||||
"192.168.0.30",
|
||||
"192.168.0.20",
|
||||
"ARP",
|
||||
"Vermittlung",
|
||||
"MAC ist 02:00:00:00:01:13 [op=REPLY, sender=02:00:00:00:01:13|192.168.0.30, target=02:00:00:00:01:12|192.168.0.20]"
|
||||
],
|
||||
[
|
||||
"3",
|
||||
"02:00:00:00:01:12",
|
||||
"02:00:00:00:01:13",
|
||||
"",
|
||||
"Netzzugang",
|
||||
"0x800"
|
||||
],
|
||||
[
|
||||
"3",
|
||||
"192.168.0.20",
|
||||
"192.168.0.30",
|
||||
"IP",
|
||||
"Vermittlung",
|
||||
"Protokoll: 6, TTL: 64"
|
||||
],
|
||||
[
|
||||
"3",
|
||||
"192.168.0.20:58845",
|
||||
"192.168.0.30:55555",
|
||||
"TCP",
|
||||
"Transport",
|
||||
"SYN, SEQ: 2.000.000"
|
||||
]
|
||||
]
|
||||
},
|
||||
"layeredRows": {
|
||||
"00000000-0000-0000-0000-000000000101": [
|
||||
[
|
||||
"1",
|
||||
"02:00:00:00:01:12",
|
||||
"FF:FF:FF:FF:FF:FF",
|
||||
"",
|
||||
"Netzzugang",
|
||||
"0x806"
|
||||
],
|
||||
[
|
||||
"1",
|
||||
"192.168.0.20",
|
||||
"192.168.0.30",
|
||||
"ARP",
|
||||
"Vermittlung",
|
||||
"Suche nach MAC für 192.168.0.30 [op=REQUEST, sender=02:00:00:00:01:12|192.168.0.20, target=FF:FF:FF:FF:FF:FF|192.168.0.30]"
|
||||
]
|
||||
],
|
||||
"00000000-0000-0000-0000-000000000102": [
|
||||
[
|
||||
"1",
|
||||
"02:00:00:00:01:12",
|
||||
"FF:FF:FF:FF:FF:FF",
|
||||
"",
|
||||
"Netzzugang",
|
||||
"0x806"
|
||||
],
|
||||
[
|
||||
"1",
|
||||
"192.168.0.20",
|
||||
"192.168.0.30",
|
||||
"ARP",
|
||||
"Vermittlung",
|
||||
"Suche nach MAC für 192.168.0.30 [op=REQUEST, sender=02:00:00:00:01:12|192.168.0.20, target=FF:FF:FF:FF:FF:FF|192.168.0.30]"
|
||||
],
|
||||
[
|
||||
"2",
|
||||
"02:00:00:00:01:13",
|
||||
"02:00:00:00:01:12",
|
||||
"",
|
||||
"Netzzugang",
|
||||
"0x806"
|
||||
],
|
||||
[
|
||||
"2",
|
||||
"192.168.0.30",
|
||||
"192.168.0.20",
|
||||
"ARP",
|
||||
"Vermittlung",
|
||||
"MAC ist 02:00:00:00:01:13 [op=REPLY, sender=02:00:00:00:01:13|192.168.0.30, target=02:00:00:00:01:12|192.168.0.20]"
|
||||
],
|
||||
[
|
||||
"3",
|
||||
"02:00:00:00:01:12",
|
||||
"02:00:00:00:01:13",
|
||||
"",
|
||||
"Netzzugang",
|
||||
"0x800"
|
||||
],
|
||||
[
|
||||
"3",
|
||||
"192.168.0.20",
|
||||
"192.168.0.30",
|
||||
"IP",
|
||||
"Vermittlung",
|
||||
"Protokoll: 6, TTL: 64"
|
||||
],
|
||||
[
|
||||
"3",
|
||||
"58845",
|
||||
"55555",
|
||||
"TCP",
|
||||
"Transport",
|
||||
"SYN, SEQ: 2.000.000"
|
||||
]
|
||||
],
|
||||
"00000000-0000-0000-0000-000000000103": [
|
||||
[
|
||||
"1",
|
||||
"02:00:00:00:01:12",
|
||||
"FF:FF:FF:FF:FF:FF",
|
||||
"",
|
||||
"Netzzugang",
|
||||
"0x806"
|
||||
],
|
||||
[
|
||||
"1",
|
||||
"192.168.0.20",
|
||||
"192.168.0.30",
|
||||
"ARP",
|
||||
"Vermittlung",
|
||||
"Suche nach MAC für 192.168.0.30 [op=REQUEST, sender=02:00:00:00:01:12|192.168.0.20, target=FF:FF:FF:FF:FF:FF|192.168.0.30]"
|
||||
],
|
||||
[
|
||||
"2",
|
||||
"02:00:00:00:01:13",
|
||||
"02:00:00:00:01:12",
|
||||
"",
|
||||
"Netzzugang",
|
||||
"0x806"
|
||||
],
|
||||
[
|
||||
"2",
|
||||
"192.168.0.30",
|
||||
"192.168.0.20",
|
||||
"ARP",
|
||||
"Vermittlung",
|
||||
"MAC ist 02:00:00:00:01:13 [op=REPLY, sender=02:00:00:00:01:13|192.168.0.30, target=02:00:00:00:01:12|192.168.0.20]"
|
||||
],
|
||||
[
|
||||
"3",
|
||||
"02:00:00:00:01:12",
|
||||
"02:00:00:00:01:13",
|
||||
"",
|
||||
"Netzzugang",
|
||||
"0x800"
|
||||
],
|
||||
[
|
||||
"3",
|
||||
"192.168.0.20",
|
||||
"192.168.0.30",
|
||||
"IP",
|
||||
"Vermittlung",
|
||||
"Protokoll: 6, TTL: 64"
|
||||
],
|
||||
[
|
||||
"3",
|
||||
"58845",
|
||||
"55555",
|
||||
"TCP",
|
||||
"Transport",
|
||||
"SYN, SEQ: 2.000.000"
|
||||
]
|
||||
]
|
||||
},
|
||||
"events": [
|
||||
[
|
||||
211,
|
||||
"server",
|
||||
"null"
|
||||
],
|
||||
[
|
||||
212,
|
||||
"client",
|
||||
"null"
|
||||
],
|
||||
[
|
||||
213,
|
||||
"other",
|
||||
"null"
|
||||
],
|
||||
[
|
||||
500,
|
||||
"client",
|
||||
"call verbinden 192.168.0.30:55555"
|
||||
],
|
||||
[
|
||||
8810,
|
||||
"client",
|
||||
"Fehler beim Verbindungsaufbau\nZeitüberschreitung beim Verbindungsaufbau"
|
||||
]
|
||||
]
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"frames": {
|
||||
"00000000-0000-0000-0000-000000000101": [],
|
||||
"00000000-0000-0000-0000-000000000102": [],
|
||||
"00000000-0000-0000-0000-000000000103": []
|
||||
},
|
||||
"rows": {
|
||||
"00000000-0000-0000-0000-000000000101": [],
|
||||
"00000000-0000-0000-0000-000000000102": [],
|
||||
"00000000-0000-0000-0000-000000000103": []
|
||||
},
|
||||
"layeredRows": {
|
||||
"00000000-0000-0000-0000-000000000101": [],
|
||||
"00000000-0000-0000-0000-000000000102": [],
|
||||
"00000000-0000-0000-0000-000000000103": []
|
||||
},
|
||||
"events": [
|
||||
[
|
||||
210,
|
||||
"server",
|
||||
"null"
|
||||
],
|
||||
[
|
||||
211,
|
||||
"client",
|
||||
"null"
|
||||
],
|
||||
[
|
||||
211,
|
||||
"other",
|
||||
"null"
|
||||
],
|
||||
[
|
||||
501,
|
||||
"client",
|
||||
"call verbinden 10.0.0.1:55555"
|
||||
]
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"frames": {
|
||||
"00000000-0000-0000-0000-000000000101": [],
|
||||
"00000000-0000-0000-0000-000000000102": [],
|
||||
"00000000-0000-0000-0000-000000000103": []
|
||||
},
|
||||
"rows": {
|
||||
"00000000-0000-0000-0000-000000000101": [],
|
||||
"00000000-0000-0000-0000-000000000102": [],
|
||||
"00000000-0000-0000-0000-000000000103": []
|
||||
},
|
||||
"layeredRows": {
|
||||
"00000000-0000-0000-0000-000000000101": [],
|
||||
"00000000-0000-0000-0000-000000000102": [],
|
||||
"00000000-0000-0000-0000-000000000103": []
|
||||
},
|
||||
"events": [
|
||||
[
|
||||
208,
|
||||
"server",
|
||||
"null"
|
||||
],
|
||||
[
|
||||
209,
|
||||
"client",
|
||||
"null"
|
||||
],
|
||||
[
|
||||
210,
|
||||
"other",
|
||||
"null"
|
||||
],
|
||||
[
|
||||
500,
|
||||
"client",
|
||||
"call senden Hallo"
|
||||
],
|
||||
[
|
||||
500,
|
||||
"client",
|
||||
"Fehler beim Verbindungsaufbau"
|
||||
],
|
||||
[
|
||||
500,
|
||||
"client",
|
||||
"returned senden"
|
||||
]
|
||||
]
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user