diff --git a/CHANGELOG b/CHANGELOG index 11eaf1b6c..89db33d65 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -29,10 +29,13 @@ * Pending changes since 26.3.27 -- bugfix: MAKE-PACKAGE destructively modified definning form conses of the - package local nicknames breaking bytecmp on such packages (#839) +- bugfix: MAKE-PACKAGE destructively modified defining form's cons cells of + the package local nicknames, breaking package literals in bytecmp (#839) -- Support for Microsoft Visual Studio compilers has been dropped +- build: support for Microsoft Visual Studio Compiler has been dropped + +- bugfix: the first environment is now always page-aligned by using the + same allocation mechanism as all subsequent envs (#828) * 26.3.27 changes since 24.5.10 diff --git a/src/c/main.d b/src/c/main.d index 7f06fe6a7..f00464c1e 100644 --- a/src/c/main.d +++ b/src/c/main.d @@ -49,7 +49,6 @@ /******************************* EXPORTS ******************************/ const char *ecl_self; -static struct cl_env_struct first_env; /************************ GLOBAL INITIALIZATION ***********************/ @@ -419,7 +418,7 @@ struct cl_core_struct cl_core = { .system_properties = ECL_NIL, - .first_env = &first_env, + .first_env = NULL, #ifdef ECL_THREADS .processes = ECL_NIL, #endif @@ -498,6 +497,9 @@ cl_boot(int argc, char **argv) setbuf(stdin, stdin_buf); setbuf(stdout, stdout_buf); #endif + + /* The first environment must be available at all times. */ + cl_core.first_env = _ecl_alloc_env(NULL); init_process(); ARGC = argc;