groupings.alist 5.7 KB

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