Git Product home page Git Product logo

Comments (1)

monyarm avatar monyarm commented on June 5, 2024

Essentially the same issue occurs under Linux, running nimble test, using compiler version 1.6.0

Nim Compiler Version 1.6.0 [Linux: amd64]
Compiled at 2022-01-14
Copyright (c) 2006-2021 by Andreas Rumpf

git hash: 727c6378d2464090564dbcd9bc8b9ac648467e38
active boot switches: -d:release
     Info:  Nimble data file "/home/monyarm/.nimble/nimbledata2.json" has been loaded.
  Executing task test in /opt/nim-workspace/nim-chronos/chronos.nimble

nim c -r --hints:off --verbosity:0 --warning[ObservableStores]:off --styleCheck:usages --styleCheck:error -d:useSysAssert -d:useGcAssert tests/testall
/opt/nim-workspace/nim-chronos/chronos/asyncsync.nim(137, 18) Warning: use `delete(s, first..last)`; delete is deprecated [Deprecated]
/opt/nim-workspace/nim-chronos/chronos/asyncsync.nim(255, 13) Warning: use `delete(s, first..last)`; delete is deprecated [Deprecated]
/opt/nim-workspace/nim-chronos/chronos/transports/common.nim(296, 43) Warning: implicit conversion to 'cstring' from a non-const location: toString(Base10, uint16(port)); this will become a compile time error in the future [CStringConv]
/opt/nim-workspace/nim-chronos/chronos/transports/datagram.nim(448, 11) Warning: Raises Defect on future failure, fix your code and use asyncSpawn!; asyncCheck is deprecated [Deprecated]
/opt/nim-workspace/nim-chronos/chronos/transports/datagram.nim(456, 13) Warning: Raises Defect on future failure, fix your code and use asyncSpawn!; asyncCheck is deprecated [Deprecated]
/opt/nim-workspace/nim-chronos/chronos/transports/stream.nim(1608, 11) Warning: Raises Defect on future failure, fix your code and use asyncSpawn!; asyncCheck is deprecated [Deprecated]
/opt/nim-workspace/nim-chronos/chronos/transports/osnet.nim(468, 19) Warning: use `char` or `uint8` instead; cuchar is deprecated [Deprecated]
/opt/nim-workspace/nim-chronos/chronos/transports/osnet.nim(469, 16) Warning: use `char` or `uint8` instead; cuchar is deprecated [Deprecated]
/opt/nim-workspace/nim-chronos/chronos/transports/osnet.nim(476, 19) Warning: use `char` or `uint8` instead; cuchar is deprecated [Deprecated]
/opt/nim-workspace/nim-chronos/chronos/transports/osnet.nim(477, 22) Warning: use `char` or `uint8` instead; cuchar is deprecated [Deprecated]
/opt/nim-workspace/nim-chronos/chronos/transports/osnet.nim(478, 18) Warning: use `char` or `uint8` instead; cuchar is deprecated [Deprecated]
/opt/nim-workspace/nim-chronos/chronos/transports/osnet.nim(479, 18) Warning: use `char` or `uint8` instead; cuchar is deprecated [Deprecated]
/opt/nim-workspace/nim-chronos/chronos/streams/tlsstream.nim(590, 27) Warning: use `char` or `uint8` instead; cuchar is deprecated [Deprecated]
/opt/nim-workspace/nim-chronos/chronos/streams/tlsstream.nim(594, 27) Warning: use `char` or `uint8` instead; cuchar is deprecated [Deprecated]
/opt/nim-workspace/nim-chronos/chronos/streams/tlsstream.nim(598, 28) Warning: use `char` or `uint8` instead; cuchar is deprecated [Deprecated]
/opt/nim-workspace/nim-chronos/chronos/streams/tlsstream.nim(602, 28) Warning: use `char` or `uint8` instead; cuchar is deprecated [Deprecated]
/opt/nim-workspace/nim-chronos/chronos/streams/tlsstream.nim(606, 28) Warning: use `char` or `uint8` instead; cuchar is deprecated [Deprecated]
/opt/nim-workspace/nim-chronos/chronos/streams/tlsstream.nim(617, 26) Warning: use `char` or `uint8` instead; cuchar is deprecated [Deprecated]
/opt/nim-workspace/nim-chronos/chronos/streams/tlsstream.nim(717, 24) Warning: use `char` or `uint8` instead; cuchar is deprecated [Deprecated]
/opt/nim-workspace/nim-chronos/tests/testasyncstream.nim(796, 7) template/generic instantiation of `suite` from here
/opt/nim-workspace/nim-chronos/tests/testasyncstream.nim(830, 66) template/generic instantiation of `async` from here
/opt/nim-workspace/nim-chronos/tests/testasyncstream.nim(852, 26) template/generic instantiation of `init` from here
/opt/nim-workspace/nim-chronos/chronos/streams/tlsstream.nim(717, 24) Warning: use `char` or `uint8` instead; cuchar is deprecated [Deprecated]

