diff --git a/build/build-usual-image b/build/build-usual-image index 8af1c43..10851f2 100755 --- a/build/build-usual-image +++ b/build/build-usual-image @@ -13,7 +13,8 @@ USER=${USER-`logname 2>/dev/null || echo '*GOK*'`} ,load $srcdir/scheme/env/init-defpackage.scm ((*structure-ref filenames 'set-translation!) "=scheme48/" "$srcdir/scheme/") -,load =scheme48/more-interfaces.scm =scheme48/link-packages.scm +,load =scheme48/more-interfaces.scm =scheme48/sort/interfaces.scm +,load =scheme48/link-packages.scm ,load =scheme48/more-packages.scm (ensure-loaded command-processor) (ensure-loaded usual-commands) diff --git a/scheme/more-interfaces.scm b/scheme/more-interfaces.scm index ff2981b..14b1dd9 100644 --- a/scheme/more-interfaces.scm +++ b/scheme/more-interfaces.scm @@ -648,23 +648,3 @@ 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))) diff --git a/scheme/more-packages.scm b/scheme/more-packages.scm index cf8022d..4adc396 100644 --- a/scheme/more-packages.scm +++ b/scheme/more-packages.scm @@ -415,6 +415,7 @@ (files (big placeholder)) (optimize auto-integrate)) + ;---------------- ; Big Scheme @@ -423,10 +424,6 @@ signals) ;call-error (files (big random))) -(define-structure sort (export sort-list sort-list!) - (open scheme-level-2) - (files (big sort))) - (define-structure pp (export p pretty-print define-indentation) (open scheme-level-2 tables @@ -495,6 +492,88 @@ threads thread-cells fluids) (files (big thread-fluid))) +;;; Package defs for the Scheme Underground sorting package, + +;;; The general sort package: + +(define-structure sorting sorting-interface + (open scheme + list-merge-sort + vector-heap-sort + vector-merge-sort + sorted + delete-neighbor-duplicates) + (files (sort sort)) + (optimize auto-integrate)) + +(define-structure sorted sorted-interface + (open scheme + vector-utils) + (files (sort sortp)) + (optimize auto-integrate)) + +(define-structure delete-neighbor-duplicates delete-neighbor-duplicates-interface + (open scheme + receiving + formats + vector-utils) + (files (sort delndups)) + (optimize auto-integrate)) + +(define-structure binary-searches binary-searches-interface + (open scheme + vector-utils) + (files (sort vbinsearch))) + +(define-structure list-merge-sort list-merge-sort-interface + (open scheme + receiving + (subset signals (error))) + (files (sort lmsort)) + (optimize auto-integrate)) + +(define-structure vector-merge-sort vector-merge-sort-interface + (open scheme + receiving + vector-utils + vector-insertion-sort-internal) + (files (sort vmsort)) + (optimize auto-integrate)) + +(define-structure vector-heap-sort vector-heap-sort-interface + (open scheme + receiving + vector-utils) + (files (sort vhsort)) + (optimize auto-integrate)) + +(define-structures ((vector-insertion-sort vector-insertion-sort-interface) + (vector-insertion-sort-internal + vector-insertion-sort-internal-interface)) + (open scheme + vector-utils) + (files (sort visort)) + (optimize auto-integrate)) + +(define-structure vector-utils (export vector-copy + vector-portion-copy + vector-portion-copy! + vector-start+end + vectors-start+end-2) + (open scheme) + (files (sort vector-util))) + +;;; end Package defs for the Scheme Underground sorting package, + +(define-structure sort (export sort-list sort-list!) + (open scheme-level-2 + sorting) + (begin + (define (sort-list l obj-<) + (list-sort obj-< l)) + (define (sort-list! l obj-<) + (list-sort! obj-< l)))) + (define-structure big-util big-util-interface (open scheme-level-2 formats @@ -942,7 +1021,17 @@ search-trees sicp sockets + sort + delete-neighbor-duplicates + binary-searches + sorted + list-merge-sort + vector-merge-sort + vector-heap-sort + vector-insertion-sort + sorting + strong thread-fluids traverse