- #include "ink.h"
- #include <stdio.h>
- #include <time.h>
-
- int main(int argc, char** argv) {
- char read_buffer[2048];
- clock_t begin, end;
- double time_spent;
- struct context* ctx;
- char** end_argv;
- ctx = ink_make_default_context();
- end_argv = argv + argc;
- for(argv+=1; argv != end_argv; argv++) {
- FILE* file;
- size_t cnt;
- file = fopen(*argv, "r");
- cnt = fread(read_buffer, 1, 2047, file);
- if(cnt == 0) {
- fprintf(stderr, "Can't read file !! -> %s\n", *argv);
- }
- read_buffer[cnt] = 0;
- ink_compile(ctx, read_buffer);
-
- if(ctx->panic) {
- fprintf(stderr, "Panicked !! -> %d\n", ctx->panic);
- }
-
- fclose(file);
- }
-
- begin = clock();
- while(ink_can_run(ctx)) {
- ink_step_everyone(ctx);
- }
- ink_gc(ctx);
- end = clock();
- time_spent = ctx->steps/((double)(end - begin) / CLOCKS_PER_SEC);
- printf("\nExecuted in %u steps\nCollected %u times\nExecution freq: %uHz\n", ctx->steps, ctx->collections, (unsigned int)time_spent);
- return ctx->panic;
- }
|