Hi there Kon,

As I was porting something that needed it, I did a quick port of the combinators egg to C5... I did it with cond-expand so the same codebase works for C4 and C5 rather than making a new fork.

Please find it attached - if you like it it's all yours, and I'll gladly add it to the C5 egg list if you wish :-)

Thanks for the eggs,

Alaric
diff combinators/bi-combinators.scm combinators.c5/bi-combinators.scm
10,11c10
<     scheme
<     chicken)
---
>     scheme)
12a12,16
>   (cond-expand
>    (chicken-4
>     (import chicken))
>    (chicken-5
>     (import (chicken base))))
diff combinators/generic-section-combinators.scm combinators.c5/generic-section-combinators.scm
16,20c16
<   (import
<     (except scheme map)
<     chicken
<     (only data-structures identity)
<     (only srfi-1 circular-list map))
---
>   (import (except scheme map))
22c18,29
<   (require-library data-structures srfi-1)
---
>   (cond-expand
>    (chicken-4
>     (require-library data-structures srfi-1)
>     (import
> 
>      chicken
>      (only data-structures identity)
>      (only srfi-1 circular-list map)))
>    (chicken-5
>     (import (chicken base))
>     (import
>      (only srfi-1 circular-list map))))
diff combinators/logical-combinators.scm combinators.c5/logical-combinators.scm
10c10,17
<   (import scheme chicken data-structures srfi-1)
---
>   (import scheme)
> 
>   (cond-expand
>    (chicken-4
>     (import chicken data-structures srfi-1))
>    (chicken-5
>     (import (chicken base))
>     (import srfi-1)))
diff combinators/section-combinators.scm combinators.c5/section-combinators.scm
13,16c13,24
<     scheme
<     chicken
<     (only srfi-1 drop drop-right circular-list)
<     (only data-structures identity))
---
>     scheme)
> 
>   (cond-expand
>    (chicken-4
>     (import chicken)
>     (import (only srfi-1 drop drop-right circular-list))
>     (import (only data-structures identity))
>     (require-library srfi-1))
>    (chicken-5
>     (import (chicken base))
>     (import (only srfi-1 drop drop-right circular-list))
>     (import (only (chicken base) identity))))
18d25
<   (require-library srfi-1)
diff combinators/sort-combinators.scm combinators.c5/sort-combinators.scm
12,16c12
<   (import
<     scheme
<     chicken
<     (only srfi-1 span)
<     (only bi-combinators bi-each))
---
>   (import scheme)
18c14,23
<   (require-library srfi-1 bi-combinators)
---
>   (cond-expand
>    (chicken-4
>     (import chicken)
>     (import (only srfi-1 span))
>     (import (only bi-combinators bi-each))
>     (require-library srfi-1 bi-combinators))
>    (chicken-5
>     (import (chicken base))
>     (import (only srfi-1 span))
>     (import (only bi-combinators bi-each))))
diff combinators/stack-combinators.scm combinators.c5/stack-combinators.scm
18c18
<   (import scheme chicken)
---
>   (import scheme)
19a20,24
>   (cond-expand
>    (chicken-4
>     (import chicken))
>    (chicken-5
>     (import (chicken base))))
diff combinators/tri-combinators.scm combinators.c5/tri-combinators.scm
10,12c10,16
<     scheme
<     chicken)
< 
---
>    scheme)
>   
>   (cond-expand
>    (chicken-4
>     (import chicken))
>    (chicken-5
>     (import (chicken base))))
diff combinators/uni-combinators.scm combinators.c5/uni-combinators.scm
9,11c9,15
<   (import
<     scheme
<     chicken)
---
>   (import scheme)
> 
>   (cond-expand
>    (chicken-4
>     (import chicken))
>    (chicken-5
>     (import (chicken base))))
;;;; combinators.meta  -*- Hen -*-

((category data)
 (author "[[kon lovett]]")
 (license "Public Domain")
 (synopsis "Combinators")
 (test-dependencies test)
 (version "1.2.1")
 (components
  (extension uni-combinators
             (csc-options -optimize-level 3))
  (extension bi-combinators
             (csc-options -optimize-level 3))
  (extension tri-combinators
             (csc-options -optimize-level 3))
  (extension section-combinators
             (csc-options -optimize-level 3))
  #;(extension generic-section-combinators
             (csc-options -optimize-level 3))
  (extension logical-combinators
             (csc-options -optimize-level 3))
  (extension sort-combinators
             (csc-options -optimize-level 3)
             (component-dependencies bi-combinators))
  (extension stack-combinators
             (csc-options -optimize-level 3))))

Reply via email to