mirror of https://github.com/rusefi/bldc.git
Merge commit '629bd3702c2d3bb1e8cac96a439c75a7d086d7dc'
This commit is contained in:
commit
705b28cd13
|
@ -31,7 +31,7 @@
|
||||||
/** LBM minor version */
|
/** LBM minor version */
|
||||||
#define LBM_MINOR_VERSION 1
|
#define LBM_MINOR_VERSION 1
|
||||||
/** LBM patch revision */
|
/** LBM patch revision */
|
||||||
#define LBM_PATCH_VERSION 0
|
#define LBM_PATCH_VERSION 1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -843,7 +843,7 @@ static int gc(lbm_value remember1, lbm_value remember2) {
|
||||||
|
|
||||||
static inline void eval_symbol(eval_context_t *ctx) {
|
static inline void eval_symbol(eval_context_t *ctx) {
|
||||||
lbm_value value;
|
lbm_value value;
|
||||||
|
|
||||||
if (lbm_is_special(ctx->curr_exp) ||
|
if (lbm_is_special(ctx->curr_exp) ||
|
||||||
(lbm_get_extension(lbm_dec_sym(ctx->curr_exp)) != NULL)) {
|
(lbm_get_extension(lbm_dec_sym(ctx->curr_exp)) != NULL)) {
|
||||||
// Special symbols and extension symbols evaluate to themselves
|
// Special symbols and extension symbols evaluate to themselves
|
||||||
|
@ -879,7 +879,7 @@ static inline void eval_define(eval_context_t *ctx) {
|
||||||
|
|
||||||
if (lbm_type_of(key) != LBM_VAL_TYPE_SYMBOL ||
|
if (lbm_type_of(key) != LBM_VAL_TYPE_SYMBOL ||
|
||||||
key == NIL) {
|
key == NIL) {
|
||||||
error_ctx(lbm_enc_sym(SYM_EERROR));
|
error_ctx(lbm_enc_sym(SYM_EERROR));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -891,12 +891,12 @@ static inline void eval_define(eval_context_t *ctx) {
|
||||||
static inline void eval_progn(eval_context_t *ctx) {
|
static inline void eval_progn(eval_context_t *ctx) {
|
||||||
lbm_value exps = lbm_cdr(ctx->curr_exp);
|
lbm_value exps = lbm_cdr(ctx->curr_exp);
|
||||||
lbm_value env = ctx->curr_env;
|
lbm_value env = ctx->curr_env;
|
||||||
|
|
||||||
if (lbm_type_of(exps) == LBM_VAL_TYPE_SYMBOL && exps == NIL) {
|
if (lbm_type_of(exps) == LBM_VAL_TYPE_SYMBOL && exps == NIL) {
|
||||||
ctx->r = NIL;
|
ctx->r = NIL;
|
||||||
ctx->app_cont = true;
|
ctx->app_cont = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lbm_is_error(exps)) {
|
if (lbm_is_error(exps)) {
|
||||||
error_ctx(exps);
|
error_ctx(exps);
|
||||||
|
@ -908,7 +908,7 @@ static inline void eval_progn(eval_context_t *ctx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void eval_lambda(eval_context_t *ctx) {
|
static inline void eval_lambda(eval_context_t *ctx) {
|
||||||
|
|
||||||
lbm_value env_cpy = lbm_env_copy_shallow(ctx->curr_env);
|
lbm_value env_cpy = lbm_env_copy_shallow(ctx->curr_env);
|
||||||
|
|
||||||
if (lbm_is_symbol_merror(env_cpy)) {
|
if (lbm_is_symbol_merror(env_cpy)) {
|
||||||
|
@ -1116,6 +1116,7 @@ static inline void cont_progn_rest(eval_context_t *ctx) {
|
||||||
if (lbm_type_of(lbm_cdr(rest)) == LBM_VAL_TYPE_SYMBOL &&
|
if (lbm_type_of(lbm_cdr(rest)) == LBM_VAL_TYPE_SYMBOL &&
|
||||||
lbm_cdr(rest) == NIL) {
|
lbm_cdr(rest) == NIL) {
|
||||||
ctx->curr_exp = lbm_car(rest);
|
ctx->curr_exp = lbm_car(rest);
|
||||||
|
ctx->curr_env = env;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// Else create a continuation
|
// Else create a continuation
|
||||||
|
@ -1322,7 +1323,7 @@ static inline void cont_application(eval_context_t *ctx) {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
} else {
|
} else {
|
||||||
// It may be an extension
|
// It may be an extension
|
||||||
extension_fptr f = lbm_get_extension(lbm_dec_sym(fun));
|
extension_fptr f = lbm_get_extension(lbm_dec_sym(fun));
|
||||||
if (f == NULL) {
|
if (f == NULL) {
|
||||||
error_ctx(lbm_enc_sym(SYM_EERROR));
|
error_ctx(lbm_enc_sym(SYM_EERROR));
|
||||||
|
|
Loading…
Reference in New Issue