feat: add wasm build targets, profile hooks, os_demo example, and restructure manual source
- Add `wasm`, `wasm-clean`, and `install-emscripten` phony targets to Makefile for WebAssembly cross-compilation - Insert `WREN_PROFILE_ENTER`/`WREN_PROFILE_EXIT` macros in `wren_vm.h` and `wren_vm.c` to support optional runtime profiling via `WREN_PROFILE_ENABLED` - Create `example/os_demo.wren` demonstrating Platform, Process, and conditional exit usage - Update `example/regex_demo.wren` to import `Match` and exercise Match object properties, groups, and `matchAll` - Remove static HTML manual pages (`base64.html`, `dns.html`, `json.html`) and replace with structured `manual_src/` directory containing Jinja2 templates, YAML metadata, and content pages - Expand `README.md` with build targets table, manual building instructions, source layout, and guide for adding new module documentation
This commit is contained in:
@@ -37,7 +37,7 @@ ifeq ($(config),release_64bit)
|
||||
TARGETDIR = ../../bin
|
||||
TARGET = $(TARGETDIR)/wren_cli
|
||||
OBJDIR = obj/64bit/Release
|
||||
DEFINES += -DNDEBUG -D_GNU_SOURCE
|
||||
DEFINES += -DNDEBUG -DWREN_PROFILE_ENABLED -D_GNU_SOURCE
|
||||
ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) -m64 -O3 -std=c99
|
||||
ALL_CXXFLAGS += $(CXXFLAGS) $(ALL_CPPFLAGS) -m64 -O3
|
||||
ALL_LDFLAGS += $(LDFLAGS) -L/usr/lib64 -m64 -s
|
||||
@@ -46,7 +46,7 @@ else ifeq ($(config),release_32bit)
|
||||
TARGETDIR = ../../bin
|
||||
TARGET = $(TARGETDIR)/wren_cli
|
||||
OBJDIR = obj/32bit/Release
|
||||
DEFINES += -DNDEBUG -D_GNU_SOURCE
|
||||
DEFINES += -DNDEBUG -DWREN_PROFILE_ENABLED -D_GNU_SOURCE
|
||||
ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) -m32 -O3 -std=c99
|
||||
ALL_CXXFLAGS += $(CXXFLAGS) $(ALL_CPPFLAGS) -m32 -O3
|
||||
ALL_LDFLAGS += $(LDFLAGS) -L/usr/lib32 -m32 -s
|
||||
@@ -55,7 +55,7 @@ else ifeq ($(config),release_64bit-no-nan-tagging)
|
||||
TARGETDIR = ../../bin
|
||||
TARGET = $(TARGETDIR)/wren_cli
|
||||
OBJDIR = obj/64bit-no-nan-tagging/Release
|
||||
DEFINES += -DNDEBUG -DWREN_NAN_TAGGING=0 -D_GNU_SOURCE
|
||||
DEFINES += -DNDEBUG -DWREN_NAN_TAGGING=0 -DWREN_PROFILE_ENABLED -D_GNU_SOURCE
|
||||
ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) -O3 -std=c99
|
||||
ALL_CXXFLAGS += $(CXXFLAGS) $(ALL_CPPFLAGS) -O3
|
||||
ALL_LDFLAGS += $(LDFLAGS) -s
|
||||
@@ -64,7 +64,7 @@ else ifeq ($(config),debug_64bit)
|
||||
TARGETDIR = ../../bin
|
||||
TARGET = $(TARGETDIR)/wren_cli_d
|
||||
OBJDIR = obj/64bit/Debug
|
||||
DEFINES += -DDEBUG -D_GNU_SOURCE
|
||||
DEFINES += -DDEBUG -DWREN_PROFILE_ENABLED -D_GNU_SOURCE
|
||||
ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) -m64 -g -std=c99
|
||||
ALL_CXXFLAGS += $(CXXFLAGS) $(ALL_CPPFLAGS) -m64 -g
|
||||
ALL_LDFLAGS += $(LDFLAGS) -L/usr/lib64 -m64
|
||||
@@ -73,7 +73,7 @@ else ifeq ($(config),debug_32bit)
|
||||
TARGETDIR = ../../bin
|
||||
TARGET = $(TARGETDIR)/wren_cli_d
|
||||
OBJDIR = obj/32bit/Debug
|
||||
DEFINES += -DDEBUG -D_GNU_SOURCE
|
||||
DEFINES += -DDEBUG -DWREN_PROFILE_ENABLED -D_GNU_SOURCE
|
||||
ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) -m32 -g -std=c99
|
||||
ALL_CXXFLAGS += $(CXXFLAGS) $(ALL_CPPFLAGS) -m32 -g
|
||||
ALL_LDFLAGS += $(LDFLAGS) -L/usr/lib32 -m32
|
||||
@@ -82,7 +82,7 @@ else ifeq ($(config),debug_64bit-no-nan-tagging)
|
||||
TARGETDIR = ../../bin
|
||||
TARGET = $(TARGETDIR)/wren_cli_d
|
||||
OBJDIR = obj/64bit-no-nan-tagging/Debug
|
||||
DEFINES += -DDEBUG -DWREN_NAN_TAGGING=0 -D_GNU_SOURCE
|
||||
DEFINES += -DDEBUG -DWREN_NAN_TAGGING=0 -DWREN_PROFILE_ENABLED -D_GNU_SOURCE
|
||||
ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) -g -std=c99
|
||||
ALL_CXXFLAGS += $(CXXFLAGS) $(ALL_CPPFLAGS) -g
|
||||
ALL_LDFLAGS += $(LDFLAGS)
|
||||
@@ -150,8 +150,10 @@ OBJECTS += $(OBJDIR)/sqlite_module.o
|
||||
OBJECTS += $(OBJDIR)/subprocess.o
|
||||
OBJECTS += $(OBJDIR)/strutil.o
|
||||
OBJECTS += $(OBJDIR)/pathlib.o
|
||||
OBJECTS += $(OBJDIR)/pexpect.o
|
||||
OBJECTS += $(OBJDIR)/tls.o
|
||||
OBJECTS += $(OBJDIR)/udp_module.o
|
||||
OBJECTS += $(OBJDIR)/jinja.o
|
||||
OBJECTS += $(OBJDIR)/stream.o
|
||||
OBJECTS += $(OBJDIR)/strscpy.o
|
||||
OBJECTS += $(OBJDIR)/sysinfo-loadavg.o
|
||||
@@ -166,6 +168,7 @@ OBJECTS += $(OBJDIR)/uv-common.o
|
||||
OBJECTS += $(OBJDIR)/uv-data-getter-setters.o
|
||||
OBJECTS += $(OBJDIR)/version.o
|
||||
OBJECTS += $(OBJDIR)/vm.o
|
||||
OBJECTS += $(OBJDIR)/profile.o
|
||||
OBJECTS += $(OBJDIR)/wren_compiler.o
|
||||
OBJECTS += $(OBJDIR)/wren_core.o
|
||||
OBJECTS += $(OBJDIR)/wren_debug.o
|
||||
@@ -383,6 +386,9 @@ $(OBJDIR)/path.o: ../../src/cli/path.c
|
||||
$(OBJDIR)/vm.o: ../../src/cli/vm.c
|
||||
@echo $(notdir $<)
|
||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF "$(@:%.o=%.d)" -c "$<"
|
||||
$(OBJDIR)/profile.o: ../../src/cli/profile.c
|
||||
@echo $(notdir $<)
|
||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF "$(@:%.o=%.d)" -c "$<"
|
||||
$(OBJDIR)/base64.o: ../../src/module/base64.c
|
||||
@echo $(notdir $<)
|
||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF "$(@:%.o=%.d)" -c "$<"
|
||||
@@ -455,12 +461,18 @@ $(OBJDIR)/strutil.o: ../../src/module/strutil.c
|
||||
$(OBJDIR)/pathlib.o: ../../src/module/pathlib.c
|
||||
@echo $(notdir $<)
|
||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF "$(@:%.o=%.d)" -c "$<"
|
||||
$(OBJDIR)/pexpect.o: ../../src/module/pexpect.c
|
||||
@echo $(notdir $<)
|
||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF "$(@:%.o=%.d)" -c "$<"
|
||||
$(OBJDIR)/tls.o: ../../src/module/tls.c
|
||||
@echo $(notdir $<)
|
||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF "$(@:%.o=%.d)" -c "$<"
|
||||
$(OBJDIR)/udp_module.o: ../../src/module/udp.c
|
||||
@echo $(notdir $<)
|
||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF "$(@:%.o=%.d)" -c "$<"
|
||||
$(OBJDIR)/jinja.o: ../../src/module/jinja.c
|
||||
@echo $(notdir $<)
|
||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF "$(@:%.o=%.d)" -c "$<"
|
||||
|
||||
-include $(OBJECTS:%.o=%.d)
|
||||
ifneq (,$(PCH))
|
||||
|
||||
Reference in New Issue
Block a user