;;; -*- mode: Lisp; Syntax: Common-Lisp; -*- ;;; ;;; Copyright (c) 2009 by the authors. ;;; ;;; See LICENCE for details. (in-package :hu.dwim.excosy) ;;;;;; ;;; Compiler (def (function e) compile-excosy (machine ast) (load-system :hu.dwim.excosy) (hu.dwim.util::clear-definition-source-texts) (hu.dwim.util::clear-definition-source-forms) (hu.dwim.partial-eval::clear-definition-lambda-forms) (bind ((hu.dwim.partial-eval::*function-call-inline-limit* most-positive-fixnum)) (partial-eval `(%interpret-excosy ,machine ,ast) :inline-functions '(interpret-excosy %interpret-excosy interpret-ast interpret-in-loop interpret-abstraction interpret-if interpret-with-labels interpret-label interpret-goto-label interpret-sequentially interpret-primitive-application/read-byte-from-standard-input interpret-primitive-application/write-byte-to-standard-output interpret-primitive-application/add/native-integer+native-integer interpret-brainfuck-program interpret-pointer-change-command interpret-pointer-increment-command interpret-pointer-decrement-command interpret-value-change-command interpret-value-increment-command interpret-value-decrement-command interpret-value-output-command interpret-value-input-command interpret-conditional-block-begin-command interpret-conditional-block-end-command) :eval-functions '(memory-location-map-of word-bit-size-of configuration-of environment-of current-special-form-of set-current-special-form labels-of push-label interpreter-function-of ensure-memory-location find-well-known-abstraction find-memory-location-for-ast-node runtime-state-of condition-of then-branch-of else-branch-of arguments-of applied-abstraction-of labelled-asts-of name-of body-of commands-of pair-command-of llvm/generate-new-register-name) :non-local-exit-free-functions '(llvm/block llvm/label llvm/label-reference llvm/register llvm/alloca llvm/load llvm/store llvm/icmp llvm/conditional-br llvm/unconditional-br llvm/switch llvm/phi llvm/ret llvm/add llvm/sub))))