[Suite] Macro transformations test suite
  [OK] `await` command test
  [OK] `awaitne` command test

[Suite] Asynchronous sync primitives test suite
  [OK] AsyncLock() behavior test
  [OK] AsyncLock() cancellation test
  [OK] AsyncLock() flag consistency test
  [OK] AsyncLock() double release test
  [OK] AsyncLock() non-acquired release test
  [OK] AsyncEvent() behavior test
  [OK] AsyncQueue() behavior test
  [OK] AsyncQueue() many iterations test
  [OK] AsyncQueue() addLast/addFirst/popLast/popFirst test
  [OK] AsyncQueue() clear test
  [OK] AsyncQueue() iterators/assignments test
  [OK] AsyncQueue() representation test
  [OK] AsyncQueue() contains test
  [OK] AsyncEventBus() awaitable primitives test
  [OK] AsyncEventBus() waiters test
  [OK] AsyncEventBus() subscribers test
  [OK] AsyncEventBus() waiters for all events test
  [OK] AsyncEventBus() subscribers to all events test

[Suite] callSoon() tests suite
  [OK] User-defined callback argument test
  [OK] `Asynchronous dead end` #7193 test
  [OK] `callSoon() is not working prior getGlobalDispatcher()` #7192 test

[Suite] Asynchronous timers & steps test suite
  [OK] Timer reliability test [mono]
  [OK] 10 timers with 10ms timeout
  [OK] 10 timers with 100ms timeout
  [OK] 10 timers with 1000ms timeout
  [OK] Asynchronous steps test

