mescc: Output performance hacks: use core:display.
[mes.git] / module / mes / guile.scm
1 ;;; -*-scheme-*-
2
3 ;;; Mes --- Maxwell Equations of Software
4 ;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
5 ;;;
6 ;;; This file is part of Mes.
7 ;;;
8 ;;; Mes is free software; you can redistribute it and/or modify it
9 ;;; under the terms of the GNU General Public License as published by
10 ;;; the Free Software Foundation; either version 3 of the License, or (at
11 ;;; your option) any later version.
12 ;;;
13 ;;; Mes is distributed in the hope that it will be useful, but
14 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
15 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 ;;; GNU General Public License for more details.
17 ;;;
18 ;;; You should have received a copy of the GNU General Public License
19 ;;; along with Mes.  If not, see <http://www.gnu.org/licenses/>.
20
21 ;;; Commentary:
22
23 ;;; Code:
24
25 (define-module (mes guile)
26   #:export (core:display core:display-error))
27
28 (cond-expand
29  (guile
30   (define core:display display)
31   (define (core:display-error o) (display o (current-error-port))))
32  (mes))
33
34 (cond-expand
35  (guile-2.2)
36  (guile-2
37   (eval-when (compile load eval)
38     (define-syntax include-from-path
39       (lambda (x)
40         (syntax-case x ()
41           ((k filename)
42            (let ((fn (syntax->datum #'filename)))
43              (with-syntax ((fn (datum->syntax
44                                 #'filename
45                                 (canonicalize-path
46                                  (or (%search-load-path fn)
47                                      (syntax-violation 'include-from-path
48                                                        "file not found in path"
49                                                        x #'filename))))))
50                #'(include fn))))))))
51   (export include-from-path))
52  (guile
53   (use-modules (ice-9 syncase)))
54  (mes))