mirror of
https://github.com/janet-lang/janet
synced 2024-11-29 03:19:54 +00:00
Make the assembler optional during compilation.
This commit is contained in:
parent
03b01c6c0b
commit
e963672977
@ -24,6 +24,9 @@
|
||||
#include <janet/janet.h>
|
||||
#include "util.h"
|
||||
|
||||
/* Conditionally compile this file */
|
||||
#ifdef JANET_ASSEMBLER
|
||||
|
||||
/* Definition for an instruction in the assembler */
|
||||
typedef struct JanetInstructionDef JanetInstructionDef;
|
||||
struct JanetInstructionDef {
|
||||
@ -932,3 +935,5 @@ int janet_lib_asm(JanetArgs args) {
|
||||
janet_cfuns(env, NULL, cfuns);
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -48,12 +48,6 @@
|
||||
[name & more]
|
||||
(tuple.slice (array.concat @['def name :private] more) 0))
|
||||
|
||||
(defmacro defasm
|
||||
"Define a function using assembly"
|
||||
[name & body]
|
||||
(def tab (apply table body))
|
||||
(tuple 'def name (tuple asm (tuple 'quote tab))))
|
||||
|
||||
(defn defglobal
|
||||
"Dynamically create a global def."
|
||||
[name value]
|
||||
|
@ -594,9 +594,11 @@ JanetTable *janet_core_env(void) {
|
||||
janet_lib_os(args);
|
||||
janet_lib_parse(args);
|
||||
janet_lib_compile(args);
|
||||
janet_lib_asm(args);
|
||||
janet_lib_string(args);
|
||||
janet_lib_marsh(args);
|
||||
#ifdef JANET_ASSEMBLER
|
||||
janet_lib_asm(args);
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Allow references to the environment */
|
||||
|
@ -53,7 +53,9 @@ int janet_lib_os(JanetArgs args);
|
||||
int janet_lib_string(JanetArgs args);
|
||||
int janet_lib_marsh(JanetArgs args);
|
||||
int janet_lib_parse(JanetArgs args);
|
||||
#ifdef JANET_ASSEMBLER
|
||||
int janet_lib_asm(JanetArgs args);
|
||||
#endif
|
||||
int janet_lib_compile(JanetArgs args);
|
||||
|
||||
#endif
|
||||
|
@ -109,6 +109,11 @@ extern "C" {
|
||||
#define JANET_DYNAMIC_MODULES
|
||||
#endif
|
||||
|
||||
/* Enable or disable the assembler. Enabled by default. */
|
||||
#ifndef JANET_NO_ASSEMBLER
|
||||
#define JANET_ASSEMBLER
|
||||
#endif
|
||||
|
||||
/* How to export symbols */
|
||||
#ifndef JANET_API
|
||||
#ifdef JANET_WINDOWS
|
||||
@ -852,8 +857,8 @@ JANET_API void janet_parser_flush(JanetParser *parser);
|
||||
JANET_API JanetParser *janet_check_parser(Janet x);
|
||||
|
||||
/* Assembly */
|
||||
#ifdef JANET_ASSEMBLER
|
||||
typedef struct JanetAssembleResult JanetAssembleResult;
|
||||
typedef struct JanetAssembleOptions JanetAssembleOptions;
|
||||
enum JanetAssembleStatus {
|
||||
JANET_ASSEMBLE_OK,
|
||||
JANET_ASSEMBLE_ERROR
|
||||
@ -866,9 +871,9 @@ struct JanetAssembleResult {
|
||||
JANET_API JanetAssembleResult janet_asm(Janet source, int flags);
|
||||
JANET_API Janet janet_disasm(JanetFuncDef *def);
|
||||
JANET_API Janet janet_asm_decode_instruction(uint32_t instr);
|
||||
#endif
|
||||
|
||||
/* Compilation */
|
||||
typedef struct JanetCompileOptions JanetCompileOptions;
|
||||
typedef struct JanetCompileResult JanetCompileResult;
|
||||
enum JanetCompileStatus {
|
||||
JANET_COMPILE_OK,
|
||||
|
@ -46,7 +46,7 @@
|
||||
(+= i (dohandler (string.slice arg 1 2) i))
|
||||
(do
|
||||
(:= *no-file* false)
|
||||
(import* _env arg :exit *exit-on-error*)
|
||||
(import* _env arg :prefix "" :exit *exit-on-error*)
|
||||
(++ i))))
|
||||
|
||||
(when (or *should-repl* *no-file*)
|
||||
|
Loading…
Reference in New Issue
Block a user