[Suite] Future[T] behavior test suite
  [OK] Async undefined behavior (#7758) test
  [OK] Immediately completed asynchronous procedure test
  [OK] Future[T] callbacks are invoked in reverse order (#7197) test
  [OK] Future[T] callbacks not changing order after removeCallback()
  [OK] wait[T]() test
  [OK] discard result Future[T] test
  [OK] allFutures(zero) test
  [OK] allFutures(varargs) test
  [OK] allFutures(varargs) test
  [OK] allFutures() already completed test
  [OK] allFinished() already completed test
  [OK] one(zero) test
  [OK] one(varargs) test
  [OK] one(seq) test
  [OK] one(completed) test
  [OK] or() test
  [OK] or() already completed test
  [OK] cancel() async procedure test
  [OK] cancelAndWait() test
  [OK] Break cancellation propagation test
  [OK] Cancellation callback test
  [OK] Cancellation wait() test
  [OK] Cancellation withTimeout() test
  [OK] Cancellation race test
  [OK] asyncSpawn() test
  [OK] location test
  [OK] withTimeout(fut) should wait cancellation test
  [OK] wait(fut) should wait cancellation test
  [OK] race(zero) test
  [OK] race(varargs) test
  [OK] race(seq) test
  [OK] race() already completed test
  [OK] race() cancellation test
  [OK] Unsigned integer overflow test

[Suite] Signal handling test suite
  [OK] SIGINT test
  [OK] SIGTERM test

[Suite] TransportAddress test suite
  [OK] initTAddress(string)
  [OK] initTAddress(string, Port)
  [OK] initTAddress(string, int)
  [OK] resolveTAddress(string, IPv4)
  [OK] resolveTAddress(string, Port, IPv4)
  [OK] Faulty initTAddress(string)
  [OK] Faulty initTAddress(string, Port)
  [OK] Faulty initTAddress(string, Port)
  [OK] Faulty resolveTAddress(string, IPv4) for IPv6 address
  [OK] Faulty resolveTAddress(string, Port, IPv4) for IPv6 address

[Suite] Datagram Transport test suite
  [OK] close(transport) test
  [OK] sendTo(pointer) test (2000 messages)
  [OK] send(pointer) test (2000 messages)
  [OK] sendTo(string) test (2000 messages)
  [OK] send(string) test (2000 messages)
  [OK] sendTo(seq[byte]) test (2000 messages)
  [OK] send(seq[byte]) test (2000 messages)
  [OK] Unbounded multiple clients with messages (20 clients x 20 messages)
  [OK] Bounded multiple clients with messages (20 clients x 20 messages)
  [OK] Datagram connection reset test
/home/monyarm/.nimble/pkgs2/unittest2-0.0.3-1462a58ec0de38d431e728578c82edcc47619476/unittest2.nim(835) testdatagram
/home/monyarm/.nimble/pkgs2/unittest2-0.0.3-1462a58ec0de38d431e728578c82edcc47619476/unittest2.nim(885) runTest`gensym496
/opt/nim-workspace/nim-chronos/chronos/asyncloop.nim(1091) waitFor
/opt/nim-workspace/nim-chronos/chronos/asyncloop.nim(279) poll
/opt/nim-workspace/nim-chronos/chronos/asyncmacro2.nim(275) testBroadcast
/opt/nim-workspace/nim-chronos/chronos/asyncfutures2.nim(501) internalCheckComplete
[[reraised from:
/home/monyarm/.nimble/pkgs2/unittest2-0.0.3-1462a58ec0de38d431e728578c82edcc47619476/unittest2.nim(835) testdatagram
/home/monyarm/.nimble/pkgs2/unittest2-0.0.3-1462a58ec0de38d431e728578c82edcc47619476/unittest2.nim(885) runTest`gensym496
/opt/nim-workspace/nim-chronos/chronos/asyncloop.nim(1093) waitFor
/opt/nim-workspace/nim-chronos/chronos/asyncfutures2.nim(515) read
/opt/nim-workspace/nim-chronos/chronos/asyncfutures2.nim(501) internalCheckComplete
]]

    Unhandled exception: Timeout exceeded! [AsyncTimeoutError]
  [FAILED] Broadcast test
  [OK] 0.0.0.0/::0 (INADDR_ANY) test
    /opt/nim-workspace/nim-chronos/tests/testdatagram.nim(561, 54): Check failed: getTracker("datagram.transport").isLeaked() == false
    getTracker("datagram.transport").isLeaked() was true
    false was false
  [FAILED] Transports leak test

