Files
@ 20e64ced68b1
Branch filter:
Location: CSY/reowolf/examples/a_swap/amy.c - annotation
20e64ced68b1
2.0 KiB
text/x-csrc
reversed a predicate simplification; turns out to break the mutual inconsistency property of native branches in some corner cases where 3+ branches have colliding predicates
d9774c9084d7 d9774c9084d7 d9774c9084d7 d9774c9084d7 d9774c9084d7 d9774c9084d7 d9774c9084d7 d9774c9084d7 d9774c9084d7 d9774c9084d7 d9774c9084d7 d9774c9084d7 d9774c9084d7 d9774c9084d7 d9774c9084d7 d9774c9084d7 d9774c9084d7 d9774c9084d7 d9774c9084d7 d9774c9084d7 db17da820a3b d9774c9084d7 db17da820a3b d9774c9084d7 d9774c9084d7 d9774c9084d7 d9774c9084d7 d9774c9084d7 d9774c9084d7 d9774c9084d7 d9774c9084d7 d9774c9084d7 d9774c9084d7 d9774c9084d7 d9774c9084d7 d9774c9084d7 d9774c9084d7 d9774c9084d7 d9774c9084d7 d9774c9084d7 d9774c9084d7 d9774c9084d7 d9774c9084d7 d9774c9084d7 d9774c9084d7 d9774c9084d7 d9774c9084d7 d9774c9084d7 d9774c9084d7 d9774c9084d7 d9774c9084d7 d9774c9084d7 | #include <stdio.h>
#include <string.h>
#include "../../reowolf.h"
#include "../utility.c"
int main(int argc, char** argv) {
if(argc != 3) {
printf("Expected arg[1] and arg[2] for use as addr str\n");
exit(1);
}
char * pdl_ptr = buffer_pdl("eg_protocols.pdl");
size_t pdl_len = strlen(pdl_ptr);
Arc_ProtocolDescription * pd = protocol_description_parse(pdl_ptr, pdl_len);
char logpath[] = "./a_amy_log.txt";
Connector * c = connector_new_logging(pd, logpath, sizeof(logpath)-1);
printf("Error str `%s`\n", reowolf_error_peek(NULL));
PortId ports[6];
connector_add_port_pair(c, &ports[0], &ports[1]);
printf("Error str `%s`\n", reowolf_error_peek(NULL));
connector_add_net_port(c, &ports[2], argv[1], strlen(argv[1]), Polarity_Getter, EndpointPolarity_Passive);
printf("Error str `%s`\n", reowolf_error_peek(NULL));
connector_add_net_port(c, &ports[3], argv[2], strlen(argv[2]), Polarity_Putter, EndpointPolarity_Active);
printf("Error str `%s`\n", reowolf_error_peek(NULL));
connector_add_port_pair(c, &ports[4], &ports[5]);
printf("Error str `%s`\n", reowolf_error_peek(NULL));
// native {0,1,2,3,4,5}
connector_add_component(c, "together", 8, &ports[1], 4);
printf("Error str `%s`\n", reowolf_error_peek(NULL));
// native {0,5} together {1,2,3,4}
connector_connect(c, 4000);
printf("Error str `%s`\n", reowolf_error_peek(NULL));
connector_put_bytes(c, ports[0], "hi", 2);
printf("Error str `%s`\n", reowolf_error_peek(NULL));
connector_get(c, ports[5]);
printf("Error str `%s`\n", reowolf_error_peek(NULL));
connector_sync(c, 1000);
printf("Error str `%s`\n", reowolf_error_peek(NULL));
size_t msg_len;
const char * msg_ptr = connector_gotten_bytes(c, ports[5], &msg_len);
printf("Error str `%s`\n", reowolf_error_peek(NULL));
printf("Got msg `%.*s`\n", msg_len, msg_ptr);
protocol_description_destroy(pd);
connector_destroy(c);
return 0;
}
|