;;-*-Lisp-*- (in-package goal) ;; name: gkernel.gc ;; name in dgo: gkernel ;; dgos: KERNEL ;; HACK kernel (define *kernel-version* (the binteger (logior (ash *kernel-major-version* 16) *kernel-minor-version*))) (define *use-old-listener-print* #f) (defun kernel-dispatcher () "Run the kernel! This is the entry point from C++ to GOAL." ;; outside of all profiler events, set a ROOT event (profiler-instant-event "ROOT") ;; execute the listener function, if we got one. (when *listener-function* (+! *enable-method-set* 1) ;; allow out-of-order method definitions (slower) ;; (let ((result (reset-and-call (-> *listener-process* main-thread) *listener-function*))) ;; run function! (let ((result (*listener-function*))) ;; print result. (if *use-old-listener-print* (format #t "~D~%" result result result) (format #t "~D #x~X ~F ~A~%" result result result result) ) ) ;; clear pending function (set! *listener-function* #f) (+! *enable-method-set* -1) ) )