summary refs log tree commit diff stats
path: root/compiler
diff options
context:
space:
mode:
Diffstat (limited to 'compiler')
-rw-r--r--compiler/aliases.nim3
-rw-r--r--compiler/ast.nim3
-rw-r--r--compiler/astalgo.nim3
-rw-r--r--compiler/bitsets.nim3
-rw-r--r--compiler/btrees.nim3
-rw-r--r--compiler/ccgutils.nim3
-rw-r--r--compiler/cgen.nim4
-rw-r--r--compiler/cgmeth.nim4
-rw-r--r--compiler/closureiters.nim3
-rw-r--r--compiler/commands.nim3
-rw-r--r--compiler/concepts.nim3
-rw-r--r--compiler/dfa.nim3
-rw-r--r--compiler/enumtostr.nim4
-rw-r--r--compiler/errorhandling.nim3
-rw-r--r--compiler/extccomp.nim3
-rw-r--r--compiler/gorgeimpl.nim3
-rw-r--r--compiler/guards.nim3
-rw-r--r--compiler/hlo.nim3
-rw-r--r--compiler/ic/bitabs.nim3
-rw-r--r--compiler/ic/cbackend.nim3
-rw-r--r--compiler/ic/dce.nim4
-rw-r--r--compiler/ic/ic.nim3
-rw-r--r--compiler/ic/integrity.nim4
-rw-r--r--compiler/ic/navigator.nim3
-rw-r--r--compiler/ic/packed_ast.nim3
-rw-r--r--compiler/ic/replayer.nim3
-rw-r--r--compiler/ic/rodfiles.nim3
-rw-r--r--compiler/idents.nim3
-rw-r--r--compiler/importer.nim3
-rw-r--r--compiler/injectdestructors.nim3
-rw-r--r--compiler/int128.nim3
-rw-r--r--compiler/isolation_check.nim3
-rw-r--r--compiler/lambdalifting.nim3
-rw-r--r--compiler/lexer.nim3
-rw-r--r--compiler/liftdestructors.nim3
-rw-r--r--compiler/llstream.nim3
-rw-r--r--compiler/lookups.nim4
-rw-r--r--compiler/lowerings.nim3
-rw-r--r--compiler/main.nim4
-rw-r--r--compiler/modulegraphs.nim3
-rw-r--r--compiler/modules.nim3
-rw-r--r--compiler/msgs.nim4
-rw-r--r--compiler/ndi.nim3
-rw-r--r--compiler/nilcheck.nim3
-rw-r--r--compiler/nim.nim4
-rw-r--r--compiler/nimblecmd.nim3
-rw-r--r--compiler/nimconf.nim3
-rw-r--r--compiler/nimlexbase.nim3
-rw-r--r--compiler/nimpaths.nim4
-rw-r--r--compiler/nimsets.nim3
-rw-r--r--compiler/options.nim5
-rw-r--r--compiler/parser.nim3
-rw-r--r--compiler/passes.nim3
-rw-r--r--compiler/pathutils.nim2
-rw-r--r--compiler/patterns.nim3
-rw-r--r--compiler/platform.nim4
-rw-r--r--compiler/pragmas.nim3
-rw-r--r--compiler/renderer.nim3
-rw-r--r--compiler/reorder.nim3
-rw-r--r--compiler/rodutils.nim3
-rw-r--r--compiler/ropes.nim4
-rw-r--r--compiler/scriptconfig.nim3
-rw-r--r--compiler/semdata.nim3
-rw-r--r--compiler/semfold.nim3
-rw-r--r--compiler/sempass2.nim3
-rw-r--r--compiler/semtypinst.nim3
-rw-r--r--compiler/sighashes.nim4
-rw-r--r--compiler/sigmatch.nim3
-rw-r--r--compiler/syntaxes.nim3
-rw-r--r--compiler/transf.nim3
-rw-r--r--compiler/treetab.nim3
-rw-r--r--compiler/typeallowed.nim3
-rw-r--r--compiler/types.nim3
-rw-r--r--compiler/varpartitions.nim3
-rw-r--r--compiler/vmdeps.nim3
-rw-r--r--compiler/vmgen.nim3
-rw-r--r--compiler/vmhooks.nim3
-rw-r--r--compiler/vmmarshal.nim3
-rw-r--r--compiler/vmops.nim4
79 files changed, 251 insertions, 1 deletions
diff --git a/compiler/aliases.nim b/compiler/aliases.nim
index 0006c9fe6..9ec72faa4 100644
--- a/compiler/aliases.nim
+++ b/compiler/aliases.nim
@@ -12,6 +12,9 @@
 import
   ast, astalgo, types, trees, intsets
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 type
   TAnalysisResult* = enum
     arNo, arMaybe, arYes
diff --git a/compiler/ast.nim b/compiler/ast.nim
index ad5ec12f5..d1e5ae2bf 100644
--- a/compiler/ast.nim
+++ b/compiler/ast.nim
@@ -13,6 +13,9 @@ import
   lineinfos, hashes, options, ropes, idents, int128, tables
 from strutils import toLowerAscii
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 export int128
 
 type
