1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670
|
; Copyright (c) 1993-1999 by Richard Kelsey and Jonathan Rees. See file COPYING.
; Interfaces for packages that can get loaded after the initial.image
; starts up.
; Command processor
(define-interface command-processor-interface
(export $write-length $write-depth
abort-to-command-level
add-sentinel!
command-continuation
command-threads
command-loop
command-level-condition
command-processor
error-form ;foo
execute-command
exit-command-processor
evaluate-and-select
gobble-line
greet-user
environment-for-commands
focus-object
pop-command-level
read-command ;take
read-command-carefully ;inspect
read-form
run-sentinels
set-focus-object!
showing-focus-object ;inspect
start-command-processor
restart-command-processor
value->expression ;foo
write-carefully
write-line
y-or-n?
help
define-command-syntax
define-user-command-syntax
user-command-environment
;; set-command-structure! ;startup
;; command-structure ;pacman
set-user-command-environment! ;pacman
read-command-error ;inspect
&environment-id-string
;&evaluate
))
(define-interface command-levels-interface
(export start-command-levels
command-levels
top-command-level
push-command-level
throw-to-command-level
restart-command-level
proceed-with-command-level
kill-paused-thread!
user-context
user-context-accessor
user-context-modifier
push-command-levels?
start-new-session
session-started? ; for scsh
command-input
command-output
command-error-output
focus-values
set-focus-values!
batch-mode?
set-batch-mode?!
break-on-warnings?
set-break-on-warnings?!
reset-command-input? ; condition predicate
repl-data set-repl-data!
terminate-command-processor!
command-level
command-level-threads
command-level-paused-thread
command-level-repl-data
command-level?))
(define-interface basic-commands-interface
(export exit
exit-when-done
go
load
help
run
?))
(define-interface build-commands-interface
(export dump
build))
(define-interface inspect-commands-interface
(export inspect
debug
threads
where))
(define-interface disassemble-commands-interface
(export dis))
(define-interface profile-commands-interface
(export profile))
(define-interface package-commands-interface
(export in
new-package
load-package
reload-package
structure
open
for-syntax
exec
user
user-package-is
config
config-package-is
undefine))
(define-interface debug-commands-interface
(export translate
preview
proceed
push
pop
reset
level
condition
batch
bench
break-on-warnings
form-preferred
levels
flush
keep
collect
trace
untrace
time
from-file
forget
bound?
expand))
(define-interface usual-commands-interface
(compound-interface
basic-commands-interface
build-commands-interface
package-commands-interface
debug-commands-interface
inspect-commands-interface
disassemble-commands-interface
;profile-commands-interface
))
(define-interface package-commands-internal-interface
(export config-package
new-command-processor
get-structure
user-environment ;JMG 3 for scsh
get-reflective-tower
in-package
;get-package
;set-package-evaluator!
))
(define-interface debuginfo-interface
(export read-debug-info
write-debug-info))
(define-interface disclosers-interface
(export make-print-name
template-file-name
value->expression
error-form
location-info
location-name
template-debug-data
template-id
template-name
template-names
debug-data-names))
(define-interface package-mutation-interface
(export package-system-sentinel ;env/command.scm
package-open! ;env/debug.scm
package-undefine!
))
(define-interface packages-cruft-interface
(export assume-denotation
;; new-location-uid ;?
interface-ref
structure-interface
verify-package ;for debugging the package system
))
; --------------------
; Linker
(define-interface linker-interface
(export link-simple-system
link-reified-system
link-semireified-system
(struct-list :syntax)
compile-structures))
(define-interface expander-interface
(export expand-form
expand-stuff
expand
usage-reference-count
usage-operator-count
usage-assignment-count
free-top-level-variables))
; --------------------
; Extended numbers: bignums, ratnums, etc.
(define-interface extended-numbers-interface
(export (define-extended-number-type :syntax)
(define-opcode-extension :syntax)
:exact :inexact
string-position
&+
&-
&*
&/
&=
&<
"ient
&remainder
&integer?
&rational?
&real?
&complex?
&number?
&exact?
&exact->inexact
&inexact->exact
&real-part
&imag-part
&floor
&numerator
&denominator
&exp &log
&sin &cos &tan &asin &acos &atan
&sqrt
&make-rectangular
&number->string
&really-string->number))
(define-interface bignums-interface ;Things used by bigbit
(export integer->bignum bignum-magnitude bignum-sign
zero-magnitude?
integer->magnitude
adjoin-digit
low-digit high-digits
make-integer
zero-magnitude
radix log-radix
integer-negate integer- integer=))
(define-interface time-interface
(export real-time
run-time))
; Experimental DEFINE-RECORD-TYPE that is now officially a failure.
(define-interface defrecord-interface ;RK's
(export (define-record-type :syntax)
define-record-discloser))
; --------------------
; Big Scheme
(define-interface dynamic-externals-interface
(export dynamic-load
get-external
lookup-external
lookup-all-externals
external?
external-name
external-value
external-lookup
call-external))
(define-interface dump/restore-interface
(export dump
restore
note-location!
$dump-index
$restore-index))
(define-interface extended-ports-interface
(export char-source->input-port
char-sink->output-port
make-tracking-input-port make-tracking-output-port
make-string-input-port
make-string-output-port
string-output-port-output
call-with-string-output-port ; denigrated
write-one-line
current-row current-column fresh-line))
(define-interface arrays-interface
(export make-array ; <initial-value> <bound1> ...
array?
array-shape ; <array>
array-ref ; <array> <index1> ...
array-set! ; <array> <value> <index1> ...
make-shared-array ; <array> <linear-map> <bound1> ...
copy-array ; <array>
array->vector ; <array>
array)) ; <bounds> . <elements>
(define-interface enum-sets-interface
(export (define-enum-set-type :syntax)
enum-set->list
enum-set-member?
enum-set=?
enum-set-union
enum-set-intersection
enum-set-negation))
(define-interface enum-sets-internal-interface
(export enum-set-has-type?
enum-set?
enum-set-type
enum-set->integer
integer->enum-set))
(define-interface thread-fluids-interface
(export make-thread-fluid
thread-fluid
let-thread-fluid
let-thread-fluids
set-thread-fluid!
make-preserved-thread-fluid
preserve-thread-fluids
fork-thread
spoon))
(define-interface search-trees-interface
(export make-search-tree
search-tree?
search-tree-ref
search-tree-set!
search-tree-modify!
search-tree-max pop-search-tree-max!
search-tree-min pop-search-tree-min!
walk-search-tree))
; This is getting to be a hodge-podge.
(define-interface big-util-interface
(export concatenate-symbol
error breakpoint
atom? null-list? neq? n=
identity no-op
memq? first any? any every?
filter filter! filter-map partition-list partition-list!
remove-duplicates delq delq! delete
reverse!
copy-string
string->immutable-string
))
(define-interface big-scheme-interface
(compound-interface
(interface-of ascii)
(interface-of bitwise)
(interface-of tables)
(interface-of enumerated)
;defrecord-interface
extended-ports-interface
big-util-interface
(export (destructure :syntax)
(receive :syntax)
format
p pretty-print
sort-list sort-list!)))
; --------------------
; Miscellaneous
; Copied from interfaces.scm.
(define-interface define-record-types-interface
(export (define-record-type :syntax)
define-record-discloser))
(define-interface placeholder-interface
(export make-placeholder
placeholder?
placeholder-value
placeholder-set!))
(define-interface sicp-interface
(export and or (sequence :syntax)
mapcar mapc 1+ -1+ t nil atom? print princ prin1 error
(cons-stream :syntax) head tail the-empty-stream empty-stream?
explode implode get put))
; Olin's encyclopedic SRFIs.
(define-interface srfi-1-interface
(export map for-each member assoc ; redefined from R5RS
xcons make-list list-tabulate cons* list-copy
proper-list? circular-list? dotted-list? not-pair? null-list? list=
circular-list length+
iota
first second third fourth fifth sixth seventh eighth ninth tenth
car+cdr
take drop
take-right drop-right
take! drop-right!
split-at split-at!
last last-pair
zip unzip1 unzip2 unzip3 unzip4 unzip5
count
append! append-reverse append-reverse! concatenate concatenate!
unfold fold pair-fold reduce
unfold-right fold-right pair-fold-right reduce-right
append-map append-map! map! pair-for-each filter-map map-in-order
filter partition remove
filter! partition! remove!
find find-tail any every list-index
take-while drop-while take-while!
span break span! break!
delete delete!
alist-cons alist-copy
delete-duplicates delete-duplicates!
alist-delete alist-delete!
reverse!
lset<= lset= lset-adjoin
lset-union lset-intersection lset-difference lset-xor
lset-diff+intersection
lset-union! lset-intersection! lset-difference! lset-xor!
lset-diff+intersection!))
(define-interface srfi-13-interface
(export string-map string-map!
string-fold string-unfold
string-fold-right string-unfold-right
string-tabulate string-for-each string-for-each-index
string-every string-any
string-hash string-hash-ci
string-compare string-compare-ci
string= string< string> string<= string>= string<>
string-ci= string-ci< string-ci> string-ci<= string-ci>= string-ci<>
string-downcase string-upcase string-titlecase
string-downcase! string-upcase! string-titlecase!
string-take string-take-right
string-drop string-drop-right
string-pad string-pad-right
string-trim string-trim-right string-trim-both
string-filter string-delete
string-index string-index-right
string-skip string-skip-right
string-count
string-prefix-length string-prefix-length-ci
string-suffix-length string-suffix-length-ci
string-prefix? string-prefix-ci?
string-suffix? string-suffix-ci?
string-contains string-contains-ci
string-copy! substring/shared
string-reverse string-reverse! reverse-list->string
string-concatenate
string-concatenate/shared
string-concatenate-reverse
string-concatenate-reverse/shared
string-append/shared
xsubstring string-xcopy!
string-null?
string-join
string-tokenize
string-replace
string->list string-copy string-fill!
string? make-string string-length string-ref string-set!
string string-append list->string))
(define-interface srfi-14-interface
(export char-set? char-set=
char-set<= char-set-hash char-set-cursor char-set-ref
char-set-cursor-next end-of-char-set? char-set-fold char-set-unfold
char-set-unfold! char-set-for-each char-set-map char-set-copy
char-set
list->char-set string->char-set
list->char-set! string->char-set!
char-set-filter ucs-range->char-set
; the SRFI defines ->CHAR-SET, but that isn't a legal identifier
x->char-set
char-set-filter! ucs-range->char-set!
char-set->list char-set->string
char-set-size char-set-count char-set-contains?
char-set-every char-set-any
char-set-adjoin char-set-delete
char-set-adjoin! char-set-delete!
char-set-complement char-set-union char-set-intersection
char-set-complement! char-set-union! char-set-intersection!
char-set-difference char-set-xor char-set-diff+intersection
char-set-difference! char-set-xor! char-set-diff+intersection!
char-set:lower-case char-set:upper-case char-set:title-case
char-set:letter char-set:digit char-set:letter+digit
char-set:graphic char-set:printing char-set:whitespace
char-set:iso-control char-set:punctuation char-set:symbol
char-set:hex-digit char-set:blank char-set:ascii
char-set:empty char-set:full
))
(define-interface srfi-19-interface
(export;; Constants
time-duration
time-monotonic
time-process
time-tai
time-thread
time-utc
;; Current time and clock resolution
current-date
current-julian-day
current-modified-julian-day
current-time
time-resolution
;; Time object and accessors
make-time
time?
time-type
time-nanosecond
time-second
set-time-type!
set-time-nanosecond!
set-time-second!
copy-time
;; Time comparison procedures
time<=?
time<?
time=?
time>=?
time>?
;; Time arithmetic procedures
time-difference
time-difference!
add-duration
add-duration!
subtract-duration
subtract-duration!
;; Date object and accessors
make-date
date?
date-nanosecond
date-second
date-minute
date-hour
date-day
date-month
date-year
date-zone-offset
date-year-day
date-week-day
date-week-number
;; Time/Date/Julian Day/Modified Julian Day converters
date->julian-day
date->modified-julian-day
date->time-monotonic
date->time-tai
date->time-utc
julian-day->date
julian-day->time-monotonic
julian-day->time-tai
julian-day->time-utc
modified-julian-day->date
modified-julian-day->time-monotonic
modified-julian-day->time-tai
modified-julian-day->time-utc
time-monotonic->date
time-monotonic->time-tai
time-monotonic->time-tai!
time-monotonic->time-utc
time-monotonic->time-utc!
time-tai->date
time-tai->julian-day
time-tai->modified-julian-day
time-tai->time-monotonic
time-tai->time-monotonic!
time-tai->time-utc
time-tai->time-utc!
time-utc->date
time-utc->julian-day
time-utc->modified-julian-day
time-utc->time-monotonic
time-utc->time-monotonic!
time-utc->time-tai
time-utc->time-tai!
;; Date to string/string to date converters.
date->string
string->date))
(define-interface srfi-27-interface
(export random-integer
random-real
default-random-source
make-random-source
random-source?
random-source-state-ref
random-source-state-set!
random-source-randomize!
random-source-pseudo-randomize!
random-source-make-integers
random-source-make-reals))
(define-interface srfi-31-interface
(export (rec :syntax)))
(define-interface srfi-37-interface
(export
option
option?
option-names
option-required-arg?
option-optional-arg?
option-processor
args-fold))
(define-interface srfi-42-interface
(export ((do-ec
list-ec append-ec
string-ec string-append-ec
vector-ec vector-of-length-ec
sum-ec product-ec
min-ec max-ec
any?-ec every?-ec
first-ec last-ec
fold-ec fold3-ec) :syntax)
((:
:list :string :vector
:integers
:range :real-range :char-range
:port
:dispatched) :syntax)
((:do :let :parallel :while :until) :syntax)
:-dispatch-ref :-dispatch-set! make-initial-:-dispatch
(:generator-proc :syntax)))
|