branch: externals/phps-mode commit 9eedde785ee2671ee0b6d6a35d742339cd63c564 Author: Christian Johansson <christ...@cvj.se> Commit: Christian Johansson <christ...@cvj.se>
Improved the resume data output to avoid OS to kill process --- admin/phps-mode-automation.el | 80 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 68 insertions(+), 12 deletions(-) diff --git a/admin/phps-mode-automation.el b/admin/phps-mode-automation.el index ab7618c535..767080e56e 100644 --- a/admin/phps-mode-automation.el +++ b/admin/phps-mode-automation.el @@ -28,9 +28,11 @@ ;; Emacs 29.1 ;; Batch jobs that are supposed to run for a long time should ;; adjust the limit back down to 0.1 - (setq - gc-cons-percentage - 0.1) + (when (>= (string-to-number emacs-version) 29.1) + (message ";; Adjusting gc-cons-percentage to 0.1 since Emacs version is 29.1 or newer") + (setq + gc-cons-percentage + 0.1)) (let* ((global-declaration (phps-mode-automation-parser-generator--global-declaration)) @@ -178,29 +180,83 @@ (progn (message ";; Parser tables are not defined - generating..") (when (fboundp 'parser-generator-lr--generate-goto-tables) + (let ((table-lr-items (parser-generator-lr--generate-goto-tables))) + + ;; Output LR-items sets to-enable resuming (message - ";; table-lr-items: %S" + "%s" + "(setq table-lr-items-resume (make-hash-table :test 'equal))") + (maphash + (lambda (key value) + (message + "%s" + (format + "(puthash %S '%S table-lr-items-resume)" key value))) table-lr-items) + (message "") + + ;; Output GOTO-tables to enable resuming (when (boundp 'parser-generator-lr--goto-tables) (message - "(setq parser-generator-lr--goto-tables-resume %S)" - parser-generator-lr--goto-tables)) + "%s" + "(setq parser-generator-lr--goto-tables-resume (make-hash-table :test 'equal))") + (maphash + (lambda (key value) + (message + "%s" + (format + "(puthash %S %S parser-generator-lr--goto-tables-resume)" key value))) + parser-generator-lr--goto-tables) + (message "")) + + ;; Output distinct GOTO-tables to enable resuming (when (boundp 'parser-generator-lr--distinct-goto-tables) (message - "(setq parser-generator-lr--distinct-goto-tables-resume %S)" - parser-generator-lr--distinct-goto-tables)) + "%s" + "(setq parser-generator-lr--distinct-goto-tables-resume (make-hash-table :test 'equal))") + (maphash + (lambda (key value) + (message + "%s" + (format + "(puthash %S '%S parser-generator-lr--distinct-goto-tables-resume)" key value))) + parser-generator-lr--distinct-goto-tables) + (message "")) + + ;; Generate ACTION-tables (when (fboundp 'parser-generator-lr--generate-action-tables) (parser-generator-lr--generate-action-tables table-lr-items) + + ;; Output ACTION-tables to enable resuming (when (boundp 'parser-generator-lr--action-tables) (message - "(setq parser-generator-lr--action-tables-resume %S)" - parser-generator-lr--action-tables)) + "%s" + "(setq parser-generator-lr--action-tables-resume (make-hash-table :test 'equal))") + (maphash + (lambda (key value) + (message + "%s" + (format + "(puthash %S %S parser-generator-lr--action-tables-resume)" key value))) + parser-generator-lr--action-tables) + (message "")) + + ;; Output distinct ACTION-tables to enable resuming (when (boundp 'parser-generator-lr--distinct-action-tables) (message - "(setq parser-generator-lr--distinct-action-tables-resume %S)" - parser-generator-lr--distinct-action-tables)))))))) + "%s" + "(setq parser-generator-lr--distinct-action-tables-resume (make-hash-table :test 'equal))") + (maphash + (lambda (key value) + (message + "%s" + (format + "(puthash %S '%S parser-generator-lr--distinct-action-tables-resume)" key value))) + parser-generator-lr--distinct-action-tables) + (message "")))))))) + (message "\n") ;; Export