diff --git a/compiler/astalgo.nim b/compiler/astalgo.nim
index 94fa9da93..bc5b7d6e1 100644
--- a/compiler/astalgo.nim
+++ b/compiler/astalgo.nim
@@ -15,6 +15,9 @@ import
   ast, hashes, intsets, strutils, options, lineinfos, ropes, idents, rodutils,
   msgs
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 proc hashNode*(p: RootRef): Hash
 proc treeToYaml*(conf: ConfigRef; n: PNode, indent: int = 0, maxRecDepth: int = - 1): Rope
   # Convert a tree into its YAML representation; this is used by the
diff --git a/compiler/bitsets.nim b/compiler/bitsets.nim
index e0d94409e..67598f9ca 100644
--- a/compiler/bitsets.nim
+++ b/compiler/bitsets.nim
@@ -10,6 +10,9 @@
 # this unit handles Nim sets; it implements bit sets
 # the code here should be reused in the Nim standard library
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 type
   ElemType = byte
   TBitSet* = seq[ElemType]    # we use byte here to avoid issues with
diff --git a/compiler/btrees.nim b/compiler/btrees.nim
index d5e7e8099..1701f8d7b 100644
--- a/compiler/btrees.nim
+++ b/compiler/btrees.nim
@@ -10,6 +10,9 @@
 ## BTree implementation with few features, but good enough for the
 ## Nim compiler's needs.
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 const
   M = 512    # max children per B-tree node = M-1
              # (must be even and greater than 2)
diff --git a/compiler/ccgutils.nim b/compiler/ccgutils.nim
index 06b75a20f..e19fccfa7 100644
--- a/compiler/ccgutils.nim
+++ b/compiler/ccgutils.nim
@@ -13,6 +13,9 @@ import
   ast, types, hashes, strutils, msgs, wordrecg,
   platform, trees, options, cgendata
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 proc getPragmaStmt*(n: PNode, w: TSpecialWord): PNode =
   case n.kind
   of nkStmtList:
diff --git a/compiler/cgen.nim b/compiler/cgen.nim
index 2865473fb..ad59b759f 100644
--- a/compiler/cgen.nim
+++ b/compiler/cgen.nim
@@ -17,6 +17,10 @@ import
   lowerings, tables, sets, ndi, lineinfos, pathutils, transf,
   injectdestructors, astmsgs
 
+
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 when not defined(leanCompiler):
   import spawn, semparallel
 
diff --git a/compiler/cgmeth.nim b/compiler/cgmeth.nim
index 484bc9d97..dab8826c1 100644
--- a/compiler/cgmeth.nim
+++ b/compiler/cgmeth.nim
@@ -13,6 +13,10 @@ import
   intsets, options, ast, msgs, idents, renderer, types, magicsys,
   sempass2, strutils, modulegraphs, lineinfos
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
+
 proc genConv(n: PNode, d: PType, downcast: bool; conf: ConfigRef): PNode =
   var dest = skipTypes(d, abstractPtrs)
   var source = skipTypes(n.typ, abstractPtrs)
diff --git a/compiler/closureiters.nim b/compiler/closureiters.nim
index 4d9aeb3f7..6370d0dcb 100644
--- a/compiler/closureiters.nim
+++ b/compiler/closureiters.nim
@@ -133,6 +133,9 @@ import
   renderer, magicsys, lowerings, lambdalifting, modulegraphs, lineinfos,
   tables, options
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 type
   Ctx = object
     g: ModuleGraph
diff --git a/compiler/commands.nim b/compiler/commands.nim
index b21b48801..4c1cec3d2 100644
--- a/compiler/commands.nim
+++ b/compiler/commands.nim
@@ -31,6 +31,9 @@ import
 
 from ast import setUseIc, eqTypeFlags, tfGcSafe, tfNoSideEffect
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 # but some have deps to imported modules. Yay.
 bootSwitch(usedTinyC, hasTinyCBackend, "-d:tinyc")
 bootSwitch(usedFFI, hasFFI, "-d:nimHasLibFFI")
diff --git a/compiler/concepts.nim b/compiler/concepts.nim
index 885b69c60..89a2bdc10 100644
--- a/compiler/concepts.nim
+++ b/compiler/concepts.nim
@@ -15,6 +15,9 @@ import ast, astalgo, semdata, lookups, lineinfos, idents, msgs, renderer, types,
 
 from magicsys import addSonSkipIntLit
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 const
   logBindings = false
 
diff --git a/compiler/dfa.nim b/compiler/dfa.nim
index d68e7be82..5b048ff6e 100644
--- a/compiler/dfa.nim
+++ b/compiler/dfa.nim
@@ -32,6 +32,9 @@
 import ast, intsets, lineinfos, renderer
 import std/private/asciitables
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 type
   InstrKind* = enum
     goto, fork, def, use
diff --git a/compiler/enumtostr.nim b/compiler/enumtostr.nim
index 9bfa7001a..4a28d066c 100644
--- a/compiler/enumtostr.nim
+++ b/compiler/enumtostr.nim
@@ -1,6 +1,10 @@
 
 import ast, idents, lineinfos, modulegraphs, magicsys
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
+
 proc genEnumToStrProc*(t: PType; info: TLineInfo; g: ModuleGraph; idgen: IdGenerator): PSym =
   result = newSym(skProc, getIdent(g.cache, "$"), nextSymId idgen, t.owner, info)
 
