move prelude so that include std/prelude also works (#17110)

* move prelude so that `include std/prelude` also works

* add test
This commit is contained in:
Timothee Cour 2021-02-20 09:08:13 -08:00 • committed by GitHub
commit e94a3e5fcd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 28 additions and 11 deletions

View file

@ -17,6 +17,8 @@
`typetraits.nim` module. `typetraits.nim` module.
- `prelude` now works with the JavaScript target. - `prelude` now works with the JavaScript target.
Added `sequtils` import to `prelude`.
`prelude` can now be used via `include std/prelude`, but `include prelude` still works.
- Added `almostEqual` in `math` for comparing two float values using a machine epsilon. - Added `almostEqual` in `math` for comparing two float values using a machine epsilon.
@ -94,8 +96,6 @@
shallow copying; `lists.add` concatenates two lists - an O(1) variation that consumes shallow copying; `lists.add` concatenates two lists - an O(1) variation that consumes
its argument, `addMoved`, is also supplied. its argument, `addMoved`, is also supplied.
- Added `sequtils` import to `prelude`.
- Added `euclDiv` and `euclMod` to `math`. - Added `euclDiv` and `euclMod` to `math`.
- Added `httpcore.is1xx` and missing HTTP codes. - Added `httpcore.is1xx` and missing HTTP codes.
- Added `jsconsole.jsAssert` for JavaScript target. - Added `jsconsole.jsAssert` for JavaScript target.

View file

@ -4,12 +4,12 @@ Prelude
This is an include file that simply imports common modules for your convenience: This is an include file that simply imports common modules for your convenience:
.. code-block:: nim .. code-block:: nim
include prelude include std/prelude
Same as: Same as:
.. code-block:: nim .. code-block:: nim
import os, strutils, times, parseutils, parseopt, hashes, tables, sets import std/[os, strutils, times, parseutils, hashes, tables, sets, sequtils, parseopt]
Examples Examples
@ -18,7 +18,7 @@ Examples
Get the basic most common imports ready to start coding using ``prelude``: Get the basic most common imports ready to start coding using ``prelude``:
.. code-block:: nim .. code-block:: nim
include prelude include std/prelude
echo now() echo now()
echo getCurrentDir() echo getCurrentDir()

View file

@ -11,11 +11,14 @@
## convenience: ## convenience:
## ##
## .. code-block:: nim ## .. code-block:: nim
## include prelude ## include std/prelude
## ##
## Same as: ## Same as:
## ##
## .. code-block:: nim ## .. code-block:: nim
## import os, strutils, times, parseutils, hashes, tables, sets, sequtils, parseopt ## import std/[os, strutils, times, parseutils, hashes, tables, sets, sequtils, parseopt]
# xxx deduplicate with prelude.rst
import std/[os, strutils, times, parseutils, hashes, tables, sets, sequtils, parseopt]
import os, strutils, times, parseutils, hashes, tables, sets, sequtils, parseopt

14
tests/stdlib/tprelude.nim Normal file
View file

@ -0,0 +1,14 @@
discard """
targets: "c js"
matrix: "; -d:nimTestTpreludeCase1"
"""
when defined nimTestTpreludeCase1:
include std/prelude
else:
include prelude
template main() =
doAssert toSeq(1..3) == @[1,2,3]
static: main()
main()

View file

@ -1,5 +1,5 @@
include prelude include std/prelude
proc main(input, output: string) = proc main(input, output: string) =
type NodeKind = enum type NodeKind = enum

View file

@ -1,5 +1,5 @@
include prelude include std/prelude
import intsets import intsets
type type

View file

@ -143,7 +143,7 @@ lib/posix/termios.nim
# some of these are include files so shouldn't be docgen'd # some of these are include files so shouldn't be docgen'd
ignoredModules = """ ignoredModules = """
lib/prelude.nim lib/pure/prelude.nim
lib/pure/future.nim lib/pure/future.nim
lib/pure/collections/hashcommon.nim lib/pure/collections/hashcommon.nim
lib/pure/collections/tableimpl.nim lib/pure/collections/tableimpl.nim