at dev 1.4 kB view raw
1 2#include <stdio.h> 3#include <stdlib.h> 4#include <setjmp.h> 5 6#include <fcntl.h> 7#include <sys/types.h> 8#include <sys/stat.h> 9#include <sys/mman.h> 10 11#include <crone.h> 12 13 14int main() { 15 /* lang 16 int fileDesc = open("./crone/core/core.cr", O_RDONLY, 0); 17 //int fileDesc = open("./crone/lang/parseme.cr", O_RDONLY, 0); 18 19 if (fileDesc == -1) { 20 CRASH("bad file"); 21 } 22 23 struct stat fileStat; 24 int result = fstat(fileDesc, &fileStat); 25 26 if (result == -1) { 27 CRASH("bad fstat"); 28 } 29 30 uint8_t *file = mmap(0, fileStat.st_size, PROT_READ, MAP_SHARED, fileDesc, 0); // TODO read docs 31 32 if (file == NULL) { 33 CRASH("bad mmap"); 34 } 35 36 string script = { 37 .data = file, 38 .length = fileStat.st_size 39 }; 40 41 execute_crone(script); 42 43 result = munmap(file, fileStat.st_size); 44 45 if (result == -1) { 46 CRASH("bad munmap"); 47 } 48 // */ 49 50 51 ///* graphics 52 window_handle window = window_getWindow(); 53 54 vulkan_handle vk = vulkan_init(); 55 graphics_handle graphics = graphics_init(vk, window); 56 57 fprintf(stderr, "[PROGRAM] entering main loop\n"); 58 59 60 while (!window_shouldClose(window)) { 61 window_pollEvents(window); 62 } 63 64 fprintf(stderr, "[PROGRAM] exiting main loop\n"); 65 66 window_cleanup(window); 67 graphics_cleanup(graphics); 68 vulkan_cleanup(vk); 69 70 71 fprintf(stderr, "[PROGRAM] done\n"); 72 73 return 0; 74 // */ 75} 76