diff --git a/compiler/errorhandling.nim b/compiler/errorhandling.nim
index cda7ab3f4..a8361105e 100644
--- a/compiler/errorhandling.nim
+++ b/compiler/errorhandling.nim
@@ -12,6 +12,9 @@
 
 import ast, renderer, options, strutils, types
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 type
   ErrorKind* = enum ## expand as you need.
     RawTypeMismatchError
diff --git a/compiler/extccomp.nim b/compiler/extccomp.nim
index 124cc2c34..09a1dfbb3 100644
--- a/compiler/extccomp.nim
+++ b/compiler/extccomp.nim
@@ -16,6 +16,9 @@ import ropes, platform, condsyms, options, msgs, lineinfos, pathutils
 
 import std/[os, strutils, osproc, sha1, streams, sequtils, times, strtabs, json, jsonutils, sugar]
 
+when defined(nimPreviewSlimSystem):
+  import std/syncio
+
 type
   TInfoCCProp* = enum         # properties of the C compiler:
     hasSwitchRange,           # CC allows ranges in switch statements (GNU C)
diff --git a/compiler/gorgeimpl.nim b/compiler/gorgeimpl.nim
index d4aeb6a77..f58ac5de9 100644
--- a/compiler/gorgeimpl.nim
+++ b/compiler/gorgeimpl.nim
@@ -12,6 +12,9 @@
 import msgs, std / sha1, os, osproc, streams, options,
   lineinfos, pathutils
 
+when defined(nimPreviewSlimSystem):
+  import std/syncio
+
 proc readOutput(p: Process): (string, int) =
   result[0] = ""
   var output = p.outputStream
diff --git a/compiler/guards.nim b/compiler/guards.nim
index d1265d42c..a50593aca 100644
--- a/compiler/guards.nim
+++ b/compiler/guards.nim
@@ -12,6 +12,9 @@
 import ast, astalgo, msgs, magicsys, nimsets, trees, types, renderer, idents,
   saturate, modulegraphs, options, lineinfos, int128
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 const
   someEq = {mEqI, mEqF64, mEqEnum, mEqCh, mEqB, mEqRef, mEqProc,
     mEqStr, mEqSet, mEqCString}
diff --git a/compiler/hlo.nim b/compiler/hlo.nim
index af54cabbb..8620c4c4d 100644
--- a/compiler/hlo.nim
+++ b/compiler/hlo.nim
@@ -9,6 +9,9 @@
 
 # This include implements the high level optimization pass.
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 proc hlo(c: PContext, n: PNode): PNode
 
 proc evalPattern(c: PContext, n, orig: PNode): PNode =
diff --git a/compiler/ic/bitabs.nim b/compiler/ic/bitabs.nim
index 0bce30b5d..ae673b574 100644
--- a/compiler/ic/bitabs.nim
+++ b/compiler/ic/bitabs.nim
@@ -3,6 +3,9 @@
 
 import hashes, rodfiles
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 type
   LitId* = distinct uint32
 
diff --git a/compiler/ic/cbackend.nim b/compiler/ic/cbackend.nim
index f5811cb3b..e7ab000e6 100644
--- a/compiler/ic/cbackend.nim
+++ b/compiler/ic/cbackend.nim
@@ -20,6 +20,9 @@
 
 import std/packedsets, algorithm, tables
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 import ".."/[ast, options, lineinfos, modulegraphs, cgendata, cgen,
   pathutils, extccomp, msgs]
 
diff --git a/compiler/ic/dce.nim b/compiler/ic/dce.nim
index 0a436a5d1..bc61a38de 100644
--- a/compiler/ic/dce.nim
+++ b/compiler/ic/dce.nim
@@ -10,6 +10,10 @@
 ## Dead code elimination (=DCE) for IC.
 
 import std/[intsets, tables]
+
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 import ".." / [ast, options, lineinfos, types]
 
 import packed_ast, ic, bitabs
