[Chapel Merge] [GSoC 2021] Socket Library

Branch: refs/heads/main
Revision: 4926cbd
Author: mppf
Link: Unavailable
Log Message:

Merge pull request #17960 from king-11/socket_library

[GSoC 2021] Socket Library

[PR by @king-11 as part of GSoC 2021. Reviewed by @mppf and @e-kayrakli ]

This PR adds an implementation of the Socket library to modules/packages.

This first version has some caveats:

  • requires libevent 2.1 or newer
  • requires CHPL_TASKS=qthreads right now (fifo doesn't work yet)
  • requires the C backend right now (CHPL_TARGET_COMPILER=llvm doesn't work yet)
  • requires libevent be available in /usr/include/event2

Design

#17899

Future Work

  • DNS Resolution using libevent

  • IO Plugin using libevent for non-blocking IO

  • sendAll method for UDP and TCP on lines of python's sendAll

  • Make work with LLVM and FIFO

  • Separate Module for Libevent

    Modified Files:
    A modules/packages/Socket.chpl
    A test/library/packages/Socket.skipif
    A test/library/packages/Socket/connectblocking.chpl
    A test/library/packages/Socket/connectblocking.good
    A test/library/packages/Socket/connecttimeout.chpl
    A test/library/packages/Socket/connecttimeout.good
    A test/library/packages/Socket/ipaddr.chpl
    A test/library/packages/Socket/ipaddr.good
    A test/library/packages/Socket/ipfamily.chpl
    A test/library/packages/Socket/ipfamily.good
    A test/library/packages/Socket/ipv6/SKIPIF
    A test/library/packages/Socket/ipv6/connect_blocking_ipv6.chpl
    A test/library/packages/Socket/ipv6/connect_blocking_ipv6.good
    A test/library/packages/Socket/ipv6/connect_timeout_ipv6.chpl
    A test/library/packages/Socket/ipv6/connect_timeout_ipv6.good
    A test/library/packages/Socket/ipv6/listen_ipv6.chpl
    A test/library/packages/Socket/ipv6/listen_ipv6.good
    A test/library/packages/Socket/ipv6/udpio_ipv6.chpl
    A test/library/packages/Socket/ipv6/udpio_ipv6.good
    A test/library/packages/Socket/listen.chpl
    A test/library/packages/Socket/listen.good
    A test/library/packages/Socket/networkoptimization.chpl
    A test/library/packages/Socket/networkoptimization.good
    A test/library/packages/Socket/tcpio.chpl
    A test/library/packages/Socket/tcpio.good
    A test/library/packages/Socket/udpio_ipv4.chpl
    A test/library/packages/Socket/udpio_ipv4.good
    M modules/Makefile
    M modules/standard/Sys.chpl

    Compare: Comparing ef771ff9bad2...4926cbd625c0 · chapel-lang/chapel · GitHub