1 ;;; groupings.alist -*-scheme-*-
3 ;; Copyright (C) 2002, 2006 Free Software Foundation, Inc.
5 ;; This program is free software; you can redistribute it and/or
6 ;; modify it under the terms of the GNU General Public License as
7 ;; published by the Free Software Foundation; either version 2, or
8 ;; (at your option) any later version.
10 ;; This program is distributed in the hope that it will be useful,
11 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
12 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 ;; General Public License for more details.
15 ;; You should have received a copy of the GNU General Public License
16 ;; along with this software; see the file COPYING. If not, write to
17 ;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 ;; Boston, MA 02110-1301 USA
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.
26 ;; TODO: Add goops, add math, etc etc.
27 ;; Group `guile-C-API' needs much more serious thought.
36 (description "in both groups `scheme' and `C' -- should be empty!")
38 (and (in-group? x 'Scheme)
41 ;; Embedded foreign libraries
44 (description "begins with lt_ -- should become empty over time")
46 (name-prefix? x "lt_"))))
51 (description "begins with scm_i_")
53 (name-prefix? x "scm_i_"))))
56 (description "begins with gdb_")
58 (name-prefix? x "gdb_"))))
61 (description "begins with coop_")
63 (name-prefix? x "coop_"))))
66 (description "begins with gh_")
68 (name-prefix? x "gh_"))))
71 (description "begins with g and ends with fds")
73 (name-prefix? x "g.+fds$"))))
76 (description "begins with r and ends with fds")
78 (name-prefix? x "r.+fds$"))))
81 (description "begins with scm_")
83 (name-prefix? x "scm_"))))
86 (description "constants")
88 (name-prefix? x "[_A-Z0-9]+$"))))
91 (description "POSIX support")
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
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
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
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
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
128 ;; runtime environment
129 program-arguments command-line getenv setenv environ putenv
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
139 kill raise sigaction restore-signals alarm pause sleep usleep setitimer
140 getitimer SIGHUP SIGINT
142 ;; terminals and ptys
143 isatty? ttyname ctermid tcgetpgrp tcsetpgrp
145 ;; pipes -- not included because they are in (ice-9 popen)
147 ;; system identification
148 utsname:sysname utsname:nodename utsname:release utsname:version
149 utsname:machine uname gethostname sethostname software-type
153 LC_ALL LC_COLLATE LC_CTYPE LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME
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))
163 ;; By composition (these must be AFTER their constituent groupings)
166 (description "the official guile API available to C programs")
168 (and (in-group? x 'C)
169 (or (in-group? x 'gh)
171 (in-group? x 'gdb))))))
173 ;; Add new grouping descriptions here.
176 ;;; groupings.alist ends here