diff --git a/compiler/ic/ic.nim b/compiler/ic/ic.nim
index 7387d165b..193e5f517 100644
--- a/compiler/ic/ic.nim
+++ b/compiler/ic/ic.nim
@@ -14,6 +14,9 @@ import ".." / [ast, idents, lineinfos, msgs, ropes, options,
 #import ".." / [renderer, astalgo]
 from os import removeFile, isAbsolute
 
+when defined(nimPreviewSlimSystem):
+  import std/[syncio, assertions]
+
 type
   PackedConfig* = object
     backend: TBackend
diff --git a/compiler/ic/integrity.nim b/compiler/ic/integrity.nim
index ed367ef61..d341fd653 100644
--- a/compiler/ic/integrity.nim
+++ b/compiler/ic/integrity.nim
@@ -11,6 +11,10 @@
 ## The set must cover a complete Nim project.
 
 import sets
+
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 import ".." / [ast, modulegraphs]
 import packed_ast, bitabs, ic
 
diff --git a/compiler/ic/navigator.nim b/compiler/ic/navigator.nim
index a1a14885d..cbba591c5 100644
--- a/compiler/ic/navigator.nim
+++ b/compiler/ic/navigator.nim
@@ -16,6 +16,9 @@ import sets
 from os import nil
 from std/private/miscdollars import toLocation
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 import ".." / [ast, modulegraphs, msgs, options]
 import packed_ast, bitabs, ic
 
diff --git a/compiler/ic/packed_ast.nim b/compiler/ic/packed_ast.nim
index 17beda2c1..c78fe56f5 100644
--- a/compiler/ic/packed_ast.nim
+++ b/compiler/ic/packed_ast.nim
@@ -16,6 +16,9 @@ import hashes, tables, strtabs
 import bitabs
 import ".." / [ast, options]
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 type
   SymId* = distinct int32
   ModuleId* = distinct int32
diff --git a/compiler/ic/replayer.nim b/compiler/ic/replayer.nim
index 61aa0e697..0188eaee3 100644
--- a/compiler/ic/replayer.nim
+++ b/compiler/ic/replayer.nim
@@ -16,6 +16,9 @@ import ".." / [ast, modulegraphs, trees, extccomp, btrees,
 
 import tables
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 import packed_ast, ic, bitabs
 
 proc replayStateChanges*(module: PSym; g: ModuleGraph) =
diff --git a/compiler/ic/rodfiles.nim b/compiler/ic/rodfiles.nim
index a52bd18b3..d811b9b99 100644
--- a/compiler/ic/rodfiles.nim
+++ b/compiler/ic/rodfiles.nim
@@ -16,6 +16,9 @@
 
 from typetraits import supportsCopyMem
 
+when defined(nimPreviewSlimSystem):
+  import std/[syncio, assertions]
+
 ## Overview
 ## ========
 ## `RodFile` represents a Rod File (versioned binary format), and the
diff --git a/compiler/idents.nim b/compiler/idents.nim
index d2a84fd36..f36ce09f3 100644
--- a/compiler/idents.nim
+++ b/compiler/idents.nim
@@ -14,6 +14,9 @@
 import
   hashes, wordrecg
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 type
   PIdent* = ref TIdent
   TIdent*{.acyclic.} = object
diff --git a/compiler/importer.nim b/compiler/importer.nim
index acca2c644..719b75f0f 100644
--- a/compiler/importer.nim
+++ b/compiler/importer.nim
@@ -15,6 +15,9 @@ import
   modulegraphs, wordrecg, tables
 from strutils import `%`
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 proc readExceptSet*(c: PContext, n: PNode): IntSet =
   assert n.kind in {nkImportExceptStmt, nkExportExceptStmt}
   result = initIntSet()
diff --git a/compiler/injectdestructors.nim b/compiler/injectdestructors.nim
index 985f27878..6500c5bc7 100644
--- a/compiler/injectdestructors.nim
+++ b/compiler/injectdestructors.nim
@@ -19,6 +19,9 @@ import
   lineinfos, parampatterns, sighashes, liftdestructors, optimizer,
   varpartitions
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 from trees import exprStructuralEquivalent, getRoot
 
 type
diff --git a/compiler/int128.nim b/compiler/int128.nim
index 6ba7c1961..afa07094b 100644
--- a/compiler/int128.nim
+++ b/compiler/int128.nim
@@ -5,6 +5,9 @@
 
 from math import trunc
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 type
   Int128* = object
     udata: array[4, uint32]
diff --git a/compiler/isolation_check.nim b/compiler/isolation_check.nim
index 68a212794..2674605dc 100644
--- a/compiler/isolation_check.nim
+++ b/compiler/isolation_check.nim
@@ -13,6 +13,9 @@
 import
   ast, types, renderer, intsets
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 proc canAlias(arg, ret: PType; marker: var IntSet): bool
 
 proc canAliasN(arg: PType; n: PNode; marker: var IntSet): bool =
diff --git a/compiler/lambdalifting.nim b/compiler/lambdalifting.nim
index a622f6de6..6838fd80d 100644
--- a/compiler/lambdalifting.nim
+++ b/compiler/lambdalifting.nim
@@ -14,6 +14,9 @@ import
   idents, renderer, types, magicsys, lowerings, tables, modulegraphs, lineinfos,
   transf, liftdestructors, typeallowed
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 discard """
   The basic approach is that captured vars need to be put on the heap and
   that the calling chain needs to be explicitly modelled. Things to consider:
diff --git a/compiler/lexer.nim b/compiler/lexer.nim
index 506b0e924..e795d52c0 100644
--- a/compiler/lexer.nim
+++ b/compiler/lexer.nim
@@ -19,6 +19,9 @@ import
   hashes, options, msgs, strutils, platform, idents, nimlexbase, llstream,
   wordrecg, lineinfos, pathutils, parseutils
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 const
   MaxLineLength* = 80         # lines longer than this lead to a warning
   numChars*: set[char] = {'0'..'9', 'a'..'z', 'A'..'Z'}
diff --git a/compiler/liftdestructors.nim b/compiler/liftdestructors.nim
index 51b4ddfb0..68c93a179 100644
--- a/compiler/liftdestructors.nim
+++ b/compiler/liftdestructors.nim
@@ -15,6 +15,9 @@ import modulegraphs, lineinfos, idents, ast, renderer, semdata,
 
 from trees import isCaseObj
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 type
   TLiftCtx = object
     g: ModuleGraph
diff --git a/compiler/llstream.nim b/compiler/llstream.nim
index 865a98ee0..004d990fa 100644
--- a/compiler/llstream.nim
+++ b/compiler/llstream.nim
@@ -12,6 +12,9 @@
 import
   pathutils
 
+when defined(nimPreviewSlimSystem):
+  import std/syncio
+
 # support `useGnuReadline`, `useLinenoise` for backwards compatibility
 const hasRstdin = (defined(nimUseLinenoise) or defined(useLinenoise) or defined(useGnuReadline)) and
   not defined(windows)
diff --git a/compiler/lookups.nim b/compiler/lookups.nim
index fc30408e5..d61e15915 100644
--- a/compiler/lookups.nim
+++ b/compiler/lookups.nim
@@ -9,6 +9,10 @@
 
 # This module implements lookup helpers.
 import std/[algorithm, strutils]
+
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 import
   intsets, ast, astalgo, idents, semdata, types, msgs, options,
   renderer, nimfix/prettybase, lineinfos, modulegraphs, astmsgs
diff --git a/compiler/lowerings.nim b/compiler/lowerings.nim
index 37405d8d9..20003b946 100644
--- a/compiler/lowerings.nim
+++ b/compiler/lowerings.nim
@@ -15,6 +15,9 @@ const
 import ast, astalgo, types, idents, magicsys, msgs, options, modulegraphs,
   lineinfos
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 proc newDeref*(n: PNode): PNode {.inline.} =
   result = newNodeIT(nkHiddenDeref, n.info, n.typ[0])
   result.add n
diff --git a/compiler/main.nim b/compiler/main.nim
index e4ec4d729..3cddbffb3 100644
--- a/compiler/main.nim
+++ b/compiler/main.nim
@@ -22,6 +22,10 @@ import
   modules,
   modulegraphs, lineinfos, pathutils, vmprofiler
 
+
+when defined(nimPreviewSlimSystem):
+  import std/[syncio, assertions]
+
 import ic / [cbackend, integrity, navigator]
 from ic / ic import rodViewer
 
diff --git a/compiler/modulegraphs.nim b/compiler/modulegraphs.nim
index 28e0ddb82..c44908dc3 100644
--- a/compiler/modulegraphs.nim
+++ b/compiler/modulegraphs.nim
@@ -15,6 +15,9 @@ import intsets, tables, hashes, md5_old
 import ast, astalgo, options, lineinfos,idents, btrees, ropes, msgs, pathutils
 import ic / [packed_ast, ic]
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 type
   SigHash* = distinct MD5Digest
 
diff --git a/compiler/modules.nim b/compiler/modules.nim
index 6fba606b2..dd5db63fa 100644
--- a/compiler/modules.nim
+++ b/compiler/modules.nim
@@ -14,6 +14,9 @@ import
   idents, lexer, passes, syntaxes, llstream, modulegraphs,
   lineinfos, pathutils, tables
 
+when defined(nimPreviewSlimSystem):
+  import std/[syncio, assertions]
+
 import ic / replayer
 
 proc resetSystemArtifacts*(g: ModuleGraph) =
diff --git a/compiler/msgs.nim b/compiler/msgs.nim
index 56531eb68..9d111b2e2 100644
--- a/compiler/msgs.nim
+++ b/compiler/msgs.nim
@@ -12,6 +12,10 @@ import
   std/private/miscdollars,
   options, ropes, lineinfos, pathutils, strutils2
 
+when defined(nimPreviewSlimSystem):
+  import std/[syncio, assertions]
+
+
 type InstantiationInfo* = typeof(instantiationInfo())
 template instLoc*(): InstantiationInfo = instantiationInfo(-2, fullPaths = true)
 
diff --git a/compiler/ndi.nim b/compiler/ndi.nim
index 5af87237f..a9d9cfe79 100644
--- a/compiler/ndi.nim
+++ b/compiler/ndi.nim
@@ -12,6 +12,9 @@
 
 import ast, msgs, ropes, options, pathutils
 
+when defined(nimPreviewSlimSystem):
+  import std/[syncio, assertions]
+
 type
   NdiFile* = object
     enabled: bool
diff --git a/compiler/nilcheck.nim b/compiler/nilcheck.nim
index 9c2d091f7..49ceb8942 100644
--- a/compiler/nilcheck.nim
+++ b/compiler/nilcheck.nim
@@ -10,6 +10,9 @@
 import ast, renderer, intsets, tables, msgs, options, lineinfos, strformat, idents, treetab, hashes
 import sequtils, strutils, sets
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 # IMPORTANT: notes not up to date, i'll update this comment again
 #
 # notes:
diff --git a/compiler/nim.nim b/compiler/nim.nim
index 86c7ab524..bfb07ba20 100644
--- a/compiler/nim.nim
+++ b/compiler/nim.nim
@@ -8,6 +8,10 @@
 #
 
 import std/[os, strutils, parseopt]
+
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 when defined(windows) and not defined(nimKochBootstrap):
   # remove workaround pending bootstrap >= 1.5.1
   # refs https://github.com/nim-lang/Nim/issues/18334#issuecomment-867114536
diff --git a/compiler/nimblecmd.nim b/compiler/nimblecmd.nim
index 9cd2941ba..b6b08ccd4 100644
--- a/compiler/nimblecmd.nim
+++ b/compiler/nimblecmd.nim
@@ -12,6 +12,9 @@
 import parseutils, strutils, os, options, msgs, sequtils, lineinfos, pathutils,
   std/sha1, tables
 
+when defined(nimPreviewSlimSystem):
+  import std/[syncio, assertions]
+
 proc addPath*(conf: ConfigRef; path: AbsoluteDir, info: TLineInfo) =
   if not conf.searchPaths.contains(path):
     conf.searchPaths.insert(path, 0)
diff --git a/compiler/nimconf.nim b/compiler/nimconf.nim
index 1cf22e20a..319a3de6d 100644
--- a/compiler/nimconf.nim
+++ b/compiler/nimconf.nim
@@ -13,6 +13,9 @@ import
   llstream, commands, os, strutils, msgs, lexer, ast,
   options, idents, wordrecg, strtabs, lineinfos, pathutils, scriptconfig
 
+when defined(nimPreviewSlimSystem):
+  import std/syncio
+
 # ---------------- configuration file parser -----------------------------
 # we use Nim's lexer here to save space and work
 
diff --git a/compiler/nimlexbase.nim b/compiler/nimlexbase.nim
index b8cb9f78a..3bc9af9c9 100644
--- a/compiler/nimlexbase.nim
+++ b/compiler/nimlexbase.nim
@@ -15,6 +15,9 @@
 import
   llstream, strutils
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 const
   Lrz* = ' '
   Apo* = '\''
diff --git a/compiler/nimpaths.nim b/compiler/nimpaths.nim
index a93b488fd..216071c5c 100644
--- a/compiler/nimpaths.nim
+++ b/compiler/nimpaths.nim
@@ -19,6 +19,10 @@ Unstable API
 
 import os, strutils
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
+
 const
   docCss* = "$nimr/doc/nimdoc.css"
   docHackNim* = "$nimr/tools/dochack/dochack.nim"
diff --git a/compiler/nimsets.nim b/compiler/nimsets.nim
index 8683604af..49c80065a 100644
--- a/compiler/nimsets.nim
+++ b/compiler/nimsets.nim
@@ -12,6 +12,9 @@
 import
   ast, astalgo, lineinfos, bitsets, types, options
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 proc inSet*(s: PNode, elem: PNode): bool =
   assert s.kind == nkCurly
   if s.kind != nkCurly:
diff --git a/compiler/options.nim b/compiler/options.nim
index 9c0c9df72..69eafb67f 100644
--- a/compiler/options.nim
+++ b/compiler/options.nim
@@ -14,6 +14,11 @@ import
 from terminal import isatty
 from times import utc, fromUnix, local, getTime, format, DateTime
 from std/private/globs import nativeToUnixPath
+
+when defined(nimPreviewSlimSystem):
+  import std/[syncio, assertions]
+
+
 const
   hasTinyCBackend* = defined(tinyc)
   useEffectSystem* = true
diff --git a/compiler/parser.nim b/compiler/parser.nim
index 0fb60440c..7973f7d37 100644
--- a/compiler/parser.nim
+++ b/compiler/parser.nim
@@ -36,6 +36,9 @@ import
 when defined(nimpretty):
   import layouter
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 type
   Parser* = object            # A Parser object represents a file that
                               # is being parsed
diff --git a/compiler/passes.nim b/compiler/passes.nim
index 3debce1f6..ce52b10c5 100644
--- a/compiler/passes.nim
+++ b/compiler/passes.nim
@@ -16,6 +16,9 @@ import
   syntaxes, modulegraphs, reorder,
   lineinfos, pathutils
 
+when defined(nimPreviewSlimSystem):
+  import std/syncio
+
 type
   TPassData* = tuple[input: PNode, closeOutput: PNode]
 
diff --git a/compiler/pathutils.nim b/compiler/pathutils.nim
index 3a501a417..1ef0143d5 100644
--- a/compiler/pathutils.nim
+++ b/compiler/pathutils.nim
@@ -13,7 +13,7 @@
 import os, pathnorm
 
 when defined(nimPreviewSlimSystem):
-  import std/syncio
+  import std/[syncio, assertions]
 
 type
   AbsoluteFile* = distinct string
diff --git a/compiler/patterns.nim b/compiler/patterns.nim
index 4b39de3ba..87e9c825c 100644
--- a/compiler/patterns.nim
+++ b/compiler/patterns.nim
@@ -13,6 +13,9 @@
 import
   ast, types, semdata, sigmatch, idents, aliases, parampatterns, trees
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 type
   TPatternContext = object
     owner: PSym
diff --git a/compiler/platform.nim b/compiler/platform.nim
index 4e6054d5c..4b4316bc2 100644
--- a/compiler/platform.nim
+++ b/compiler/platform.nim
@@ -16,6 +16,10 @@
 import
   strutils
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
+
 type
   TSystemOS* = enum # Also add OS in initialization section and alias
                     # conditionals to condsyms (end of module).
diff --git a/compiler/pragmas.nim b/compiler/pragmas.nim
index 702a9e082..01399d4ff 100644
--- a/compiler/pragmas.nim
+++ b/compiler/pragmas.nim
@@ -14,6 +14,9 @@ import
   wordrecg, ropes, options, strutils, extccomp, math, magicsys, trees,
   types, lookups, lineinfos, pathutils, linter
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 from ic / ic import addCompilerProc
 
 const
diff --git a/compiler/renderer.nim b/compiler/renderer.nim
index 22a2d4cbd..3503c4bf6 100644
--- a/compiler/renderer.nim
+++ b/compiler/renderer.nim
@@ -17,6 +17,9 @@ when defined(nimHasUsed):
 import
   lexer, options, idents, strutils, ast, msgs, lineinfos
 
+when defined(nimPreviewSlimSystem):
+  import std/[syncio, assertions]
+
 type
   TRenderFlag* = enum
     renderNone, renderNoBody, renderNoComments, renderDocComments,
diff --git a/compiler/reorder.nim b/compiler/reorder.nim
index 65c1fb9ee..daeb48248 100644
--- a/compiler/reorder.nim
+++ b/compiler/reorder.nim
@@ -4,6 +4,9 @@ import
   msgs, modulegraphs, syntaxes, options, modulepaths,
   lineinfos
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 type
   DepN = ref object
     pnode: PNode
diff --git a/compiler/rodutils.nim b/compiler/rodutils.nim
index a4f7a5146..95b7b2d9e 100644
--- a/compiler/rodutils.nim
+++ b/compiler/rodutils.nim
@@ -10,6 +10,9 @@
 ## Serialization utilities for the compiler.
 import strutils, math
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 # bcc on windows doesn't have C99 functions
 when defined(windows) and defined(bcc):
   {.emit: """#if defined(_MSC_VER) && _MSC_VER < 1900
diff --git a/compiler/ropes.nim b/compiler/ropes.nim
index cd696a545..a44d84ddc 100644
--- a/compiler/ropes.nim
+++ b/compiler/ropes.nim
@@ -60,6 +60,10 @@ import
 
 from pathutils import AbsoluteFile
 
+when defined(nimPreviewSlimSystem):
+  import std/[assertions, syncio]
+
+
 type
   FormatStr* = string  # later we may change it to CString for better
                        # performance of the code generator (assignments
diff --git a/compiler/scriptconfig.nim b/compiler/scriptconfig.nim
index 89510f6b2..adc228d1e 100644
--- a/compiler/scriptconfig.nim
+++ b/compiler/scriptconfig.nim
@@ -16,6 +16,9 @@ import
   os, times, osproc, wordrecg, strtabs, modulegraphs,
   pathutils
 
+when defined(nimPreviewSlimSystem):
+  import std/syncio
+
 # we support 'cmpIgnoreStyle' natively for efficiency:
 from strutils import cmpIgnoreStyle, contains
 
diff --git a/compiler/semdata.nim b/compiler/semdata.nim
index 422d1223a..d7a4d2c1c 100644
--- a/compiler/semdata.nim
+++ b/compiler/semdata.nim
@@ -11,6 +11,9 @@
 
 import tables
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 import
   intsets, options, ast, astalgo, msgs, idents, renderer,
   magicsys, vmdef, modulegraphs, lineinfos, sets, pathutils
diff --git a/compiler/semfold.nim b/compiler/semfold.nim
index d0473b5ce..d2bbc63be 100644
--- a/compiler/semfold.nim
+++ b/compiler/semfold.nim
@@ -17,6 +17,9 @@ import
 
 from system/memory import nimCStrLen
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 proc errorType*(g: ModuleGraph): PType =
   ## creates a type representing an error state
   result = newType(tyError, nextTypeId(g.idgen), g.owners[^1])
diff --git a/compiler/sempass2.nim b/compiler/sempass2.nim
index d6cc4180b..9bc811a03 100644
--- a/compiler/sempass2.nim
+++ b/compiler/sempass2.nim
@@ -12,6 +12,9 @@ import
   wordrecg, strutils, options, guards, lineinfos, semfold, semdata,
   modulegraphs, varpartitions, typeallowed, nilcheck, errorhandling, tables
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 when defined(useDfa):
   import dfa
 
diff --git a/compiler/semtypinst.nim b/compiler/semtypinst.nim
index 5d300fc58..504b83b4c 100644
--- a/compiler/semtypinst.nim
+++ b/compiler/semtypinst.nim
@@ -14,6 +14,9 @@ import ast, astalgo, msgs, types, magicsys, semdata, renderer, options,
 
 from concepts import makeTypeDesc
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 const tfInstClearedFlags = {tfHasMeta, tfUnresolved}
 
 proc checkPartialConstructedType(conf: ConfigRef; info: TLineInfo, t: PType) =
diff --git a/compiler/sighashes.nim b/compiler/sighashes.nim
index 3d36d2533..1835d9d0f 100644
--- a/compiler/sighashes.nim
+++ b/compiler/sighashes.nim
@@ -13,6 +13,10 @@ import ast, tables, ropes, md5_old, modulegraphs
 from hashes import Hash
 import types
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
+
 proc `&=`(c: var MD5Context, s: string) = md5Update(c, s, s.len)
 proc `&=`(c: var MD5Context, ch: char) =
   # XXX suspicious code here; relies on ch being zero terminated?
diff --git a/compiler/sigmatch.nim b/compiler/sigmatch.nim
index 14f4c5e19..f195c4e45 100644
--- a/compiler/sigmatch.nim
+++ b/compiler/sigmatch.nim
@@ -15,6 +15,9 @@ import
   magicsys, idents, lexer, options, parampatterns, strutils, trees,
   linter, lineinfos, lowerings, modulegraphs, concepts
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 type
   MismatchKind* = enum
     kUnknown, kAlreadyGiven, kUnknownNamedParam, kTypeMismatch, kVarNeeded,
diff --git a/compiler/syntaxes.nim b/compiler/syntaxes.nim
index 03a9702a3..e47b0483d 100644
--- a/compiler/syntaxes.nim
+++ b/compiler/syntaxes.nim
@@ -13,6 +13,9 @@ import
   strutils, llstream, ast, idents, lexer, options, msgs, parser,
   filters, filter_tmpl, renderer, lineinfos, pathutils
 
+when defined(nimPreviewSlimSystem):
+  import std/[syncio, assertions]
+
 export Parser, parseAll, parseTopLevelStmt, closeParser
 
 type
diff --git a/compiler/transf.nim b/compiler/transf.nim
index edb8d3573..bdd7c680c 100644
--- a/compiler/transf.nim
+++ b/compiler/transf.nim
@@ -24,6 +24,9 @@ import
   lowerings, liftlocals,
   modulegraphs, lineinfos
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 proc transformBody*(g: ModuleGraph; idgen: IdGenerator, prc: PSym, cache: bool): PNode
 
 import closureiters, lambdalifting
diff --git a/compiler/treetab.nim b/compiler/treetab.nim
index 26afd102c..d8dd8d33e 100644
--- a/compiler/treetab.nim
+++ b/compiler/treetab.nim
@@ -12,6 +12,9 @@
 import
   hashes, ast, astalgo, types
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 proc hashTree*(n: PNode): Hash =
   if n.isNil:
     return
diff --git a/compiler/typeallowed.nim b/compiler/typeallowed.nim
index 3d6ea0edb..57dd039ad 100644
--- a/compiler/typeallowed.nim
+++ b/compiler/typeallowed.nim
@@ -13,6 +13,9 @@
 import
   intsets, ast, renderer, options, semdata, types
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 type
   TTypeAllowedFlag* = enum
     taField,
diff --git a/compiler/types.nim b/compiler/types.nim
index 007a61356..4d2801633 100644
--- a/compiler/types.nim
+++ b/compiler/types.nim
@@ -13,6 +13,9 @@ import
   intsets, ast, astalgo, trees, msgs, strutils, platform, renderer, options,
   lineinfos, int128, modulegraphs, astmsgs
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 type
   TPreferedDesc* = enum
     preferName, # default
diff --git a/compiler/varpartitions.nim b/compiler/varpartitions.nim
index 721de900e..d04a7b40c 100644
--- a/compiler/varpartitions.nim
+++ b/compiler/varpartitions.nim
@@ -32,6 +32,9 @@ import ast, types, lineinfos, options, msgs, renderer, typeallowed, modulegraphs
 from trees import getMagic, isNoSideEffectPragma, stupidStmtListExpr
 from isolation_check import canAlias
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 type
   AbstractTime = distinct int
 
diff --git a/compiler/vmdeps.nim b/compiler/vmdeps.nim
index 1afda14b0..118a3031e 100644
--- a/compiler/vmdeps.nim
+++ b/compiler/vmdeps.nim
@@ -10,6 +10,9 @@
 import ast, types, msgs, os, options, idents, lineinfos
 from pathutils import AbsoluteFile
 
+when defined(nimPreviewSlimSystem):
+  import std/syncio
+
 proc opSlurp*(file: string, info: TLineInfo, module: PSym; conf: ConfigRef): string =
   try:
     var filename = parentDir(toFullPath(conf, info)) / file
diff --git a/compiler/vmgen.nim b/compiler/vmgen.nim
index 1551fbb80..72bcef4db 100644
--- a/compiler/vmgen.nim
+++ b/compiler/vmgen.nim
@@ -29,6 +29,9 @@
 
 import tables
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 import
   strutils, ast, types, msgs, renderer, vmdef,
   intsets, magicsys, options, lowerings, lineinfos, transf, astmsgs
diff --git a/compiler/vmhooks.nim b/compiler/vmhooks.nim
index 1ede87e5e..84ecf586f 100644
--- a/compiler/vmhooks.nim
+++ b/compiler/vmhooks.nim
@@ -9,6 +9,9 @@
 
 import pathutils
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 template setX(k, field) {.dirty.} =
   a.slots[a.ra].ensureKind(k)
   a.slots[a.ra].field = v
diff --git a/compiler/vmmarshal.nim b/compiler/vmmarshal.nim
index d28f0325b..83c441283 100644
--- a/compiler/vmmarshal.nim
+++ b/compiler/vmmarshal.nim
@@ -12,6 +12,9 @@
 import streams, json, intsets, tables, ast, astalgo, idents, types, msgs,
   options, lineinfos
 
+when defined(nimPreviewSlimSystem):
+  import std/assertions
+
 proc ptrToInt(x: PNode): int {.inline.} =
   result = cast[int](x) # don't skip alignment
 
diff --git a/compiler/vmops.nim b/compiler/vmops.nim
index f13e4b1cc..640826cc8 100644
--- a/compiler/vmops.nim
+++ b/compiler/vmops.nim
@@ -31,6 +31,10 @@ from std/osproc import nil
 from system/formatfloat import addFloatRoundtrip, addFloatSprintf
 
 
+when defined(nimPreviewSlimSystem):
+  import std/[syncio, assertions]
+
+
 # There are some useful procs in vmconv.
 import vmconv, vmmarshal