From c4b392a179048f936c062f5ffccc2bc25627e500 Mon Sep 17 00:00:00 2001 From: polwex Date: Mon, 6 Oct 2025 01:01:41 +0700 Subject: working --- vere/pkg/noun/v4/manage.c | 30 ++++++++++++++++++++++++++++++ vere/pkg/noun/v4/manage.h | 13 +++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 vere/pkg/noun/v4/manage.c create mode 100644 vere/pkg/noun/v4/manage.h (limited to 'vere/pkg/noun/v4') diff --git a/vere/pkg/noun/v4/manage.c b/vere/pkg/noun/v4/manage.c new file mode 100644 index 0000000..0a3b723 --- /dev/null +++ b/vere/pkg/noun/v4/manage.c @@ -0,0 +1,30 @@ +/// @file + +#include "v4/manage.h" +#include "stdio.h" +#include "manage.h" +#include "allocate.h" +#include "vortex.h" +#include "options.h" + +/* u3m_v4_migrate: perform loom migration if necessary. +*/ +void +u3m_v4_migrate(void) +{ + fprintf(stderr, "loom: bytecode alignment migration running...\r\n"); + + c3_w* mem_w = u3_Loom + u3a_walign; + c3_w siz_w = c3_wiseof(u3v_home); + c3_w len_w = u3C.wor_i - u3a_walign; + c3_w* mat_w = c3_align(mem_w + len_w - siz_w, u3a_balign, C3_ALGLO); + + u3H = (void *)mat_w; + u3R = &u3H->rod_u; + + u3m_reclaim(); + + u3H->ver_w = U3V_VER4; + + fprintf(stderr, "loom: bytecode alignment migration done\r\n"); +} diff --git a/vere/pkg/noun/v4/manage.h b/vere/pkg/noun/v4/manage.h new file mode 100644 index 0000000..1059f12 --- /dev/null +++ b/vere/pkg/noun/v4/manage.h @@ -0,0 +1,13 @@ +/// @file + +#ifndef U3_MANAGE_V4_H +#define U3_MANAGE_V4_H + + /** System management. + **/ + /* u3m_v3_migrate: perform memoization loom migration if necessary. + */ + void + u3m_v4_migrate(void); + +#endif /* ifndef U3_MANAGE_V3_H */ -- cgit v1.2.3