diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5826c5d..3c859f4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -43,14 +43,10 @@ jobs: name: '${{ matrix.target.os }}-${{ matrix.target.cpu }} (Nim ${{ matrix.branch }})' runs-on: ${{ matrix.builder }} - continue-on-error: ${{ matrix.branch == 'devel' }} + continue-on-error: ${{ matrix.branch == 'version-1-6' || matrix.branch == 'devel' }} steps: - - name: Checkout nim-chronos + - name: Checkout uses: actions/checkout@v2 - with: - ref: master - path: nim-chronos - submodules: false - name: Install build dependencies (Linux i386) if: runner.os == 'Linux' && matrix.target.cpu == 'i386' @@ -151,8 +147,7 @@ jobs: bash build_nim.sh nim csources dist/nimble NimBinaries echo '${{ github.workspace }}/nim/bin' >> $GITHUB_PATH - - name: Run nim-chronos tests - working-directory: nim-chronos + - name: Run tests run: | nim --version nimble --version diff --git a/.github/workflows/multi_nim.yml b/.github/workflows/multi_nim.yml deleted file mode 100644 index c7773a7..0000000 --- a/.github/workflows/multi_nim.yml +++ /dev/null @@ -1,160 +0,0 @@ -name: Daily -on: - schedule: - - cron: "30 5 * * *" - workflow_dispatch: - -jobs: - build: - strategy: - fail-fast: false - matrix: - target: - - os: linux - cpu: amd64 - - os: linux - cpu: i386 - - os: macos - cpu: amd64 - - os: windows - cpu: amd64 - #- os: windows - #cpu: i386 - branch: [version-1-2, version-1-4, version-1-6, devel] - include: - - target: - os: linux - builder: ubuntu-18.04 - shell: bash - - target: - os: macos - builder: macos-10.15 - shell: bash - - target: - os: windows - builder: windows-2019 - shell: msys2 {0} - - defaults: - run: - shell: ${{ matrix.shell }} - - name: '${{ matrix.target.os }}-${{ matrix.target.cpu }} (Nim ${{ matrix.branch }})' - runs-on: ${{ matrix.builder }} - continue-on-error: ${{ matrix.branch == 'devel' }} - steps: - - name: Checkout nim-chronos - uses: actions/checkout@v2 - with: - ref: master - path: nim-chronos - submodules: false - - - name: Install build dependencies (Linux i386) - if: runner.os == 'Linux' && matrix.target.cpu == 'i386' - run: | - sudo dpkg --add-architecture i386 - sudo apt-fast update -qq - sudo DEBIAN_FRONTEND='noninteractive' apt-fast install \ - --no-install-recommends -yq gcc-multilib g++-multilib \ - libssl-dev:i386 - mkdir -p external/bin - cat << EOF > external/bin/gcc - #!/bin/bash - exec $(which gcc) -m32 "\$@" - EOF - cat << EOF > external/bin/g++ - #!/bin/bash - exec $(which g++) -m32 "\$@" - EOF - chmod 755 external/bin/gcc external/bin/g++ - echo '${{ github.workspace }}/external/bin' >> $GITHUB_PATH - - - name: MSYS2 (Windows i386) - if: runner.os == 'Windows' && matrix.target.cpu == 'i386' - uses: msys2/setup-msys2@v2 - with: - path-type: inherit - msystem: MINGW32 - install: >- - base-devel - git - mingw-w64-i686-toolchain - - - name: MSYS2 (Windows amd64) - if: runner.os == 'Windows' && matrix.target.cpu == 'amd64' - uses: msys2/setup-msys2@v2 - with: - path-type: inherit - install: >- - base-devel - git - mingw-w64-x86_64-toolchain - - - name: Restore Nim DLLs dependencies (Windows) from cache - if: runner.os == 'Windows' - id: windows-dlls-cache - uses: actions/cache@v2 - with: - path: external/dlls-${{ matrix.target.cpu }} - key: 'dlls-${{ matrix.target.cpu }}' - - - name: Install DLLs dependencies (Windows) - if: > - steps.windows-dlls-cache.outputs.cache-hit != 'true' && - runner.os == 'Windows' - run: | - mkdir -p external - curl -L "https://nim-lang.org/download/windeps.zip" -o external/windeps.zip - 7z x -y external/windeps.zip -oexternal/dlls-${{ matrix.target.cpu }} - - - name: Path to cached dependencies (Windows) - if: > - runner.os == 'Windows' - run: | - echo '${{ github.workspace }}'"/external/dlls-${{ matrix.target.cpu }}" >> $GITHUB_PATH - - - name: Derive environment variables - run: | - if [[ '${{ matrix.target.cpu }}' == 'amd64' ]]; then - PLATFORM=x64 - else - PLATFORM=x86 - fi - echo "PLATFORM=$PLATFORM" >> $GITHUB_ENV - - ncpu= - MAKE_CMD="make" - case '${{ runner.os }}' in - 'Linux') - ncpu=$(nproc) - ;; - 'macOS') - ncpu=$(sysctl -n hw.ncpu) - ;; - 'Windows') - ncpu=$NUMBER_OF_PROCESSORS - MAKE_CMD="mingw32-make" - ;; - esac - [[ -z "$ncpu" || $ncpu -le 0 ]] && ncpu=1 - echo "ncpu=$ncpu" >> $GITHUB_ENV - echo "MAKE_CMD=${MAKE_CMD}" >> $GITHUB_ENV - - - name: Build Nim and Nimble - run: | - curl -O -L -s -S https://raw.githubusercontent.com/status-im/nimbus-build-system/master/scripts/build_nim.sh - env MAKE="${MAKE_CMD} -j${ncpu}" ARCH_OVERRIDE=${PLATFORM} NIM_COMMIT=${{ matrix.branch }} \ - QUICK_AND_DIRTY_COMPILER=1 QUICK_AND_DIRTY_NIMBLE=1 CC=gcc \ - bash build_nim.sh nim csources dist/nimble NimBinaries - echo '${{ github.workspace }}/nim/bin' >> $GITHUB_PATH - - - name: Run nim-chronos tests - working-directory: nim-chronos - run: | - nim --version - nimble --version - nimble install -y --depsOnly - nimble install -y libbacktrace - nimble test - nimble test_libbacktrace diff --git a/chronos.nimble b/chronos.nimble index a28ac81..4a71ae2 100644 --- a/chronos.nimble +++ b/chronos.nimble @@ -1,5 +1,5 @@ packageName = "chronos" -version = "3.0.10" +version = "3.0.11" author = "Status Research & Development GmbH" description = "Chronos" license = "Apache License 2.0 or MIT" diff --git a/chronos/asyncloop.nim b/chronos/asyncloop.nim index dc8af4a..988b574 100644 --- a/chronos/asyncloop.nim +++ b/chronos/asyncloop.nim @@ -431,7 +431,7 @@ when defined(windows): loop.processTimersGetTimeout(curTimeout) # Processing handles - var lpNumberOfBytesTransferred: Dword + var lpNumberOfBytesTransferred: DWORD var lpCompletionKey: ULONG_PTR var customOverlapped: PtrCustomOverlapped diff --git a/chronos/handles.nim b/chronos/handles.nim index 0245d5c..a929f76 100644 --- a/chronos/handles.nim +++ b/chronos/handles.nim @@ -190,7 +190,7 @@ proc createAsyncPipe*(): tuple[read: AsyncFD, write: AsyncFD] = of ERROR_PIPE_CONNECTED: discard of ERROR_IO_PENDING: - var bytesRead = 0.Dword + var bytesRead = 0.DWORD if getOverlappedResult(pipeIn, addr ovl, bytesRead, 1) == 0: discard closeHandle(pipeIn) discard closeHandle(pipeOut) diff --git a/chronos/ioselects/ioselectors_select.nim b/chronos/ioselects/ioselectors_select.nim index 12b8a0e..9a2914f 100644 --- a/chronos/ioselects/ioselectors_select.nim +++ b/chronos/ioselects/ioselectors_select.nim @@ -53,9 +53,9 @@ else: when hasThreadSupport: type SelectorImpl[T] = object - rSet: FdSet - wSet: FdSet - eSet: FdSet + rSet: Fdset + wSet: Fdset + eSet: Fdset maxFD: int fds: ptr SharedArray[SelectorKey[T]] count: int @@ -64,9 +64,9 @@ when hasThreadSupport: else: type SelectorImpl[T] = object - rSet: FdSet - wSet: FdSet - eSet: FdSet + rSet: Fdset + wSet: Fdset + eSet: Fdset maxFD: int fds: seq[SelectorKey[T]] count: int @@ -307,7 +307,7 @@ proc selectInto*[T](s: Selector[T], timeout: int, results: var openArray[ReadyKey]): int = var tv = Timeval() var ptv = addr tv - var rset, wset, eset: FdSet + var rset, wset, eset: Fdset verifySelectParams(timeout) diff --git a/chronos/transports/common.nim b/chronos/transports/common.nim index 90a1351..dae39e8 100644 --- a/chronos/transports/common.nim +++ b/chronos/transports/common.nim @@ -621,16 +621,16 @@ when defined(windows): WSAENOBUFS* = 10055 WSAETIMEDOUT* = 10060 - proc cancelIo*(hFile: HANDLE): WINBOOL + proc cancelIo*(hFile: Handle): WINBOOL {.stdcall, dynlib: "kernel32", importc: "CancelIo".} - proc connectNamedPipe*(hPipe: HANDLE, lpOverlapped: ptr OVERLAPPED): WINBOOL + proc connectNamedPipe*(hPipe: Handle, lpOverlapped: ptr OVERLAPPED): WINBOOL {.stdcall, dynlib: "kernel32", importc: "ConnectNamedPipe".} - proc disconnectNamedPipe*(hPipe: HANDLE): WINBOOL + proc disconnectNamedPipe*(hPipe: Handle): WINBOOL {.stdcall, dynlib: "kernel32", importc: "DisconnectNamedPipe".} - proc setNamedPipeHandleState*(hPipe: HANDLE, lpMode, lpMaxCollectionCount, + proc setNamedPipeHandleState*(hPipe: Handle, lpMode, lpMaxCollectionCount, lpCollectDataTimeout: ptr DWORD): WINBOOL {.stdcall, dynlib: "kernel32", importc: "SetNamedPipeHandleState".} - proc resetEvent*(hEvent: HANDLE): WINBOOL + proc resetEvent*(hEvent: Handle): WINBOOL {.stdcall, dynlib: "kernel32", importc: "ResetEvent".} template getTransportTooManyError*(code: int = 0): ref TransportTooManyError = diff --git a/chronos/transports/osnet.nim b/chronos/transports/osnet.nim index b1d3e03..592992e 100644 --- a/chronos/transports/osnet.nim +++ b/chronos/transports/osnet.nim @@ -451,7 +451,7 @@ when defined(linux): # ARPHRD_NONE = 0xFFFE type - SockAddr_nl = object + Sockaddr_nl = object family: cushort pad: cushort pid: uint32 @@ -614,14 +614,14 @@ when defined(linux): IfOther proc createNetlinkSocket(pid: Pid): SocketHandle = - var address: SockAddr_nl + var address: Sockaddr_nl address.family = cushort(AF_NETLINK) address.groups = 0 address.pid = cast[uint32](pid) var res = posix.socket(AF_NETLINK, posix.SOCK_DGRAM, NETLINK_ROUTE) if res != SocketHandle(-1): if posix.bindSocket(res, cast[ptr SockAddr](addr address), - SockLen(sizeof(SockAddr_nl))) != 0: + SockLen(sizeof(Sockaddr_nl))) != 0: discard posix.close(res) res = SocketHandle(-1) res @@ -632,7 +632,7 @@ when defined(linux): rmsg: Tmsghdr iov: IOVec req: NLReq - address: SockAddr_nl + address: Sockaddr_nl type TIovLen = type iov.iov_len @@ -648,7 +648,7 @@ when defined(linux): rmsg.msg_iov = addr iov rmsg.msg_iovlen = 1 rmsg.msg_name = cast[pointer](addr address) - rmsg.msg_namelen = SockLen(sizeof(SockAddr_nl)) + rmsg.msg_namelen = SockLen(sizeof(Sockaddr_nl)) let res = posix.sendmsg(fd, addr rmsg, 0).TIovLen (res == iov.iov_len) @@ -658,7 +658,7 @@ when defined(linux): var rmsg: Tmsghdr iov: IOVec - address: SockAddr_nl + address: Sockaddr_nl buffer: array[64, byte] type TIovLen = type iov.iov_len @@ -696,7 +696,7 @@ when defined(linux): rmsg.msg_iov = addr iov rmsg.msg_iovlen = 1 rmsg.msg_name = cast[pointer](addr address) - rmsg.msg_namelen = SockLen(sizeof(SockAddr_nl)) + rmsg.msg_namelen = SockLen(sizeof(Sockaddr_nl)) let res = posix.sendmsg(fd, addr rmsg, 0).TIovLen (res == iov.iov_len) @@ -704,14 +704,14 @@ when defined(linux): var rmsg: Tmsghdr iov: IOVec - address: SockAddr_nl + address: Sockaddr_nl data.setLen(IFLIST_REPLY_BUFFER) iov.iov_base = cast[pointer](addr data[0]) iov.iov_len = IFLIST_REPLY_BUFFER rmsg.msg_iov = addr iov rmsg.msg_iovlen = 1 rmsg.msg_name = cast[pointer](addr address) - rmsg.msg_namelen = SockLen(sizeof(SockAddr_nl)) + rmsg.msg_namelen = SockLen(sizeof(Sockaddr_nl)) var length = posix.recvmsg(fd, addr rmsg, 0) if length >= 0: data.setLen(length) @@ -993,7 +993,7 @@ elif defined(macosx) or defined(bsd): ifi_reserved1 {.importc: "ifi_reserved1".}: uint32 ifi_reserved2 {.importc: "ifi_reserved2".}: uint32 - SockAddr_dl = object + Sockaddr_dl = object sdl_len: byte sdl_family: byte sdl_index: uint16 @@ -1081,7 +1081,7 @@ elif defined(macosx) or defined(bsd): let family = cast[int](ifap.ifa_addr.sa_family) if family == AF_LINK: var data = cast[ptr IfData](ifap.ifa_data) - var link = cast[ptr SockAddr_dl](ifap.ifa_addr) + var link = cast[ptr Sockaddr_dl](ifap.ifa_addr) res[i].ifIndex = cast[int](link.sdl_index) let nlen = cast[int](link.sdl_nlen) if nlen < len(link.sdl_data): @@ -1093,19 +1093,19 @@ elif defined(macosx) or defined(bsd): res[i].mtu = cast[int](data.ifi_mtu) elif family == posix.AF_INET: fromSAddr(cast[ptr Sockaddr_storage](ifap.ifa_addr), - SockLen(sizeof(SockAddr_in)), ifaddress.host) + SockLen(sizeof(Sockaddr_in)), ifaddress.host) elif family == posix.AF_INET6: fromSAddr(cast[ptr Sockaddr_storage](ifap.ifa_addr), - SockLen(sizeof(SockAddr_in6)), ifaddress.host) + SockLen(sizeof(Sockaddr_in6)), ifaddress.host) if not isNil(ifap.ifa_netmask): var na: TransportAddress var family = cast[cint](ifap.ifa_netmask.sa_family) if family == posix.AF_INET: fromSAddr(cast[ptr Sockaddr_storage](ifap.ifa_netmask), - SockLen(sizeof(SockAddr_in)), na) + SockLen(sizeof(Sockaddr_in)), na) elif family == posix.AF_INET6: fromSAddr(cast[ptr Sockaddr_storage](ifap.ifa_netmask), - SockLen(sizeof(SockAddr_in6)), na) + SockLen(sizeof(Sockaddr_in6)), na) ifaddress.net = IpNet.init(ifaddress.host, na) if ifaddress.host.family != AddressFamily.None: diff --git a/chronos/transports/stream.nim b/chronos/transports/stream.nim index 6627306..bde4f48 100644 --- a/chronos/transports/stream.nim +++ b/chronos/transports/stream.nim @@ -868,7 +868,7 @@ elif defined(windows): else: # We should not raise defects in this loop. discard disconnectNamedPipe(Handle(server.sock)) - discard closeHandle(HANDLE(server.sock)) + discard closeHandle(Handle(server.sock)) raiseAssert osErrorMsg(osLastError()) else: # Server close happens in callback, and we are not started new @@ -1022,7 +1022,7 @@ elif defined(windows): proc pauseAccept(server: StreamServer) {.inline.} = if server.apending: - discard cancelIO(Handle(server.sock)) + discard cancelIo(Handle(server.sock)) proc resumeAccept(server: StreamServer) {.inline.} = if not(server.apending): @@ -1081,7 +1081,7 @@ elif defined(windows): server.asock.closeSocket() retFuture.fail(getServerUseClosedError()) server.clean() - of OsErrorCode(common.WSAENETDOWN), OSErrorCode(common.WSAENETRESET), + of OSErrorCode(common.WSAENETDOWN), OSErrorCode(common.WSAENETRESET), OSErrorCode(common.WSAECONNABORTED), OSErrorCode(common.WSAECONNRESET), OSErrorCode(common.WSAETIMEDOUT): @@ -1223,7 +1223,7 @@ elif defined(windows): cb: continuationPipe, udata: cast[pointer](server)) server.apending = true - let res = connectNamedPipe(HANDLE(server.sock), + let res = connectNamedPipe(Handle(server.sock), cast[POVERLAPPED](addr server.aovl)) if res == 0: let err = osLastError()