From 22195928f984d967056a9625100838f9692eba61 Mon Sep 17 00:00:00 2001 From: Stephan Hadinger Date: Sun, 13 Mar 2022 18:51:37 +0100 Subject: [PATCH] Berry fixed pre-compiled .bec files for static methods --- lib/libesp32/berry/src/be_bytecode.c | 10 ++++++---- lib/libesp32/berry/tools/grammar/berry.bytecode | 2 +- tasmota/berry/modules/partition.bec | Bin 0 -> 16468 bytes 3 files changed, 7 insertions(+), 5 deletions(-) create mode 100644 tasmota/berry/modules/partition.bec diff --git a/lib/libesp32/berry/src/be_bytecode.c b/lib/libesp32/berry/src/be_bytecode.c index e7ba8aaca..90ff79c6f 100644 --- a/lib/libesp32/berry/src/be_bytecode.c +++ b/lib/libesp32/berry/src/be_bytecode.c @@ -23,7 +23,7 @@ #define MAGIC_NUMBER1 0xBE #define MAGIC_NUMBER2 0xCD #define MAGIC_NUMBER3 0xFE -#define BYTECODE_VERSION 3 +#define BYTECODE_VERSION 4 #define USE_64BIT_INT (BE_INTGER_TYPE == 2 \ || BE_INTGER_TYPE == 1 && LONG_MAX == 9223372036854775807L) @@ -333,7 +333,6 @@ static int load_head(void *fp) res = buffer[0] == MAGIC_NUMBER1 && buffer[1] == MAGIC_NUMBER2 && buffer[2] == MAGIC_NUMBER3 && - buffer[3] <= BYTECODE_VERSION && buffer[4] == vm_sizeinfo(); if (res) { return buffer[3]; @@ -425,7 +424,8 @@ static void load_class(bvm *vm, void *fp, bvalue *v, int version) be_incrtop(vm); if (load_proto(vm, fp, (bproto**)&var_toobj(value), -3, version)) { /* actual method */ - be_class_method_bind(vm, c, name, var_toobj(value), bfalse); + bbool is_method = ((bproto*)var_toobj(value))->varg & BE_VA_METHOD; + be_class_method_bind(vm, c, name, var_toobj(value), !is_method); } else { /* no proto, static member set to nil */ be_class_member_bind(vm, c, name, bfalse); @@ -572,7 +572,7 @@ bclosure* be_bytecode_load(bvm *vm, const char *filename) "can not open file '%s'.", filename)); } else { int version = load_head(fp); - if (version) { + if (version == BYTECODE_VERSION) { bclosure *cl = be_newclosure(vm, 0); var_setclosure(vm->top, cl); be_stackpush(vm); @@ -582,6 +582,8 @@ bclosure* be_bytecode_load(bvm *vm, const char *filename) be_fclose(fp); return cl; } + bytecode_error(vm, be_pushfstring(vm, + "invalid bytecode version '%s'.", filename)); } bytecode_error(vm, be_pushfstring(vm, "invalid bytecode file '%s'.", filename)); diff --git a/lib/libesp32/berry/tools/grammar/berry.bytecode b/lib/libesp32/berry/tools/grammar/berry.bytecode index 2d71dde22..6b90c2a1d 100755 --- a/lib/libesp32/berry/tools/grammar/berry.bytecode +++ b/lib/libesp32/berry/tools/grammar/berry.bytecode @@ -21,7 +21,7 @@ bytecode_file: -- little endian header: 8 magic_number: 3 -- 0xbecdfe (berry code file) - version: 2 -- update with file structure definition + version: 1 -- 0x03 update with file structure definition integer_size: .1 float_size: .1 -- reserved space diff --git a/tasmota/berry/modules/partition.bec b/tasmota/berry/modules/partition.bec new file mode 100644 index 0000000000000000000000000000000000000000..6ee8be094447edf840e95f2067aa2053e49f1086 GIT binary patch literal 16468 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 literal 0 HcmV?d00001