emcc.jsflags += -sUSE_CLOSURE_COMPILER=0
emcc.jsflags += -sIMPORTED_MEMORY
emcc.environment := -sENVIRONMENT=web,worker
+########################################################################
+# -sINITIAL_MEMORY: How much memory we need to start with is governed
+# at least in part by whether -sALLOW_MEMORY_GROWTH is enabled. If so,
+# we can start with less. If not, we need as much as we'll ever
+# possibly use (which, of course, we can't know for sure). Note,
+# however, that speedtest1 shows that performance for even moderate
+# workloads MAY suffer considerably if we start small and have to grow
+# at runtime. e.g. OPFS-backed (speedtest1 --size 75) take MAY take X
+# time with 16mb+ memory and 3X time when starting with 8MB. However,
+# such test results are inconsistent due to browser internals which
+# are opaque to us.
emcc.jsflags += -sALLOW_MEMORY_GROWTH
-# emcc: warning: USE_PTHREADS + ALLOW_MEMORY_GROWTH may run non-wasm code
-# slowly, see https://github.com/WebAssembly/design/issues/1271
-# [-Wpthreads-mem-growth]
-emcc.jsflags += -sINITIAL_MEMORY=13107200
-#emcc.jsflags += -sINITIAL_MEMORY=64225280
-# ^^^^ 64MB is not enough for WASMFS/OPFS test runs using batch-runner.js
+emcc.INITIAL_MEMORY.128 := 13107200
+emcc.INITIAL_MEMORY.96 := 100663296
+emcc.INITIAL_MEMORY.64 := 64225280
+emcc.INITIAL_MEMORY.32 := 33554432
+emcc.INITIAL_MEMORY.16 := 16777216
+emcc.INITIAL_MEMORY.8 := 8388608
+emcc.INITIAL_MEMORY ?= 16
+ifeq (,$(emcc.INITIAL_MEMORY.$(emcc.INITIAL_MEMORY)))
+$(error emcc.INITIAL_MEMORY must be one of: 8, 16, 32, 64, 96, 128 (megabytes))
+endif
+emcc.jsflags += -sINITIAL_MEMORY=$(emcc.INITIAL_MEMORY.$(emcc.INITIAL_MEMORY))
+# /INITIAL_MEMORY
+########################################################################
+
emcc.jsflags += $(emcc.environment)
#emcc.jsflags += -sTOTAL_STACK=4194304
#sqlite3-wasmfs.jsflags += --import-undefined
sqlite3-wasmfs.jsflags += -sMEMORY64=0
sqlite3-wasmfs.jsflags += -sINITIAL_MEMORY=128450560
+# ^^^^ 64MB is not enough for WASMFS/OPFS test runs using batch-runner.js
sqlite3-wasmfs.fsflags := -pthread -sWASMFS -sPTHREAD_POOL_SIZE=2 -sENVIRONMENT=web,worker
# -sPTHREAD_POOL_SIZE values of 2 or higher trigger that bug.
sqlite3-wasmfs.jsflags += $(sqlite3-wasmfs.fsflags)
-C Minor\supdates\sto\sthe\sWindows\sbatch\stools.
-D 2022-10-30T07:01:31.341
+C Reduce\swasm\smodule's\sstarting\smemory\sfrom\s128mb\sto\s16mb.\sThe\slatter\svalue\sis\sneeded\sonly\sfor\sWASMFS-based\sbatch-runner.js,\sas\sWASMFS\sbuilds\scannot\sbe\sconfigured\sfor\sdynamic\smemory\sgrowth\swithout\sa\stremendous\sperformance\shit.
+D 2022-10-30T08:39:18.647
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
F ext/userauth/user-auth.txt e6641021a9210364665fe625d067617d03f27b04
F ext/userauth/userauth.c 7f00cded7dcaa5d47f54539b290a43d2e59f4b1eb5f447545fa865f002fc80cb
F ext/wasm/EXPORTED_FUNCTIONS.fiddle.in 27450c8b8c70875a260aca55435ec927068b34cef801a96205adb81bdcefc65c
-F ext/wasm/GNUmakefile 94b55d2dea0eb16f82a2691bceeed265273c7fbb61a6063abfbc1efdf70aeb9c
+F ext/wasm/GNUmakefile 63d6b799daa7dff24378370642170a69872bdd225d4d40e8557b07bcdab0fb22
F ext/wasm/README-dist.txt 2d670b426fc7c613b90a7d2f2b05b433088fe65181abead970980f0a4a75ea20
F ext/wasm/README.md ef39861aa21632fdbca0bdd469f78f0096f6449a720f3f39642594af503030e9
F ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-api 9120c2f8f51fa85f46dcf4dcb6b12f4a807d428f6089b99cdb08d8ddfcfd88b2
F ext/wasm/tester1.html c6c47e5a8071eb09cb1301104435c8e44fbb5719c92411f5b2384a461f9793c5
F ext/wasm/tester1.js 679013b874152427d302e56f78bf542c47a090a85c8ca010bb4002859431cf61
F ext/wasm/version-info.c 3b36468a90faf1bbd59c65fd0eb66522d9f941eedd364fabccd72273503ae7d5
-F ext/wasm/wasmfs.make ee0004813e16c283ff633e08b482008d56adf9b7d42f6c5612f7ab002b924f69
+F ext/wasm/wasmfs.make 86177d02df29cb0eb03c3cc48f07783148834a4c659889908f82625666148fce
F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x
F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8
F magic.txt 5ade0bc977aa135e79e3faaea894d5671b26107cc91e70783aa7dc83f22f3ba0
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P c76ec31ebf4d80ec8cbd2aa2017e1d6bc32eae66bfbcc130c053ddb403599c6b
-R 363016fa4e28705ed2554d72d33a3740
-U mistachkin
-Z e1214828164be445021f6f541770bc23
+P b42f56205fa8e06431fb1a45c48257d93605fea0ed95bd766f71e27292d1af33
+R fee21034df3950eed20c15397fa0e46a
+U stephan
+Z 5acb90fd6218fca4312e02f1c60a0679
# Remove this line to create a well-formed Fossil manifest.
-b42f56205fa8e06431fb1a45c48257d93605fea0ed95bd766f71e27292d1af33
\ No newline at end of file
+ed9d93c48752ba6e18edc1238a8ccdbf6bb65c74fb52a89d515f8b0ab6bea13a
\ No newline at end of file