(in-package :common-lisp-user) (pushnew :logon *features*) ;; ;; in a run-time image loading this file as its `-L' argument, we need to call ;; *restart-init-function* ourselves, as slave() below never returns. ;; #+(and :allegro :runtime-standard) (when (functionp excl:*restart-init-function*) (funcall excl:*restart-init-function*)) (let* ((logon (system:getenv "LOGONROOT")) (lingo (namestring (parse-namestring (format nil "~a/lingo" logon))))) ;; ;; load MK defsystem() and LinGO load-up library first ;; (load (format nil "~a/lingo/lkb/src/general/loadup" logon)) ;; ;; for generation, we need (close to) the full scoop ;; (unless (find-package :tsdb) (pushnew :lkb *features*) (pushnew :slave *features*) (excl:tenuring (funcall (intern "COMPILE-SYSTEM" :make) "tsdb"))) (funcall (symbol-function (find-symbol "INITIALIZE-TSDB" :tsdb)) nil :rc (format nil "~a/dot.tsdbrc" logon)) ;; ;; activate duplicate result elimination for analysis and generation ;; (set (intern "*PROCESS-SUPPRESS-DUPLICATES*" :tsdb) '(:mrs :surface)) ;; ;; where possible (i.e. generation), limit the actual search to some maximum ;; number of hypotheses; in generation, this activates selective unpacking. ;; (set (intern "*TSDB-MAXIMAL-NUMBER-OF-ANALYSES*" :tsdb) 100) (set (intern "*TSDB-EXHAUSTIVE-P*" :tsdb) nil) ;; ;; get ourselves three sub-contractors, one for each task we need to do. we ;; must not PVM reset at this point, as likely we were launched ourselves via ;; another PVM client (aka our parent). ;; (funcall (symbol-function (find-symbol "TSDB" :tsdb)) :cpu :jacy+chasen :task :parse :reset nil :file t :wait 600 :error :exit) (funcall (symbol-function (find-symbol "TSDB" :tsdb)) :cpu :jaen :reset nil :file t :wait 300 :error :exit) (funcall (symbol-function (find-symbol "TSDB" :tsdb)) :cpu :erg :task :generate :reset nil :file t :wait 600 :error :exit) ;; ;; finally, make ourselves known to our creator and wait for orders ;; (funcall (symbol-function (find-symbol "SLAVE" :tsdb))))