1# This tests, which things in the IO package exist on a given platform: 2StdGlobalVarsIO := Set( 3[ "IO", "IO_AddToPickled", "IO_AddToUnpickled", "IO_ClearPickleCache", 4 "IO_Close", "IO_CloseAllFDs", "IO_EOF", "IO_Environment", "IO_Error", 5 "IO_File", "IO_FinalizePickled", "IO_FinalizeUnpickled", "IO_Flush", 6 "IO_FlushNonBlocking", "IO_GenericObjectPickler", 7 "IO_GenericObjectUnpickler", "IO_GetFD", "IO_GetWBuf", "IO_HasData", 8 "IO_InstallSIGCHLDHandler", "IO_ListDir", "IO_MakeEnvList", 9 "IO_MakeIPAddressPort", "IO_Nothing", "IO_OK", 10 "IO_PICKLECACHE", "IO_Pickle", "IO_PickleByString", "IO_PipeThrough", 11 "IO_PipeThroughWithError", "IO_Popen", "IO_Popen2", "IO_Popen3", "IO_Read", 12 "IO_ReadAttribute", "IO_ReadBlock", "IO_ReadLine", "IO_ReadLines", 13 "IO_ReadSmallInt", "IO_ReadUntilEOF", "IO_ReadyForFlush", 14 "IO_ReadyForWrite", "IO_RestoreSIGCHLDHandler", "IO_Result", 15 "IO_ResultsFamily", "IO_Select", "IO_SendStringBackground", "IO_Unpickle", 16 "IO_UnpickleByEvalString", "IO_Unpicklers", "IO_WaitPid", "IO_WrapFD", 17 "IO_Write", "IO_WriteAttribute", "IO_WriteFlush", "IO_WriteLine", 18 "IO_WriteLines", "IO_WriteNonBlocking", "IO_WriteSmallInt", "IO_accept", 19 "IO_bind", "IO_chdir", "IO_chmod", "IO_chown", "IO_close", "IO_closedir", 20 "IO_connect", "IO_creat", "IO_dup", "IO_dup2", "IO_environ", "IO_execv", 21 "IO_execve", "IO_execvp", "IO_exit", "IO_fchmod", "IO_fchown", "IO_fcntl", 22 "IO_fork", "IO_fstat", "IO_gethostbyname", "IO_getsockopt", "IO_lchown", 23 "IO_link", "IO_listen", "IO_lseek", "IO_lstat", "IO_make_sockaddr_in", 24 "IO_mkdir", "IO_mkfifo", "IO_mknod", "IO_open", "IO_opendir", "IO_pipe", 25 "IO_read", "IO_readdir", "IO_readlink", "IO_recv", "IO_recvfrom", 26 "IO_rename", "IO_rewinddir", "IO_rmdir", "IO_seekdir", "IO_select", 27 "IO_send", "IO_sendto", "IO_setsockopt", "IO_socket", "IO_stat", 28 "IO_symlink", "IO_telldir", "IO_unlink", "IO_write", 29 "IO_FileFilterString", "IO_FilteredFile", "IO_FindExecutable", 30 "IO_ForkExecWithFDs", "IO_StartPipeline", "IO_StringFilterFile", 31 "IO_FuncToUnpickle", "IO_IsAlreadyPickled", "IO_PackageIsLoaded", 32 "IO_PkgThingsToRead", "IO_getpid", "IO_getppid", "IO_kill", 33 "IO_gettimeofday", "IO_gmtime", "IO_localtime", "IO_gethostname", 34 "IO_getsockname", "IOHub", "IOHubFamily", "IOHubType" ] ); 35StdComponentsIO := Set( 36[ "AF_APPLETALK", "AF_ASH", "AF_ATMPVC", "AF_ATMSVC", "AF_AX25", 37 "AF_BLUETOOTH", "AF_BRIDGE", "AF_DECnet", "AF_ECONET", "AF_FILE", 38 "AF_INET", "AF_INET6", "AF_IPX", "AF_IRDA", "AF_KEY", "AF_LOCAL", "AF_MAX", 39 "AF_NETBEUI", "AF_NETLINK", "AF_NETROM", "AF_PACKET", "AF_PPPOX", 40 "AF_ROSE", "AF_ROUTE", "AF_SECURITY", "AF_SNA", "AF_UNIX", "AF_UNSPEC", 41 "AF_WANPIPE", "AF_X25", "DefaultBufSize", "EACCES", "EADDRINUSE", 42 "EAFNOSUPPORT", "EAGAIN", "EALREADY", "EBADF", "EBUSY", "ECHILD", 43 "ECONNABORTED", "ECONNREFUSED", "EEXIST", "EFAULT", "EFBIG", "EINPROGRESS", 44 "EINTR", "EINVAL", "EIO", "EISCONN", "EISDIR", "ELOOP", "EMFILE", "EMLINK", 45 "ENAMETOOLONG", "ENFILE", "ENODEV", "ENOENT", "ENOMEM", "ENOSPC", 46 "ENOTDIR", "ENOTEMPTY", "ENOTSOCK", "ENXIO", "EOPNOTSUPP", "EOVERFLOW", 47 "EPERM", "EPIPE", "EPROTO", "EPROTONOSUPPORT", "EROFS", "ESPIPE", 48 "ETIMEDOUT", "ETXTBSY", "EWOULDBLOCK", "EXDEV", "FD_CLOEXEC", "F_DUPFD", 49 "F_GETFD", "F_GETFL", "F_GETLEASE", "F_GETOWN", "F_GETSIG", "F_RDLCK", 50 "F_SETFD", "F_SETFL", "F_SETLEASE", "F_SETOWN", "F_SETSIG", "F_UNLCK", 51 "F_WRLCK", "HOST_NOT_FOUND", "IP_ADD_MEMBERSHIP", "IP_DROP_MEMBERSHIP", 52 "IP_HDRINCL", "IP_MTU_DISCOVER", "IP_MULTICAST_IF", "IP_MULTICAST_LOOP", 53 "IP_MULTICAST_TTL", "IP_OPTIONS", "IP_PKTINFO", "IP_RECVERR", 54 "IP_RECVOPTS", "IP_RECVTOS", "IP_RECVTTL", "IP_RETOPTS", "IP_ROUTER_ALERT", 55 "IP_TOS", "IP_TTL", "LineEndChar", "LineEndChars", "MSG_CTRUNC", 56 "MSG_DONTWAIT", "MSG_EOR", "MSG_ERRQUEUE", "MSG_OOB", "MSG_PEEK", 57 "MSG_TRUNC", "MSG_WAITALL", "MaxFDToClose", "NO_ADDRESS", "NO_DATA", 58 "NO_RECOVERY", "O_APPEND", "O_ASYNC", "O_CREAT", "O_DIRECT", "O_DIRECTORY", 59 "O_EXCL", "O_LARGEFILE", "O_NDELAY", "O_NOATIME", "O_NOCTTY", "O_NOFOLLOW", 60 "O_NONBLOCK", "O_RDONLY", "O_RDWR", "O_SYNC", "O_TRUNC", "O_WRONLY", 61 "PF_APPLETALK", "PF_ASH", "PF_ATMPVC", "PF_ATMSVC", "PF_AX25", 62 "PF_BLUETOOTH", "PF_BRIDGE", "PF_DECnet", "PF_ECONET", "PF_FILE", 63 "PF_INET", "PF_INET6", "PF_IPX", "PF_IRDA", "PF_KEY", "PF_LOCAL", "PF_MAX", 64 "PF_NETBEUI", "PF_NETLINK", "PF_NETROM", "PF_PACKET", "PF_PPPOX", 65 "PF_ROSE", "PF_ROUTE", "PF_SECURITY", "PF_SNA", "PF_UNIX", "PF_WANPIPE", 66 "PF_X25", "PIPE_BUF", "SEEK_CUR", "SEEK_END", "SEEK_SET", "SOCK_DGRAM", 67 "SOCK_PACKET", "SOCK_RAW", "SOCK_RDM", "SOCK_SEQPACKET", "SOCK_STREAM", 68 "SOL_SOCKET", "SO_ACCEPTCONN", "SO_BINDTODEVICE", "SO_BROADCAST", 69 "SO_BSDCOMPAT", "SO_DEBUG", "SO_DONTROUTE", "SO_ERROR", "SO_KEEPALIVE", 70 "SO_LINGER", "SO_OOBINLINE", "SO_PASSCRED", "SO_PEERCRED", "SO_PRIORITY", 71 "SO_RCVBUF", "SO_RCVLOWAT", "SO_RCVTIMEO", "SO_REUSEADDR", "SO_SNDBUF", 72 "SO_SNDLOWAT", "SO_SNDTIMEO", "SO_TYPE", "S_IFBLK", "S_IFCHR", "S_IFDIR", 73 "S_IFIFO", "S_IFLNK", "S_IFMT", "S_IFREG", "S_IFSOCK", "S_IRGRP", 74 "S_IROTH", "S_IRUSR", "S_IRWXG", "S_IRWXO", "S_IRWXU", "S_ISGID", 75 "S_ISUID", "S_ISVTX", "S_IWGRP", "S_IWOTH", "S_IWUSR", "S_IXGRP", 76 "S_IXOTH", "S_IXUSR", "TCP_CORK", "TCP_DEFER_ACCEPT", "TCP_INFO", 77 "TCP_KEEPCNT", "TCP_KEEPIDLE", "TCP_KEEPINTVL", "TCP_LINGER2", 78 "TCP_MAXSEG", "TCP_NODELAY", "TCP_QUICKACK", "TCP_SYNCNT", 79 "TCP_WINDOW_CLAMP", "TRY_AGAIN", "__GNUC_MINOR__", "__GNUC__", 80 "NonBlockWriteAmount", "SIGABRT", "SIGALRM", "SIGBUS", "SIGCHLD", 81 "SIGCLD", "SIGCONT", "SIGFPE", 82 "SIGHUP", "SIGILL", "SIGINT", "SIGIO", "SIGIOT", "SIGKILL", "SIGPIPE", 83 "SIGPOLL", "SIGPROF", "SIGPWR", "SIGQUIT", "SIGSEGV", "SIGSTKFLT", 84 "SIGSTOP", "SIGSYS", "SIGTERM", "SIGTRAP", "SIGTSTP", "SIGTTIN", "SIGTTOU", 85 "SIGUNUSED", "SIGURG", "SIGUSR1", "SIGUSR2", "SIGVTALRM", "SIGWINCH", 86 "SIGXCPU", "SIGXFSZ", "IP_MTU" ]); 87# Note missing but possible (includes missing because of autoconf: 88# "ENOBUGS", "ICMP_FILTER", "IP_MTU" 89GlobalVarsIO := 90 Set(Filtered(NamesGVars(),x->Length(x)>=2 and x{[1..2]} = "IO")); 91ComponentsIO := Set(NamesOfComponents(IO)); 92 93Print("Not available here:\n",Difference(StdGlobalVarsIO,GlobalVarsIO),"\n", 94 Difference(StdComponentsIO,ComponentsIO),"\n\n"); 95Print("More available here:\n",Difference(GlobalVarsIO,StdGlobalVarsIO),"\n", 96 Difference(ComponentsIO,StdComponentsIO),"\n\n"); 97 98 99