feat: add fswatch, sysinfo, udp modules and file copy/move/stat time operations

Add three new native modules (fswatch, sysinfo, udp) to the Wren CLI build system and module registry. Extend the io module with async file copy and move operations using libuv uv_fs_copyfile and uv_fs_rename, plus expose stat mtime/atime/ctime fields and stdin windowSize. Update the io.wren wrapper with File.write, File.copy, File.move static methods and corresponding foreign declarations. Add shebang lines to generator2.wren, merge_all_wren.wren, merge_docs.wren, and phonebook.wren scripts.
This commit is contained in:
2026-01-25 10:42:49 +00:00
parent b9ae226cd8
commit d487109d7c
14 changed files with 694 additions and 25 deletions
+12
View File
@@ -116,6 +116,7 @@ OBJECTS += $(OBJDIR)/crypto.o
OBJECTS += $(OBJDIR)/datetime.o
OBJECTS += $(OBJDIR)/dns.o
OBJECTS += $(OBJDIR)/env.o
OBJECTS += $(OBJDIR)/fswatch.o
OBJECTS += $(OBJDIR)/io.o
OBJECTS += $(OBJDIR)/json.o
OBJECTS += $(OBJDIR)/math_module.o
@@ -143,12 +144,14 @@ OBJECTS += $(OBJDIR)/repl.o
OBJECTS += $(OBJDIR)/scheduler.o
OBJECTS += $(OBJDIR)/signal.o
OBJECTS += $(OBJDIR)/signal_module.o
OBJECTS += $(OBJDIR)/sysinfo.o
OBJECTS += $(OBJDIR)/sqlite3.o
OBJECTS += $(OBJDIR)/sqlite_module.o
OBJECTS += $(OBJDIR)/subprocess.o
OBJECTS += $(OBJDIR)/strutil.o
OBJECTS += $(OBJDIR)/pathlib.o
OBJECTS += $(OBJDIR)/tls.o
OBJECTS += $(OBJDIR)/udp_module.o
OBJECTS += $(OBJDIR)/stream.o
OBJECTS += $(OBJDIR)/strscpy.o
OBJECTS += $(OBJDIR)/sysinfo-loadavg.o
@@ -401,6 +404,9 @@ $(OBJDIR)/dns.o: ../../src/module/dns.c
$(OBJDIR)/env.o: ../../src/module/env.c
@echo $(notdir $<)
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF "$(@:%.o=%.d)" -c "$<"
$(OBJDIR)/fswatch.o: ../../src/module/fswatch.c
@echo $(notdir $<)
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF "$(@:%.o=%.d)" -c "$<"
$(OBJDIR)/io.o: ../../src/module/io.c
@echo $(notdir $<)
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF "$(@:%.o=%.d)" -c "$<"
@@ -428,6 +434,9 @@ $(OBJDIR)/timer1.o: ../../src/module/timer.c
$(OBJDIR)/signal_module.o: ../../src/module/signal_module.c
@echo $(notdir $<)
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF "$(@:%.o=%.d)" -c "$<"
$(OBJDIR)/sysinfo.o: ../../src/module/sysinfo.c
@echo $(notdir $<)
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF "$(@:%.o=%.d)" -c "$<"
$(OBJDIR)/subprocess.o: ../../src/module/subprocess.c
@echo $(notdir $<)
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF "$(@:%.o=%.d)" -c "$<"
@@ -449,6 +458,9 @@ $(OBJDIR)/pathlib.o: ../../src/module/pathlib.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 "$<"
-include $(OBJECTS:%.o=%.d)
ifneq (,$(PCH))