Skip to content

Commit

Permalink
get the depends around the right way, move initial zones stuff
Browse files Browse the repository at this point in the history
  • Loading branch information
nic-donaldson committed Jun 28, 2020
1 parent 4af48ea commit c309566
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 39 deletions.
4 changes: 2 additions & 2 deletions CMakeLists.txt
Expand Up @@ -374,8 +374,8 @@ endforeach()
if (DYLIB)
add_library(extempore SHARED src/Extempore.cpp
src/AudioDevice.cpp
src/EXTLLVM.cpp
src/EXTZONES.cpp
src/EXTLLVM.cpp
src/EXTLLVM2.cpp
src/EXTThread.cpp
src/Extempore.cpp
Expand All @@ -393,8 +393,8 @@ if (DYLIB)
else()
add_executable(extempore src/Extempore.cpp
src/AudioDevice.cpp
src/EXTLLVM.cpp
src/EXTZONES.cpp
src/EXTLLVM.cpp
src/EXTLLVM2.cpp
src/LLVMIRCompilation.cpp
src/EXTThread.cpp
Expand Down
45 changes: 8 additions & 37 deletions include/EXTLLVM.h
Expand Up @@ -37,58 +37,29 @@
#include "Scheme.h"
#include "BranchPrediction.h"

#include <EXTZONES.h>
#include <EXTLLVM2.h>

struct zone_hooks_t {
uint64_t space; // here just so we don't get <i8*,i8*>
void* hook; // xtlang closure of type [void]*
zone_hooks_t* hooks;
};

// WARNING WARNING WARNING - HERE BE DRAGONS
// THIS STRUCTURE IS REFERENCED FROM GENERATED CODE
// DO NOT ALTER IT!!!

struct llvm_zone_t {
void* memory;
uint64_t offset;
uint64_t mark;
uint64_t size;
zone_hooks_t* cleanup_hooks;
llvm_zone_t* memories;
};

struct _llvm_callback_struct_ {
void (*fptr)(void*, llvm_zone_t*);
void* dat;
llvm_zone_t* zone;
};

struct llvm_zone_stack
{
llvm_zone_t* head;
llvm_zone_stack* tail;
};

struct closure_address_table;

extern THREAD_LOCAL llvm_zone_stack* tls_llvm_zone_stack;
extern THREAD_LOCAL uint64_t tls_llvm_zone_stacksize;

extern "C"
{
void llvm_destroy_zone_after_delay(llvm_zone_t* zone, uint64_t delay);

void llvm_destroy_zone_after_delay(llvm_zone_t* zone, uint64_t delay);

pointer llvm_scheme_env_set(scheme* _sc, char* sym);
bool llvm_check_valid_dot_symbol(scheme* sc, char* symbol);
bool regex_split(char* str, char** a, char** b);

inline uint64_t string_hash(const char* str);
pointer llvm_scheme_env_set(scheme* _sc, char* sym);
bool llvm_check_valid_dot_symbol(scheme* sc, char* symbol);
bool regex_split(char* str, char** a, char** b);

EXPORT double imp_randd();
EXPORT int64_t imp_rand1_i64(int64_t a);
inline uint64_t string_hash(const char* str);

EXPORT double imp_randd();
EXPORT int64_t imp_rand1_i64(int64_t a);
}

// this added for dodgy continuations support
Expand Down

0 comments on commit c309566

Please sign in to comment.