summary refs log tree commit diff stats
path: root/lib/pure
diff options
context:
space:
mode:
authorflywind <xzsflywind@gmail.com>2022-02-03 00:10:11 +0800
committerGitHub <noreply@github.com>2022-02-02 17:10:11 +0100
commit891329cd4b3e7e3b0d995cf342c1018239ebcf81 (patch)
tree491e25ac424b4a73eadeb59212461b915c4db6c8 /lib/pure
parent486cb09ec2caef60011b3d182bfd188dadafdf62 (diff)
downloadNim-891329cd4b3e7e3b0d995cf342c1018239ebcf81.tar.gz
move io out of system (#19442)
* move io out of system

* fix tests

* fix tests

* next step

* rename to syncio

* rename

* fix nimscript

* comma

* fix

* fix parts of errors

* good for now

* fix test
Diffstat (limited to 'lib/pure')
-rw-r--r--lib/pure/htmlparser.nim3
-rw-r--r--lib/pure/json.nim3
-rw-r--r--lib/pure/logging.nim11
-rw-r--r--lib/pure/memfiles.nim4
-rw-r--r--lib/pure/os.nim3
-rw-r--r--lib/pure/parsecfg.nim4
-rw-r--r--lib/pure/parsecsv.nim3
-rw-r--r--lib/pure/pegs.nim2
-rw-r--r--lib/pure/ropes.nim3
-rw-r--r--lib/pure/streams.nim9
-rw-r--r--lib/pure/terminal.nim3
-rw-r--r--lib/pure/xmlparser.nim3
12 files changed, 42 insertions, 9 deletions
diff --git a/lib/pure/htmlparser.nim b/lib/pure/htmlparser.nim
index 21dff69ff..6b1300f11 100644
--- a/lib/pure/htmlparser.nim
+++ b/lib/pure/htmlparser.nim
@@ -51,6 +51,9 @@
 
 import strutils, streams, parsexml, xmltree, unicode, strtabs
 
+when defined(nimPreviewSlimSystem):
+  import std/syncio
+
 type
   HtmlTag* = enum  ## list of all supported HTML tags; order will always be
                    ## alphabetically
diff --git a/lib/pure/json.nim b/lib/pure/json.nim
index 922cd4e2f..bdc9fe5ab 100644
--- a/lib/pure/json.nim
+++ b/lib/pure/json.nim
@@ -164,6 +164,9 @@ import hashes, tables, strutils, lexbase, streams, macros, parsejson
 import options # xxx remove this dependency using same approach as https://github.com/nim-lang/Nim/pull/14563
 import std/private/since
 
+when defined(nimPreviewSlimSystem):
+  import std/syncio
+
 export
   tables.`$`
 
diff --git a/lib/pure/logging.nim b/lib/pure/logging.nim
index b2ace79ab..6751a372a 100644
--- a/lib/pure/logging.nim
+++ b/lib/pure/logging.nim
@@ -48,7 +48,7 @@
 ## .. warning::
 ##   For loggers that log to a console or to files, only error and fatal
 ##   messages will cause their output buffers to be flushed immediately.
-##   Use the `flushFile proc <io.html#flushFile,File>`_ to flush the buffer
+##   Use the `flushFile proc <syncio.html#flushFile,File>`_ to flush the buffer
 ##   manually if needed.
 ##
 ## Handlers
@@ -146,6 +146,9 @@ import strutils, times
 when not defined(js):
   import os
 
+when defined(nimPreviewSlimSystem):
+  import std/syncio
+
 type
   Level* = enum ## \
     ## Enumeration of logging levels.
@@ -346,7 +349,7 @@ method log*(logger: ConsoleLogger, level: Level, args: varargs[string, `$`]) =
   ##
   ## **Note:** Only error and fatal messages will cause the output buffer
   ## to be flushed immediately. Use the `flushFile proc
-  ## <io.html#flushFile,File>`_ to flush the buffer manually if needed.
+  ## <syncio.html#flushFile,File>`_ to flush the buffer manually if needed.
   ##
   ## See also:
   ## * `log method<#log.e,FileLogger,Level,varargs[string,]>`_
@@ -422,7 +425,7 @@ when not defined(js):
     ## **Notes:**
     ## * Only error and fatal messages will cause the output buffer
     ##   to be flushed immediately. Use the `flushFile proc
-    ##   <io.html#flushFile,File>`_ to flush the buffer manually if needed.
+    ##   <syncio.html#flushFile,File>`_ to flush the buffer manually if needed.
     ## * This method is not available for the JavaScript backend.
     ##
     ## See also:
@@ -600,7 +603,7 @@ when not defined(js):
     ## **Notes:**
     ## * Only error and fatal messages will cause the output buffer
     ##   to be flushed immediately. Use the `flushFile proc
-    ##   <io.html#flushFile,File>`_ to flush the buffer manually if needed.
+    ##   <syncio.html#flushFile,File>`_ to flush the buffer manually if needed.
     ## * This method is not available for the JavaScript backend.
     ##
     ## See also:
diff --git a/lib/pure/memfiles.nim b/lib/pure/memfiles.nim
index 407a358fa..f65ca125e 100644
--- a/lib/pure/memfiles.nim
+++ b/lib/pure/memfiles.nim
@@ -431,7 +431,7 @@ iterator memSlices*(mfile: MemFile, delim = '\l', eat = '\r'): MemSlice {.inline
 iterator lines*(mfile: MemFile, buf: var string, delim = '\l',
     eat = '\r'): string {.inline.} =
   ## Replace contents of passed buffer with each new line, like
-  ## `readLine(File) <io.html#readLine,File,string>`_.
+  ## `readLine(File) <syncio.html#readLine,File,string>`_.
   ## `delim`, `eat`, and delimiting logic is exactly as for `memSlices
   ## <#memSlices.i,MemFile,char,char>`_, but Nim strings are returned.
   ##
@@ -450,7 +450,7 @@ iterator lines*(mfile: MemFile, buf: var string, delim = '\l',
 
 iterator lines*(mfile: MemFile, delim = '\l', eat = '\r'): string {.inline.} =
   ## Return each line in a file as a Nim string, like
-  ## `lines(File) <io.html#lines.i,File>`_.
+  ## `lines(File) <syncio.html#lines.i,File>`_.
   ## `delim`, `eat`, and delimiting logic is exactly as for `memSlices
   ## <#memSlices.i,MemFile,char,char>`_, but Nim strings are returned.
   ##
diff --git a/lib/pure/os.nim b/lib/pure/os.nim
index 07040d611..76164bc49 100644
--- a/lib/pure/os.nim
+++ b/lib/pure/os.nim
@@ -34,6 +34,9 @@ import std/private/since
 
 import strutils, pathnorm
 
+when defined(nimPreviewSlimSystem):
+  import std/syncio
+
 const weirdTarget = defined(nimscript) or defined(js)
 
 since (1, 1):
diff --git a/lib/pure/parsecfg.nim b/lib/pure/parsecfg.nim
index 0ee19912c..54584a253 100644
--- a/lib/pure/parsecfg.nim
+++ b/lib/pure/parsecfg.nim
@@ -175,8 +175,12 @@ import strutils, lexbase, streams, tables
 import std/private/decode_helpers
 import std/private/since
 
+when defined(nimPreviewSlimSystem):
+  import std/syncio
+
 include "system/inclrtl"
 
+
 type
   CfgEventKind* = enum ## enumeration of all events that may occur when parsing
     cfgEof,            ## end of file reached
diff --git a/lib/pure/parsecsv.nim b/lib/pure/parsecsv.nim
index 6db794682..a8d1cfaab 100644
--- a/lib/pure/parsecsv.nim
+++ b/lib/pure/parsecsv.nim
@@ -67,6 +67,9 @@
 
 import lexbase, streams
 
+when defined(nimPreviewSlimSystem):
+  import std/syncio
+
 type
   CsvRow* = seq[string] ## A row in a CSV file.
   CsvParser* = object of BaseLexer ## The parser object.
diff --git a/lib/pure/pegs.nim b/lib/pure/pegs.nim
index bac8b1a0e..0eed1c388 100644
--- a/lib/pure/pegs.nim
+++ b/lib/pure/pegs.nim
@@ -16,6 +16,8 @@
 ##
 
 include "system/inclrtl"
+when defined(nimPreviewSlimSystem):
+  import std/syncio
 
 const
   useUnicode = true ## change this to deactivate proper UTF-8 support
diff --git a/lib/pure/ropes.nim b/lib/pure/ropes.nim
index 1300b4479..84b5b47c2 100644
--- a/lib/pure/ropes.nim
+++ b/lib/pure/ropes.nim
@@ -19,6 +19,9 @@
 include system/inclrtl
 import streams
 
+when defined(nimPreviewSlimSystem):
+  import std/syncio
+
 {.push debugger: off.} # the user does not want to trace a part
                        # of the standard library!
 
diff --git a/lib/pure/streams.nim b/lib/pure/streams.nim
index 7dc81148f..7ad81685f 100644
--- a/lib/pure/streams.nim
+++ b/lib/pure/streams.nim
@@ -92,10 +92,13 @@
 ## See also
 ## ========
 ## * `asyncstreams module <asyncstreams.html>`_
-## * `io module <io.html>`_ for `FileMode enum <io.html#FileMode>`_
+## * `io module <syncio.html>`_ for `FileMode enum <syncio.html#FileMode>`_
 
 import std/private/since
 
+when defined(nimPreviewSlimSystem):
+  import std/syncio
+
 proc newEIO(msg: string): owned(ref IOError) =
   new(result)
   result.msg = msg
@@ -1331,7 +1334,7 @@ proc newFileStream*(f: File): owned FileStream =
   ## * `newStringStream proc <#newStringStream,string>`_ creates a new stream
   ##   from string.
   ## * `newFileStream proc <#newFileStream,string,FileMode,int>`_ is the same
-  ##   as using `open proc <io.html#open,File,string,FileMode,int>`_
+  ##   as using `open proc <syncio.html#open,File,string,FileMode,int>`_
   ##   on Examples.
   ## * `openFileStream proc <#openFileStream,string,FileMode,int>`_ creates a
   ##   file stream from the file name and the mode.
@@ -1370,7 +1373,7 @@ proc newFileStream*(filename: string, mode: FileMode = fmRead,
   ## Creates a new stream from the file named `filename` with the mode `mode`.
   ##
   ## If the file cannot be opened, `nil` is returned. See the `io module
-  ## <io.html>`_ for a list of available `FileMode enums <io.html#FileMode>`_.
+  ## <syncio.html>`_ for a list of available `FileMode enums <syncio.html#FileMode>`_.
   ##
   ## **Note:**
   ## * **This function returns nil in case of failure.**
diff --git a/lib/pure/terminal.nim b/lib/pure/terminal.nim
index c9aafc037..5755e142a 100644
--- a/lib/pure/terminal.nim
+++ b/lib/pure/terminal.nim
@@ -66,6 +66,9 @@ import colors
 when defined(windows):
   import winlean
 
+when defined(nimPreviewSlimSystem):
+  import std/syncio
+
 type
   PTerminal = ref object
     trueColorIsSupported: bool
diff --git a/lib/pure/xmlparser.nim b/lib/pure/xmlparser.nim
index 3d9c288ed..6785fa66e 100644
--- a/lib/pure/xmlparser.nim
+++ b/lib/pure/xmlparser.nim
@@ -11,6 +11,9 @@
 
 import streams, parsexml, strtabs, xmltree
 
+when defined(nimPreviewSlimSystem):
+  import std/syncio
+
 type
   XmlError* = object of ValueError ## Exception that is raised
                                    ## for invalid XML.