py/persistentcode: Introduce MICROPY_PERSISTENT_CODE_SAVE_FILE option.
This should be enabled when the mp_raw_code_save_file function is needed. It is enabled for mpy-cross, and a check for defined(__APPLE__) is added to cover Mac M1 systems.
This commit is contained in:
parent
cb8e2f02ab
commit
cb30928ac8
|
@ -30,6 +30,14 @@
|
||||||
#define MICROPY_PERSISTENT_CODE_LOAD (0)
|
#define MICROPY_PERSISTENT_CODE_LOAD (0)
|
||||||
#define MICROPY_PERSISTENT_CODE_SAVE (1)
|
#define MICROPY_PERSISTENT_CODE_SAVE (1)
|
||||||
|
|
||||||
|
#ifndef MICROPY_PERSISTENT_CODE_SAVE_FILE
|
||||||
|
#if defined(__i386__) || defined(__x86_64__) || defined(_WIN32) || defined(__unix__) || defined(__APPLE__)
|
||||||
|
#define MICROPY_PERSISTENT_CODE_SAVE_FILE (1)
|
||||||
|
#else
|
||||||
|
#define MICROPY_PERSISTENT_CODE_SAVE_FILE (0)
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#define MICROPY_EMIT_X64 (1)
|
#define MICROPY_EMIT_X64 (1)
|
||||||
#define MICROPY_EMIT_X86 (1)
|
#define MICROPY_EMIT_X86 (1)
|
||||||
#define MICROPY_EMIT_THUMB (1)
|
#define MICROPY_EMIT_THUMB (1)
|
||||||
|
|
|
@ -283,6 +283,11 @@
|
||||||
#define MICROPY_PERSISTENT_CODE_SAVE (0)
|
#define MICROPY_PERSISTENT_CODE_SAVE (0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Whether to support saving persistent code to a file via mp_raw_code_save_file
|
||||||
|
#ifndef MICROPY_PERSISTENT_CODE_SAVE_FILE
|
||||||
|
#define MICROPY_PERSISTENT_CODE_SAVE_FILE (0)
|
||||||
|
#endif
|
||||||
|
|
||||||
// Whether generated code can persist independently of the VM/runtime instance
|
// Whether generated code can persist independently of the VM/runtime instance
|
||||||
// This is enabled automatically when needed by other features
|
// This is enabled automatically when needed by other features
|
||||||
#ifndef MICROPY_PERSISTENT_CODE
|
#ifndef MICROPY_PERSISTENT_CODE
|
||||||
|
|
|
@ -825,10 +825,7 @@ void mp_raw_code_save(mp_raw_code_t *rc, mp_print_t *print) {
|
||||||
save_raw_code(print, rc, &qw);
|
save_raw_code(print, rc, &qw);
|
||||||
}
|
}
|
||||||
|
|
||||||
// here we define mp_raw_code_save_file depending on the port
|
#if MICROPY_PERSISTENT_CODE_SAVE_FILE
|
||||||
// TODO abstract this away properly
|
|
||||||
|
|
||||||
#if defined(__i386__) || defined(__x86_64__) || defined(_WIN32) || defined(__unix__)
|
|
||||||
|
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
@ -853,8 +850,6 @@ void mp_raw_code_save_file(mp_raw_code_t *rc, const char *filename) {
|
||||||
MP_THREAD_GIL_ENTER();
|
MP_THREAD_GIL_ENTER();
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#endif // MICROPY_PERSISTENT_CODE_SAVE_FILE
|
||||||
#error mp_raw_code_save_file not implemented for this platform
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // MICROPY_PERSISTENT_CODE_SAVE
|
#endif // MICROPY_PERSISTENT_CODE_SAVE
|
||||||
|
|
Loading…
Reference in New Issue