diff --git a/.github/workflows/ports_windows.yml b/.github/workflows/ports_windows.yml
index 7f08c84581ddd..2b3c14cc528f8 100644
--- a/.github/workflows/ports_windows.yml
+++ b/.github/workflows/ports_windows.yml
@@ -24,7 +24,7 @@ jobs:
matrix:
platform: [x86, x64]
configuration: [Debug, Release]
- variant: [dev, standard]
+ variant: [dev, tns]
visualstudio: ['2017', '2019', '2022']
include:
- visualstudio: '2017'
@@ -38,7 +38,7 @@ jobs:
vs_version: '[17, 18)'
# trim down the number of jobs in the matrix
exclude:
- - variant: standard
+ - variant: tns
configuration: Debug
- visualstudio: '2019'
configuration: Debug
@@ -64,6 +64,20 @@ jobs:
run: msbuild mpy-cross\mpy-cross.vcxproj -maxcpucount -property:Configuration=${{ matrix.configuration }} -property:Platform=${{ matrix.platform }}
- name: Update submodules
run: git submodule update --init lib/micropython-lib
+ - name: Set custom build options
+ shell: pwsh
+ run: |
+ @'
+
+
+
+
+
+ %(PreprocessorDefinitions);MICROPY_STACK_CHECK=1
+
+
+
+ '@ | Set-Content ports\windows\msvc\user.props
- name: Build micropython.dll
run: msbuild ports\windows\micropythoncore.vcxproj -maxcpucount -property:Configuration=${{ matrix.configuration }} -property:Platform=${{ matrix.platform }} -property:PyVariant=${{ matrix.variant }}
- name: Build micropython.exe
@@ -98,7 +112,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- variant: [dev, standard]
+ variant: [dev, tns]
sys: [mingw32, mingw64]
include:
- sys: mingw32
@@ -134,7 +148,7 @@ jobs:
- name: Update submodules
run: make -C ports/windows VARIANT=${{ matrix.variant }} submodules
- name: Build micropython.exe
- run: make -C ports/windows -j2 VARIANT=${{ matrix.variant }}
+ run: make -C ports/windows -j2 VARIANT=${{ matrix.variant }} CFLAGS_EXTRA="-DMICROPY_STACK_CHECK=1"
- name: Run tests
id: test
run: make -C ports/windows test_full VARIANT=${{ matrix.variant }}
diff --git a/ports/windows/Makefile b/ports/windows/Makefile
index c109e2eaf4c5a..c81e26ad1e1eb 100644
--- a/ports/windows/Makefile
+++ b/ports/windows/Makefile
@@ -5,7 +5,7 @@ ifdef VARIANT_DIR
VARIANT ?= $(notdir $(VARIANT_DIR:/=))
else
# If not given on the command line, then default to standard.
-VARIANT ?= standard
+VARIANT ?= tns
VARIANT_DIR ?= variants/$(VARIANT)
endif
diff --git a/ports/windows/mpconfigport.h b/ports/windows/mpconfigport.h
index e99e48552598b..a90505f652839 100644
--- a/ports/windows/mpconfigport.h
+++ b/ports/windows/mpconfigport.h
@@ -51,7 +51,9 @@
#define MICROPY_ENABLE_GC (1)
#define MICROPY_ENABLE_FINALISER (1)
#define MICROPY_ENABLE_PYSTACK (1)
-#define MICROPY_STACK_CHECK (1)
+#ifndef MICROPY_STACK_CHECK
+#define MICROPY_STACK_CHECK (0)
+#endif
#define MICROPY_MALLOC_USES_ALLOCATED_SIZE (1)
#define MICROPY_MEM_STATS (1)
#define MICROPY_DEBUG_PRINTER (&mp_stderr_print)
diff --git a/ports/windows/msvc/variant.props b/ports/windows/msvc/variant.props
index 33322ad1cf09c..dcc85b96c6fbf 100644
--- a/ports/windows/msvc/variant.props
+++ b/ports/windows/msvc/variant.props
@@ -3,7 +3,7 @@
True
- standard
+ tns
build-$(PyVariant)
diff --git a/ports/windows/variants/tns/builtins.c b/ports/windows/variants/tns/builtins.c
new file mode 100644
index 0000000000000..f09b78508948e
--- /dev/null
+++ b/ports/windows/variants/tns/builtins.c
@@ -0,0 +1,4 @@
+#include "py/objexcept.h"
+
+MP_DEFINE_EXCEPTION(ConnectionError, OSError)
+MP_DEFINE_EXCEPTION(TimeoutError, OSError)
diff --git a/ports/windows/variants/tns/mpconfigvariant.h b/ports/windows/variants/tns/mpconfigvariant.h
new file mode 100644
index 0000000000000..99f8f5d4da161
--- /dev/null
+++ b/ports/windows/variants/tns/mpconfigvariant.h
@@ -0,0 +1,27 @@
+#define MICROPY_ENABLE_SCHEDULER (0)
+#define MICROPY_PY_BUILTINS_HELP (1)
+#define MICROPY_PY_BUILTINS_HELP_MODULES (1)
+#define MICROPY_PY_BUILTINS_MEMORYVIEW_ITEMSIZE (1)
+#define MICROPY_PY_BUILTINS_NEXT2 (1)
+#define MICROPY_PY_BUILTINS_DESCRIPTOR (1)
+#define MICROPY_PY_BUILTINS_RANGE_BINOP (1)
+#define MICROPY_PY_BUILTINS_SLICE_INDICES (1)
+#define MICROPY_PY_COLLECTIONS_NAMEDTUPLE__ASDICT (1)
+#define MICROPY_PY_MATH_CONSTANTS (1)
+#define MICROPY_PY_MATH_FACTORIAL (1)
+#define MICROPY_PY_SYS_EXECUTABLE (1)
+#define MICROPY_PY_SYS_INTERN (1)
+#define MICROPY_PY_PLATFORM (1)
+#define MICROPY_PY_RANDOM_EXTRA_FUNCS (1)
+#define MICROPY_PY_RE_MATCH_GROUPS (1)
+#define MICROPY_PY_RE_MATCH_SPAN_START_END (1)
+#define MICROPY_PY_RE_SUB (1)
+#define MICROPY_REPL_EMACS_WORDS_MOVE (1)
+#define MICROPY_REPL_EMACS_EXTRA_WORDS_MOVE (1)
+
+extern const struct _mp_obj_type_t mp_type_ConnectionError;
+extern const struct _mp_obj_type_t mp_type_TimeoutError;
+#define MICROPY_PORT_EXTRA_BUILTINS \
+ { MP_ROM_QSTR(MP_QSTR_ConnectionError), MP_ROM_PTR(&mp_type_ConnectionError) }, \
+ { MP_ROM_QSTR(MP_QSTR_TimeoutError), MP_ROM_PTR(&mp_type_TimeoutError) }, \
+// Extra line to avoid "backslash-newline at end of file" warning.
diff --git a/ports/windows/variants/tns/mpconfigvariant.mk b/ports/windows/variants/tns/mpconfigvariant.mk
new file mode 100644
index 0000000000000..e4376136274c5
--- /dev/null
+++ b/ports/windows/variants/tns/mpconfigvariant.mk
@@ -0,0 +1 @@
+PROG ?= micropython
diff --git a/ports/windows/variants/tns/mpconfigvariant.props b/ports/windows/variants/tns/mpconfigvariant.props
new file mode 100644
index 0000000000000..3f8e0c00042f7
--- /dev/null
+++ b/ports/windows/variants/tns/mpconfigvariant.props
@@ -0,0 +1,8 @@
+
+
+ micropython
+
+
+
+
+