emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/vlf d526ea8 257/310: Apply and restore batch size in mo


From: Stefan Monnier
Subject: [elpa] externals/vlf d526ea8 257/310: Apply and restore batch size in more cases.
Date: Sat, 28 Nov 2020 00:33:27 -0500 (EST)

branch: externals/vlf
commit d526ea8ef8e1b1c62b33e890e23fe145ad488e27
Author: Andrey Kotlarski <m00naticus@gmail.com>
Commit: Andrey Kotlarski <m00naticus@gmail.com>

    Apply and restore batch size in more cases.
---
 vlf-occur.el  | 47 ++++++++++++++++++++++++++---------------------
 vlf-search.el | 14 ++++++--------
 vlf-tune.el   |  6 ++++--
 vlf.el        | 27 +++++++++++++++------------
 4 files changed, 51 insertions(+), 43 deletions(-)

diff --git a/vlf-occur.el b/vlf-occur.el
index 2227673..5e53cfb 100644
--- a/vlf-occur.el
+++ b/vlf-occur.el
@@ -161,28 +161,31 @@ Prematurely ending indexing will still show what's found 
so far."
             buffer-undo-list t)
       (set-buffer-modified-p nil)
       (set (make-local-variable 'vlf-batch-size) batch-size)
-      (setq vlf-tune-insert-bps insert-bps
-            vlf-tune-encode-bps encode-bps)
-      (if is-hexl
-          (progn (setq vlf-tune-hexl-bps hexl-bps
-                       vlf-tune-dehexlify-bps dehexlify-bps)
-                 (vlf-tune-batch '(:hexl :dehexlify :insert :encode)))
-        (vlf-tune-batch '(:insert :encode)))
+      (when vlf-tune-enabled
+        (setq vlf-tune-insert-bps insert-bps
+              vlf-tune-encode-bps encode-bps)
+        (if is-hexl
+            (progn (setq vlf-tune-hexl-bps hexl-bps
+                         vlf-tune-dehexlify-bps dehexlify-bps)
+                   (vlf-tune-batch '(:hexl :dehexlify :insert :encode)))
+          (vlf-tune-batch '(:insert :encode))))
       (vlf-mode 1)
       (if is-hexl (vlf-tune-hexlify))
       (goto-char (point-min))
       (vlf-with-undo-disabled
        (vlf-build-occur regexp vlf-buffer))
-      (setq insert-bps vlf-tune-insert-bps
-            encode-bps vlf-tune-encode-bps)
+      (when vlf-tune-enabled
+        (setq insert-bps vlf-tune-insert-bps
+              encode-bps vlf-tune-encode-bps)
+        (if is-hexl
+            (setq insert-bps vlf-tune-insert-bps
+                  encode-bps vlf-tune-encode-bps))))
+    (when vlf-tune-enabled              ;merge back tune measurements
+      (setq vlf-tune-insert-bps insert-bps
+            vlf-tune-encode-bps encode-bps)
       (if is-hexl
-          (setq insert-bps vlf-tune-insert-bps
-                encode-bps vlf-tune-encode-bps)))
-    (setq vlf-tune-insert-bps insert-bps
-          vlf-tune-encode-bps encode-bps)
-    (if is-hexl
-        (setq vlf-tune-insert-bps insert-bps
-              vlf-tune-encode-bps encode-bps))))
+          (setq vlf-tune-insert-bps insert-bps
+                vlf-tune-encode-bps encode-bps)))))
 
 (defun vlf-occur (regexp)
   "Make whole file occur style index for REGEXP.
@@ -196,16 +199,18 @@ Prematurely ending indexing will still show what's found 
so far."
       (vlf-occur-other-buffer regexp)
     (let ((start-pos vlf-start-pos)
           (end-pos vlf-end-pos)
-          (pos (point)))
-      (if (derived-mode-p 'hexl-mode)
-          (vlf-tune-batch '(:hexl :dehexlify :insert :encode))
-        (vlf-tune-batch '(:insert :encode)))
+          (pos (point))
+          (batch-size vlf-batch-size))
+      (vlf-tune-batch (if (derived-mode-p 'hexl-mode)
+                          '(:hexl :dehexlify :insert :encode)
+                        '(:insert :encode)))
       (vlf-with-undo-disabled
        (vlf-move-to-batch 0)
        (goto-char (point-min))
        (unwind-protect (vlf-build-occur regexp (current-buffer))
          (vlf-move-to-chunk start-pos end-pos)
-         (goto-char pos)))))
+         (goto-char pos)))
+      (setq vlf-batch-size batch-size)))
   (run-hook-with-args 'vlf-after-batch-functions 'occur))
 
 (defun vlf-build-occur (regexp vlf-buffer)
diff --git a/vlf-search.el b/vlf-search.el
index 36e8022..7b2f02b 100644
--- a/vlf-search.el
+++ b/vlf-search.el
@@ -234,10 +234,9 @@ Search is performed chunk by chunk in `vlf-batch-size' 
memory."
                                     (+ start vlf-batch-size)))
                      (progress-reporter-update reporter start)))
                (when (< n (- vlf-file-size end))
-                 (if is-hexl
-                     (vlf-tune-batch '(:hexl :dehexlify
-                                             :insert :encode))
-                   (vlf-tune-batch '(:insert :encode)))
+                 (vlf-tune-batch (if is-hexl
+                                     '(:hexl :dehexlify :insert :encode)
+                                   '(:insert :encode)))
                  (vlf-move-to-chunk-2 start (+ start vlf-batch-size))
                  (goto-char (point-min))
                  (setq success (vlf-re-search "[\n\C-m]" n nil 0
@@ -264,10 +263,9 @@ Search is performed chunk by chunk in `vlf-batch-size' 
memory."
                    (progress-reporter-update reporter
                                              (- vlf-file-size end))))
              (when (< n end)
-               (if is-hexl
-                   (vlf-tune-batch '(:hexl :dehexlify
-                                           :insert :encode))
-                 (vlf-tune-batch '(:insert :encode)))
+               (vlf-tune-batch (if is-hexl
+                                   '(:hexl :dehexlify :insert :encode)
+                                 '(:insert :encode)))
                (vlf-move-to-chunk-2 (- end vlf-batch-size) end)
                (goto-char (point-max))
                (setq success (vlf-re-search "[\n\C-m]" n t 0
diff --git a/vlf-tune.el b/vlf-tune.el
index 4868e2c..e3642bb 100644
--- a/vlf-tune.el
+++ b/vlf-tune.el
@@ -213,8 +213,10 @@ unless DONT-APPROXIMATE is t."
                      `(aset ,vec ,index 0)
                    `(vlf-tune-approximate-nearby ,vec ,index)))
                ((zerop val) ;index has been tried before, yet still no value
-                (aset ,vec ,index
-                      (vlf-tune-approximate-nearby ,vec ,index)))
+                ,(if dont-approximate
+                     `(aset ,vec ,index
+                            (vlf-tune-approximate-nearby ,vec ,index))
+                   `(vlf-tune-approximate-nearby ,vec ,index)))
                (t val)))))
 
 (defmacro vlf-tune-get-vector (key)
diff --git a/vlf.el b/vlf.el
index fad68b3..f9073d8 100644
--- a/vlf.el
+++ b/vlf.el
@@ -172,9 +172,9 @@ When prefix argument is negative
  append next APPEND number of batches to the existing buffer."
   (interactive "p")
   (vlf-verify-size)
-  (if (derived-mode-p 'hexl-mode)
-      (vlf-tune-conservative '(:hexl :dehexlify :insert :encode))
-    (vlf-tune-conservative '(:insert :encode)))
+  (vlf-tune-conservative (if (derived-mode-p 'hexl-mode)
+                             '(:hexl :dehexlify :insert :encode)
+                           '(:insert :encode)))
   (let* ((end (min (+ vlf-end-pos (* vlf-batch-size (abs append)))
                    vlf-file-size))
          (start (if (< append 0)
@@ -191,9 +191,9 @@ When prefix argument is negative
   (interactive "p")
   (if (zerop vlf-start-pos)
       (error "Already at BOF"))
-  (if (derived-mode-p 'hexl-mode)
-      (vlf-tune-conservative '(:hexl :dehexlify :insert :encode))
-    (vlf-tune-conservative '(:insert :encode)))
+  (vlf-tune-conservative (if (derived-mode-p 'hexl-mode)
+                             '(:hexl :dehexlify :insert :encode)
+                           '(:insert :encode)))
   (let* ((start (max 0 (- vlf-start-pos (* vlf-batch-size (abs prepend)))))
          (end (if (< prepend 0)
                   vlf-end-pos
@@ -271,18 +271,18 @@ with the prefix argument DECREASE it is halved."
 (defun vlf-beginning-of-file ()
   "Jump to beginning of file content."
   (interactive)
-  (if (derived-mode-p 'hexl-mode)
-      (vlf-tune-conservative '(:hexl :dehexlify :insert :encode))
-    (vlf-tune-conservative '(:insert :encode)))
+  (vlf-tune-conservative (if (derived-mode-p 'hexl-mode)
+                             '(:hexl :dehexlify :insert :encode)
+                           '(:insert :encode)))
   (vlf-move-to-batch 0))
 
 (defun vlf-end-of-file ()
   "Jump to end of file content."
   (interactive)
   (vlf-verify-size)
-  (if (derived-mode-p 'hexl-mode)
-      (vlf-tune-conservative '(:hexl :dehexlify :insert :encode))
-    (vlf-tune-conservative '(:insert :encode)))
+  (vlf-tune-conservative (if (derived-mode-p 'hexl-mode)
+                             '(:hexl :dehexlify :insert :encode)
+                           '(:insert :encode)))
   (vlf-move-to-batch vlf-file-size))
 
 (defun vlf-revert (&optional _auto noconfirm)
@@ -298,6 +298,9 @@ Ask for confirmation if NOCONFIRM is nil."
 (defun vlf-jump-to-chunk (n)
   "Go to to chunk N."
   (interactive "nGoto to chunk: ")
+  (vlf-tune-conservative (if (derived-mode-p 'hexl-mode)
+                             '(:hexl :dehexlify :insert :encode)
+                           '(:insert :encode)))
   (vlf-move-to-batch (* (1- n) vlf-batch-size)))
 
 (defun vlf-no-modifications ()



reply via email to

[Prev in Thread] Current Thread [Next in Thread]