[Suite] Stream Transport test suite
  [OK] [IP] close(transport) test
  [OK] [IP] readUntil() buffer overflow test
  [OK] [IP] readLine() buffer overflow test
  [OK] [IP] readExactly() unexpected disconnect test
  [OK] [IP] readUntil() unexpected disconnect test
  [OK] [IP] readLine() unexpected disconnect empty string test
  [OK] [IP] Closing socket while operation pending test (issue #8)
  [OK] [IP] readLine() multiple clients with messages (5 clients x 10 messages)
  [OK] [IP] readExactly() multiple clients with messages (5 clients x 10 messages)
  [OK] [IP] readUntil() multiple clients with messages (5 clients x 10 messages)
  [OK] [IP] write(string)/read(int) multiple clients (5 clients x 10 messages)
  [OK] [IP] write(seq[byte])/consume(int)/read(int) multiple clients (5 clients x 10 messages)
  [OK] [IP] writeFile() multiple clients (10 files)
  [OK] [IP] Connection refused test
  [OK] [IP] readOnce() read until atEof() test
  [OK] [IP] Connection reset test on send() only
  [OK] [IP] 0.0.0.0/::0 (INADDR_ANY) test
  [OK] [IP] write() return value test (issue #73)
  [OK] [IP] readLine() partial separator test
  [OK] [IP] readMessage() test
  [OK] [IP] accept() test
  [OK] [IP] close() while in accept() waiting test
  [OK] [IP] Intermediate transports leak test #1
  [OK] [IP] accept() too many file descriptors test
  [OK] [IP] accept() and close() race test
  [OK] [IP] write() queue notification on close() test
  [OK] [IP] read() notification on close() test
  [OK] [UNIX] close(transport) test
  [OK] [UNIX] readUntil() buffer overflow test
  [OK] [UNIX] readLine() buffer overflow test
  [OK] [UNIX] readExactly() unexpected disconnect test
  [OK] [UNIX] readUntil() unexpected disconnect test
  [OK] [UNIX] readLine() unexpected disconnect empty string test
  [OK] [UNIX] Closing socket while operation pending test (issue #8)
  [OK] [UNIX] readLine() multiple clients with messages (5 clients x 10 messages)
  [OK] [UNIX] readExactly() multiple clients with messages (5 clients x 10 messages)
  [OK] [UNIX] readUntil() multiple clients with messages (5 clients x 10 messages)
  [OK] [UNIX] write(string)/read(int) multiple clients (5 clients x 10 messages)
  [OK] [UNIX] write(seq[byte])/consume(int)/read(int) multiple clients (5 clients x 10 messages)
  [OK] [UNIX] writeFile() multiple clients (10 files)
  [OK] [UNIX] Connection refused test
  [OK] [UNIX] readOnce() read until atEof() test
  [OK] [UNIX] Connection reset test on send() only
  [SKIPPED] [UNIX] 0.0.0.0/::0 (INADDR_ANY) test
  [OK] [UNIX] write() return value test (issue #73)
  [OK] [UNIX] readLine() partial separator test
  [OK] [UNIX] readMessage() test
  [OK] [UNIX] accept() test
  [OK] [UNIX] close() while in accept() waiting test
  [OK] [UNIX] Intermediate transports leak test #1
  [OK] [UNIX] accept() too many file descriptors test
  [OK] [UNIX] accept() and close() race test
  [OK] [UNIX] write() queue notification on close() test
  [OK] [UNIX] read() notification on close() test
  [OK] Servers leak test
  [OK] Transports leak test
  [OK] File descriptors leak test

[Suite] Server's test suite
  [OK] Stream Server start/stop test
  [OK] Stream Server stop without start test
  [OK] Stream Server inherited object test
  [OK] StreamServer[T] test

[Suite] Asynchronous issues test suite
  [OK] Issue #6
  [OK] Callback-race double completion [wait()] test
  [OK] Callback-race double completion [withTimeout()] test
  [OK] Multiple await on single future test [Nim's issue #13889]
  [OK] Defer for asynchronous procedures test [Nim's issue #13899]

[Suite] Network utilities test suite
  [OK] IPv4 networks test
  [OK] IPv6 networks test
  [OK] IP masks test
  [OK] IP networks test
  [OK] IpMask test vectors
  [OK] IpMask serialization/deserialization test
  [OK] IpMask non-canonical masks
  [OK] IpNet test vectors
  [OK] IpNet contains test vectors
  [OK] IpNet serialization/deserialization test
  [OK] IPv4 <-> IPv6 mapping test
1.  lo: flags = 65609 mtu 65536 state StatusUnknown
    IfSoftwareLoopback 00:00:00:00:00:00
    inet 127.0.0.1/8 netmask 255.0.0.0 brd 127.255.255.255
    inet6 ::1/128 netmask ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff brd ::1
2.  enp1s0: flags = 4099 mtu 1500 state StatusDown
    IfEthernetCsmacd 2C:F0:5D:9B:98:2C
3.  wlp4s0: flags = 69699 mtu 1500 state StatusUp
    IfEthernetCsmacd A4:B1:C1:97:4E:FB
    inet 192.168.200.75/24 netmask 255.255.255.0 brd 192.168.200.255
    inet6 fe80::a6cd:a547:970b:475b/64 netmask ffff:ffff:ffff:ffff:: brd fe80::ffff:ffff:ffff:ffff
4.  ztzlgmpdgl: flags = 69699 mtu 2800 state StatusUnknown
    IfEthernetCsmacd AA:88:83:2E:7C:C3
    inet 10.242.228.91/16 netmask 255.255.0.0 brd 10.242.255.255
    inet6 fe80::a888:83ff:fe2e:7cc3/64 netmask ffff:ffff:ffff:ffff:: brd fe80::ffff:ffff:ffff:ffff
5.  docker0: flags = 4099 mtu 1500 state StatusDown
    IfEthernetCsmacd 02:42:B3:76:14:38
    inet 172.17.0.1/16 netmask 255.255.0.0 brd 172.17.255.255
  [OK] getInterfaces() test
8.8.8.8 via gateway 192.168.200.1 src 192.168.200.75
  [OK] getBestRoute() test
  [OK] TransportAddress arithmetic operations test

[Suite] AsyncStream test suite
  [OK] AsyncStream(StreamTransport) readExactly() test
  [OK] AsyncStream(StreamTransport) readUntil() test
  [OK] AsyncStream(StreamTransport) readLine() test
  [OK] AsyncStream(StreamTransport) read() test
  [OK] AsyncStream(StreamTransport) consume() test
  [OK] AsyncStream(StreamTransport) leaks test
  [OK] AsyncStream(AsyncStream) readExactly() test
  [OK] AsyncStream(AsyncStream) readUntil() test
  [OK] AsyncStream(AsyncStream) readLine() test
  [OK] AsyncStream(AsyncStream) read() test
  [OK] AsyncStream(AsyncStream) consume() test
  [OK] AsyncStream(AsyncStream) leaks test

[Suite] ChunkedStream test suite
  [OK] ChunkedStream test vectors
  [OK] ChunkedStream incorrect chunk test
  [OK] ChunkedStream hex decoding test
  [OK] ChunkedStream too big chunk header test
  [OK] ChunkedStream read/write test
  [OK] ChunkedStream read small chunks test
  [OK] ChunkedStream leaks test

[Suite] TLSStream test suite
  [OK] Simple HTTPS connection
  [OK] Simple server with RSA self-signed certificate
  [OK] TLSStream leaks test

[Suite] BoundedStream test suite
  [OK] BoundedStream(size) reading/writing test [== 100]
  [OK] BoundedStream(size) overflow test [== 100]
  [OK] BoundedStream(size) incomplete test [== 100]
  [OK] BoundedStream(size) empty message test [== 100]
  [OK] BoundedStream(boundary) reading test [== 100]
  [OK] BoundedStream(boundary) double message test [== 100]
  [OK] BoundedStream(size+boundary) reading size-bound test [== 100]
  [OK] BoundedStream(boundary) reading incomplete test [== 100]
  [OK] BoundedStream(boundary) empty message test [== 100]
  [OK] BoundedStream(size) reading/writing test [== 60000]
  [OK] BoundedStream(size) overflow test [== 60000]
  [OK] BoundedStream(size) incomplete test [== 60000]
  [OK] BoundedStream(size) empty message test [== 60000]
  [OK] BoundedStream(boundary) reading test [== 60000]
  [OK] BoundedStream(boundary) double message test [== 60000]
  [OK] BoundedStream(size+boundary) reading size-bound test [== 60000]
  [OK] BoundedStream(boundary) reading incomplete test [== 60000]
  [OK] BoundedStream(boundary) empty message test [== 60000]
  [OK] BoundedStream(size) reading/writing test [<= 100]
  [OK] BoundedStream(size) overflow test [<= 100]
  [OK] BoundedStream(size) incomplete test [<= 100]
  [OK] BoundedStream(size) empty message test [<= 100]
  [OK] BoundedStream(boundary) reading test [<= 100]
  [OK] BoundedStream(boundary) double message test [<= 100]
  [OK] BoundedStream(size+boundary) reading size-bound test [<= 100]
  [OK] BoundedStream(boundary) reading incomplete test [<= 100]
  [OK] BoundedStream(boundary) empty message test [<= 100]
  [OK] BoundedStream(size) reading/writing test [<= 60000]
  [OK] BoundedStream(size) overflow test [<= 60000]
  [OK] BoundedStream(size) incomplete test [<= 60000]
  [OK] BoundedStream(size) empty message test [<= 60000]
  [OK] BoundedStream(boundary) reading test [<= 60000]
  [OK] BoundedStream(boundary) double message test [<= 60000]
  [OK] BoundedStream(size+boundary) reading size-bound test [<= 60000]
  [OK] BoundedStream(boundary) reading incomplete test [<= 60000]
  [OK] BoundedStream(boundary) empty message test [<= 60000]
  [OK] BoundedStream read small chunks test
  [OK] BoundedStream zero-sized streams test
  [OK] BoundedStream leaks test

[Suite] HTTP server testing suite
  [OK] Request headers timeout test
  [OK] Empty headers test
  [OK] Too big headers test
  [OK] Too big request body test (content-length)
  [OK] Too big request body test (getBody()/chunked encoding)
  [OK] Too big request body test (consumeBody()/chunked encoding)
  [OK] Too big request body test (post()/urlencoded/chunked encoding)
  [OK] Too big request body test (post()/multipart/chunked encoding)
  [OK] Query arguments test
  [OK] Headers test
  [OK] POST arguments (urlencoded/content-length) test
  [OK] POST arguments (urlencoded/chunked encoding) test
  [OK] POST arguments (multipart/content-length) test
  [OK] POST arguments (multipart/chunked encoding) test
  [OK] drop() connections test
  [OK] Content-Type multipart boundary test
  [OK] HttpTable integer parser test
  [OK] HttpTable behavior test
  [OK] getTransferEncoding() test
  [OK] getContentEncoding() test
  [OK] queryParams() test
  [OK] Preferred Accept handling test
  [OK] SSE server-side events stream test
  [OK] Leaks test

[Suite] Secure HTTP server testing suite
  [OK] HTTPS server (successful handshake) test
  [OK] HTTPS server (failed handshake) test

[Suite] HTTP client testing suite
  [OK] HTTP all request methods test
  [OK] HTTP(S) all request methods test
  [OK] HTTP client response streaming test
  [OK] HTTP(S) client response streaming test
  [OK] HTTP client (size) request streaming test
  [OK] HTTP(S) client (size) request streaming test
  [OK] HTTP client (chunked) request streaming test
  [OK] HTTP(S) client (chunked) request streaming test
  [OK] HTTP client (size + chunked) url-encoded POST test
  [OK] HTTP(S) client (size + chunked) url-encoded POST test
  [OK] HTTP client (size + chunked) multipart POST test
  [OK] HTTP(S) client (size + chunked) multipart POST test
  [OK] HTTP client redirection test
  [OK] HTTP(S) client redirection test
  [OK] HTTP client maximum redirections test
  [OK] HTTP(S) client maximum redirections test
  [OK] HTTPS basic authorization test
  [OK] Leaks test

[Suite] Asynchronous utilities test suite
  [SKIPPED] Future clean and leaks test
  [SKIPPED] FutureList basics test
  [SKIPPED] FutureList async procedure test
Error: execution of an external program failed: '/opt/nim-workspace/nim-chronos/tests/testall '
stack trace: (most recent call last)
/tmp/nimblecache-3598003041/nimscriptapi_3133183646.nim(196, 16)
/opt/nim-workspace/nim-chronos/chronos.nimble(29, 9) testTask
/opt/nim-workspace/nim/lib/system/nimscript.nim(273, 7) exec
�[1m/opt/nim-workspace/nim/lib/system/nimscript.nim(273, 7) �[0m�[31mError: �[0munhandled exception: FAILED: nim c -r --hints:off --verbosity:0 --warning[ObservableStores]:off --styleCheck:usages --styleCheck:error -d:useSysAssert -d:useGcAssert tests/testall [OSError]�[36m�[0m�[0m
/opt/nim-workspace/nim/nimble/src/nimble.nim(1953) nimble
/opt/nim-workspace/nim/nimble/src/nimble.nim(1930) doAction
/opt/nim-workspace/nim/nimble/src/nimblepkg/nimscriptexecutor.nim(43) execCustom
/opt/nim-workspace/nim/nimble/src/nimblepkg/nimscriptwrapper.nim(191) execTask
/opt/nim-workspace/nim/nimble/src/nimblepkg/nimscriptwrapper.nim(160) execScript

    Error:  Exception raised during nimble script execution
     Info:  Nimble data file "/home/monyarm/.nimble/nimbledata2.json" has been saved.

from nim-chronos.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.