#! /bin/sh # -*-scheme-*- prefix=module/ cat $prefix/mes/base-0.mes $0 /dev/stdin | $(dirname $0)/mes $MES_FLAGS "$@" > a.out #paredit:| chmod +x a.out exit $? !# ;;; Mes --- Maxwell Equations of Software ;;; Copyright © 2016 Jan Nieuwenhuizen ;;; ;;; elf.mes: This file is part of Mes. ;;; ;;; Mes is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; Mes is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with Mes. If not, see . (mes-use-module (mes base)) (mes-use-module (mes quasiquote)) (mes-use-module (mes let)) (mes-use-module (mes scm)) (mes-use-module (rnrs bytevectors)) (mes-use-module (mes elf)) (mes-use-module (mes libc-i386)) (define data (string->list "Hello, world!\n")) (define (text d) (append (i386:puts d (length data)) (i386:for 0 3 1 (i386:puts (+ d 6) (- (length data) 6))) (i386:exit 0) )) (define (write-any x) (write-char (if (char? x) x (integer->char x)))) (display "dumping to a.out:\n" (current-error-port)) (map write-any (make-elf text data)) ()