| 1 | ;;; groupings.alist -*-scheme-*- |
| 2 | |
| 3 | ;; Copyright (C) 2002, 2006 Free Software Foundation, Inc. |
| 4 | ;; |
| 5 | ;; This program is free software; you can redistribute it and/or |
| 6 | ;; modify it under the terms of the GNU Lesser General Public License |
| 7 | ;; as published by the Free Software Foundation; either version 3, or |
| 8 | ;; (at your option) any later version. |
| 9 | ;; |
| 10 | ;; This program is distributed in the hope that it will be useful, but |
| 11 | ;; WITHOUT ANY WARRANTY; without even the implied warranty of |
| 12 | ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| 13 | ;; Lesser General Public License for more details. |
| 14 | ;; |
| 15 | ;; You should have received a copy of the GNU Lesser General Public |
| 16 | ;; License along with this software; see the file COPYING.LESSER. If |
| 17 | ;; not, write to the Free Software Foundation, Inc., 51 Franklin |
| 18 | ;; Street, Fifth Floor, Boston, MA 02110-1301 USA |
| 19 | |
| 20 | ;;; Commentary: |
| 21 | |
| 22 | ;; This file describes interface element groupings. |
| 23 | ;; See (scripts scan-api) commentary for more info. |
| 24 | ;; NOTE: Order matters; put simple ones first, composites after. |
| 25 | ;; |
| 26 | ;; TODO: Add goops, add math, etc etc. |
| 27 | ;; Group `guile-C-API' needs much more serious thought. |
| 28 | |
| 29 | ;;; Code: |
| 30 | |
| 31 | ( |
| 32 | |
| 33 | ;; Integrity checks |
| 34 | |
| 35 | (C+scheme |
| 36 | (description "in both groups `scheme' and `C' -- should be empty!") |
| 37 | (grok () (lambda (x) |
| 38 | (and (in-group? x 'Scheme) |
| 39 | (in-group? x 'C))))) |
| 40 | |
| 41 | ;; Embedded foreign libraries |
| 42 | |
| 43 | (embedded-libltdl |
| 44 | (description "begins with lt_ -- should become empty over time") |
| 45 | (grok () (lambda (x) |
| 46 | (name-prefix? x "lt_")))) |
| 47 | |
| 48 | ;; By name |
| 49 | |
| 50 | (libguile-internal |
| 51 | (description "begins with scm_i_") |
| 52 | (grok () (lambda (x) |
| 53 | (name-prefix? x "scm_i_")))) |
| 54 | |
| 55 | (gdb |
| 56 | (description "begins with gdb_") |
| 57 | (grok () (lambda (x) |
| 58 | (name-prefix? x "gdb_")))) |
| 59 | |
| 60 | (coop |
| 61 | (description "begins with coop_") |
| 62 | (grok () (lambda (x) |
| 63 | (name-prefix? x "coop_")))) |
| 64 | |
| 65 | (gh |
| 66 | (description "begins with gh_") |
| 67 | (grok () (lambda (x) |
| 68 | (name-prefix? x "gh_")))) |
| 69 | |
| 70 | (g-fdes |
| 71 | (description "begins with g and ends with fds") |
| 72 | (grok () (lambda (x) |
| 73 | (name-prefix? x "g.+fds$")))) |
| 74 | |
| 75 | (r-fdes |
| 76 | (description "begins with r and ends with fds") |
| 77 | (grok () (lambda (x) |
| 78 | (name-prefix? x "r.+fds$")))) |
| 79 | |
| 80 | (scm |
| 81 | (description "begins with scm_") |
| 82 | (grok () (lambda (x) |
| 83 | (name-prefix? x "scm_")))) |
| 84 | |
| 85 | (k |
| 86 | (description "constants") |
| 87 | (grok () (lambda (x) |
| 88 | (name-prefix? x "[_A-Z0-9]+$")))) |
| 89 | |
| 90 | (POSIX |
| 91 | (description "POSIX support") |
| 92 | (members ; from docs |
| 93 | |
| 94 | ;; ports and file descriptors |
| 95 | port-revealed set-port-revealed! fileno port->fdes fdopen fdes->ports |
| 96 | fdes->inport fdes->outport primitive-move->fdes move->fdes |
| 97 | release-port-handle fsync open open-fdes close close-fdes unread-char |
| 98 | unread-string pipe dup->fdes dup->inport dup->outport dup dup->port |
| 99 | duplicate-port redirect-port dup2 port-mode close-all-ports-except |
| 100 | port-for-each setvbuf fcntl flock select |
| 101 | O_RDONLY O_WRONLY O_RDWR O_APPEND O_CREAT _IONBF _IOLBF _IOFBF |
| 102 | F_DUPFD F_GETFD F_SETFD F_GETFL F_SETFL F_GETOWN F_SETOWN FD_CLOEXEC |
| 103 | LOCK_SH LOCK_EX LOCK_UN LOCK_NB |
| 104 | |
| 105 | ;; file system |
| 106 | access? stat lstat readlink chown chmod utime delete-file copy-file |
| 107 | rename-file link symlink mkdir rmdir opendir directory-stream? readdir |
| 108 | rewinddir closedir sync mknod tmpnam mkstemp! dirname basename |
| 109 | R_OK W_OK X_OK F_OK |
| 110 | stat:perms stat:type stat:blocks stat:blksize stat:ctime stat:mtime |
| 111 | stat:atime stat:size stat:rdev stat:gid stat:uid stat:nlink stat:mode |
| 112 | stat:ino stat:dev |
| 113 | |
| 114 | ;; user information |
| 115 | passwd:name passwd:passwd passwd:uid passwd:gid passwd:gecos passwd:dir |
| 116 | passwd:shell group:name group:passwd group:gid group:mem |
| 117 | getpwuid getpwnam name setpwent getpwent endpwent setpw getpw getgrgid |
| 118 | getgrnam setgrent getgrent endgrent setgr getgr cuserid getlogin |
| 119 | |
| 120 | ;; time |
| 121 | tm:sec set-tm:sec tm:min set-tm:min tm:hour set-tm:hour tm:mday set-tm:mday |
| 122 | tm:mon set-tm:mon tm:year set-tm:year tm:wday set-tm:wday tm:yday |
| 123 | set-tm:yday tm:isdst set-tm:isdst tm:gmtoff set-tm:gmtoff tm:zone |
| 124 | set-tm:zone tms:clock tms:utime tms:stime tms:cutime tms:cstime |
| 125 | current-time gettimeofday localtime gmtime mktime tzset strftime strptime |
| 126 | times get-internal-real-time get-internal-run-time |
| 127 | |
| 128 | ;; runtime environment |
| 129 | program-arguments command-line getenv setenv environ putenv |
| 130 | |
| 131 | ;; proceses |
| 132 | chdir getcwd umask chroot getpid getgroups getppid getuid getgid geteuid |
| 133 | getegid setuid setgid seteuid setegid getpgrp setpgid setsid waitpid |
| 134 | status:exit-val status:term-sig status:stop-sig system primitive-exit execl |
| 135 | execlp execle primitive-fork nice setpriority getpriority |
| 136 | WNOHANG WUNTRACED |
| 137 | |
| 138 | ;; signals |
| 139 | kill raise sigaction restore-signals alarm pause sleep usleep setitimer |
| 140 | getitimer SIGHUP SIGINT |
| 141 | |
| 142 | ;; terminals and ptys |
| 143 | isatty? ttyname ctermid tcgetpgrp tcsetpgrp |
| 144 | |
| 145 | ;; pipes -- not included because they are in (ice-9 popen) |
| 146 | |
| 147 | ;; system identification |
| 148 | utsname:sysname utsname:nodename utsname:release utsname:version |
| 149 | utsname:machine uname gethostname sethostname software-type |
| 150 | |
| 151 | ;; locales |
| 152 | setlocale |
| 153 | LC_ALL LC_COLLATE LC_CTYPE LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME |
| 154 | |
| 155 | ;; encryption |
| 156 | crypt getpass)) |
| 157 | |
| 158 | (math |
| 159 | (description "math functions") |
| 160 | (members $abs $acos $acosh $asin $asinh $atan $atan2 $atanh $cos $cosh |
| 161 | $exp $expt $log $sin $sinh $sqrt $tan $tanh)) |
| 162 | |
| 163 | ;; By composition (these must be AFTER their constituent groupings) |
| 164 | |
| 165 | (guile-C-API |
| 166 | (description "the official guile API available to C programs") |
| 167 | (grok () (lambda (x) |
| 168 | (and (in-group? x 'C) |
| 169 | (or (in-group? x 'gh) |
| 170 | (in-group? x 'coop) |
| 171 | (in-group? x 'gdb)))))) |
| 172 | |
| 173 | ;; Add new grouping descriptions here. |
| 174 | ) |
| 175 | |
| 176 | ;;; groupings.alist ends here |