CIs: attempt to use csources_v1 (#16282)

* CIs: attempt to use csources_v1
* also updated the BSDs
* also updated azure pipelines
* std modules should not itself use the 'std/' import dir...
* compiler has to be careful with std/ for v1 booting
This commit is contained in:
Andreas Rumpf 2021-04-21 07:41:33 +02:00 • committed by GitHub
commit a9b62de895
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
58 changed files with 142 additions and 143 deletions

View file

@ -29,7 +29,7 @@
## writeLine(stdout, "your password: " & myData["password"])
## writeLine(stdout, "</body></html>")
import std/[strutils, os, strtabs, cookies, uri]
import strutils, os, strtabs, cookies, uri
export uri.encodeUrl, uri.decodeUrl

View file

@ -50,7 +50,7 @@ runnableExamples:
import std/private/since
import std/math
import math
type
Deque*[T] = object

View file

@ -196,7 +196,7 @@ runnableExamples:
import std/private/since
import std/[hashes, math, algorithm]
import hashes, math, algorithm
type
KeyValuePair[A, B] = tuple[hcode: Hash, key: A, val: B]

View file

@ -36,7 +36,7 @@ runnableExamples:
{.push checks: off, line_dir: off, stack_trace: off, debugger: off.}
# the user does not want to trace a part of the standard library!
import std/math
import math
type
Complex*[T: SomeFloat] = object

View file

@ -9,7 +9,7 @@
## This module implements helper procs for parsing Cookies.
import std/[strtabs, times, options]
import strtabs, times, options
type
@ -25,7 +25,7 @@ proc parseCookies*(s: string): StringTableRef =
## "Set-Cookie" header set by servers.
runnableExamples:
import std/strtabs
let cookieJar = parseCookies("a=1; foo=bar")
let cookieJar = parseCookies("a=1; foo=bar")
assert cookieJar["a"] == "1"
assert cookieJar["foo"] == "bar"
@ -46,7 +46,7 @@ proc parseCookies*(s: string): StringTableRef =
proc setCookie*(key, value: string, domain = "", path = "",
expires = "", noName = false,
secure = false, httpOnly = false,
secure = false, httpOnly = false,
maxAge = none(int), sameSite = SameSite.Default): string =
## Creates a command in the format of
## `Set-Cookie: key=value; Domain=...; ...`

View file

@ -27,11 +27,11 @@
##
## See `packaging <packaging.html>`_ for hints on distributing Nim using OS packages.
from std/strutils import contains, toLowerAscii
from strutils import contains, toLowerAscii
when not defined(nimscript):
from std/osproc import execProcess
from std/os import existsEnv
from osproc import execProcess
from os import existsEnv
type
Distribution* {.pure.} = enum ## the list of known distributions

View file

@ -159,10 +159,9 @@ runnableExamples:
a1, a2, a0, a3, a4: int
doAssert $(%* Foo()) == """{"a1":0,"a2":0,"a0":0,"a3":0,"a4":0}"""
import
std/[hashes, tables, strutils, lexbase, streams, macros, parsejson]
import hashes, tables, strutils, lexbase, streams, macros, parsejson
import std/options # xxx remove this dependency using same approach as https://github.com/nim-lang/Nim/pull/14563
import options # xxx remove this dependency using same approach as https://github.com/nim-lang/Nim/pull/14563
import std/private/since
export
@ -921,7 +920,7 @@ proc parseJson*(s: Stream, filename: string = ""; rawIntegers = false, rawFloats
p.close()
when defined(js):
from std/math import `mod`
from math import `mod`
from std/jsffi import JSObject, `[]`, to
from std/private/jsutils import getProtoName, isInteger, isSafeInteger

View file

@ -54,7 +54,7 @@ Please use alternative packages for serialization.
It is possible to reimplement this module using generics and type traits.
Please contribute a new implementation.""".}
import std/[streams, typeinfo, json, intsets, tables, unicode]
import streams, typeinfo, json, intsets, tables, unicode
proc ptrToInt(x: pointer): int {.inline.} =
result = cast[int](x) # don't skip alignment

View file

@ -58,7 +58,7 @@ import std/private/since
{.push debugger: off.} # the user does not want to trace a part
# of the standard library!
import std/[bitops, fenv]
import bitops, fenv
when defined(c) or defined(cpp):
proc c_isnan(x: float): bool {.importc: "isnan", header: "<math.h>".}

View file

@ -15,7 +15,7 @@
## This implementation calls `initRand()` for the first call of
## `genOid`.
import std/[hashes, times, endians, random]
import hashes, times, endians, random
from std/private/decode_helpers import handleHexChar
type

View file

@ -69,7 +69,7 @@ supports pattern matching on `Option`s, with the `Some(<pattern>)` and
# xxx pending https://github.com/timotheecour/Nim/issues/376 use `runnableExamples` and `whichModule`
import std/typetraits
import typetraits
when (NimMajor, NimMinor) >= (1, 1):
type

View file

@ -44,7 +44,7 @@
include system/inclrtl
import std/private/since
import std/[strutils, pathnorm]
import strutils, pathnorm
const weirdTarget = defined(nimscript) or defined(js)
@ -65,9 +65,9 @@ since (1, 1):
when weirdTarget:
discard
elif defined(windows):
import std/[winlean, times]
import winlean, times
elif defined(posix):
import std/[posix, times]
import posix, times
proc toTime(ts: Timespec): times.Time {.inline.} =
result = initTime(ts.tv_sec.int64, ts.tv_nsec.int)
@ -1008,7 +1008,7 @@ proc expandTilde*(path: string): string {.
##
## Windows: this is still supported despite Windows platform not having this
## convention; also, both ``~/`` and ``~\`` are handled.
##
##
## .. warning:: `~bob` and `~bob/` are not yet handled correctly.
##
## See also:

View file

@ -72,7 +72,7 @@ runnableExamples:
## * `list of cryptographic and hashing modules <lib.html#pure-libraries-hashing>`_
## in the standard library
import std/[algorithm, math]
import algorithm, math
import std/private/since
include system/inclrtl
@ -625,7 +625,7 @@ proc shuffle*[T](x: var openArray[T]) =
shuffle(state, x)
when not defined(nimscript) and not defined(standalone):
import std/times
import times
proc initRand(): Rand =
## Initializes a new Rand state with a seed based on the current time.

View file

@ -21,7 +21,7 @@ runnableExamples:
doAssert r1 * r2 == -3 // 8
doAssert r1 / r2 == -2 // 3
import std/[math, hashes]
import math, hashes
type Rational*[T] = object
## A rational number, consisting of a numerator `num` and a denominator `den`.

View file

@ -17,7 +17,7 @@
## runtime efficiency.
include system/inclrtl
import std/streams
import streams
{.push debugger: off.} # the user does not want to trace a part
# of the standard library!

View file

@ -53,7 +53,7 @@ runnableExamples:
doAssert statistics.kurtosis() ~= -1.0
doAssert statistics.kurtosisS() ~= -0.7000000000000008
from std/math import FloatClass, sqrt, pow, round
from math import FloatClass, sqrt, pow, round
{.push debugger: off.} # the user does not want to trace a part
# of the standard library!

View file

@ -313,8 +313,8 @@ help with readability, since there is only so much you can cram into
single letter DSLs.
]##
import std/[macros, parseutils, unicode]
import std/strutils except format
import macros, parseutils, unicode
import strutils except format
proc mkDigit(v: int, typ: char): string {.inline.} =
assert(v < 26)

View file

@ -11,7 +11,7 @@
## macro system.
import std/private/since
import std/macros
import macros
proc checkPragma(ex, prag: var NimNode) =
since (1, 3):

View file

@ -167,7 +167,7 @@ since (1, 3, 5):
typeof(block: (for ai in a: ai))
import std/macros
import macros
macro enumLen*(T: typedesc[enum]): int =
## Returns the number of items in the enum `T`.

View file

@ -108,15 +108,15 @@
import std/private/since
import std/exitprocs
import std/[macros, strutils, streams, times, sets, sequtils]
import macros, strutils, streams, times, sets, sequtils
when declared(stdout):
import std/os
import os
const useTerminal = not defined(js)
when useTerminal:
import std/terminal
import terminal
type
TestStatus* = enum ## The status of a test when it is done.
@ -747,7 +747,7 @@ macro expect*(exceptions: varargs[typed], body: untyped): untyped =
of 2: discard parseInt("Hello World!")
of 3: raise newException(IOError, "I can't do that Dave.")
else: assert 2 + 2 == 5
expect IOError, OSError, ValueError, AssertionDefect:
defectiveRobot()

View file

@ -39,7 +39,7 @@ runnableExamples:
doAssert getDataUri("Nim", "text/plain") == "data:text/plain;charset=utf-8;base64,Tmlt"
import std/[strutils, parseutils, base64]
import strutils, parseutils, base64
import std/private/[since, decode_helpers]

View file

@ -7,16 +7,16 @@
# distribution, for details about the copyright.
#
import std/macros
from std/typetraits import OrdinalEnum, HoleyEnum
import macros
from typetraits import OrdinalEnum, HoleyEnum
# xxx `genEnumCaseStmt` needs tests and runnableExamples
macro genEnumCaseStmt*(typ: typedesc, argSym: typed, default: typed,
macro genEnumCaseStmt*(typ: typedesc, argSym: typed, default: typed,
userMin, userMax: static[int], normalizer: static[proc(s :string): string]): untyped =
# generates a case stmt, which assigns the correct enum field given
# a normalized string comparison to the `argSym` input.
# string normalization is done using passed normalizer.
# string normalization is done using passed normalizer.
# NOTE: for an enum with fields Foo, Bar, ... we cannot generate
# `of "Foo".nimIdentNormalize: Foo`.
# This will fail, if the enum is not defined at top level (e.g. in a block).

View file

@ -13,7 +13,7 @@ runnableExamples:
let j = a.toJson
assert j.jsonTo(typeof(a)).toJson == j
import std/[json,strutils,tables,sets,strtabs,options]
import json, strutils, tables, sets, strtabs, options
#[
Future directions:
@ -27,7 +27,7 @@ add a way to customize serialization, for e.g.:
objects.
]#
import std/macros
import macros
type
Joptions* = object
@ -106,7 +106,7 @@ proc hasField[T](obj: T, field: string): bool =
return true
return false
macro accessField(obj: typed, name: static string): untyped =
macro accessField(obj: typed, name: static string): untyped =
newDotExpr(obj, ident(name))
template fromJsonFields(newObj, oldObj, json, discKeys, opt) =
@ -146,7 +146,7 @@ template fromJsonFields(newObj, oldObj, json, discKeys, opt) =
json.len == numMatched
else:
json.len == num and num == numMatched
checkJson ok, $(json.len, num, numMatched, $T, json)
proc fromJson*[T](a: var T, b: JsonNode, opt = Joptions())
@ -284,7 +284,7 @@ proc toJson*[T](a: T): JsonNode =
proc fromJsonHook*[K: string|cstring, V](t: var (Table[K, V] | OrderedTable[K, V]),
jsonNode: JsonNode) =
## Enables `fromJson` for `Table` and `OrderedTable` types.
##
##
## See also:
## * `toJsonHook proc<#toJsonHook>`_
runnableExamples:
@ -326,7 +326,7 @@ proc toJsonHook*[K: string|cstring, V](t: (Table[K, V] | OrderedTable[K, V])): J
proc fromJsonHook*[A](s: var SomeSet[A], jsonNode: JsonNode) =
## Enables `fromJson` for `HashSet` and `OrderedSet` types.
##
##
## See also:
## * `toJsonHook proc<#toJsonHook,SomeSet[A]>`_
runnableExamples:
@ -360,7 +360,7 @@ proc toJsonHook*[A](s: SomeSet[A]): JsonNode =
proc fromJsonHook*[T](self: var Option[T], jsonNode: JsonNode) =
## Enables `fromJson` for `Option` types.
##
##
## See also:
## * `toJsonHook proc<#toJsonHook,Option[T]>`_
runnableExamples:
@ -395,7 +395,7 @@ proc toJsonHook*[T](self: Option[T]): JsonNode =
proc fromJsonHook*(a: var StringTableRef, b: JsonNode) =
## Enables `fromJson` for `StringTableRef` type.
##
##
## See also:
## * `toJsonHook proc<#toJsonHook,StringTableRef>`_
runnableExamples:
@ -413,7 +413,7 @@ proc fromJsonHook*(a: var StringTableRef, b: JsonNode) =
proc toJsonHook*(a: StringTableRef): JsonNode =
## Enables `toJson` for `StringTableRef` type.
##
##
## See also:
## * `fromJsonHook proc<#fromJsonHook,StringTableRef,JsonNode>`_
runnableExamples:

View file

@ -39,7 +39,7 @@ See also
* `times module <times.html>`_
]##
import std/times
import times
type
MonoTime* = object ## Represents a monotonic timestamp.
@ -77,7 +77,7 @@ when defined(js):
{.pop.}
elif defined(posix) and not defined(osx):
import std/posix
import posix
elif defined(windows):
proc QueryPerformanceCounter(res: var uint64) {.

View file

@ -4,7 +4,7 @@ this can eventually be moved to std/os and `walkDirRec` can be implemented in te
to avoid duplication
]##
import std/[os]
import os
when defined(windows):
from strutils import replace

View file

@ -14,7 +14,7 @@
## * `std/packedsets <packedsets.html>`_
## * `std/sets <sets.html>`_
import std/[typetraits, macros]
import typetraits, macros
#[
type SetElement* = char|byte|bool|int16|uint16|enum|uint8|int8

View file

@ -26,8 +26,8 @@ runnableExamples("-r:off"):
b = parseSecureHash("10DFAEBF6BFDBC7939957068E2EFACEC4972933C")
assert a == b, "files don't match"
import std/strutils
from std/endians import bigEndian32, bigEndian64
import strutils
from endians import bigEndian32, bigEndian64
const Sha1DigestSize = 20

View file

@ -10,7 +10,7 @@
## .. warning:: This module was added in Nim 1.6. If you are using it for cryptographic purposes,
## keep in mind that so far this has not been audited by any security professionals,
## therefore may not be secure.
##
##
## `std/sysrand` generates random numbers from a secure source provided by the operating system.
## It is a cryptographically secure pseudorandom number generator
## and should be unpredictable enough for cryptographic applications,
@ -52,10 +52,10 @@ runnableExamples:
when not defined(js):
import std/os
import os
when defined(posix):
import std/posix
import posix
const
batchImplOS = defined(freebsd) or defined(openbsd) or (defined(macosx) and not defined(ios))
@ -243,7 +243,7 @@ elif defined(macosx):
"""
proc getentropy(p: pointer, size: csize_t): cint {.importc: "getentropy", header: sysrandomHeader.}
# getentropy() fills a buffer with random data, which can be used as input
# getentropy() fills a buffer with random data, which can be used as input
# for process-context pseudorandom generators like arc4random(3).
# The maximum buffer size permitted is 256 bytes.
@ -310,7 +310,7 @@ proc urandom*(dest: var openArray[byte]): bool =
proc urandom*(size: Natural): seq[byte] {.inline.} =
## Returns random bytes suitable for cryptographic use.
##
##
## .. warning:: The code hasn't been audited by cryptography experts and
## is provided as-is without guarantees. Use at your own risks. For production
## systems we advise you to request an external audit.

View file

@ -24,7 +24,7 @@ runnableExamples:
assert (?.f2.x2.x2).x3 == nil # this terminates ?. early
from std/options import Option, isSome, get, option, unsafeGet, UnpackDefect
from options import Option, isSome, get, option, unsafeGet, UnpackDefect
export options.get, options.isSome, options.isNone
template fakeDot*(a: Option, b): untyped =
@ -59,7 +59,7 @@ func `[]`*[U](a: Option[U]): auto {.inline.} =
if a2 != nil:
result = option(a2[])
import std/macros
import macros
func replace(n: NimNode): NimNode =
if n.kind == nnkDotExpr: