From 5cfa4ba5807b63bcab537ca2c604b6015ced4459 Mon Sep 17 00:00:00 2001 From: Zac Pierson Date: Mon, 6 Feb 2017 12:26:41 -0600 Subject: [PATCH 01/37] Added Linux functions throughout the code, but it segfaults. --- .gitignore | 5 ++ build.sh | 6 +++ src/build.c | 82 +++++++++++++++++++++++++++-- src/gb/gb.h | 147 ++++++++++++++++++++++++++++++++++++++-------------- src/main.c | 75 ++++++++++++++++++++++++++- 5 files changed, 270 insertions(+), 45 deletions(-) create mode 100755 build.sh diff --git a/.gitignore b/.gitignore index ff0568ca6..6eabce127 100644 --- a/.gitignore +++ b/.gitignore @@ -251,7 +251,12 @@ paket-files/ # Project Specific + +# - Windows *.sln !misc/llvm-bim/lli.exe !misc/llvm-bim/opt.exe builds + +# - Linux/MacOS +odin diff --git a/build.sh b/build.sh new file mode 100755 index 000000000..059b593c8 --- /dev/null +++ b/build.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +WARNINGS_DISABLE="-Wno-attributes -Wno-implicit-function-declaration -Wno-incompatible-pointer-types" +LIBRARIES="-pthread -ldl -lm" + +gcc src/main.c ${WARNINGS_DISABLE} ${LIBRARIES} -o odin diff --git a/src/build.c b/src/build.c index 3afc05047..6a121708e 100644 --- a/src/build.c +++ b/src/build.c @@ -126,7 +126,64 @@ String odin_root_dir(void) { return path; } #else -#error Implement system + +// NOTE: Linux / Unix is unfinished and not tested very well. +#include + +String odin_root_dir(void) { + String path = global_module_path; + Array(char) path_buf; + isize len, i; + gbTempArenaMemory tmp; + wchar_t *text; + + if (global_module_path_set) { + return global_module_path; + } + + array_init_count(&path_buf, heap_allocator(), 300); + + len = 0; + for (;;) { + // This is not a 100% reliable system, but for the purposes + // of this compiler, it should be _good enough_. + // That said, there's no solid 100% method on Linux to get the program's + // path without checking this link. Sorry. + len = readlink("/proc/self/exe", &path_buf.e[0], path_buf.count); + if(len == 0) { + return make_string(NULL, 0); + } + printf("build.c:155 | Link value: \"%s\"\n", &path_buf.e[0]); + exit(1); + if (len < path_buf.count) { + break; + } + array_resize(&path_buf, 2*path_buf.count + 300); + } + + + tmp = gb_temp_arena_memory_begin(&string_buffer_arena); + text = gb_alloc_array(string_buffer_allocator, u8, len + 1); + gb_memmove(text, &path_buf.e[0], len); + + path = make_string(text, len); + for (i = path.len-1; i >= 0; i--) { + u8 c = path.text[i]; + if (c == '/' || c == '\\') { + break; + } + path.len--; + } + + global_module_path = path; + global_module_path_set = true; + + gb_temp_arena_memory_end(tmp); + + array_free(&path_buf); + + return path; +} #endif @@ -250,18 +307,35 @@ void init_build_context(BuildContext *bc) { bc->ODIN_ARCH = str_lit("amd64"); bc->ODIN_ENDIAN = str_lit("little"); #else -#error Implement system + bc->ODIN_OS = str_lit("linux"); + bc->ODIN_ARCH = str_lit("amd64"); + bc->ODIN_ENDIAN = str_lit("little"); #endif + + + // The linker flags to set the build architecture are different + // across OSs. It doesn't make sense to allocate extra data on the heap + // here, so I just #defined the linker flags to keep things concise. + #if defined(GB_SYSTEM_WINDOWS) + #define linker_flag_x64 "/machine:x64" + #define linker_flag_x86 "/machine:x86" + #elif defined(GB_SYSTEM_OSX) + #error Run "ld -V" to find out what to build programs as. It may be the same as Linux...? + #else + #define linker_flag_x64 "-m elf_x86_64" + #define linker_flag_x86 "-m elf_i386" + #endif + if (str_eq(bc->ODIN_ARCH, str_lit("amd64"))) { bc->word_size = 8; bc->max_align = 16; bc->llc_flags = str_lit("-march=x86-64 "); - bc->link_flags = str_lit("/machine:x64 "); + bc->link_flags = str_lit(linker_flag_x64 " "); } else if (str_eq(bc->ODIN_ARCH, str_lit("x86"))) { bc->word_size = 4; bc->max_align = 8; bc->llc_flags = str_lit("-march=x86 "); - bc->link_flags = str_lit("/machine:x86 "); + bc->link_flags = str_lit(linker_flag_x86 " "); } } diff --git a/src/gb/gb.h b/src/gb/gb.h index 8edd4b92f..5ec844daa 100644 --- a/src/gb/gb.h +++ b/src/gb/gb.h @@ -1,4 +1,4 @@ -/* gb.h - v0.27 - Ginger Bill's C Helper Library - public domain +/* gb.h - v0.26d - Ginger Bill's C Helper Library - public domain - no warranty implied; use at your own risk This is a single header file with a bunch of useful stuff @@ -276,8 +276,6 @@ extern "C" { #include #include - - #if defined(GB_SYSTEM_WINDOWS) #if !defined(GB_NO_WINDOWS_H) #define NOMINMAX 1 @@ -298,9 +296,6 @@ extern "C" { #include #include #include - #ifndef _IOSC11_SOURCE - #define _IOSC11_SOURCE - #endif #include // NOTE(bill): malloc on linux #include #if !defined(GB_SYSTEM_OSX) @@ -314,18 +309,18 @@ extern "C" { #endif #if defined(GB_SYSTEM_OSX) - #include - #include - #include - #include - #include - #include - #include - #include +#include +#include +#include +#include +#include +#include +#include +#include #endif #if defined(GB_SYSTEM_UNIX) - #include +#include #endif @@ -417,20 +412,21 @@ typedef i32 Rune; // NOTE(bill): Unicode codepoint #define GB_RUNE_EOF cast(Rune)(-1) +// NOTE(bill): I think C99 and C++ `bool` is stupid for numerous reasons but there are too many +// to write in this small comment. typedef i8 b8; typedef i16 b16; typedef i32 b32; // NOTE(bill): Prefer this!!! // NOTE(bill): Get true and false #if !defined(__cplusplus) - #if (defined(_MSC_VER) && _MSC_VER <= 1800) || (!defined(_MSC_VER) && !defined(__STDC_VERSION__)) + #if (defined(_MSC_VER) && _MSC_VER <= 1800) || !defined(__STDC_VERSION__) #ifndef true #define true (0 == 0) #endif #ifndef false #define false (0 != 0) #endif - typedef b8 bool; #else #include #endif @@ -619,7 +615,7 @@ extern "C++" { // // NOTE: C++11 (and above) only! // -#if !defined(GB_NO_DEFER) && defined(__cplusplus) && ((defined(_MSC_VER) && _MSC_VER >= 1400) || (__cplusplus >= 201103L)) +#if defined(__cplusplus) && ((defined(_MSC_VER) && _MSC_VER >= 1400) || (__cplusplus >= 201103L)) extern "C++" { // NOTE(bill): Stupid fucking templates template struct gbRemoveReference { typedef T Type; }; @@ -1008,7 +1004,12 @@ typedef struct gbAffinity { } gbAffinity; #elif defined(GB_SYSTEM_LINUX) -#error TODO(bill): Implement gbAffinity for linux +typedef struct gbAffinity { + b32 is_accurate; + isize core_count; + isize thread_count; + isize threads_per_core; +} gbAffinity; #else #error TODO(bill): Unknown system #endif @@ -4117,7 +4118,7 @@ gb_inline i64 gb_atomic64_fetch_and(gbAtomic64 volatile *a, i64 operand) { gb_inline i64 gb_atomic64_fetch_or(gbAtomic64 volatile *a, i64 operand) { #if defined(GB_ARCH_64_BIT) - return _InterlockedOr64(cast(i64 volatile *)a, operand); + return _InterlockedAnd64(cast(i64 volatile *)a, operand); #elif GB_CPU_X86 i64 expected = a->value; for (;;) { @@ -4824,15 +4825,18 @@ GB_ALLOCATOR_PROC(gb_heap_allocator_proc) { #else // TODO(bill): *nix version that's decent case gbAllocation_Alloc: { - posix_memalign(&ptr, alignment, size); - - if (flags & gbAllocatorFlag_ClearToZero) { + gbAllocationHeader *header; + isize total_size = size + alignment + gb_size_of(gbAllocationHeader); + ptr = malloc(total_size); + header = cast(gbAllocationHeader *)ptr; + ptr = gb_align_forward(header+1, alignment); + gb_allocation_header_fill(header, ptr, size); + if (flags & gbAllocatorFlag_ClearToZero) gb_zero_size(ptr, size); - } } break; case gbAllocation_Free: { - free(old_memory); + free(gb_allocation_header(old_memory)); } break; case gbAllocation_Resize: { @@ -4929,7 +4933,7 @@ isize gb_affinity_thread_count_for_core(gbAffinity *a, isize core) { void gb_affinity_init(gbAffinity *a) { usize count, count_size = gb_size_of(count); - a->is_accurate = false; + a->is_accurate = false; a->thread_count = 1; a->core_count = 1; a->threads_per_core = 1; @@ -4960,6 +4964,7 @@ void gb_affinity_destroy(gbAffinity *a) { b32 gb_affinity_set(gbAffinity *a, isize core, isize thread_index) { isize index; thread_t thread; + GB_ASSERT(thread < gb_affinity_thread_count thread_affinity_policy_data_t info; kern_return_t result; @@ -4979,7 +4984,81 @@ isize gb_affinity_thread_count_for_core(gbAffinity *a, isize core) { } #elif defined(GB_SYSTEM_LINUX) -#error TODO(bill): Implement gbAffinity for linux +#warning gbAffinity is mostly mostly untested on Linux. All I know is that it compiles and runs. +#warning TODO(bill): gb_affinity_set on Linux is a stub + +// I have to read /proc/cpuinfo to get the number of threads per core. +#include + +void gb_affinity_init(gbAffinity *a) { + usize count, count_size = gb_size_of(count); + + b32 accurate = true; + + a->thread_count = 1; + a->core_count = sysconf(_SC_NPROCESSORS_ONLN); + a->threads_per_core = 1; + + + if(a->core_count <= 0) { + a->core_count = 1; + accurate = false; + } + + // Parsing /proc/cpuinfo to get the number of threads per core. + // NOTE: This calls the CPU's threads "cores", although the wording + // is kind of weird. This should be right, though. + FILE* cpu_info = fopen("/proc/cpuinfo", "r"); + + int threads = 0; + + if(cpu_info) { + while(1) { + // The 'temporary char'. Everything goes into this char, + // so that we can check against EOF at the end of this loop. + char c; + + #define check(letter) ((c = getc(cpu_info)) == letter) + if(check('c') && check('p') && check('u') && check(' ') && + check('c') && check('o') && check('r') && check('e') && check('s')) { + // We're on a CPU info line. + while(!check(EOF)) { + if(c == '\n') break; + else if(c < '0' || c > '9') continue; + threads = threads * 10 + (c - '0'); + } + break; + } else { + while(!check('\n')) {if(c==EOF) break;} + } + if(c == EOF) break; + } + } + + if(threads == 0) { + threads = 1; + accurate = false; + } + + a->threads_per_core = threads; + a->thread_count = a->threads_per_core * a->core_count; + + a->is_accurate = accurate; + +} + +void gb_affinity_destroy(gbAffinity *a) { + gb_unused(a); +} + +b32 gb_affinity_set(gbAffinity *a, isize core, isize thread_index) { + return true; +} + +isize gb_affinity_thread_count_for_core(gbAffinity *a, isize core) { + GB_ASSERT(core >= 0 && core < a->core_count); + return a->threads_per_core; +} #else #error TODO(bill): Unknown system #endif @@ -7760,18 +7839,7 @@ char *gb_path_get_full_name(gbAllocator a, char const *path) { return gb_alloc_str_len(a, buf, len+1); #else // TODO(bill): Make work on *nix, etc. - char* p = realpath(path, 0); - GB_ASSERT(p && "file does not exist"); - - isize len = gb_strlen(p); - - // bill... gb_alloc_str_len refused to work for this... - char* ret = gb_alloc(a, sizeof(char) * len + 1); - gb_memmove(ret, p, len); - ret[len] = 0; - free(p); - - return ret; + return gb_alloc_str_len(a, path, gb_strlen(path)); #endif } @@ -10385,4 +10453,3 @@ GB_COMPARE_PROC(gb_video_mode_dsc_cmp) { #endif #endif // GB_IMPLEMENTATION - diff --git a/src/main.c b/src/main.c index 3ff20ac61..b091a35e2 100644 --- a/src/main.c +++ b/src/main.c @@ -16,6 +16,11 @@ extern "C" { #include "ir_print.c" // #include "vm.c" +#if defined(GB_SYSTEM_UNIX) +// Required for intrinsics on GCC +#include +#endif + #if defined(GB_SYSTEM_WINDOWS) // NOTE(bill): `name` is used in debugging and profiling modes i32 system_exec_command_line_app(char *name, bool is_silent, char *fmt, ...) { @@ -326,7 +331,75 @@ int main(int argc, char **argv) { } #else - #error Implement build stuff for this platform + + // NOTE: Linux / Unix is unfinished and not tested very well. + + + timings_start_section(&timings, str_lit("llvm-llc")); + // For more arguments: http://llvm.org/docs/CommandGuide/llc.html + exit_code = system_exec_command_line_app("llc", false, + "llc \"%.*s.bc\" -filetype=obj -O%d " + "%.*s " + // "-debug-pass=Arguments " + "", + LIT(output), + optimization_level, + LIT(build_context.llc_flags)); + if (exit_code != 0) { + return exit_code; + } + + timings_start_section(&timings, str_lit("ld-link")); + + gbString lib_str = gb_string_make(heap_allocator(), ""); + // defer (gb_string_free(lib_str)); + char lib_str_buf[1024] = {0}; + for_array(i, ir_gen.module.foreign_library_paths) { + String lib = ir_gen.module.foreign_library_paths.e[i]; + // gb_printf_err("Linking lib: %.*s\n", LIT(lib)); + isize len = gb_snprintf(lib_str_buf, gb_size_of(lib_str_buf), + " \"%.*s\"", LIT(lib)); + lib_str = gb_string_appendc(lib_str, lib_str_buf); + } + + // Unlike the Win32 linker code, the output_ext includes the dot, because + // typically executable files on *NIX systems don't have extensions. + char *output_ext = ""; + char *link_settings = ""; + if (build_context.is_dll) { + // Shared libraries are .dylib on MacOS and .so on Linux. + #if defined(GB_SYSTEM_OSX) + output_ext = ".dylib"; + #else + output_ext = ".so"; + #endif + + link_settings = "-shared"; + } else { + // TODO: Do I need anything here? + link_settings = ""; + } + + exit_code = system_exec_command_line_app("msvc-link", true, + "ld \"%.*s\".obj -o \"%.*s.%s\" %s " + "-lc " + " %.*s " + " %s " + "", + LIT(output), LIT(output), output_ext, + lib_str, LIT(build_context.link_flags), + link_settings + ); + if (exit_code != 0) { + return exit_code; + } + + // timings_print_all(&timings); + + if (run_output) { + system_exec_command_line_app("odin run", false, "%.*s", cast(int)base_name_len, output_name); + } + #endif #endif #endif From 6efd400c98cff15347774152481885e2194fbc27 Mon Sep 17 00:00:00 2001 From: Zac Pierson Date: Mon, 6 Feb 2017 15:45:51 -0600 Subject: [PATCH 02/37] Updated build script in an attempt to track down a segfault. It's not helping, though. --- build.sh | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/build.sh b/build.sh index 059b593c8..a143f52a8 100755 --- a/build.sh +++ b/build.sh @@ -1,6 +1,13 @@ -#!/bin/sh +#!/bin/bash -WARNINGS_DISABLE="-Wno-attributes -Wno-implicit-function-declaration -Wno-incompatible-pointer-types" -LIBRARIES="-pthread -ldl -lm" +release_mode=0 -gcc src/main.c ${WARNINGS_DISABLE} ${LIBRARIES} -o odin +warnings_to_disable="-Wno-attributes -Wno-implicit-function-declaration -Wno-incompatible-pointer-types" +libraries="-pthread -ldl -lm" +other_args="" + +if [ "$release_mode" -eq "0" ]; then + other_args="${other_args} -g -fno-inline-functions -fno-inline-small-functions" +fi + +gcc src/main.c ${warnings_to_disable} ${libraries} ${other_args} -o odin From eeeb90c4410365c805eeab9bdc5b71279ce973d5 Mon Sep 17 00:00:00 2001 From: Zachary Pierson Date: Mon, 6 Feb 2017 21:47:58 -0600 Subject: [PATCH 03/37] MacOS is able to run Hello World! --- .gitignore | 1 + README.md | 21 ++++++++++++++++----- build.sh | 17 +++++++++++++---- src/build.c | 13 +++++++++++-- src/gb/gb.h | 7 ++++++- src/main.c | 37 ++++++++++++++++++++++++++++++++----- 6 files changed, 79 insertions(+), 17 deletions(-) diff --git a/.gitignore b/.gitignore index 6eabce127..27a4b9fa7 100644 --- a/.gitignore +++ b/.gitignore @@ -260,3 +260,4 @@ builds # - Linux/MacOS odin +odin.dSYM diff --git a/README.md b/README.md index 7e717e18e..ef99a5e12 100644 --- a/README.md +++ b/README.md @@ -22,11 +22,22 @@ The Odin programming language is fast, concise, readable, pragmatic and open sou ## Requirements to build and run -* Windows -* x86-64 -* MSVC 2015 installed (C99 support) -* Requires MSVC's link.exe as the linker - - run `vcvarsall.bat` to setup the path +- Windows + * x86-64 + * MSVC 2015 installed (C99 support) + * LLVM installed + * Requires MSVC's link.exe as the linker + * run `vcvarsall.bat` to setup the path + +- MacOS + * x86-64 + * LLVM explicitly installed (`brew install llvm`) + * XCode installed (for the linker) + +- GNU/Linux + * x86-64 + * Build tools (ld) + * LLVM installed ## Warnings diff --git a/build.sh b/build.sh index a143f52a8..2c6db80d5 100755 --- a/build.sh +++ b/build.sh @@ -2,12 +2,21 @@ release_mode=0 -warnings_to_disable="-Wno-attributes -Wno-implicit-function-declaration -Wno-incompatible-pointer-types" +warnings_to_disable="-Wno-attributes -Wno-implicit-function-declaration -Wno-incompatible-pointer-types -Wno-switch -Wno-pointer-sign" libraries="-pthread -ldl -lm" -other_args="" +other_args="-x c" +compiler="gcc" if [ "$release_mode" -eq "0" ]; then - other_args="${other_args} -g -fno-inline-functions -fno-inline-small-functions" + other_args="${other_args} -g -fno-inline-functions" +fi +if [[ "$(uname)" == "Darwin" ]]; then + + # Set compiler to clang on MacOS + # MacOS provides a symlink to clang called gcc, but it's nice to be explicit here. + compiler="clang" + + other_args="${other_args} -liconv" fi -gcc src/main.c ${warnings_to_disable} ${libraries} ${other_args} -o odin +${compiler} src/main.c ${warnings_to_disable} ${libraries} ${other_args} -o odin diff --git a/src/build.c b/src/build.c index 6a121708e..1d2747b6f 100644 --- a/src/build.c +++ b/src/build.c @@ -314,15 +314,24 @@ void init_build_context(BuildContext *bc) { - // The linker flags to set the build architecture are different + // NOTE(zangent): The linker flags to set the build architecture are different // across OSs. It doesn't make sense to allocate extra data on the heap // here, so I just #defined the linker flags to keep things concise. #if defined(GB_SYSTEM_WINDOWS) + #define linker_flag_x64 "/machine:x64" #define linker_flag_x86 "/machine:x86" + #elif defined(GB_SYSTEM_OSX) - #error Run "ld -V" to find out what to build programs as. It may be the same as Linux...? + + // NOTE(zangent): MacOS systems are x64 only, so ld doesn't have + // an architecture option. All compilation done on MacOS must be x64. + GB_ASSERT(str_eq(bc->ODIN_ARCH, str_lit("amd64"))); + + #define linker_flag_x64 "" + #define linker_flag_x86 "" #else + // Linux, but also BSDs and the like. #define linker_flag_x64 "-m elf_x86_64" #define linker_flag_x86 "-m elf_i386" #endif diff --git a/src/gb/gb.h b/src/gb/gb.h index 5ec844daa..504053a09 100644 --- a/src/gb/gb.h +++ b/src/gb/gb.h @@ -3627,7 +3627,12 @@ gb_inline void *gb_memcopy(void *dest, void const *source, isize n) { #if defined(_MSC_VER) // TODO(bill): Is this good enough? __movsb(cast(u8 *)dest, cast(u8 *)source, n); +#elif defined(GB_SYSTEM_OSX) + // NOTE(zangent): I assume there's a reason this isn't being used elsewhere, + // but I don't see it and I can't seem to get this working any other way. + memcpy(dest, source, n); #elif defined(GB_CPU_X86) + __asm__ __volatile__("rep movsb" : "+D"(cast(u8 *)dest), "+S"(cast(u8 *)source), "+c"(n) : : "memory"); #else u8 *d = cast(u8 *)dest; @@ -4964,7 +4969,7 @@ void gb_affinity_destroy(gbAffinity *a) { b32 gb_affinity_set(gbAffinity *a, isize core, isize thread_index) { isize index; thread_t thread; - GB_ASSERT(thread < gb_affinity_thread_count + GB_ASSERT(thread < a->thread_count); thread_affinity_policy_data_t info; kern_return_t result; diff --git a/src/main.c b/src/main.c index b091a35e2..5a7c38c1c 100644 --- a/src/main.c +++ b/src/main.c @@ -255,6 +255,8 @@ int main(int argc, char **argv) { optimization_level = gb_clamp(optimization_level, 0, 3); i32 exit_code = 0; + + #if defined(GB_SYSTEM_WINDOWS) // For more passes arguments: http://llvm.org/docs/Passes.html exit_code = system_exec_command_line_app("llvm-opt", false, "\"%.*sbin/opt\" \"%s\" -o \"%.*s\".bc " @@ -270,6 +272,23 @@ int main(int argc, char **argv) { if (exit_code != 0) { return exit_code; } + #else + // NOTE(zangent): This is separate because it seems that LLVM tools are packaged + // with the Windows version, while they will be system-provided on MacOS and GNU/Linux + exit_code = system_exec_command_line_app("llvm-opt", false, + "opt \"%s\" -o \"%.*s\".bc " + "-mem2reg " + "-memcpyopt " + "-die " + // "-dse " + // "-dce " + // "-S " + "", + output_name, LIT(output)); + if (exit_code != 0) { + return exit_code; + } + #endif #if defined(GB_SYSTEM_WINDOWS) timings_start_section(&timings, str_lit("llvm-llc")); @@ -332,7 +351,7 @@ int main(int argc, char **argv) { #else - // NOTE: Linux / Unix is unfinished and not tested very well. + // NOTE(zangent): Linux / Unix is unfinished and not tested very well. timings_start_section(&timings, str_lit("llvm-llc")); @@ -364,7 +383,7 @@ int main(int argc, char **argv) { // Unlike the Win32 linker code, the output_ext includes the dot, because // typically executable files on *NIX systems don't have extensions. - char *output_ext = ""; + char *output_ext = ".bin"; char *link_settings = ""; if (build_context.is_dll) { // Shared libraries are .dylib on MacOS and .so on Linux. @@ -380,12 +399,20 @@ int main(int argc, char **argv) { link_settings = ""; } - exit_code = system_exec_command_line_app("msvc-link", true, - "ld \"%.*s\".obj -o \"%.*s.%s\" %s " + // TODO(zangent): I'm not sure what to do with lib_str. + // I'll have to look at the format that the libraries are listed to determine what to do. + lib_str = ""; + + exit_code = system_exec_command_line_app("ld-link", true, + "ld \"%.*s\".o -o \"%.*s%s\" %s " "-lc " " %.*s " " %s " - "", + #if defined(GB_SYSTEM_OSX) + // This sets a requirement of Mountain Lion and up, but the compiler doesn't work without this limit. + " -macosx_version_min 10.8.0 " + #endif + " -e _main ", LIT(output), LIT(output), output_ext, lib_str, LIT(build_context.link_flags), link_settings From 8becbdc1b2b5166aa1438d702be54b0e7e4035ad Mon Sep 17 00:00:00 2001 From: Zachary Pierson Date: Tue, 7 Feb 2017 00:28:21 -0600 Subject: [PATCH 04/37] Added a very basic Linux standard library shamelessly stolen from the MacOS one. Made Linux (almost) work. The generated binaries segfault, but it's so close I can almost taste it. --- code/test.odin | 4 +- core/os.odin | 1 + core/os_linux.odin | 231 +++++++++++++++++++++++++++++++++++++++++++++ src/build.c | 2 - src/gb/gb.h | 5 +- src/main.c | 9 +- 6 files changed, 245 insertions(+), 7 deletions(-) create mode 100644 core/os_linux.odin diff --git a/code/test.odin b/code/test.odin index bcd4ddc57..4e2409a8f 100644 --- a/code/test.odin +++ b/code/test.odin @@ -5,10 +5,10 @@ thing :: proc() { }*/ -#import "fmt.odin"; +//#import "fmt.odin"; main :: proc() { - fmt.println("hello, world!"); + //fmt.println("hello, world!"); } diff --git a/core/os.odin b/core/os.odin index 0ce897bd7..0c66fe655 100644 --- a/core/os.odin +++ b/core/os.odin @@ -1,3 +1,4 @@ #include "os_windows.odin" when ODIN_OS == "windows"; #include "os_x.odin" when ODIN_OS == "osx"; +#include "os_linux.odin" when ODIN_OS == "linux"; diff --git a/core/os_linux.odin b/core/os_linux.odin new file mode 100644 index 000000000..96388ed01 --- /dev/null +++ b/core/os_linux.odin @@ -0,0 +1,231 @@ +// #import "fmt.odin"; + +Handle :: i32; +File_Time :: u64; +Errno :: int; + +// INVALID_HANDLE: Handle : -1; + + +O_RDONLY :: 0x00000; +O_WRONLY :: 0x00001; +O_RDWR :: 0x00002; +O_CREAT :: 0x00040; +O_EXCL :: 0x00080; +O_NOCTTY :: 0x00100; +O_TRUNC :: 0x00200; +O_NONBLOCK :: 0x00800; +O_APPEND :: 0x00400; +O_SYNC :: 0x01000; +O_ASYNC :: 0x02000; +O_CLOEXEC :: 0x80000; + +// ERROR_NONE: Errno : 0; +// ERROR_FILE_NOT_FOUND: Errno : 2; +// ERROR_PATH_NOT_FOUND: Errno : 3; +// ERROR_ACCESS_DENIED: Errno : 5; +// ERROR_NO_MORE_FILES: Errno : 18; +// ERROR_HANDLE_EOF: Errno : 38; +// ERROR_NETNAME_DELETED: Errno : 64; +// ERROR_FILE_EXISTS: Errno : 80; +// ERROR_BROKEN_PIPE: Errno : 109; +// ERROR_BUFFER_OVERFLOW: Errno : 111; +// ERROR_INSUFFICIENT_BUFFER: Errno : 122; +// ERROR_MOD_NOT_FOUND: Errno : 126; +// ERROR_PROC_NOT_FOUND: Errno : 127; +// ERROR_DIR_NOT_EMPTY: Errno : 145; +// ERROR_ALREADY_EXISTS: Errno : 183; +// ERROR_ENVVAR_NOT_FOUND: Errno : 203; +// ERROR_MORE_DATA: Errno : 234; +// ERROR_OPERATION_ABORTED: Errno : 995; +// ERROR_IO_PENDING: Errno : 997; +// ERROR_NOT_FOUND: Errno : 1168; +// ERROR_PRIVILEGE_NOT_HELD: Errno : 1314; +// WSAEACCES: Errno : 10013; +// WSAECONNRESET: Errno : 10054; + +// Windows reserves errors >= 1<<29 for application use +// ERROR_FILE_IS_PIPE: Errno : 1<<29 + 0; + +#foreign_system_library libc "c"; + +unix_open :: proc(path: ^u8, mode: int, perm: u32) -> Handle #foreign libc "open"; +unix_close :: proc(handle: Handle) #foreign libc "close"; +unix_read :: proc(handle: Handle, buffer: rawptr, count: int) -> int #foreign libc "read"; +unix_write :: proc(handle: Handle, buffer: rawptr, count: int) -> int #foreign libc "write"; +//unix_gettid :: proc() -> u64 #foreign libc "gettid"; + +unix_malloc :: proc(size: int) -> rawptr #foreign libc "malloc"; +unix_free :: proc(ptr: rawptr) #foreign libc "free"; +unix_realloc :: proc(ptr: rawptr, size: int) -> rawptr #foreign libc "realloc"; + +unix_exit :: proc(status: int) #foreign libc "exit"; + + + + +open :: proc(path: string, mode: int, perm: u32) -> (Handle, Errno) { + return unix_open(path.data, mode, perm), 0; +} + +close :: proc(fd: Handle) { + unix_close(fd); +} + +write :: proc(fd: Handle, data: []byte) -> (int, Errno) { + return unix_write(fd, data.data, data.count), 0; +} + +read :: proc(fd: Handle, data: []byte) -> (int, Errno) { + return unix_read(fd, data.data, data.count), 0; +} + + +seek :: proc(fd: Handle, offset: i64, whence: int) -> (i64, Errno) { + /* + using win32; + w: u32; + match whence { + case 0: w = FILE_BEGIN; + case 1: w = FILE_CURRENT; + case 2: w = FILE_END; + } + hi := cast(i32)(offset>>32); + lo := cast(i32)(offset); + ft := GetFileType(cast(HANDLE)fd); + if ft == FILE_TYPE_PIPE { + return 0, ERROR_FILE_IS_PIPE; + } + dw_ptr := SetFilePointer(cast(HANDLE)fd, lo, ^hi, w); + if dw_ptr == INVALID_SET_FILE_POINTER { + err := GetLastError(); + return 0, cast(Errno)err; + } + return cast(i64)hi<<32 + cast(i64)dw_ptr, ERROR_NONE; + + */ + return 0, 0; +} + + +// NOTE(bill): Uses startup to initialize it +stdin: Handle = 0; // get_std_handle(win32.STD_INPUT_HANDLE); +stdout: Handle = 1; // get_std_handle(win32.STD_OUTPUT_HANDLE); +stderr: Handle = 2; // get_std_handle(win32.STD_ERROR_HANDLE); + + +/* +get_std_handle :: proc(h: int) -> Handle { + fd := win32.GetStdHandle(cast(i32)h); + win32.SetHandleInformation(fd, win32.HANDLE_FLAG_INHERIT, 0); + return cast(Handle)fd; +} + + + + + + +last_write_time :: proc(fd: Handle) -> File_Time { + file_info: win32.BY_HANDLE_FILE_INFORMATION; + win32.GetFileInformationByHandle(cast(win32.HANDLE)fd, ^file_info); + lo := cast(File_Time)file_info.last_write_time.lo; + hi := cast(File_Time)file_info.last_write_time.hi; + return lo | hi << 32; +} + +last_write_time_by_name :: proc(name: string) -> File_Time { + last_write_time: win32.FILETIME; + data: win32.FILE_ATTRIBUTE_DATA; + buf: [1024]byte; + + assert(buf.count > name.count); + + copy(buf[:], cast([]byte)name); + + if win32.GetFileAttributesExA(^buf[0], win32.GetFileExInfoStandard, ^data) != 0 { + last_write_time = data.last_write_time; + } + + l := cast(File_Time)last_write_time.lo; + h := cast(File_Time)last_write_time.hi; + return l | h << 32; +} + + + + + +read_entire_file :: proc(name: string) -> ([]byte, bool) { + buf: [300]byte; + copy(buf[:], cast([]byte)name); + + fd, err := open(name, O_RDONLY, 0); + if err != ERROR_NONE { + return nil, false; + } + defer close(fd); + + length: i64; + file_size_ok := win32.GetFileSizeEx(cast(win32.HANDLE)fd, ^length) != 0; + if !file_size_ok { + return nil, false; + } + + data := new_slice(u8, length); + if data.data == nil { + return nil, false; + } + + single_read_length: i32; + total_read: i64; + + for total_read < length { + remaining := length - total_read; + to_read: u32; + MAX :: 1<<32-1; + if remaining <= MAX { + to_read = cast(u32)remaining; + } else { + to_read = MAX; + } + + win32.ReadFile(cast(win32.HANDLE)fd, ^data[total_read], to_read, ^single_read_length, nil); + if single_read_length <= 0 { + free(data); + return nil, false; + } + + total_read += cast(i64)single_read_length; + } + + return data, true; +} + + +*/ + +heap_alloc :: proc(size: int) -> rawptr { + assert(size > 0); + return unix_malloc(size); +} + +heap_resize :: proc(ptr: rawptr, new_size: int) -> rawptr { + return unix_realloc(ptr, new_size); +} + +heap_free :: proc(ptr: rawptr) { + unix_free(ptr); +} + +exit :: proc(code: int) { + unix_exit(code); +} + +current_thread_id :: proc() -> int { + // return cast(int) unix_gettid(); + return 0; +} + + + diff --git a/src/build.c b/src/build.c index 1d2747b6f..2024f7a37 100644 --- a/src/build.c +++ b/src/build.c @@ -153,8 +153,6 @@ String odin_root_dir(void) { if(len == 0) { return make_string(NULL, 0); } - printf("build.c:155 | Link value: \"%s\"\n", &path_buf.e[0]); - exit(1); if (len < path_buf.count) { break; } diff --git a/src/gb/gb.h b/src/gb/gb.h index 504053a09..8ff378ae0 100644 --- a/src/gb/gb.h +++ b/src/gb/gb.h @@ -3627,7 +3627,7 @@ gb_inline void *gb_memcopy(void *dest, void const *source, isize n) { #if defined(_MSC_VER) // TODO(bill): Is this good enough? __movsb(cast(u8 *)dest, cast(u8 *)source, n); -#elif defined(GB_SYSTEM_OSX) +#elif defined(GB_SYSTEM_OSX) || defined(GB_SYSTEM_UNIX) // NOTE(zangent): I assume there's a reason this isn't being used elsewhere, // but I don't see it and I can't seem to get this working any other way. memcpy(dest, source, n); @@ -4676,7 +4676,8 @@ gb_inline u32 gb_thread_current_id(void) { #else thread_id = GetCurrentThreadId(); #endif - +#elif defined(GB_SYSTEM_LINUX) + thread_id = pthread_self(); #elif defined(GB_SYSTEM_OSX) && defined(GB_ARCH_64_BIT) thread_id = pthread_mach_thread_np(pthread_self()); #elif defined(GB_ARCH_32_BIT) && defined(GB_CPU_X86) diff --git a/src/main.c b/src/main.c index 5a7c38c1c..48833225e 100644 --- a/src/main.c +++ b/src/main.c @@ -399,10 +399,14 @@ int main(int argc, char **argv) { link_settings = ""; } + printf("Libs: %s\n", lib_str); + // TODO(zangent): I'm not sure what to do with lib_str. // I'll have to look at the format that the libraries are listed to determine what to do. lib_str = ""; + + exit_code = system_exec_command_line_app("ld-link", true, "ld \"%.*s\".o -o \"%.*s%s\" %s " "-lc " @@ -411,8 +415,11 @@ int main(int argc, char **argv) { #if defined(GB_SYSTEM_OSX) // This sets a requirement of Mountain Lion and up, but the compiler doesn't work without this limit. " -macosx_version_min 10.8.0 " + " -e _main " + #else + " -e main -dynamic-linker /lib64/ld-linux-x86-64.so.2 " #endif - " -e _main ", + , LIT(output), LIT(output), output_ext, lib_str, LIT(build_context.link_flags), link_settings From 90ab448bca855b7b99a9d3c74bc90629e00e95b1 Mon Sep 17 00:00:00 2001 From: Zachary Pierson Date: Tue, 7 Feb 2017 12:26:15 -0600 Subject: [PATCH 05/37] Modified the test program to see where the compiler inserted the code. --- code/test.odin | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/test.odin b/code/test.odin index 4e2409a8f..bcd4ddc57 100644 --- a/code/test.odin +++ b/code/test.odin @@ -5,10 +5,10 @@ thing :: proc() { }*/ -//#import "fmt.odin"; +#import "fmt.odin"; main :: proc() { - //fmt.println("hello, world!"); + fmt.println("hello, world!"); } From 584869730a4ad5fb4021d46a6e1dab21790c9452 Mon Sep 17 00:00:00 2001 From: Zac Pierson Date: Tue, 7 Feb 2017 15:07:20 -0600 Subject: [PATCH 06/37] Linux can build now! Woo! --- src/build.c | 11 +++++++++-- src/main.c | 26 +++++++++++++++++--------- 2 files changed, 26 insertions(+), 11 deletions(-) diff --git a/src/build.c b/src/build.c index 2024f7a37..b8cbfa7a6 100644 --- a/src/build.c +++ b/src/build.c @@ -330,8 +330,15 @@ void init_build_context(BuildContext *bc) { #define linker_flag_x86 "" #else // Linux, but also BSDs and the like. - #define linker_flag_x64 "-m elf_x86_64" - #define linker_flag_x86 "-m elf_i386" + // NOTE(zangent): When clang is swapped out with ld as the linker, + // the commented flags here should be used. Until then, we'll have + // to use alternative build flags made for clang. + /* + #define linker_flag_x64 "-m elf_x86_64" + #define linker_flag_x86 "-m elf_i386" + */ + #define linker_flag_x64 "-arch x86-64" + #define linker_flag_x86 "-arch x86" #endif if (str_eq(bc->ODIN_ARCH, str_lit("amd64"))) { diff --git a/src/main.c b/src/main.c index 48833225e..679dfaec9 100644 --- a/src/main.c +++ b/src/main.c @@ -383,14 +383,15 @@ int main(int argc, char **argv) { // Unlike the Win32 linker code, the output_ext includes the dot, because // typically executable files on *NIX systems don't have extensions. - char *output_ext = ".bin"; + char *output_ext = ""; char *link_settings = ""; + char *linker; if (build_context.is_dll) { // Shared libraries are .dylib on MacOS and .so on Linux. #if defined(GB_SYSTEM_OSX) - output_ext = ".dylib"; + output_ext = ".dylib"; #else - output_ext = ".so"; + output_ext = ".so"; #endif link_settings = "-shared"; @@ -399,16 +400,26 @@ int main(int argc, char **argv) { link_settings = ""; } + #if defined(GB_SYSTEM_OSX) + linker = "ld"; + #else + // TODO(zangent): Figure out how to make ld work on Linux. + // It probably has to do with including the entire CRT, but + // that's quite a complicated issue to solve while remaining distro-agnostic. + // Clang can figure out linker flags for us, and that's good enough _for now_. + linker = "clang"; + #endif + printf("Libs: %s\n", lib_str); // TODO(zangent): I'm not sure what to do with lib_str. // I'll have to look at the format that the libraries are listed to determine what to do. lib_str = ""; - + exit_code = system_exec_command_line_app("ld-link", true, - "ld \"%.*s\".o -o \"%.*s%s\" %s " + "%s \"%.*s\".o -o \"%.*s%s\" %s " "-lc " " %.*s " " %s " @@ -416,11 +427,8 @@ int main(int argc, char **argv) { // This sets a requirement of Mountain Lion and up, but the compiler doesn't work without this limit. " -macosx_version_min 10.8.0 " " -e _main " - #else - " -e main -dynamic-linker /lib64/ld-linux-x86-64.so.2 " #endif - , - LIT(output), LIT(output), output_ext, + , linker, LIT(output), LIT(output), output_ext, lib_str, LIT(build_context.link_flags), link_settings ); From 73c5c5d5d3315ac956b9846adfda9da8d204e4c8 Mon Sep 17 00:00:00 2001 From: Zachary Pierson Date: Tue, 7 Feb 2017 23:21:52 -0600 Subject: [PATCH 07/37] Linker on MacOS and GNU/Linux now includes foreign_system_libraries. Fixed foreign_system_library not respecting 'when' condition. --- src/checker.c | 16 +++++++++++++--- src/main.c | 11 +---------- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/src/checker.c b/src/checker.c index 12915197a..6b2bac628 100644 --- a/src/checker.c +++ b/src/checker.c @@ -1488,6 +1488,19 @@ void check_collect_entities(Checker *c, AstNodeArray nodes, bool is_file_scope) continue; } + if (fl->cond != NULL) { + Operand operand = {Addressing_Invalid}; + check_expr(c, &operand, fl->cond); + if (operand.mode != Addressing_Constant || !is_type_boolean(operand.type)) { + error_node(fl->cond, "Non-constant boolean `when` condition"); + continue; + } + if (operand.value.kind == ExactValue_Bool && + !operand.value.value_bool) { + continue; + } + } + DelayedDecl di = {c->context.scope, decl}; array_add(&c->delayed_foreign_libraries, di); case_end; @@ -1853,6 +1866,3 @@ void check_parsed_files(Checker *c) { map_scope_destroy(&file_scopes); } - - - diff --git a/src/main.c b/src/main.c index 679dfaec9..734afa50a 100644 --- a/src/main.c +++ b/src/main.c @@ -375,9 +375,8 @@ int main(int argc, char **argv) { char lib_str_buf[1024] = {0}; for_array(i, ir_gen.module.foreign_library_paths) { String lib = ir_gen.module.foreign_library_paths.e[i]; - // gb_printf_err("Linking lib: %.*s\n", LIT(lib)); isize len = gb_snprintf(lib_str_buf, gb_size_of(lib_str_buf), - " \"%.*s\"", LIT(lib)); + " -l%.*s ", LIT(lib)); lib_str = gb_string_appendc(lib_str, lib_str_buf); } @@ -410,14 +409,6 @@ int main(int argc, char **argv) { linker = "clang"; #endif - printf("Libs: %s\n", lib_str); - - // TODO(zangent): I'm not sure what to do with lib_str. - // I'll have to look at the format that the libraries are listed to determine what to do. - lib_str = ""; - - - exit_code = system_exec_command_line_app("ld-link", true, "%s \"%.*s\".o -o \"%.*s%s\" %s " "-lc " From 37f7630a9eab8476199229e26b5b628cf73ff11d Mon Sep 17 00:00:00 2001 From: Zachary Pierson Date: Tue, 7 Feb 2017 23:33:36 -0600 Subject: [PATCH 08/37] Updated README.md to reflect Linux's dependancy on clang for now. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ef99a5e12..ca363a455 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,7 @@ The Odin programming language is fast, concise, readable, pragmatic and open sou * x86-64 * Build tools (ld) * LLVM installed + * Clang installed (temporary - this is calling the linker for now) ## Warnings From 7f6b83d50c0d9d7e2fefb189f1ce8a199c6bb561 Mon Sep 17 00:00:00 2001 From: Zac Pierson Date: Wed, 8 Feb 2017 11:59:54 -0600 Subject: [PATCH 09/37] Fixed gb.h - the file handle for /proc/cpuinfo is needed to read chars. --- src/gb/gb.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/gb/gb.h b/src/gb/gb.h index 9f9e850fc..1619914d6 100644 --- a/src/gb/gb.h +++ b/src/gb/gb.h @@ -5012,7 +5012,10 @@ void gb_affinity_init(gbAffinity *a) { // Parsing /proc/cpuinfo to get the number of threads per core. // NOTE(zangent): This calls the CPU's threads "cores", although the wording // is kind of weird. This should be right, though. - if (fopen("/proc/cpuinfo", "r") != NULL) { + + FILE* cpu_info = fopen("/proc/cpuinfo", "r"); + + if (cpu_info != NULL) { for (;;) { // The 'temporary char'. Everything goes into this char, // so that we can check against EOF at the end of this loop. @@ -5043,6 +5046,7 @@ void gb_affinity_init(gbAffinity *a) { } #undef AF__CHECK } + fclose(cpu_info); } if (threads == 0) { From 3445a28c4a58fb52db89aeb66ba4356582680e1d Mon Sep 17 00:00:00 2001 From: Zachary Pierson Date: Thu, 9 Feb 2017 01:40:45 -0600 Subject: [PATCH 10/37] Code quality upkeep. Fixed a broken thread finding assembly instruction in gb.h --- src/build.c | 23 +++++++++++++---------- src/gb/gb.h | 7 +++++-- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/src/build.c b/src/build.c index b8cbfa7a6..24712c626 100644 --- a/src/build.c +++ b/src/build.c @@ -317,8 +317,8 @@ void init_build_context(BuildContext *bc) { // here, so I just #defined the linker flags to keep things concise. #if defined(GB_SYSTEM_WINDOWS) - #define linker_flag_x64 "/machine:x64" - #define linker_flag_x86 "/machine:x86" + #define LINK_FLAG_X64 "/machine:x64" + #define LINK_FLAG_X86 "/machine:x86" #elif defined(GB_SYSTEM_OSX) @@ -326,30 +326,33 @@ void init_build_context(BuildContext *bc) { // an architecture option. All compilation done on MacOS must be x64. GB_ASSERT(str_eq(bc->ODIN_ARCH, str_lit("amd64"))); - #define linker_flag_x64 "" - #define linker_flag_x86 "" + #define LINK_FLAG_X64 "" + #define LINK_FLAG_X86 "" #else // Linux, but also BSDs and the like. // NOTE(zangent): When clang is swapped out with ld as the linker, // the commented flags here should be used. Until then, we'll have // to use alternative build flags made for clang. /* - #define linker_flag_x64 "-m elf_x86_64" - #define linker_flag_x86 "-m elf_i386" + #define LINK_FLAG_X64 "-m elf_x86_64" + #define LINK_FLAG_X86 "-m elf_i386" */ - #define linker_flag_x64 "-arch x86-64" - #define linker_flag_x86 "-arch x86" + #define LINK_FLAG_X64 "-arch x86-64" + #define LINK_FLAG_X86 "-arch x86" #endif if (str_eq(bc->ODIN_ARCH, str_lit("amd64"))) { bc->word_size = 8; bc->max_align = 16; bc->llc_flags = str_lit("-march=x86-64 "); - bc->link_flags = str_lit(linker_flag_x64 " "); + bc->link_flags = str_lit(LINK_FLAG_X64 " "); } else if (str_eq(bc->ODIN_ARCH, str_lit("x86"))) { bc->word_size = 4; bc->max_align = 8; bc->llc_flags = str_lit("-march=x86 "); - bc->link_flags = str_lit(linker_flag_x86 " "); + bc->link_flags = str_lit(LINK_FLAG_X86 " "); } + + #undef LINK_FLAG_X64 + #undef LINK_FLAG_X86 } diff --git a/src/gb/gb.h b/src/gb/gb.h index 1619914d6..0838f52aa 100644 --- a/src/gb/gb.h +++ b/src/gb/gb.h @@ -3630,7 +3630,10 @@ gb_inline void *gb_memcopy(void *dest, void const *source, isize n) { __movsb(cast(u8 *)dest, cast(u8 *)source, n); #elif defined(GB_SYSTEM_OSX) || defined(GB_SYSTEM_UNIX) // NOTE(zangent): I assume there's a reason this isn't being used elsewhere, - // but I don't see it and I can't seem to get this working any other way. + // but casting pointers as arguments to an __asm__ call is considered an + // error on MacOS and (I think) Linux + // TODO(zangent): Figure out how to refactor the asm code so it works on MacOS, + // since this is probably not the way the author intended this to work. memcpy(dest, source, n); #elif defined(GB_CPU_X86) @@ -4684,7 +4687,7 @@ gb_inline u32 gb_thread_current_id(void) { #elif defined(GB_ARCH_32_BIT) && defined(GB_CPU_X86) __asm__("mov %%gs:0x08,%0" : "=r"(thread_id)); #elif defined(GB_ARCH_64_BIT) && defined(GB_CPU_X86) - __asm__("mov %%gs:0x10,%0" : "=r"(thread_id)); + __asm__("mov %%fs:0x10,%0" : "=r"(thread_id)); #else #error Unsupported architecture for gb_thread_current_id() #endif From 3424b2badd347b76ced3f4107d98a12bb50ae49b Mon Sep 17 00:00:00 2001 From: Zachary Pierson Date: Fri, 10 Feb 2017 23:33:30 -0600 Subject: [PATCH 11/37] Added ability to use -framework on MacOS --- src/main.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/main.c b/src/main.c index 734afa50a..e7f656cfa 100644 --- a/src/main.c +++ b/src/main.c @@ -375,8 +375,22 @@ int main(int argc, char **argv) { char lib_str_buf[1024] = {0}; for_array(i, ir_gen.module.foreign_library_paths) { String lib = ir_gen.module.foreign_library_paths.e[i]; - isize len = gb_snprintf(lib_str_buf, gb_size_of(lib_str_buf), - " -l%.*s ", LIT(lib)); + + // NOTE(zangent): Sometimes, you have to use -framework on MacOS. + // This allows you to specify '-f' in a #foreign_system_library, + // without having to implement any new syntax specifically for MacOS. + #if defined(GB_SYSTEM_OSX) + if(lib.len > 2 && lib.text[0] == '-' && lib.text[1] == 'f') { + isize len = gb_snprintf(lib_str_buf, gb_size_of(lib_str_buf), + " -framework %.*s ", (int)(lib.len) - 2, lib.text + 2); + } else { + isize len = gb_snprintf(lib_str_buf, gb_size_of(lib_str_buf), + " -l%.*s ", LIT(lib)); + } + #else + isize len = gb_snprintf(lib_str_buf, gb_size_of(lib_str_buf), + " -l%.*s ", LIT(lib)); + #endif lib_str = gb_string_appendc(lib_str, lib_str_buf); } From 05486f9fa33020ed11a34ece5b06dac3e47336a6 Mon Sep 17 00:00:00 2001 From: Zachary Pierson Date: Sat, 11 Feb 2017 00:30:04 -0600 Subject: [PATCH 12/37] I'm not sure what I changed here, to be honest. I've ctrl-z'd everything, but git's still complaining. --- core/math.odin | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/core/math.odin b/core/math.odin index 6214bf824..1de457222 100644 --- a/core/math.odin +++ b/core/math.odin @@ -46,6 +46,10 @@ bit_reverse :: proc(b: u16) -> u16 #foreign __llvm_core "llvm.bitreverse.i16"; bit_reverse :: proc(b: u32) -> u32 #foreign __llvm_core "llvm.bitreverse.i32"; bit_reverse :: proc(b: u64) -> u64 #foreign __llvm_core "llvm.bitreverse.i64"; +byte_swap :: proc(b: u16) -> u16 #foreign __llvm_core "llvm.bswap.i16"; +byte_swap :: proc(b: u32) -> u32 #foreign __llvm_core "llvm.bswap.i32"; +byte_swap :: proc(b: u64) -> u64 #foreign __llvm_core "llvm.bswap.i64"; + fmuladd :: proc(a, b, c: f32) -> f32 #foreign __llvm_core "llvm.fmuladd.f32"; fmuladd :: proc(a, b, c: f64) -> f64 #foreign __llvm_core "llvm.fmuladd.f64"; @@ -367,6 +371,3 @@ F64_MIN_10_EXP :: -307; // min decimal exponent F64_MIN_EXP :: -1021; // min binary exponent F64_RADIX :: 2; // exponent radix F64_ROUNDS :: 1; // addition rounding: near - - - From afac95e092585c27650c1e53605c2b5401995bd3 Mon Sep 17 00:00:00 2001 From: Zachary Pierson Date: Sat, 11 Feb 2017 00:33:12 -0600 Subject: [PATCH 13/37] Oh, I left math.odin open when I merged gingerBill's changes. Oops. Updated to his version. --- core/math.odin | 4 ---- 1 file changed, 4 deletions(-) diff --git a/core/math.odin b/core/math.odin index 1de457222..61a33bdeb 100644 --- a/core/math.odin +++ b/core/math.odin @@ -46,10 +46,6 @@ bit_reverse :: proc(b: u16) -> u16 #foreign __llvm_core "llvm.bitreverse.i16"; bit_reverse :: proc(b: u32) -> u32 #foreign __llvm_core "llvm.bitreverse.i32"; bit_reverse :: proc(b: u64) -> u64 #foreign __llvm_core "llvm.bitreverse.i64"; -byte_swap :: proc(b: u16) -> u16 #foreign __llvm_core "llvm.bswap.i16"; -byte_swap :: proc(b: u32) -> u32 #foreign __llvm_core "llvm.bswap.i32"; -byte_swap :: proc(b: u64) -> u64 #foreign __llvm_core "llvm.bswap.i64"; - fmuladd :: proc(a, b, c: f32) -> f32 #foreign __llvm_core "llvm.fmuladd.f32"; fmuladd :: proc(a, b, c: f64) -> f64 #foreign __llvm_core "llvm.fmuladd.f64"; From 99c663d9f309e694575151e655967f621150ec22 Mon Sep 17 00:00:00 2001 From: Zac Pierson Date: Sat, 11 Feb 2017 01:10:03 -0600 Subject: [PATCH 14/37] Questioning whether MacOS libraries should be .dylib or .so --- src/main.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main.c b/src/main.c index e7f656cfa..ba05144f7 100644 --- a/src/main.c +++ b/src/main.c @@ -401,6 +401,7 @@ int main(int argc, char **argv) { char *linker; if (build_context.is_dll) { // Shared libraries are .dylib on MacOS and .so on Linux. + // TODO(zangent): Is that statement entirely truthful? #if defined(GB_SYSTEM_OSX) output_ext = ".dylib"; #else From 754b3681403c1e3aab719c2d08fd66d60f718e43 Mon Sep 17 00:00:00 2001 From: Zachary Pierson Date: Sat, 11 Feb 2017 15:09:53 -0600 Subject: [PATCH 15/37] Added dynamic library loading to Linux and MacOS's standard libraries. --- core/os_linux.odin | 34 ++++++++++++++++++-- core/os_x.odin | 72 +++++++++++++++++++++++-------------------- core/sys/windows.odin | 1 - 3 files changed, 71 insertions(+), 36 deletions(-) diff --git a/core/os_linux.odin b/core/os_linux.odin index 96388ed01..5c3cc8cef 100644 --- a/core/os_linux.odin +++ b/core/os_linux.odin @@ -20,6 +20,13 @@ O_SYNC :: 0x01000; O_ASYNC :: 0x02000; O_CLOEXEC :: 0x80000; +// NOTE(zangent): These are OS specific! +// Do not mix these up! +RTLD_LAZY :: 0x001; +RTLD_NOW :: 0x002; +RTLD_BINDING_MASK :: 0x3; +RTLD_GLOBAL :: 0x100; + // ERROR_NONE: Errno : 0; // ERROR_FILE_NOT_FOUND: Errno : 2; // ERROR_PATH_NOT_FOUND: Errno : 3; @@ -61,6 +68,11 @@ unix_realloc :: proc(ptr: rawptr, size: int) -> rawptr #foreig unix_exit :: proc(status: int) #foreign libc "exit"; +unix_dlopen :: proc(filename: ^u8, flags: int) -> rawptr #foreign dl "dlopen"; +unix_dlsym :: proc(handle: rawptr, symbol: ^u8) -> (proc() #cc_c) #foreign dl "dlsym"; +unix_dlclose :: proc(handle: rawptr) -> int #foreign dl "dlclose"; +unix_dlerror :: proc() -> ^u8 #foreign dl "dlerror"; + @@ -227,5 +239,23 @@ current_thread_id :: proc() -> int { return 0; } - - +dlopen :: proc(filename: string, flags: int) -> rawptr #inline { + return unix_dlopen(filename.data, flags); +} +dlsym :: proc(handle: rawptr, symbol: string) -> (proc() #cc_c) #inline { + assert(handle != nil); + return unix_dlsym(handle, symbol.data); +} +dlclose :: proc(handle: rawptr) -> bool #inline { + assert(handle != nil); + return unix_dlclose(handle) == 0; +} +dlerror :: proc() -> string { + // TODO(zangent): Should this be split out into a from_c_string()? + c_str := unix_dlerror(); + len := 0; + for s := c_str; s^ != 0; s += 1 { + len += 1; + } + return cast(string)slice_ptr(c_str, len); +} diff --git a/core/os_x.odin b/core/os_x.odin index 7627adece..d4b41e1e2 100644 --- a/core/os_x.odin +++ b/core/os_x.odin @@ -20,33 +20,19 @@ O_SYNC :: 0x01000; O_ASYNC :: 0x02000; O_CLOEXEC :: 0x80000; -// ERROR_NONE: Errno : 0; -// ERROR_FILE_NOT_FOUND: Errno : 2; -// ERROR_PATH_NOT_FOUND: Errno : 3; -// ERROR_ACCESS_DENIED: Errno : 5; -// ERROR_NO_MORE_FILES: Errno : 18; -// ERROR_HANDLE_EOF: Errno : 38; -// ERROR_NETNAME_DELETED: Errno : 64; -// ERROR_FILE_EXISTS: Errno : 80; -// ERROR_BROKEN_PIPE: Errno : 109; -// ERROR_BUFFER_OVERFLOW: Errno : 111; -// ERROR_INSUFFICIENT_BUFFER: Errno : 122; -// ERROR_MOD_NOT_FOUND: Errno : 126; -// ERROR_PROC_NOT_FOUND: Errno : 127; -// ERROR_DIR_NOT_EMPTY: Errno : 145; -// ERROR_ALREADY_EXISTS: Errno : 183; -// ERROR_ENVVAR_NOT_FOUND: Errno : 203; -// ERROR_MORE_DATA: Errno : 234; -// ERROR_OPERATION_ABORTED: Errno : 995; -// ERROR_IO_PENDING: Errno : 997; -// ERROR_NOT_FOUND: Errno : 1168; -// ERROR_PRIVILEGE_NOT_HELD: Errno : 1314; -// WSAEACCES: Errno : 10013; -// WSAECONNRESET: Errno : 10054; +// NOTE(zangent): These are OS specific! +// Do not mix these up! +RTLD_LAZY :: 0x1; +RTLD_NOW :: 0x2; +RTLD_LOCAL :: 0x4; +RTLD_GLOBAL:: 0x8; +RTLD_NODELETE :: 0x80; +RTLD_NOLOAD :: 0x10; +RTLD_FIRST :: 0x100; -// Windows reserves errors >= 1<<29 for application use -// ERROR_FILE_IS_PIPE: Errno : 1<<29 + 0; + +#foreign_system_library dl "dl"; #foreign_system_library libc "c"; unix_open :: proc(path: ^u8, mode: int, perm: u32) -> Handle #foreign libc "open"; @@ -61,8 +47,10 @@ unix_realloc :: proc(ptr: rawptr, size: int) -> rawptr #foreig unix_exit :: proc(status: int) #foreign libc "exit"; - - +unix_dlopen :: proc(filename: ^u8, flags: int) -> rawptr #foreign dl "dlopen"; +unix_dlsym :: proc(handle: rawptr, symbol: ^u8) -> (proc() #cc_c) #foreign dl "dlsym"; +unix_dlclose :: proc(handle: rawptr) -> int #foreign dl "dlclose"; +unix_dlerror :: proc() -> ^u8 #foreign dl "dlerror"; open :: proc(path: string, mode: int, perm: u32) -> (Handle, Errno) { return unix_open(path.data, mode, perm), 0; @@ -204,19 +192,19 @@ read_entire_file :: proc(name: string) -> ([]byte, bool) { */ -heap_alloc :: proc(size: int) -> rawptr { +heap_alloc :: proc(size: int) -> rawptr #inline { assert(size > 0); return unix_malloc(size); } -heap_resize :: proc(ptr: rawptr, new_size: int) -> rawptr { +heap_resize :: proc(ptr: rawptr, new_size: int) -> rawptr #inline { return unix_realloc(ptr, new_size); } -heap_free :: proc(ptr: rawptr) { +heap_free :: proc(ptr: rawptr) #inline { unix_free(ptr); } -exit :: proc(code: int) { +exit :: proc(code: int) #inline { unix_exit(code); } @@ -226,5 +214,23 @@ current_thread_id :: proc() -> int { return 0; } - - +dlopen :: proc(filename: string, flags: int) -> rawptr #inline { + return unix_dlopen(filename.data, flags); +} +dlsym :: proc(handle: rawptr, symbol: string) -> (proc() #cc_c) #inline { + assert(handle != nil); + return unix_dlsym(handle, symbol.data); +} +dlclose :: proc(handle: rawptr) -> bool #inline { + assert(handle != nil); + return unix_dlclose(handle) == 0; +} +dlerror :: proc() -> string { + // TODO(zangent): Should this be split out into a from_c_string()? + c_str := unix_dlerror(); + len := 0; + for s := c_str; s^ != 0; s += 1 { + len += 1; + } + return cast(string)slice_ptr(c_str, len); +} diff --git a/core/sys/windows.odin b/core/sys/windows.odin index 4c32cbd3e..06f84cdc9 100644 --- a/core/sys/windows.odin +++ b/core/sys/windows.odin @@ -563,4 +563,3 @@ Key_Code :: enum i32 { PA1 = 0xFD, OEM_CLEAR = 0xFE, } - From fc1a006de1bcc2bf22da88924b1646322c26e543 Mon Sep 17 00:00:00 2001 From: Zachary Pierson Date: Sat, 11 Feb 2017 17:24:47 -0600 Subject: [PATCH 16/37] Added support for reading files on MacOS and Linux --- core/os_linux.odin | 249 +++++++++++++++++++-------------------------- core/os_x.odin | 245 ++++++++++++++++++++------------------------ 2 files changed, 218 insertions(+), 276 deletions(-) diff --git a/core/os_linux.odin b/core/os_linux.odin index 5c3cc8cef..f7242cd60 100644 --- a/core/os_linux.odin +++ b/core/os_linux.odin @@ -1,9 +1,12 @@ -// #import "fmt.odin"; +#import "fmt.odin"; Handle :: i32; File_Time :: u64; Errno :: int; +// TODO(zangent): Find out how to make this work on x64 and x32. +AddressSize :: i64; + // INVALID_HANDLE: Handle : -1; @@ -19,6 +22,12 @@ O_APPEND :: 0x00400; O_SYNC :: 0x01000; O_ASYNC :: 0x02000; O_CLOEXEC :: 0x80000; +SEEK_SET :: 0; +SEEK_CUR :: 1; +SEEK_END :: 2; +SEEK_DATA :: 3; +SEEK_HOLE :: 4; +SEEK_MAX :: SEEK_HOLE; // NOTE(zangent): These are OS specific! // Do not mix these up! @@ -27,96 +36,87 @@ RTLD_NOW :: 0x002; RTLD_BINDING_MASK :: 0x3; RTLD_GLOBAL :: 0x100; -// ERROR_NONE: Errno : 0; -// ERROR_FILE_NOT_FOUND: Errno : 2; -// ERROR_PATH_NOT_FOUND: Errno : 3; -// ERROR_ACCESS_DENIED: Errno : 5; -// ERROR_NO_MORE_FILES: Errno : 18; -// ERROR_HANDLE_EOF: Errno : 38; -// ERROR_NETNAME_DELETED: Errno : 64; -// ERROR_FILE_EXISTS: Errno : 80; -// ERROR_BROKEN_PIPE: Errno : 109; -// ERROR_BUFFER_OVERFLOW: Errno : 111; -// ERROR_INSUFFICIENT_BUFFER: Errno : 122; -// ERROR_MOD_NOT_FOUND: Errno : 126; -// ERROR_PROC_NOT_FOUND: Errno : 127; -// ERROR_DIR_NOT_EMPTY: Errno : 145; -// ERROR_ALREADY_EXISTS: Errno : 183; -// ERROR_ENVVAR_NOT_FOUND: Errno : 203; -// ERROR_MORE_DATA: Errno : 234; -// ERROR_OPERATION_ABORTED: Errno : 995; -// ERROR_IO_PENDING: Errno : 997; -// ERROR_NOT_FOUND: Errno : 1168; -// ERROR_PRIVILEGE_NOT_HELD: Errno : 1314; -// WSAEACCES: Errno : 10013; -// WSAECONNRESET: Errno : 10054; - -// Windows reserves errors >= 1<<29 for application use -// ERROR_FILE_IS_PIPE: Errno : 1<<29 + 0; - +#foreign_system_library dl "dl"; #foreign_system_library libc "c"; -unix_open :: proc(path: ^u8, mode: int, perm: u32) -> Handle #foreign libc "open"; -unix_close :: proc(handle: Handle) #foreign libc "close"; -unix_read :: proc(handle: Handle, buffer: rawptr, count: int) -> int #foreign libc "read"; -unix_write :: proc(handle: Handle, buffer: rawptr, count: int) -> int #foreign libc "write"; -//unix_gettid :: proc() -> u64 #foreign libc "gettid"; +unix_open :: proc(path: ^u8, mode: int) -> Handle #foreign libc "open"; +unix_close :: proc(handle: Handle) #foreign libc "close"; +unix_read :: proc(handle: Handle, buffer: rawptr, count: int) -> AddressSize #foreign libc "read"; +unix_write :: proc(handle: Handle, buffer: rawptr, count: int) -> AddressSize #foreign libc "write"; +unix_lseek :: proc(fs: Handle, offset: AddressSize, whence: int) -> AddressSize #foreign libc "lseek"; +unix_gettid :: proc() -> u64 #foreign libc "gettid"; -unix_malloc :: proc(size: int) -> rawptr #foreign libc "malloc"; -unix_free :: proc(ptr: rawptr) #foreign libc "free"; -unix_realloc :: proc(ptr: rawptr, size: int) -> rawptr #foreign libc "realloc"; +unix_malloc :: proc(size: int) -> rawptr #foreign libc "malloc"; +unix_free :: proc(ptr: rawptr) #foreign libc "free"; +unix_realloc :: proc(ptr: rawptr, size: int) -> rawptr #foreign libc "realloc"; -unix_exit :: proc(status: int) #foreign libc "exit"; - -unix_dlopen :: proc(filename: ^u8, flags: int) -> rawptr #foreign dl "dlopen"; -unix_dlsym :: proc(handle: rawptr, symbol: ^u8) -> (proc() #cc_c) #foreign dl "dlsym"; -unix_dlclose :: proc(handle: rawptr) -> int #foreign dl "dlclose"; -unix_dlerror :: proc() -> ^u8 #foreign dl "dlerror"; +unix_exit :: proc(status: int) #foreign libc "exit"; +unix_dlopen :: proc(filename: ^u8, flags: int) -> rawptr #foreign dl "dlopen"; +unix_dlsym :: proc(handle: rawptr, symbol: ^u8) -> (proc() #cc_c) #foreign dl "dlsym"; +unix_dlclose :: proc(handle: rawptr) -> int #foreign dl "dlclose"; +unix_dlerror :: proc() -> ^u8 #foreign dl "dlerror"; +to_c_str :: proc(str: string) -> ^u8 { + cstr := new_slice(byte, str.count+1); + copy(cstr, cast([]byte)str); + cstr[str.count] = 0; + return cstr.data; +} +from_c_str :: proc(c_str: ^u8) -> string { + len := 0; + for s := c_str; s^ != 0; s += 1 { + len += 1; + } + return cast(string)slice_ptr(c_str, len); +} +open :: proc(path: string, mode: int) -> (Handle, Errno) { + + handle := unix_open(to_c_str(path), mode); + if(handle == -1) { + return 0, 1; + } + return handle, 0; +} +// NOTE(zangent): This is here for compatability reasons. Should this be here? open :: proc(path: string, mode: int, perm: u32) -> (Handle, Errno) { - return unix_open(path.data, mode, perm), 0; + return open(path, mode); } close :: proc(fd: Handle) { unix_close(fd); } -write :: proc(fd: Handle, data: []byte) -> (int, Errno) { - return unix_write(fd, data.data, data.count), 0; +write :: proc(fd: Handle, data: []byte) -> (AddressSize, Errno) { + assert(fd != -1); + + bytes_written := unix_write(fd, data.data, data.count); + if(bytes_written == -1) { + return 0, 1; + } + return bytes_written, 0; } -read :: proc(fd: Handle, data: []byte) -> (int, Errno) { - return unix_read(fd, data.data, data.count), 0; +read :: proc(fd: Handle, data: []byte) -> (AddressSize, Errno) { + assert(fd != -1); + + bytes_read := unix_read(fd, data.data, data.count); + if(bytes_read == -1) { + return 0, 1; + } + return bytes_read, 0; } +seek :: proc(fd: Handle, offset: AddressSize, whence: int) -> (AddressSize, Errno) { + assert(fd != -1); -seek :: proc(fd: Handle, offset: i64, whence: int) -> (i64, Errno) { - /* - using win32; - w: u32; - match whence { - case 0: w = FILE_BEGIN; - case 1: w = FILE_CURRENT; - case 2: w = FILE_END; + final_offset := unix_lseek(fd, offset, whence); + if(final_offset == -1) { + return 0, 1; } - hi := cast(i32)(offset>>32); - lo := cast(i32)(offset); - ft := GetFileType(cast(HANDLE)fd); - if ft == FILE_TYPE_PIPE { - return 0, ERROR_FILE_IS_PIPE; - } - dw_ptr := SetFilePointer(cast(HANDLE)fd, lo, ^hi, w); - if dw_ptr == INVALID_SET_FILE_POINTER { - err := GetLastError(); - return 0, cast(Errno)err; - } - return cast(i64)hi<<32 + cast(i64)dw_ptr, ERROR_NONE; - - */ - return 0, 0; + return final_offset, 0; } @@ -125,97 +125,56 @@ stdin: Handle = 0; // get_std_handle(win32.STD_INPUT_HANDLE); stdout: Handle = 1; // get_std_handle(win32.STD_OUTPUT_HANDLE); stderr: Handle = 2; // get_std_handle(win32.STD_ERROR_HANDLE); - -/* -get_std_handle :: proc(h: int) -> Handle { - fd := win32.GetStdHandle(cast(i32)h); - win32.SetHandleInformation(fd, win32.HANDLE_FLAG_INHERIT, 0); - return cast(Handle)fd; -} - - - - - - -last_write_time :: proc(fd: Handle) -> File_Time { - file_info: win32.BY_HANDLE_FILE_INFORMATION; - win32.GetFileInformationByHandle(cast(win32.HANDLE)fd, ^file_info); - lo := cast(File_Time)file_info.last_write_time.lo; - hi := cast(File_Time)file_info.last_write_time.hi; - return lo | hi << 32; -} - -last_write_time_by_name :: proc(name: string) -> File_Time { - last_write_time: win32.FILETIME; - data: win32.FILE_ATTRIBUTE_DATA; - buf: [1024]byte; - - assert(buf.count > name.count); - - copy(buf[:], cast([]byte)name); - - if win32.GetFileAttributesExA(^buf[0], win32.GetFileExInfoStandard, ^data) != 0 { - last_write_time = data.last_write_time; - } - - l := cast(File_Time)last_write_time.lo; - h := cast(File_Time)last_write_time.hi; - return l | h << 32; -} - - - - +/* TODO(zangent): Implement these! +last_write_time :: proc(fd: Handle) -> File_Time {} +last_write_time_by_name :: proc(name: string) -> File_Time {} +*/ read_entire_file :: proc(name: string) -> ([]byte, bool) { - buf: [300]byte; - copy(buf[:], cast([]byte)name); - fd, err := open(name, O_RDONLY, 0); - if err != ERROR_NONE { + handle, err := open(name, O_RDONLY); + if(err != 0) { + fmt.println("Failed to open file."); return nil, false; } - defer close(fd); + defer(close(handle)); - length: i64; - file_size_ok := win32.GetFileSizeEx(cast(win32.HANDLE)fd, ^length) != 0; - if !file_size_ok { + // We have a file! + + size: AddressSize; + size, err = seek(handle, 0, SEEK_END); + if(err != 0) { + fmt.println("Failed to seek to end of file."); return nil, false; } - data := new_slice(u8, length); + _, err = seek(handle, 0, SEEK_SET); + if(err != 0) { + fmt.println("Failed to seek to beginning of file."); + return nil, false; + } + + // We have a file size! + + data := new_slice(u8, size); if data.data == nil { + fmt.println("Failed to allocate file buffer."); return nil, false; } - single_read_length: i32; - total_read: i64; - - for total_read < length { - remaining := length - total_read; - to_read: u32; - MAX :: 1<<32-1; - if remaining <= MAX { - to_read = cast(u32)remaining; - } else { - to_read = MAX; - } - - win32.ReadFile(cast(win32.HANDLE)fd, ^data[total_read], to_read, ^single_read_length, nil); - if single_read_length <= 0 { - free(data); - return nil, false; - } - - total_read += cast(i64)single_read_length; - } + read(handle, data); return data, true; } +read_entire_file_to_string :: proc(name: string) -> (string, bool) { - -*/ + contents, success := read_entire_file(name); + if(!success) { + fmt.println("Failed to seek to end of file."); + return "", false; + } + return from_c_str(^contents[0]), true; +} heap_alloc :: proc(size: int) -> rawptr { assert(size > 0); @@ -240,10 +199,12 @@ current_thread_id :: proc() -> int { } dlopen :: proc(filename: string, flags: int) -> rawptr #inline { + filename += "\x00"; return unix_dlopen(filename.data, flags); } dlsym :: proc(handle: rawptr, symbol: string) -> (proc() #cc_c) #inline { assert(handle != nil); + symbol += "\x00"; return unix_dlsym(handle, symbol.data); } dlclose :: proc(handle: rawptr) -> bool #inline { diff --git a/core/os_x.odin b/core/os_x.odin index d4b41e1e2..851bcefe4 100644 --- a/core/os_x.odin +++ b/core/os_x.odin @@ -4,6 +4,9 @@ Handle :: i32; File_Time :: u64; Errno :: int; +// TODO(zangent): Find out how to make this work on x64 and x32. +AddressSize :: i64; + // INVALID_HANDLE: Handle : -1; @@ -19,79 +22,104 @@ O_APPEND :: 0x00400; O_SYNC :: 0x01000; O_ASYNC :: 0x02000; O_CLOEXEC :: 0x80000; +SEEK_SET :: 0; +SEEK_CUR :: 1; +SEEK_END :: 2; +SEEK_DATA :: 3; +SEEK_HOLE :: 4; +SEEK_MAX :: SEEK_HOLE; // NOTE(zangent): These are OS specific! // Do not mix these up! -RTLD_LAZY :: 0x1; -RTLD_NOW :: 0x2; -RTLD_LOCAL :: 0x4; -RTLD_GLOBAL:: 0x8; +RTLD_LAZY :: 0x1; +RTLD_NOW :: 0x2; +RTLD_LOCAL :: 0x4; +RTLD_GLOBAL :: 0x8; RTLD_NODELETE :: 0x80; -RTLD_NOLOAD :: 0x10; -RTLD_FIRST :: 0x100; - - +RTLD_NOLOAD :: 0x10; +RTLD_FIRST :: 0x100; #foreign_system_library dl "dl"; #foreign_system_library libc "c"; -unix_open :: proc(path: ^u8, mode: int, perm: u32) -> Handle #foreign libc "open"; -unix_close :: proc(handle: Handle) #foreign libc "close"; -unix_read :: proc(handle: Handle, buffer: rawptr, count: int) -> int #foreign libc "read"; -unix_write :: proc(handle: Handle, buffer: rawptr, count: int) -> int #foreign libc "write"; -unix_gettid :: proc() -> u64 #foreign libc "gettid"; +unix_open :: proc(path: ^u8, mode: int) -> Handle #foreign libc "open"; +unix_close :: proc(handle: Handle) #foreign libc "close"; +unix_read :: proc(handle: Handle, buffer: rawptr, count: int) -> AddressSize #foreign libc "read"; +unix_write :: proc(handle: Handle, buffer: rawptr, count: int) -> AddressSize #foreign libc "write"; +unix_lseek :: proc(fs: Handle, offset: AddressSize, whence: int) -> AddressSize #foreign libc "lseek"; +unix_gettid :: proc() -> u64 #foreign libc "gettid"; -unix_malloc :: proc(size: int) -> rawptr #foreign libc "malloc"; -unix_free :: proc(ptr: rawptr) #foreign libc "free"; -unix_realloc :: proc(ptr: rawptr, size: int) -> rawptr #foreign libc "realloc"; +unix_malloc :: proc(size: int) -> rawptr #foreign libc "malloc"; +unix_free :: proc(ptr: rawptr) #foreign libc "free"; +unix_realloc :: proc(ptr: rawptr, size: int) -> rawptr #foreign libc "realloc"; -unix_exit :: proc(status: int) #foreign libc "exit"; +unix_exit :: proc(status: int) #foreign libc "exit"; -unix_dlopen :: proc(filename: ^u8, flags: int) -> rawptr #foreign dl "dlopen"; -unix_dlsym :: proc(handle: rawptr, symbol: ^u8) -> (proc() #cc_c) #foreign dl "dlsym"; -unix_dlclose :: proc(handle: rawptr) -> int #foreign dl "dlclose"; -unix_dlerror :: proc() -> ^u8 #foreign dl "dlerror"; +unix_dlopen :: proc(filename: ^u8, flags: int) -> rawptr #foreign dl "dlopen"; +unix_dlsym :: proc(handle: rawptr, symbol: ^u8) -> (proc() #cc_c) #foreign dl "dlsym"; +unix_dlclose :: proc(handle: rawptr) -> int #foreign dl "dlclose"; +unix_dlerror :: proc() -> ^u8 #foreign dl "dlerror"; +to_c_str :: proc(str: string) -> ^u8 { + cstr := new_slice(byte, str.count+1); + copy(cstr, cast([]byte)str); + cstr[str.count] = 0; + return cstr.data; +} + +from_c_str :: proc(c_str: ^u8) -> string { + len := 0; + for s := c_str; s^ != 0; s += 1 { + len += 1; + } + return cast(string)slice_ptr(c_str, len); +} + +open :: proc(path: string, mode: int) -> (Handle, Errno) { + + handle := unix_open(to_c_str(path), mode); + if(handle == -1) { + return 0, 1; + } + return handle, 0; +} +// NOTE(zangent): This is here for compatability reasons. Should this be here? open :: proc(path: string, mode: int, perm: u32) -> (Handle, Errno) { - return unix_open(path.data, mode, perm), 0; + return open(path, mode); } close :: proc(fd: Handle) { unix_close(fd); } -write :: proc(fd: Handle, data: []byte) -> (int, Errno) { - return unix_write(fd, data.data, data.count), 0; +write :: proc(fd: Handle, data: []byte) -> (AddressSize, Errno) { + assert(fd != -1); + + bytes_written := unix_write(fd, data.data, data.count); + if(bytes_written == -1) { + return 0, 1; + } + return bytes_written, 0; } -read :: proc(fd: Handle, data: []byte) -> (int, Errno) { - return unix_read(fd, data.data, data.count), 0; +read :: proc(fd: Handle, data: []byte) -> (AddressSize, Errno) { + assert(fd != -1); + + bytes_read := unix_read(fd, data.data, data.count); + if(bytes_read == -1) { + return 0, 1; + } + return bytes_read, 0; } -seek :: proc(fd: Handle, offset: i64, whence: int) -> (i64, Errno) { - /* - using win32; - w: u32; - match whence { - case 0: w = FILE_BEGIN; - case 1: w = FILE_CURRENT; - case 2: w = FILE_END; - } - hi := cast(i32)(offset>>32); - lo := cast(i32)(offset); - ft := GetFileType(cast(HANDLE)fd); - if ft == FILE_TYPE_PIPE { - return 0, ERROR_FILE_IS_PIPE; - } - dw_ptr := SetFilePointer(cast(HANDLE)fd, lo, ^hi, w); - if dw_ptr == INVALID_SET_FILE_POINTER { - err := GetLastError(); - return 0, cast(Errno)err; - } - return cast(i64)hi<<32 + cast(i64)dw_ptr, ERROR_NONE; +seek :: proc(fd: Handle, offset: AddressSize, whence: int) -> (AddressSize, Errno) { + assert(fd != -1); - */ - return 0, 0; + final_offset := unix_lseek(fd, offset, whence); + if(final_offset == -1) { + return 0, 1; + } + return final_offset, 0; } @@ -100,97 +128,56 @@ stdin: Handle = 0; // get_std_handle(win32.STD_INPUT_HANDLE); stdout: Handle = 1; // get_std_handle(win32.STD_OUTPUT_HANDLE); stderr: Handle = 2; // get_std_handle(win32.STD_ERROR_HANDLE); - -/* -get_std_handle :: proc(h: int) -> Handle { - fd := win32.GetStdHandle(cast(i32)h); - win32.SetHandleInformation(fd, win32.HANDLE_FLAG_INHERIT, 0); - return cast(Handle)fd; -} - - - - - - -last_write_time :: proc(fd: Handle) -> File_Time { - file_info: win32.BY_HANDLE_FILE_INFORMATION; - win32.GetFileInformationByHandle(cast(win32.HANDLE)fd, ^file_info); - lo := cast(File_Time)file_info.last_write_time.lo; - hi := cast(File_Time)file_info.last_write_time.hi; - return lo | hi << 32; -} - -last_write_time_by_name :: proc(name: string) -> File_Time { - last_write_time: win32.FILETIME; - data: win32.FILE_ATTRIBUTE_DATA; - buf: [1024]byte; - - assert(buf.count > name.count); - - copy(buf[:], cast([]byte)name); - - if win32.GetFileAttributesExA(^buf[0], win32.GetFileExInfoStandard, ^data) != 0 { - last_write_time = data.last_write_time; - } - - l := cast(File_Time)last_write_time.lo; - h := cast(File_Time)last_write_time.hi; - return l | h << 32; -} - - - - +/* TODO(zangent): Implement these! +last_write_time :: proc(fd: Handle) -> File_Time {} +last_write_time_by_name :: proc(name: string) -> File_Time {} +*/ read_entire_file :: proc(name: string) -> ([]byte, bool) { - buf: [300]byte; - copy(buf[:], cast([]byte)name); - fd, err := open(name, O_RDONLY, 0); - if err != ERROR_NONE { + handle, err := open(name, O_RDONLY); + if(err != 0) { + fmt.println("Failed to open file."); return nil, false; } - defer close(fd); + defer(close(handle)); - length: i64; - file_size_ok := win32.GetFileSizeEx(cast(win32.HANDLE)fd, ^length) != 0; - if !file_size_ok { + // We have a file! + + size: AddressSize; + size, err = seek(handle, 0, SEEK_END); + if(err != 0) { + fmt.println("Failed to seek to end of file."); return nil, false; } - data := new_slice(u8, length); + _, err = seek(handle, 0, SEEK_SET); + if(err != 0) { + fmt.println("Failed to seek to beginning of file."); + return nil, false; + } + + // We have a file size! + + data := new_slice(u8, size); if data.data == nil { + fmt.println("Failed to allocate file buffer."); return nil, false; } - single_read_length: i32; - total_read: i64; - - for total_read < length { - remaining := length - total_read; - to_read: u32; - MAX :: 1<<32-1; - if remaining <= MAX { - to_read = cast(u32)remaining; - } else { - to_read = MAX; - } - - win32.ReadFile(cast(win32.HANDLE)fd, ^data[total_read], to_read, ^single_read_length, nil); - if single_read_length <= 0 { - free(data); - return nil, false; - } - - total_read += cast(i64)single_read_length; - } + read(handle, data); return data, true; } +read_entire_file_to_string :: proc(name: string) -> (string, bool) { - -*/ + contents, success := read_entire_file(name); + if(!success) { + fmt.println("Failed to seek to end of file."); + return "", false; + } + return from_c_str(^contents[0]), true; +} heap_alloc :: proc(size: int) -> rawptr #inline { assert(size > 0); @@ -215,22 +202,16 @@ current_thread_id :: proc() -> int { } dlopen :: proc(filename: string, flags: int) -> rawptr #inline { - return unix_dlopen(filename.data, flags); + return unix_dlopen(to_c_str(filename), flags); } dlsym :: proc(handle: rawptr, symbol: string) -> (proc() #cc_c) #inline { assert(handle != nil); - return unix_dlsym(handle, symbol.data); + return unix_dlsym(handle, to_c_str(symbol)); } dlclose :: proc(handle: rawptr) -> bool #inline { assert(handle != nil); return unix_dlclose(handle) == 0; } dlerror :: proc() -> string { - // TODO(zangent): Should this be split out into a from_c_string()? - c_str := unix_dlerror(); - len := 0; - for s := c_str; s^ != 0; s += 1 { - len += 1; - } - return cast(string)slice_ptr(c_str, len); + return from_c_str(unix_dlerror()); } From 3f3122bccc5f30af7dd43df2637fb01548729b0f Mon Sep 17 00:00:00 2001 From: Zachary Pierson Date: Sat, 11 Feb 2017 18:54:54 -0600 Subject: [PATCH 17/37] Temporary fix for an Odin bug. --- core/os_linux.odin | 6 +++--- core/os_x.odin | 12 +++++++----- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/core/os_linux.odin b/core/os_linux.odin index f7242cd60..9192519b1 100644 --- a/core/os_linux.odin +++ b/core/os_linux.odin @@ -71,8 +71,8 @@ from_c_str :: proc(c_str: ^u8) -> string { } return cast(string)slice_ptr(c_str, len); } - -open :: proc(path: string, mode: int) -> (Handle, Errno) { +// TODO(zangent): Change this to just `open` when Bill fixes overloading. +open_simple :: proc(path: string, mode: int) -> (Handle, Errno) { handle := unix_open(to_c_str(path), mode); if(handle == -1) { @@ -132,7 +132,7 @@ last_write_time_by_name :: proc(name: string) -> File_Time {} read_entire_file :: proc(name: string) -> ([]byte, bool) { - handle, err := open(name, O_RDONLY); + handle, err := open_simple(name, O_RDONLY); if(err != 0) { fmt.println("Failed to open file."); return nil, false; diff --git a/core/os_x.odin b/core/os_x.odin index 851bcefe4..6cc31e584 100644 --- a/core/os_x.odin +++ b/core/os_x.odin @@ -74,8 +74,8 @@ from_c_str :: proc(c_str: ^u8) -> string { } return cast(string)slice_ptr(c_str, len); } - -open :: proc(path: string, mode: int) -> (Handle, Errno) { +// TODO(zangent): Change this to just `open` when Bill fixes overloading. +open_simple :: proc(path: string, mode: int) -> (Handle, Errno) { handle := unix_open(to_c_str(path), mode); if(handle == -1) { @@ -83,9 +83,10 @@ open :: proc(path: string, mode: int) -> (Handle, Errno) { } return handle, 0; } + // NOTE(zangent): This is here for compatability reasons. Should this be here? open :: proc(path: string, mode: int, perm: u32) -> (Handle, Errno) { - return open(path, mode); + return open_simple(path, mode); } close :: proc(fd: Handle) { @@ -132,10 +133,10 @@ stderr: Handle = 2; // get_std_handle(win32.STD_ERROR_HANDLE); last_write_time :: proc(fd: Handle) -> File_Time {} last_write_time_by_name :: proc(name: string) -> File_Time {} */ - +/* read_entire_file :: proc(name: string) -> ([]byte, bool) { - handle, err := open(name, O_RDONLY); + handle, err := open_simple(name, O_RDONLY); if(err != 0) { fmt.println("Failed to open file."); return nil, false; @@ -178,6 +179,7 @@ read_entire_file_to_string :: proc(name: string) -> (string, bool) { } return from_c_str(^contents[0]), true; } +*/ heap_alloc :: proc(size: int) -> rawptr #inline { assert(size > 0); From 7829421085d607da4fab985893f578c12796d583 Mon Sep 17 00:00:00 2001 From: Zachary Pierson Date: Sat, 11 Feb 2017 23:52:56 -0600 Subject: [PATCH 18/37] Fixed Windows (updated gb.h) | Need to test on MacOS and Linux now! --- core/os.odin | 6 ++-- src/gb/gb.h | 78 +++++++++++++++++++++++++++------------------------- 2 files changed, 43 insertions(+), 41 deletions(-) diff --git a/core/os.odin b/core/os.odin index 5800eb457..8d9eadb75 100644 --- a/core/os.odin +++ b/core/os.odin @@ -1,3 +1,3 @@ -#include "os_windows.odin" when ODIN_OS == "windows"; -#include "os_x.odin" when ODIN_OS == "osx"; -#include "os_linux.odin" when ODIN_OS == "linux"; \ No newline at end of file +#load "os_windows.odin" when ODIN_OS == "windows"; +#load "os_x.odin" when ODIN_OS == "osx"; +#load "os_linux.odin" when ODIN_OS == "linux"; \ No newline at end of file diff --git a/src/gb/gb.h b/src/gb/gb.h index 0838f52aa..51ad0d1e4 100644 --- a/src/gb/gb.h +++ b/src/gb/gb.h @@ -1,4 +1,4 @@ -/* gb.h - v0.26d - Ginger Bill's C Helper Library - public domain +/* gb.h - v0.27 - Ginger Bill's C Helper Library - public domain - no warranty implied; use at your own risk This is a single header file with a bunch of useful stuff @@ -277,6 +277,8 @@ extern "C" { #include #include + + #if defined(GB_SYSTEM_WINDOWS) #if !defined(GB_NO_WINDOWS_H) #define NOMINMAX 1 @@ -297,6 +299,9 @@ extern "C" { #include #include #include + #ifndef _IOSC11_SOURCE + #define _IOSC11_SOURCE + #endif #include // NOTE(bill): malloc on linux #include #if !defined(GB_SYSTEM_OSX) @@ -310,18 +315,18 @@ extern "C" { #endif #if defined(GB_SYSTEM_OSX) -#include -#include -#include -#include -#include -#include -#include -#include + #include + #include + #include + #include + #include + #include + #include + #include #endif #if defined(GB_SYSTEM_UNIX) -#include + #include #endif @@ -413,21 +418,20 @@ typedef i32 Rune; // NOTE(bill): Unicode codepoint #define GB_RUNE_EOF cast(Rune)(-1) -// NOTE(bill): I think C99 and C++ `bool` is stupid for numerous reasons but there are too many -// to write in this small comment. typedef i8 b8; typedef i16 b16; typedef i32 b32; // NOTE(bill): Prefer this!!! // NOTE(bill): Get true and false #if !defined(__cplusplus) - #if (defined(_MSC_VER) && _MSC_VER <= 1800) || !defined(__STDC_VERSION__) + #if (defined(_MSC_VER) && _MSC_VER <= 1800) || (!defined(_MSC_VER) && !defined(__STDC_VERSION__)) #ifndef true #define true (0 == 0) #endif #ifndef false #define false (0 != 0) #endif + typedef b8 bool; #else #include #endif @@ -616,7 +620,7 @@ extern "C++" { // // NOTE: C++11 (and above) only! // -#if defined(__cplusplus) && ((defined(_MSC_VER) && _MSC_VER >= 1400) || (__cplusplus >= 201103L)) +#if !defined(GB_NO_DEFER) && defined(__cplusplus) && ((defined(_MSC_VER) && _MSC_VER >= 1400) || (__cplusplus >= 201103L)) extern "C++" { // NOTE(bill): Stupid fucking templates template struct gbRemoveReference { typedef T Type; }; @@ -3628,15 +3632,7 @@ gb_inline void *gb_memcopy(void *dest, void const *source, isize n) { #if defined(_MSC_VER) // TODO(bill): Is this good enough? __movsb(cast(u8 *)dest, cast(u8 *)source, n); -#elif defined(GB_SYSTEM_OSX) || defined(GB_SYSTEM_UNIX) - // NOTE(zangent): I assume there's a reason this isn't being used elsewhere, - // but casting pointers as arguments to an __asm__ call is considered an - // error on MacOS and (I think) Linux - // TODO(zangent): Figure out how to refactor the asm code so it works on MacOS, - // since this is probably not the way the author intended this to work. - memcpy(dest, source, n); #elif defined(GB_CPU_X86) - __asm__ __volatile__("rep movsb" : "+D"(cast(u8 *)dest), "+S"(cast(u8 *)source), "+c"(n) : : "memory"); #else u8 *d = cast(u8 *)dest; @@ -4127,7 +4123,7 @@ gb_inline i64 gb_atomic64_fetch_and(gbAtomic64 volatile *a, i64 operand) { gb_inline i64 gb_atomic64_fetch_or(gbAtomic64 volatile *a, i64 operand) { #if defined(GB_ARCH_64_BIT) - return _InterlockedAnd64(cast(i64 volatile *)a, operand); + return _InterlockedOr64(cast(i64 volatile *)a, operand); #elif GB_CPU_X86 i64 expected = a->value; for (;;) { @@ -4680,8 +4676,7 @@ gb_inline u32 gb_thread_current_id(void) { #else thread_id = GetCurrentThreadId(); #endif -#elif defined(GB_SYSTEM_LINUX) - thread_id = pthread_self(); + #elif defined(GB_SYSTEM_OSX) && defined(GB_ARCH_64_BIT) thread_id = pthread_mach_thread_np(pthread_self()); #elif defined(GB_ARCH_32_BIT) && defined(GB_CPU_X86) @@ -4835,18 +4830,15 @@ GB_ALLOCATOR_PROC(gb_heap_allocator_proc) { #else // TODO(bill): *nix version that's decent case gbAllocation_Alloc: { - gbAllocationHeader *header; - isize total_size = size + alignment + gb_size_of(gbAllocationHeader); - ptr = malloc(total_size); - header = cast(gbAllocationHeader *)ptr; - ptr = gb_align_forward(header+1, alignment); - gb_allocation_header_fill(header, ptr, size); - if (flags & gbAllocatorFlag_ClearToZero) + posix_memalign(&ptr, alignment, size); + + if (flags & gbAllocatorFlag_ClearToZero) { gb_zero_size(ptr, size); + } } break; case gbAllocation_Free: { - free(gb_allocation_header(old_memory)); + free(old_memory); } break; case gbAllocation_Resize: { @@ -4943,7 +4935,7 @@ isize gb_affinity_thread_count_for_core(gbAffinity *a, isize core) { void gb_affinity_init(gbAffinity *a) { usize count, count_size = gb_size_of(count); - a->is_accurate = false; + a->is_accurate = false; a->thread_count = 1; a->core_count = 1; a->threads_per_core = 1; @@ -4974,7 +4966,6 @@ void gb_affinity_destroy(gbAffinity *a) { b32 gb_affinity_set(gbAffinity *a, isize core, isize thread_index) { isize index; thread_t thread; - GB_ASSERT(thread < a->thread_count); thread_affinity_policy_data_t info; kern_return_t result; @@ -5049,6 +5040,7 @@ void gb_affinity_init(gbAffinity *a) { } #undef AF__CHECK } + fclose(cpu_info); } @@ -5059,7 +5051,6 @@ void gb_affinity_init(gbAffinity *a) { a->threads_per_core = threads; a->thread_count = a->threads_per_core * a->core_count; - a->is_accurate = accurate; } @@ -5073,7 +5064,6 @@ b32 gb_affinity_set(gbAffinity *a, isize core, isize thread_index) { } isize gb_affinity_thread_count_for_core(gbAffinity *a, isize core) { - GB_ASSERT(0 <= core && core < a->core_count); return a->threads_per_core; } @@ -7857,7 +7847,18 @@ char *gb_path_get_full_name(gbAllocator a, char const *path) { return gb_alloc_str_len(a, buf, len+1); #else // TODO(bill): Make work on *nix, etc. - return gb_alloc_str_len(a, path, gb_strlen(path)); + char* p = realpath(path, 0); + GB_ASSERT(p && "file does not exist"); + + isize len = gb_strlen(p); + + // bill... gb_alloc_str_len refused to work for this... + char* ret = gb_alloc(a, sizeof(char) * len + 1); + gb_memmove(ret, p, len); + ret[len] = 0; + free(p); + + return ret; #endif } @@ -10471,3 +10472,4 @@ GB_COMPARE_PROC(gb_video_mode_dsc_cmp) { #endif #endif // GB_IMPLEMENTATION + From a9398bf30fb3d6b15f490816f23cfca191020c5c Mon Sep 17 00:00:00 2001 From: Zachary Pierson Date: Sun, 12 Feb 2017 00:21:25 -0600 Subject: [PATCH 19/37] Tested MacOS. If a commit doesn't follow in 15 minutes, Linux works too! --- src/gb/gb.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/gb/gb.h b/src/gb/gb.h index 51ad0d1e4..c8b69b3ca 100644 --- a/src/gb/gb.h +++ b/src/gb/gb.h @@ -3632,6 +3632,13 @@ gb_inline void *gb_memcopy(void *dest, void const *source, isize n) { #if defined(_MSC_VER) // TODO(bill): Is this good enough? __movsb(cast(u8 *)dest, cast(u8 *)source, n); +#elif defined(GB_SYSTEM_OSX) || defined(GB_SYSTEM_UNIX) + // NOTE(zangent): I assume there's a reason this isn't being used elsewhere, + // but casting pointers as arguments to an __asm__ call is considered an + // error on MacOS and (I think) Linux + // TODO(zangent): Figure out how to refactor the asm code so it works on MacOS, + // since this is probably not the way the author intended this to work. + memcpy(dest, source, n); #elif defined(GB_CPU_X86) __asm__ __volatile__("rep movsb" : "+D"(cast(u8 *)dest), "+S"(cast(u8 *)source), "+c"(n) : : "memory"); #else From 047f883078d9431c697f01e3884d5c9933031350 Mon Sep 17 00:00:00 2001 From: Zachary Pierson Date: Sun, 12 Feb 2017 16:08:09 -0600 Subject: [PATCH 20/37] Updated warning removal list, and made system_exec_command_line_app in main.c return the exit code. --- build.sh | 2 +- src/main.c | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/build.sh b/build.sh index 2c6db80d5..b022e235c 100755 --- a/build.sh +++ b/build.sh @@ -2,7 +2,7 @@ release_mode=0 -warnings_to_disable="-Wno-attributes -Wno-implicit-function-declaration -Wno-incompatible-pointer-types -Wno-switch -Wno-pointer-sign" +warnings_to_disable="-Wno-attributes -Wno-implicit-function-declaration -Wno-incompatible-pointer-types -Wno-switch -Wno-pointer-sign -Wno-tautological-constant-out-of-range-compare -Wno-autological-compare" libraries="-pthread -ldl -lm" other_args="-x c" compiler="gcc" diff --git a/src/main.c b/src/main.c index 1f1793e2c..a8806aa4f 100644 --- a/src/main.c +++ b/src/main.c @@ -106,6 +106,8 @@ i32 system_exec_command_line_app(char *name, bool is_silent, char *fmt, ...) { // } // exit_code = status; + + return exit_code; } #endif From ebb10e55979f6ee5af297b2feb446fff967e9bb4 Mon Sep 17 00:00:00 2001 From: Zachary Pierson Date: Sun, 12 Feb 2017 16:09:21 -0600 Subject: [PATCH 21/37] One of the warning flags was misspelled. Oops! --- build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sh b/build.sh index b022e235c..cda80781c 100755 --- a/build.sh +++ b/build.sh @@ -2,7 +2,7 @@ release_mode=0 -warnings_to_disable="-Wno-attributes -Wno-implicit-function-declaration -Wno-incompatible-pointer-types -Wno-switch -Wno-pointer-sign -Wno-tautological-constant-out-of-range-compare -Wno-autological-compare" +warnings_to_disable="-Wno-attributes -Wno-implicit-function-declaration -Wno-incompatible-pointer-types -Wno-switch -Wno-pointer-sign -Wno-tautological-constant-out-of-range-compare -Wno-tautological-compare" libraries="-pthread -ldl -lm" other_args="-x c" compiler="gcc" From 8df3175f107d9885f0775f63889b7ca80c917b82 Mon Sep 17 00:00:00 2001 From: Zachary Pierson Date: Sun, 12 Feb 2017 17:22:27 -0600 Subject: [PATCH 22/37] Updated Linux standard library to convert c strs --- core/os_linux.odin | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/core/os_linux.odin b/core/os_linux.odin index 9192519b1..1aa4d7ccf 100644 --- a/core/os_linux.odin +++ b/core/os_linux.odin @@ -199,24 +199,16 @@ current_thread_id :: proc() -> int { } dlopen :: proc(filename: string, flags: int) -> rawptr #inline { - filename += "\x00"; - return unix_dlopen(filename.data, flags); + return unix_dlopen(to_c_str(filename), flags); } dlsym :: proc(handle: rawptr, symbol: string) -> (proc() #cc_c) #inline { assert(handle != nil); - symbol += "\x00"; - return unix_dlsym(handle, symbol.data); + return unix_dlsym(handle, to_c_str(symbol)); } dlclose :: proc(handle: rawptr) -> bool #inline { assert(handle != nil); return unix_dlclose(handle) == 0; } dlerror :: proc() -> string { - // TODO(zangent): Should this be split out into a from_c_string()? - c_str := unix_dlerror(); - len := 0; - for s := c_str; s^ != 0; s += 1 { - len += 1; - } - return cast(string)slice_ptr(c_str, len); + return from_c_str(unix_dlerror()); } From 9d19ee7e4c285d5d881570be3328d81bdff40368 Mon Sep 17 00:00:00 2001 From: Zachary Pierson Date: Sun, 12 Feb 2017 18:25:58 -0600 Subject: [PATCH 23/37] Changed standard libraries for MacOS and Linux to be closer to os_windows. --- core/os_linux.odin | 9 --------- core/os_x.odin | 12 +----------- 2 files changed, 1 insertion(+), 20 deletions(-) diff --git a/core/os_linux.odin b/core/os_linux.odin index 1aa4d7ccf..f0d9efca1 100644 --- a/core/os_linux.odin +++ b/core/os_linux.odin @@ -166,15 +166,6 @@ read_entire_file :: proc(name: string) -> ([]byte, bool) { return data, true; } -read_entire_file_to_string :: proc(name: string) -> (string, bool) { - - contents, success := read_entire_file(name); - if(!success) { - fmt.println("Failed to seek to end of file."); - return "", false; - } - return from_c_str(^contents[0]), true; -} heap_alloc :: proc(size: int) -> rawptr { assert(size > 0); diff --git a/core/os_x.odin b/core/os_x.odin index 6cc31e584..80f858a5c 100644 --- a/core/os_x.odin +++ b/core/os_x.odin @@ -133,7 +133,7 @@ stderr: Handle = 2; // get_std_handle(win32.STD_ERROR_HANDLE); last_write_time :: proc(fd: Handle) -> File_Time {} last_write_time_by_name :: proc(name: string) -> File_Time {} */ -/* + read_entire_file :: proc(name: string) -> ([]byte, bool) { handle, err := open_simple(name, O_RDONLY); @@ -170,16 +170,6 @@ read_entire_file :: proc(name: string) -> ([]byte, bool) { return data, true; } -read_entire_file_to_string :: proc(name: string) -> (string, bool) { - - contents, success := read_entire_file(name); - if(!success) { - fmt.println("Failed to seek to end of file."); - return "", false; - } - return from_c_str(^contents[0]), true; -} -*/ heap_alloc :: proc(size: int) -> rawptr #inline { assert(size > 0); From 802b1a70f881968f4e96eb8bbec9f072b4de2892 Mon Sep 17 00:00:00 2001 From: Zac Pierson Date: Wed, 15 Feb 2017 11:20:11 -0600 Subject: [PATCH 24/37] Fixed an error in function naming in os_linux --- core/os_linux.odin | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/os_linux.odin b/core/os_linux.odin index f0d9efca1..5d1d6c98d 100644 --- a/core/os_linux.odin +++ b/core/os_linux.odin @@ -82,7 +82,7 @@ open_simple :: proc(path: string, mode: int) -> (Handle, Errno) { } // NOTE(zangent): This is here for compatability reasons. Should this be here? open :: proc(path: string, mode: int, perm: u32) -> (Handle, Errno) { - return open(path, mode); + return open_simple(path, mode); } close :: proc(fd: Handle) { From 20b9f1ff5989cdd9e09a79c65b2df151b4f9b30f Mon Sep 17 00:00:00 2001 From: Zac Pierson Date: Thu, 23 Feb 2017 15:28:25 -0600 Subject: [PATCH 25/37] Added `getenv` to the *nix stdlib. --- core/os_linux.odin | 9 +++++++++ core/os_x.odin | 8 ++++++++ 2 files changed, 17 insertions(+) diff --git a/core/os_linux.odin b/core/os_linux.odin index 5d1d6c98d..1ec48d340 100644 --- a/core/os_linux.odin +++ b/core/os_linux.odin @@ -49,6 +49,7 @@ unix_gettid :: proc() -> u64 unix_malloc :: proc(size: int) -> rawptr #foreign libc "malloc"; unix_free :: proc(ptr: rawptr) #foreign libc "free"; unix_realloc :: proc(ptr: rawptr, size: int) -> rawptr #foreign libc "realloc"; +unix_getenv :: proc(^u8) -> ^u8 #foreign libc "getenv"; unix_exit :: proc(status: int) #foreign libc "exit"; @@ -180,6 +181,14 @@ heap_free :: proc(ptr: rawptr) { unix_free(ptr); } +getenv :: proc(name: string) -> (string, bool) { + cstr: ^u8 = unix_getenv(to_c_str(name)); + if(cstr == nil) { + return "", false; + } + return from_c_str(cstr), true; +} + exit :: proc(code: int) { unix_exit(code); } diff --git a/core/os_x.odin b/core/os_x.odin index 80f858a5c..be86e2252 100644 --- a/core/os_x.odin +++ b/core/os_x.odin @@ -52,6 +52,7 @@ unix_gettid :: proc() -> u64 unix_malloc :: proc(size: int) -> rawptr #foreign libc "malloc"; unix_free :: proc(ptr: rawptr) #foreign libc "free"; unix_realloc :: proc(ptr: rawptr, size: int) -> rawptr #foreign libc "realloc"; +unix_getenv :: proc(^u8) -> ^u8 #foreign libc "getenv"; unix_exit :: proc(status: int) #foreign libc "exit"; @@ -182,6 +183,13 @@ heap_free :: proc(ptr: rawptr) #inline { unix_free(ptr); } +getenv :: proc(name: string) -> (string, bool) { + cstr: ^u8 = unix_getenv(to_c_str(name)); + if(cstr == nil) { + return "", false; + } + return from_c_str(cstr), true; +} exit :: proc(code: int) #inline { unix_exit(code); From f541dd40db3cfe68ff6a6c2e9439328db1f8996c Mon Sep 17 00:00:00 2001 From: Zac Pierson Date: Tue, 21 Mar 2017 14:54:29 -0500 Subject: [PATCH 26/37] Fixed some memory leaks and made os_* use strings.odin --- core/os_linux.odin | 36 ++++++++++++++++-------------------- core/os_x.odin | 38 ++++++++++++++++++-------------------- 2 files changed, 34 insertions(+), 40 deletions(-) diff --git a/core/os_linux.odin b/core/os_linux.odin index 1ec48d340..7f440545a 100644 --- a/core/os_linux.odin +++ b/core/os_linux.odin @@ -58,24 +58,12 @@ unix_dlsym :: proc(handle: rawptr, symbol: ^u8) -> (proc() #cc_c) unix_dlclose :: proc(handle: rawptr) -> int #foreign dl "dlclose"; unix_dlerror :: proc() -> ^u8 #foreign dl "dlerror"; -to_c_str :: proc(str: string) -> ^u8 { - cstr := new_slice(byte, str.count+1); - copy(cstr, cast([]byte)str); - cstr[str.count] = 0; - return cstr.data; -} - -from_c_str :: proc(c_str: ^u8) -> string { - len := 0; - for s := c_str; s^ != 0; s += 1 { - len += 1; - } - return cast(string)slice_ptr(c_str, len); -} // TODO(zangent): Change this to just `open` when Bill fixes overloading. open_simple :: proc(path: string, mode: int) -> (Handle, Errno) { - handle := unix_open(to_c_str(path), mode); + cstr := strings.new_c_string(path); + handle := unix_open(cstr, mode); + free(cstr); if(handle == -1) { return 0, 1; } @@ -182,11 +170,13 @@ heap_free :: proc(ptr: rawptr) { } getenv :: proc(name: string) -> (string, bool) { - cstr: ^u8 = unix_getenv(to_c_str(name)); + path_str := strings.new_c_string(name); + cstr: ^u8 = unix_getenv(path_str); + free(path_str); if(cstr == nil) { return "", false; } - return from_c_str(cstr), true; + return strings.to_odin_string(cstr), true; } exit :: proc(code: int) { @@ -199,16 +189,22 @@ current_thread_id :: proc() -> int { } dlopen :: proc(filename: string, flags: int) -> rawptr #inline { - return unix_dlopen(to_c_str(filename), flags); + cstr := strings.new_c_string(filename); + handle := unix_dlopen(cstr, flags); + free(cstr); + return handle; } dlsym :: proc(handle: rawptr, symbol: string) -> (proc() #cc_c) #inline { assert(handle != nil); - return unix_dlsym(handle, to_c_str(symbol)); + cstr := strings.new_c_string(symbol); + handle := unix_dlsym(handle, cstr); + free(cstr); + return handle; } dlclose :: proc(handle: rawptr) -> bool #inline { assert(handle != nil); return unix_dlclose(handle) == 0; } dlerror :: proc() -> string { - return from_c_str(unix_dlerror()); + return strings.to_odin_string(unix_dlerror()); } diff --git a/core/os_x.odin b/core/os_x.odin index be86e2252..bc24cca9e 100644 --- a/core/os_x.odin +++ b/core/os_x.odin @@ -1,4 +1,5 @@ #import "fmt.odin"; +#import "strings.odin"; Handle :: i32; File_Time :: u64; @@ -61,24 +62,12 @@ unix_dlsym :: proc(handle: rawptr, symbol: ^u8) -> (proc() #cc_c) unix_dlclose :: proc(handle: rawptr) -> int #foreign dl "dlclose"; unix_dlerror :: proc() -> ^u8 #foreign dl "dlerror"; -to_c_str :: proc(str: string) -> ^u8 { - cstr := new_slice(byte, str.count+1); - copy(cstr, cast([]byte)str); - cstr[str.count] = 0; - return cstr.data; -} - -from_c_str :: proc(c_str: ^u8) -> string { - len := 0; - for s := c_str; s^ != 0; s += 1 { - len += 1; - } - return cast(string)slice_ptr(c_str, len); -} // TODO(zangent): Change this to just `open` when Bill fixes overloading. open_simple :: proc(path: string, mode: int) -> (Handle, Errno) { - handle := unix_open(to_c_str(path), mode); + cstr := strings.new_c_string(path); + handle := unix_open(cstr, mode); + free(cstr); if(handle == -1) { return 0, 1; } @@ -184,11 +173,13 @@ heap_free :: proc(ptr: rawptr) #inline { } getenv :: proc(name: string) -> (string, bool) { - cstr: ^u8 = unix_getenv(to_c_str(name)); + path_str := strings.new_c_string(name); + cstr: ^u8 = unix_getenv(path_str); + free(path_str); if(cstr == nil) { return "", false; } - return from_c_str(cstr), true; + return strings.to_odin_string(cstr), true; } exit :: proc(code: int) #inline { @@ -202,16 +193,23 @@ current_thread_id :: proc() -> int { } dlopen :: proc(filename: string, flags: int) -> rawptr #inline { - return unix_dlopen(to_c_str(filename), flags); + cstr := strings.new_c_string(filename); + handle := unix_dlopen(cstr, flags); + free(cstr); + return handle; } dlsym :: proc(handle: rawptr, symbol: string) -> (proc() #cc_c) #inline { assert(handle != nil); - return unix_dlsym(handle, to_c_str(symbol)); + cstr := strings.new_c_string(symbol); + handle := unix_dlsym(handle, cstr); + free(cstr); + return handle; } dlclose :: proc(handle: rawptr) -> bool #inline { assert(handle != nil); return unix_dlclose(handle) == 0; } dlerror :: proc() -> string { - return from_c_str(unix_dlerror()); + return strings.to_odin_string(unix_dlerror()); } + From 690c6828476b0714464adf4813fde37a841104d7 Mon Sep 17 00:00:00 2001 From: Zac Pierson Date: Tue, 21 Mar 2017 14:57:09 -0500 Subject: [PATCH 27/37] Remember kids, always test your code. There was a variable name colission in dlsym D: --- core/os_linux.odin | 5 +++-- core/os_x.odin | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/core/os_linux.odin b/core/os_linux.odin index 7f440545a..0fd8287ce 100644 --- a/core/os_linux.odin +++ b/core/os_linux.odin @@ -1,4 +1,5 @@ #import "fmt.odin"; +#import "strings.odin"; Handle :: i32; File_Time :: u64; @@ -197,9 +198,9 @@ dlopen :: proc(filename: string, flags: int) -> rawptr #inline { dlsym :: proc(handle: rawptr, symbol: string) -> (proc() #cc_c) #inline { assert(handle != nil); cstr := strings.new_c_string(symbol); - handle := unix_dlsym(handle, cstr); + proc_handle := unix_dlsym(handle, cstr); free(cstr); - return handle; + return proc_handle; } dlclose :: proc(handle: rawptr) -> bool #inline { assert(handle != nil); diff --git a/core/os_x.odin b/core/os_x.odin index bc24cca9e..c665b533d 100644 --- a/core/os_x.odin +++ b/core/os_x.odin @@ -201,9 +201,9 @@ dlopen :: proc(filename: string, flags: int) -> rawptr #inline { dlsym :: proc(handle: rawptr, symbol: string) -> (proc() #cc_c) #inline { assert(handle != nil); cstr := strings.new_c_string(symbol); - handle := unix_dlsym(handle, cstr); + proc_handle := unix_dlsym(handle, cstr); free(cstr); - return handle; + return proc_handle; } dlclose :: proc(handle: rawptr) -> bool #inline { assert(handle != nil); From e935f8e2ffc19294573025287a08dcbe9137e282 Mon Sep 17 00:00:00 2001 From: Zac Pierson Date: Tue, 21 Mar 2017 16:00:11 -0500 Subject: [PATCH 28/37] Fixed os_linux and os_x read_entire_file function not null-terminating data. --- core/os_linux.odin | 3 ++- core/os_x.odin | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/core/os_linux.odin b/core/os_linux.odin index 0fd8287ce..52b9dad51 100644 --- a/core/os_linux.odin +++ b/core/os_linux.odin @@ -146,13 +146,14 @@ read_entire_file :: proc(name: string) -> ([]byte, bool) { // We have a file size! - data := new_slice(u8, size); + data := new_slice(u8, size+1); if data.data == nil { fmt.println("Failed to allocate file buffer."); return nil, false; } read(handle, data); + data[size] = 0; return data, true; } diff --git a/core/os_x.odin b/core/os_x.odin index c665b533d..6133bce7c 100644 --- a/core/os_x.odin +++ b/core/os_x.odin @@ -150,13 +150,14 @@ read_entire_file :: proc(name: string) -> ([]byte, bool) { // We have a file size! - data := new_slice(u8, size); + data := new_slice(u8, size+1); if data.data == nil { fmt.println("Failed to allocate file buffer."); return nil, false; } read(handle, data); + data[size] = 0; return data, true; } From c61015b1fe2a0451fc4e5f6231718f82f0e9df2d Mon Sep 17 00:00:00 2001 From: Zachary Pierson Date: Tue, 21 Mar 2017 19:17:41 -0500 Subject: [PATCH 29/37] Updated shell.bat for Visual Studio 2017 --- misc/shell.bat | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/misc/shell.bat b/misc/shell.bat index 5d9271622..6694eedb4 100644 --- a/misc/shell.bat +++ b/misc/shell.bat @@ -1,8 +1,8 @@ @echo off -rem call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x64 1> NUL -call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x64 1> NUL -rem call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86 1> NUL +rem call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x64 1> NUL +call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x64 1> NUL +rem call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x86 1> NUL set _NO_DEBUG_HEAP=1 set path=w:\Odin\misc;%path% From 7a28827602f29f0e9485ca6617daf316635802df Mon Sep 17 00:00:00 2001 From: Zachary Pierson Date: Tue, 21 Mar 2017 19:30:54 -0500 Subject: [PATCH 30/37] Forgot to include stdio.h since Win32 won't resolve it otherwise. --- odin.exe | Bin 0 -> 1120256 bytes src/types.c | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 odin.exe diff --git a/odin.exe b/odin.exe new file mode 100644 index 0000000000000000000000000000000000000000..48f24a8bd9f953e32f449ced4e3dd0c37823bc19 GIT binary patch literal 1120256 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�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�gwWS(V3AI3u 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%0D_ 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

  • 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 Date: Thu, 30 Mar 2017 01:21:05 -0500 Subject: [PATCH 31/37] Added checking for params and return values in `main` --- src/check_decl.c | 53 ++++++++++++++++++++++++++++++++---------------- 1 file changed, 35 insertions(+), 18 deletions(-) diff --git a/src/check_decl.c b/src/check_decl.c index 12ce52142..0be0b6dba 100644 --- a/src/check_decl.c +++ b/src/check_decl.c @@ -5,8 +5,8 @@ void check_stmt_list (Checker *c, AstNodeArray stmts, u32 flags); // NOTE(bill): `content_name` is for debugging and error messages Type *check_init_variable(Checker *c, Entity *e, Operand *operand, String context_name) { if (operand->mode == Addressing_Invalid || - operand->type == t_invalid || - e->type == t_invalid) { + operand->type == t_invalid || + e->type == t_invalid) { if (operand->mode == Addressing_Builtin) { gbString expr_str = expr_to_string(operand->expr); @@ -14,9 +14,9 @@ Type *check_init_variable(Checker *c, Entity *e, Operand *operand, String contex // TODO(bill): is this a good enough error message? // TODO(bill): Actually allow built in procedures to be passed around and thus be created on use error_node(operand->expr, - "Cannot assign builtin procedure `%s` in %.*s", - expr_str, - LIT(context_name)); + "Cannot assign builtin procedure `%s` in %.*s", + expr_str, + LIT(context_name)); operand->mode = Addressing_Invalid; @@ -86,8 +86,8 @@ void check_init_variables(Checker *c, Entity **lhs, isize lhs_count, AstNodeArra void check_init_constant(Checker *c, Entity *e, Operand *operand) { if (operand->mode == Addressing_Invalid || - operand->type == t_invalid || - e->type == t_invalid) { + operand->type == t_invalid || + e->type == t_invalid) { if (e->type == NULL) { e->type = t_invalid; } @@ -182,7 +182,7 @@ void check_const_decl(Checker *c, Entity *e, AstNode *type_expr, AstNode *init, check_init_constant(c, e, &operand); if (operand.mode == Addressing_Invalid || - base_type(operand.type) == t_invalid) { + base_type(operand.type) == t_invalid) { error(e->token, "Invalid declaration type"); } } @@ -249,13 +249,30 @@ void check_proc_lit(Checker *c, Entity *e, DeclInfo *d) { bool is_no_inline = (pd->tags & ProcTag_no_inline) != 0; if ((d->scope->is_file || d->scope->is_global) && - str_eq(e->token.string, str_lit("main"))) { + str_eq(e->token.string, str_lit("main"))) { if (proc_type != NULL) { TypeProc *pt = &proc_type->Proc; - if (pt->param_count != 0 || - pt->result_count != 0) { + + // This is an ugly monstrosity, but I see no other way. + bool valid_param = pt->param_count == 0 || (pt->params->kind == Type_Tuple && + pt->params->Tuple.variable_count == 2 && + pt->params->Tuple.variables[0]->kind == Entity_Variable && + pt->params->Tuple.variables[0]->type->kind == Type_Basic && + pt->params->Tuple.variables[0]->type->Basic.kind == Basic_i32 && + pt->params->Tuple.variables[1]->kind == Entity_Variable && + pt->params->Tuple.variables[1]->type->kind == Type_Slice && + pt->params->Tuple.variables[1]->type->Slice.elem->kind == Type_Pointer && + pt->params->Tuple.variables[1]->type->Slice.elem->Pointer.elem->kind == Type_Basic && + pt->params->Tuple.variables[1]->type->Slice.elem->Pointer.elem->Basic.kind == Basic_u8); + + bool valid_result = pt->result_count == 0 || (pt->results->kind == Type_Tuple && + pt->results->Tuple.variable_count == 1 && + pt->results->Tuple.variables[0]->kind == Entity_Variable && + pt->results->Tuple.variables[0]->type->kind == Type_Basic && + pt->results->Tuple.variables[0]->type->Basic.kind == Basic_i32); + if (!valid_param || !valid_result) { gbString str = type_to_string(proc_type); - error(e->token, "Procedure type of `main` was expected to be `proc()`, got %s", str); + error(e->token, "Procedure type of `main` was expected to be `proc()` or `proc(i32, []^byte) -> i32`, got %s", str); gb_string_free(str); } } @@ -325,9 +342,9 @@ void check_proc_lit(Checker *c, Entity *e, DeclInfo *d) { Type *other_type = base_type(f->type); if (!are_signatures_similar_enough(this_type, other_type)) { error_node(d->proc_lit, - "Redeclaration of #foreign procedure `%.*s` with different type signatures\n" - "\tat %.*s(%td:%td)", - LIT(name), LIT(pos.file), pos.line, pos.column); + "Redeclaration of #foreign procedure `%.*s` with different type signatures\n" + "\tat %.*s(%td:%td)", + LIT(name), LIT(pos.file), pos.line, pos.column); } } else { map_entity_set(fp, key, e); @@ -350,9 +367,9 @@ void check_proc_lit(Checker *c, Entity *e, DeclInfo *d) { TokenPos pos = f->token.pos; // TODO(bill): Better error message? error_node(d->proc_lit, - "Non unique linking name for procedure `%.*s`\n" - "\tother at %.*s(%td:%td)", - LIT(name), LIT(pos.file), pos.line, pos.column); + "Non unique linking name for procedure `%.*s`\n" + "\tother at %.*s(%td:%td)", + LIT(name), LIT(pos.file), pos.line, pos.column); } else { map_entity_set(fp, key, e); } From 3315dc7f25095ddcc35a366ae4314e8463c0818a Mon Sep 17 00:00:00 2001 From: Zachary Pierson Date: Fri, 31 Mar 2017 05:30:09 -0500 Subject: [PATCH 32/37] Literally just a commit to revert a previous one. --- core/os_linux.odin | 1 - core/os_x.odin | 1 - 2 files changed, 2 deletions(-) diff --git a/core/os_linux.odin b/core/os_linux.odin index 52b9dad51..144ea8d04 100644 --- a/core/os_linux.odin +++ b/core/os_linux.odin @@ -10,7 +10,6 @@ AddressSize :: i64; // INVALID_HANDLE: Handle : -1; - O_RDONLY :: 0x00000; O_WRONLY :: 0x00001; O_RDWR :: 0x00002; diff --git a/core/os_x.odin b/core/os_x.odin index 6133bce7c..8b5e81040 100644 --- a/core/os_x.odin +++ b/core/os_x.odin @@ -10,7 +10,6 @@ AddressSize :: i64; // INVALID_HANDLE: Handle : -1; - O_RDONLY :: 0x00000; O_WRONLY :: 0x00001; O_RDWR :: 0x00002; From 24b33374b7830fae01be1915adb14b4e45ff9550 Mon Sep 17 00:00:00 2001 From: Zachary Pierson Date: Fri, 31 Mar 2017 05:31:45 -0500 Subject: [PATCH 33/37] Reverted the main proc changed, after a chat with Bill about better solutions. --- src/check_decl.c | 25 ++++--------------------- 1 file changed, 4 insertions(+), 21 deletions(-) diff --git a/src/check_decl.c b/src/check_decl.c index 0be0b6dba..7cf4080ce 100644 --- a/src/check_decl.c +++ b/src/check_decl.c @@ -249,30 +249,13 @@ void check_proc_lit(Checker *c, Entity *e, DeclInfo *d) { bool is_no_inline = (pd->tags & ProcTag_no_inline) != 0; if ((d->scope->is_file || d->scope->is_global) && - str_eq(e->token.string, str_lit("main"))) { + str_eq(e->token.string, str_lit("main"))) { if (proc_type != NULL) { TypeProc *pt = &proc_type->Proc; - - // This is an ugly monstrosity, but I see no other way. - bool valid_param = pt->param_count == 0 || (pt->params->kind == Type_Tuple && - pt->params->Tuple.variable_count == 2 && - pt->params->Tuple.variables[0]->kind == Entity_Variable && - pt->params->Tuple.variables[0]->type->kind == Type_Basic && - pt->params->Tuple.variables[0]->type->Basic.kind == Basic_i32 && - pt->params->Tuple.variables[1]->kind == Entity_Variable && - pt->params->Tuple.variables[1]->type->kind == Type_Slice && - pt->params->Tuple.variables[1]->type->Slice.elem->kind == Type_Pointer && - pt->params->Tuple.variables[1]->type->Slice.elem->Pointer.elem->kind == Type_Basic && - pt->params->Tuple.variables[1]->type->Slice.elem->Pointer.elem->Basic.kind == Basic_u8); - - bool valid_result = pt->result_count == 0 || (pt->results->kind == Type_Tuple && - pt->results->Tuple.variable_count == 1 && - pt->results->Tuple.variables[0]->kind == Entity_Variable && - pt->results->Tuple.variables[0]->type->kind == Type_Basic && - pt->results->Tuple.variables[0]->type->Basic.kind == Basic_i32); - if (!valid_param || !valid_result) { + if (pt->param_count != 0 || + pt->result_count != 0) { gbString str = type_to_string(proc_type); - error(e->token, "Procedure type of `main` was expected to be `proc()` or `proc(i32, []^byte) -> i32`, got %s", str); + error(e->token, "Procedure type of `main` was expected to be `proc()`, got %s", str); gb_string_free(str); } } From c9c82da1f3d809b1638daeddf9f1f7dfe9866eb5 Mon Sep 17 00:00:00 2001 From: Zachary Pierson Date: Sun, 2 Apr 2017 18:42:58 -0500 Subject: [PATCH 34/37] It's terrible, but I added _some_ form of launch args support for Linux/macOS --- core/os_linux.odin | 2 + core/os_x.odin | 5 +- src/ir_print.c | 139 +++++++++++++++++++++++++++++++++++++++++++++ src/main.c | 6 +- 4 files changed, 147 insertions(+), 5 deletions(-) diff --git a/core/os_linux.odin b/core/os_linux.odin index 144ea8d04..f43deb7bd 100644 --- a/core/os_linux.odin +++ b/core/os_linux.odin @@ -36,6 +36,8 @@ RTLD_NOW :: 0x002; RTLD_BINDING_MASK :: 0x3; RTLD_GLOBAL :: 0x100; +args: [dynamic]string; + #foreign_system_library dl "dl"; #foreign_system_library libc "c"; diff --git a/core/os_x.odin b/core/os_x.odin index 8b5e81040..f65f27c6c 100644 --- a/core/os_x.odin +++ b/core/os_x.odin @@ -39,6 +39,8 @@ RTLD_NODELETE :: 0x80; RTLD_NOLOAD :: 0x10; RTLD_FIRST :: 0x100; +args: [dynamic]string; + #foreign_system_library dl "dl"; #foreign_system_library libc "c"; @@ -211,5 +213,4 @@ dlclose :: proc(handle: rawptr) -> bool #inline { } dlerror :: proc() -> string { return strings.to_odin_string(unix_dlerror()); -} - +} \ No newline at end of file diff --git a/src/ir_print.c b/src/ir_print.c index ab5926bd0..9eec81fe8 100644 --- a/src/ir_print.c +++ b/src/ir_print.c @@ -1385,6 +1385,138 @@ void ir_print_instr(irFileBuffer *f, irModule *m, irValue *value) { void ir_print_proc(irFileBuffer *f, irModule *m, irProcedure *proc) { + +#ifndef GB_SYSTEM_WINDOWS + bool is_main_proc = proc->parent == NULL && str_eq(proc->name, str_lit("main")); + + AstFile fake_file; + gb_arena_init_from_allocator(&fake_file.arena, heap_allocator(), gb_size_of(AstNode) * 4); + + bool uses_args = false; + if(is_main_proc) + for(int i=0;imodule->min_dep_map.entries.count;i++) { + Entity *value = proc->module->min_dep_map.entries.e[i].value; + //printf("using: %.*s\n", LIT(proc->module->min_dep_map.entries.e[i].value->token.string)); + if(value == NULL) continue; + if(str_eq(str_lit("args"), value->token.string)) { + uses_args = true; + break; + } + } + + //bool uses_args = map_entity_get(&proc->module->min_dep_map, hash_pointer(entity_of_ident(proc->module->info, ast_ident(&fake_file, make_token_ident(str_lit("args")))))) == NULL; + //printf("uses_args: %d", (int)uses_args); + + // TODO(zangent): THIS IS AN UGLY HACK + // I _SERIOUSLY_ need to change this system, because this is just disgraceful. + + if(uses_args) { + + + ir_fprintf(f, "%s", "; Hack to give Linux/OSX launch arguments\n" +"define i32 @main(i32 %argc, i8** %argv) {\n" +"decls-0:\n" +" %0 = alloca i32, align 4\n" +" %1 = alloca i8**, align 8\n" +" %2 = alloca i32, align 4\n" +" %3 = alloca i8*, align 8\n" +" %4 = alloca %..string, align 8\n" +" store i32 zeroinitializer, i32* %0\n" +" store i32 %argc, i32* %0\n" +" store i8** zeroinitializer, i8*** %1\n" +" store i8** %argv, i8*** %1\n" +" call void @.__$startup_runtime()\n" +" ; reserve\n" +" ; SelectorExpr\n" +" %5 = load i32, i32* %0, align 4\n" +" %6 = sext i32 %5 to i64\n" +" %7 = bitcast {%..string*, i64, i64,%Allocator}* @.args to %..rawptr\n" +" %8 = call i1 @.__dynamic_array_reserve(%..rawptr %7, i64 16, i64 8, i64 %6)\n" +" ; AssignStmt\n" +" ; SelectorExpr\n" +" ; SelectorExpr\n" +" %9 = getelementptr inbounds {%..string*, i64, i64,%Allocator}, {%..string*, i64, i64,%Allocator}* @.args, i64 0, i32 1\n" +" %10 = load i32, i32* %0, align 4\n" +" ; cast - cast\n" +" %11 = sext i32 %10 to i64\n" +" store i64 %11, i64* %9\n" +" ; i\n" +" store i32 zeroinitializer, i32* %2\n" +" store i32 0, i32* %2\n" +" ; ForStmt\n" +" br label %for.loop-1\n" +"\n" +"for.loop-1:\n" +" %12 = load i32, i32* %2, align 4\n" +" %13 = load i32, i32* %0, align 4\n" +" %14 = icmp slt i32 %12, %13\n" +" br i1 %14, label %for.body-2, label %for.done-6\n" +"\n" +"for.body-2:\n" +" ; cstr\n" +" store i8* zeroinitializer, i8** %3\n" +" %15 = load i8**, i8*** %1, align 8\n" +" %16 = load i32, i32* %2, align 4\n" +" %17 = sext i32 %16 to i64\n" +" %18 = getelementptr inbounds i8*, i8** %15, i64 %17\n" +" %19 = getelementptr inbounds i8*, i8** %18, i64 0\n" +" %20 = load i8*, i8** %19, align 8\n" +" store i8* %20, i8** %3\n" +" ; str\n" +" store %..string zeroinitializer, %..string* %4\n" +" ; AssignStmt\n" +" ; SelectorExpr\n" +" %21 = getelementptr inbounds %..string, %..string* %4, i64 0, i32 0\n" +" %22 = load i8*, i8** %3, align 8\n" +" store i8* %22, i8** %21\n" +" ; ForStmt\n" +" br label %for.loop-3\n" +"\n" +"for.loop-3:\n" +" %23 = load i8*, i8** %3, align 8\n" +" ; SelectorExpr\n" +" %24 = getelementptr inbounds %..string, %..string* %4, i64 0, i32 1\n" +" %25 = load i64, i64* %24, align 8\n" +" %26 = getelementptr inbounds i8, i8* %23, i64 %25\n" +" %27 = getelementptr inbounds i8, i8* %26, i64 0\n" +" %28 = load i8, i8* %27, align 1\n" +" %29 = icmp ne i8 %28, 0\n" +" br i1 %29, label %for.body-4, label %for.done-5\n" +"\n" +"for.body-4:\n" +" ; SelectorExpr\n" +" %30 = getelementptr inbounds %..string, %..string* %4, i64 0, i32 1\n" +" %31 = load i64, i64* %30, align 8\n" +" %32 = add i64 %31, 1\n" +" store i64 %32, i64* %30\n" +" br label %for.loop-3\n" +"\n" +"for.done-5:\n" +" ; AssignStmt\n" +" ; IndexExpr\n" +" ; SelectorExpr\n" +" %33 = load {%..string*, i64, i64,%Allocator}, {%..string*, i64, i64,%Allocator}* @.args, align 8\n" +" %34 = extractvalue {%..string*, i64, i64,%Allocator} %33, 0\n" +" %35 = extractvalue {%..string*, i64, i64,%Allocator} %33, 1\n" +" %36 = load i32, i32* %2, align 4\n" +" %37 = sext i32 %36 to i64\n" +" %38 = getelementptr inbounds %..string, %..string* %34, i64 %37\n" +" %39 = load %..string, %..string* %4, align 8\n" +" store %..string %39, %..string* %38\n" +" ; AssignStmt\n" +" %40 = load i32, i32* %2, align 4\n" +" %41 = add i32 %40, 1\n" +" store i32 %41, i32* %2\n" +" br label %for.loop-1\n" +"\n" +"for.done-6:\n" +" call void @.nix_argpatch_main()\n" +" ret i32 0\n" +"}\n" +); + } +#endif + if (proc->body == NULL) { ir_fprintf(f, "declare "); // if (proc->tags & ProcTag_dll_import) { @@ -1412,7 +1544,14 @@ void ir_print_proc(irFileBuffer *f, irModule *m, irProcedure *proc) { } ir_fprintf(f, " "); + +#ifndef GB_SYSTEM_WINDOWS + if(uses_args) + ir_fprintf(f, "@.nix_argpatch_main"); + else +#endif ir_print_encoded_global(f, proc->name, ir_print_is_proc_global(m, proc)); + ir_fprintf(f, "("); if (proc_type->param_count > 0) { diff --git a/src/main.c b/src/main.c index 6c2167802..17ea379a0 100644 --- a/src/main.c +++ b/src/main.c @@ -278,7 +278,7 @@ int main(int argc, char **argv) { // NOTE(zangent): This is separate because it seems that LLVM tools are packaged // with the Windows version, while they will be system-provided on MacOS and GNU/Linux exit_code = system_exec_command_line_app("llvm-opt", false, - "opt \"%s\" -o \"%.*s\".bc " + "/usr/local/opt/llvm/bin/opt \"%s\" -o \"%.*s\".bc " "-mem2reg " "-memcpyopt " "-die " @@ -365,7 +365,7 @@ int main(int argc, char **argv) { timings_start_section(&timings, str_lit("llvm-llc")); // For more arguments: http://llvm.org/docs/CommandGuide/llc.html exit_code = system_exec_command_line_app("llc", false, - "llc \"%.*s.bc\" -filetype=obj -O%d " + "/usr/local/opt/llvm/bin/llc \"%.*s.bc\" -filetype=obj -O%d " "%.*s " // "-debug-pass=Arguments " "", @@ -424,7 +424,7 @@ int main(int argc, char **argv) { } #if defined(GB_SYSTEM_OSX) - linker = "ld"; + linker = "/usr/bin/ld"; #else // TODO(zangent): Figure out how to make ld work on Linux. // It probably has to do with including the entire CRT, but From 642256f9ba580de65121215ff76b4d8498e18607 Mon Sep 17 00:00:00 2001 From: Zachary Pierson Date: Sun, 2 Apr 2017 18:46:31 -0500 Subject: [PATCH 35/37] I accidentally left debug stuff (like abs paths) in! Whoops! --- src/ir_print.c | 4 ---- src/main.c | 8 ++++---- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/ir_print.c b/src/ir_print.c index 9eec81fe8..4c696a666 100644 --- a/src/ir_print.c +++ b/src/ir_print.c @@ -1396,7 +1396,6 @@ void ir_print_proc(irFileBuffer *f, irModule *m, irProcedure *proc) { if(is_main_proc) for(int i=0;imodule->min_dep_map.entries.count;i++) { Entity *value = proc->module->min_dep_map.entries.e[i].value; - //printf("using: %.*s\n", LIT(proc->module->min_dep_map.entries.e[i].value->token.string)); if(value == NULL) continue; if(str_eq(str_lit("args"), value->token.string)) { uses_args = true; @@ -1404,9 +1403,6 @@ void ir_print_proc(irFileBuffer *f, irModule *m, irProcedure *proc) { } } - //bool uses_args = map_entity_get(&proc->module->min_dep_map, hash_pointer(entity_of_ident(proc->module->info, ast_ident(&fake_file, make_token_ident(str_lit("args")))))) == NULL; - //printf("uses_args: %d", (int)uses_args); - // TODO(zangent): THIS IS AN UGLY HACK // I _SERIOUSLY_ need to change this system, because this is just disgraceful. diff --git a/src/main.c b/src/main.c index 17ea379a0..ccc2b4c3b 100644 --- a/src/main.c +++ b/src/main.c @@ -261,7 +261,7 @@ int main(int argc, char **argv) { #if defined(GB_SYSTEM_WINDOWS) // For more passes arguments: http://llvm.org/docs/Passes.html exit_code = system_exec_command_line_app("llvm-opt", false, - "\"%.*sbin/opt\" \"%s\" -o \"%.*s.bc\" " + "\"%.*sbin/opt\" \"%s\" -o \"%.*s\".bc " "-mem2reg " "-memcpyopt " "-die " @@ -278,7 +278,7 @@ int main(int argc, char **argv) { // NOTE(zangent): This is separate because it seems that LLVM tools are packaged // with the Windows version, while they will be system-provided on MacOS and GNU/Linux exit_code = system_exec_command_line_app("llvm-opt", false, - "/usr/local/opt/llvm/bin/opt \"%s\" -o \"%.*s\".bc " + "opt \"%s\" -o \"%.*s\".bc " "-mem2reg " "-memcpyopt " "-die " @@ -365,7 +365,7 @@ int main(int argc, char **argv) { timings_start_section(&timings, str_lit("llvm-llc")); // For more arguments: http://llvm.org/docs/CommandGuide/llc.html exit_code = system_exec_command_line_app("llc", false, - "/usr/local/opt/llvm/bin/llc \"%.*s.bc\" -filetype=obj -O%d " + "llc \"%.*s.bc\" -filetype=obj -O%d " "%.*s " // "-debug-pass=Arguments " "", @@ -424,7 +424,7 @@ int main(int argc, char **argv) { } #if defined(GB_SYSTEM_OSX) - linker = "/usr/bin/ld"; + linker = "ld"; #else // TODO(zangent): Figure out how to make ld work on Linux. // It probably has to do with including the entire CRT, but From 63345cd0d8a6d1c906026ed0f4a5f8622ee21e94 Mon Sep 17 00:00:00 2001 From: Zachary Pierson Date: Tue, 4 Apr 2017 18:51:36 -0500 Subject: [PATCH 36/37] Bridged a bugfix from os_windows to other os's. --- core/os_linux.odin | 8 ++++---- core/os_x.odin | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/core/os_linux.odin b/core/os_linux.odin index f43deb7bd..a4ea511bb 100644 --- a/core/os_linux.odin +++ b/core/os_linux.odin @@ -83,7 +83,7 @@ close :: proc(fd: Handle) { write :: proc(fd: Handle, data: []byte) -> (AddressSize, Errno) { assert(fd != -1); - bytes_written := unix_write(fd, data.data, data.count); + bytes_written := unix_write(fd, ^data[0], len(data)); if(bytes_written == -1) { return 0, 1; } @@ -93,7 +93,7 @@ write :: proc(fd: Handle, data: []byte) -> (AddressSize, Errno) { read :: proc(fd: Handle, data: []byte) -> (AddressSize, Errno) { assert(fd != -1); - bytes_read := unix_read(fd, data.data, data.count); + bytes_read := unix_read(fd, ^data[0], len(data)); if(bytes_read == -1) { return 0, 1; } @@ -147,8 +147,8 @@ read_entire_file :: proc(name: string) -> ([]byte, bool) { // We have a file size! - data := new_slice(u8, size+1); - if data.data == nil { + data := make([]u8, size+1); + if data == nil { fmt.println("Failed to allocate file buffer."); return nil, false; } diff --git a/core/os_x.odin b/core/os_x.odin index f65f27c6c..883175192 100644 --- a/core/os_x.odin +++ b/core/os_x.odin @@ -87,7 +87,7 @@ close :: proc(fd: Handle) { write :: proc(fd: Handle, data: []byte) -> (AddressSize, Errno) { assert(fd != -1); - bytes_written := unix_write(fd, data.data, data.count); + bytes_written := unix_write(fd, ^data[0], len(data)); if(bytes_written == -1) { return 0, 1; } @@ -97,7 +97,7 @@ write :: proc(fd: Handle, data: []byte) -> (AddressSize, Errno) { read :: proc(fd: Handle, data: []byte) -> (AddressSize, Errno) { assert(fd != -1); - bytes_read := unix_read(fd, data.data, data.count); + bytes_read := unix_read(fd, ^data[0], len(data)); if(bytes_read == -1) { return 0, 1; } @@ -151,8 +151,8 @@ read_entire_file :: proc(name: string) -> ([]byte, bool) { // We have a file size! - data := new_slice(u8, size+1); - if data.data == nil { + data := make([]u8, size+1); + if ^data[0] == nil { fmt.println("Failed to allocate file buffer."); return nil, false; } From 6b33b254e92993cd0d468351d09e9386de349c41 Mon Sep 17 00:00:00 2001 From: Zachary Pierson Date: Thu, 6 Apr 2017 18:14:42 -0500 Subject: [PATCH 37/37] Merged from upstream, fixed 'args' name colission --- core/os_linux.odin | 100 +++++++++++++++++++++++++++++++++++++++++++++ core/os_x.odin | 98 +++++++++++++++++++++++++++++++++++++++++++- src/gb/gb.h | 4 +- src/ir.c | 6 +++ 4 files changed, 206 insertions(+), 2 deletions(-) diff --git a/core/os_linux.odin b/core/os_linux.odin index a4ea511bb..731361594 100644 --- a/core/os_linux.odin +++ b/core/os_linux.odin @@ -38,6 +38,90 @@ RTLD_GLOBAL :: 0x100; args: [dynamic]string; +FileTime :: struct #ordered { + seconds: i64, + nanoseconds: i32, + reserved: i32 +} + +// Translated from +// https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6/+/jb-dev/sysroot/usr/include/bits/stat.h +// Validity is not guaranteed. + +Stat :: struct #ordered { + device_id : u64, // ID of device containing file + serial : u64, // File serial number + nlink : u32, // Number of hard links + mode : u32, // Mode of the file + uid : u32, // User ID of the file's owner + gid : u32, // Group ID of the file's group + _padding : i32, // 32 bits of padding + rdev : u64, // Device ID, if device + size : i64, // Size of the file, in bytes + block_size : i64, // Optimal bllocksize for I/O + blocks : i64, // Number of 512-byte blocks allocated + + last_access : FileTime, // Time of last access + modified : FileTime, // Time of last modification + status_change : FileTime, // Time of last status change + + _reserve1, + _reserve2, + _reserve3 : i64, + serial : u64, // File serial number...? Maybe. + _reserve4 : i64 +}; + +// File type + +S_IFMT :: 0170000; // Type of file mask +S_IFIFO :: 0010000; // Named pipe (fifo) +S_IFCHR :: 0020000; // Character special +S_IFDIR :: 0040000; // Directory +S_IFBLK :: 0060000; // Block special +S_IFREG :: 0100000; // Regular +S_IFLNK :: 0120000; // Symbolic link +S_IFSOCK :: 0140000; // Socket + +// File mode +// Read, write, execute/search by owner + +S_IRWXU :: 0000700; // RWX mask for owner +S_IRUSR :: 0000400; // R for owner +S_IWUSR :: 0000200; // W for owner +S_IXUSR :: 0000100; // X for owner + +// Read, write, execute/search by group + +S_IRWXG :: 0000070; // RWX mask for group +S_IRGRP :: 0000040; // R for group +S_IWGRP :: 0000020; // W for group +S_IXGRP :: 0000010; // X for group + +// Read, write, execute/search by others + +S_IRWXO :: 0000007; // RWX mask for other +S_IROTH :: 0000004; // R for other +S_IWOTH :: 0000002; // W for other +S_IXOTH :: 0000001; // X for other + +S_ISUID :: 0004000; // Set user id on execution +S_ISGID :: 0002000; // Set group id on execution +S_ISVTX :: 0001000; // Directory restrcted delete + +S_ISLNK :: proc(m: u32) -> bool #inline {return ((m) & S_IFMT) == S_IFLNK; } +S_ISREG :: proc(m: u32) -> bool #inline {return ((m) & S_IFMT) == S_IFREG; } +S_ISDIR :: proc(m: u32) -> bool #inline {return ((m) & S_IFMT) == S_IFDIR; } +S_ISCHR :: proc(m: u32) -> bool #inline {return ((m) & S_IFMT) == S_IFCHR; } +S_ISBLK :: proc(m: u32) -> bool #inline {return ((m) & S_IFMT) == S_IFBLK; } +S_ISFIFO :: proc(m: u32) -> bool #inline {return ((m) & S_IFMT) == S_IFIFO; } +S_ISSOCK :: proc(m: u32) -> bool #inline {return ((m) & S_IFMT) == S_IFSOCK;} + +R_OK :: 4; // Test for read permission +W_OK :: 2; // Test for write permission +X_OK :: 1; // Test for execute permission +F_OK :: 0; // Test for file existance + #foreign_system_library dl "dl"; #foreign_system_library libc "c"; @@ -47,6 +131,8 @@ unix_read :: proc(handle: Handle, buffer: rawptr, count: int) -> AddressSize unix_write :: proc(handle: Handle, buffer: rawptr, count: int) -> AddressSize #foreign libc "write"; unix_lseek :: proc(fs: Handle, offset: AddressSize, whence: int) -> AddressSize #foreign libc "lseek"; unix_gettid :: proc() -> u64 #foreign libc "gettid"; +unix_stat :: proc(path: ^u8, stat: ^Stat) -> int #foreign libc "stat"; +unix_access :: proc(path: ^u8, mask: int) -> int #foreign libc "access"; unix_malloc :: proc(size: int) -> rawptr #foreign libc "malloc"; unix_free :: proc(ptr: rawptr) #foreign libc "free"; @@ -121,6 +207,20 @@ last_write_time :: proc(fd: Handle) -> File_Time {} last_write_time_by_name :: proc(name: string) -> File_Time {} */ +stat :: proc(path: string) -> (Stat, int) #inline { + s: Stat; + cstr := strings.new_c_string(path); + defer free(cstr); + ret_int := unix_stat(cstr, ^s); + return s, ret_int; +} + +access :: proc(path: string, mask: int) -> bool #inline { + cstr := strings.new_c_string(path); + defer free(cstr); + return unix_access(cstr, mask) == 0; +} + read_entire_file :: proc(name: string) -> ([]byte, bool) { handle, err := open_simple(name, O_RDONLY); diff --git a/core/os_x.odin b/core/os_x.odin index 883175192..fc2bcd3d3 100644 --- a/core/os_x.odin +++ b/core/os_x.odin @@ -41,6 +41,85 @@ RTLD_FIRST :: 0x100; args: [dynamic]string; +FileTime :: struct #ordered { + seconds: i64, + nanoseconds: i64 +} + +Stat :: struct #ordered { + device_id : i32, // ID of device containing file + mode : u16, // Mode of the file + nlink : u16, // Number of hard links + serial : u64, // File serial number + uid : u32, // User ID of the file's owner + gid : u32, // Group ID of the file's group + rdev : i32, // Device ID, if device + + last_access : FileTime, // Time of last access + modified : FileTime, // Time of last modification + status_change : FileTime, // Time of last status change + created : FileTime, // Time of creation + + size : i64, // Size of the file, in bytes + blocks : i64, // Number of blocks allocated for the file + block_size: i32, // Optimal blocksize for I/O + flags : u32, // User-defined flags for the file + gen_num : u32, // File generation number ...? + _spare : i32, // RESERVED + _reserve1, + _reserve2 : i64, // RESERVED +}; + +// File type + +S_IFMT :: 0170000; // Type of file mask +S_IFIFO :: 0010000; // Named pipe (fifo) +S_IFCHR :: 0020000; // Character special +S_IFDIR :: 0040000; // Directory +S_IFBLK :: 0060000; // Block special +S_IFREG :: 0100000; // Regular +S_IFLNK :: 0120000; // Symbolic link +S_IFSOCK :: 0140000; // Socket + +// File mode +// Read, write, execute/search by owner + +S_IRWXU :: 0000700; // RWX mask for owner +S_IRUSR :: 0000400; // R for owner +S_IWUSR :: 0000200; // W for owner +S_IXUSR :: 0000100; // X for owner + +// Read, write, execute/search by group + +S_IRWXG :: 0000070; // RWX mask for group +S_IRGRP :: 0000040; // R for group +S_IWGRP :: 0000020; // W for group +S_IXGRP :: 0000010; // X for group + +// Read, write, execute/search by others + +S_IRWXO :: 0000007; // RWX mask for other +S_IROTH :: 0000004; // R for other +S_IWOTH :: 0000002; // W for other +S_IXOTH :: 0000001; // X for other + +S_ISUID :: 0004000; // Set user id on execution +S_ISGID :: 0002000; // Set group id on execution +S_ISVTX :: 0001000; // Directory restrcted delete + +S_ISLNK :: proc(m: u32) -> bool #inline {return ((m) & S_IFMT) == S_IFLNK; } +S_ISREG :: proc(m: u32) -> bool #inline {return ((m) & S_IFMT) == S_IFREG; } +S_ISDIR :: proc(m: u32) -> bool #inline {return ((m) & S_IFMT) == S_IFDIR; } +S_ISCHR :: proc(m: u32) -> bool #inline {return ((m) & S_IFMT) == S_IFCHR; } +S_ISBLK :: proc(m: u32) -> bool #inline {return ((m) & S_IFMT) == S_IFBLK; } +S_ISFIFO :: proc(m: u32) -> bool #inline {return ((m) & S_IFMT) == S_IFIFO; } +S_ISSOCK :: proc(m: u32) -> bool #inline {return ((m) & S_IFMT) == S_IFSOCK;} + +R_OK :: 4; // Test for read permission +W_OK :: 2; // Test for write permission +X_OK :: 1; // Test for execute permission +F_OK :: 0; // Test for file existance + #foreign_system_library dl "dl"; #foreign_system_library libc "c"; @@ -50,6 +129,8 @@ unix_read :: proc(handle: Handle, buffer: rawptr, count: int) -> AddressSize unix_write :: proc(handle: Handle, buffer: rawptr, count: int) -> AddressSize #foreign libc "write"; unix_lseek :: proc(fs: Handle, offset: AddressSize, whence: int) -> AddressSize #foreign libc "lseek"; unix_gettid :: proc() -> u64 #foreign libc "gettid"; +unix_stat :: proc(path: ^u8, stat: ^Stat) -> int #foreign libc "stat"; +unix_access :: proc(path: ^u8, mask: int) -> int #foreign libc "access"; unix_malloc :: proc(size: int) -> rawptr #foreign libc "malloc"; unix_free :: proc(ptr: rawptr) #foreign libc "free"; @@ -63,6 +144,7 @@ unix_dlsym :: proc(handle: rawptr, symbol: ^u8) -> (proc() #cc_c) unix_dlclose :: proc(handle: rawptr) -> int #foreign dl "dlclose"; unix_dlerror :: proc() -> ^u8 #foreign dl "dlerror"; + // TODO(zangent): Change this to just `open` when Bill fixes overloading. open_simple :: proc(path: string, mode: int) -> (Handle, Errno) { @@ -125,6 +207,20 @@ last_write_time :: proc(fd: Handle) -> File_Time {} last_write_time_by_name :: proc(name: string) -> File_Time {} */ +stat :: proc(path: string) -> (Stat, bool) #inline { + s: Stat; + cstr := strings.new_c_string(path); + defer free(cstr); + ret_int := unix_stat(cstr, ^s); + return s, ret_int==0; +} + +access :: proc(path: string, mask: int) -> bool #inline { + cstr := strings.new_c_string(path); + defer free(cstr); + return unix_access(cstr, mask) == 0; +} + read_entire_file :: proc(name: string) -> ([]byte, bool) { handle, err := open_simple(name, O_RDONLY); @@ -152,7 +248,7 @@ read_entire_file :: proc(name: string) -> ([]byte, bool) { // We have a file size! data := make([]u8, size+1); - if ^data[0] == nil { + if data == nil { fmt.println("Failed to allocate file buffer."); return nil, false; } diff --git a/src/gb/gb.h b/src/gb/gb.h index 726d33662..892926a40 100644 --- a/src/gb/gb.h +++ b/src/gb/gb.h @@ -276,7 +276,9 @@ extern "C" { // TODO(bill): How many of these headers do I really need? // #include -// #include +#if !defined(GB_SYSTEM_WINDOWS) + #include +#endif diff --git a/src/ir.c b/src/ir.c index 2ba5e254d..cef5aa9da 100644 --- a/src/ir.c +++ b/src/ir.c @@ -6792,6 +6792,12 @@ void ir_gen_tree(irGen *s) { } else if (e->kind == Entity_Procedure && e->Procedure.link_name.len > 0) { // Handle later } else if (scope->is_init && e->kind == Entity_Procedure && str_eq(name, str_lit("main"))) { + #ifdef GB_SYSTEM_OSX + } else if (str_eq(name, str_lit("args")) && str_eq(e->token.pos.file, get_fullpath_core(heap_allocator(), str_lit("os_x.odin")))) { + #endif + #ifdef GB_SYSTEM_LINUX + } else if (str_eq(name, str_lit("args")) && str_eq(e->token.pos.file, get_fullpath_core(heap_allocator(), str_lit("os_linux.odin")))) { + #endif } else { name = ir_mangle_name(s, e->token.pos.file, e); }