<commit_before>;; This is a wrapper around `winvers-change.ss' to patch binary files with the
;; current version number.
(module winvers mzscheme
  (require (lib "file.ss")
           "plthome.ss")

  (define (make-copy)
    (let ([tmpdir (find-system-path 'temp-dir)])
      (let ([vers (build-path tmpdir "setvers")])
	(unless (directory-exists? vers)
	   (make-directory vers))
        (for-each
         (lambda (p)
           (let ([dest (build-path vers p)])
             (when (file-exists? dest)
               (delete-file dest))
             (copy-file (build-path plthome p) dest)))
         '("mzscheme.exe" "libmzgcxxxxxxx.dll" "libmzschxxxxxxx.dll"))
        (build-path vers "mzscheme.exe"))))

  (define (patch-files)
    (parameterize ((current-command-line-arguments
                    (vector (path->string plthome))))
      (dynamic-require `(lib "winvers-change.ss" "setup") #f)))

  (let ([argv (current-command-line-arguments)])
    (cond
      [(equal? argv #())
       (let ([exe (make-copy)])
         (putenv "PLTHOME" (path->string plthome))
         (printf "re-launching first time...~n")
         (subprocess
          (current-output-port) (current-input-port) (current-error-port)
          exe "-mvqL-" "winvers.ss" "setup" "patch"))]
      [(equal? argv #("patch"))
       (sleep 1) ; time for other process to end
       (patch-files)
       (printf "re-launching last time...~n")
       (subprocess
        (current-output-port) (current-input-port) (current-error-port)
        (build-path plthome "mzscheme.exe")
        "-mvqL-" "winvers.ss" "setup" "finish")]
      [(equal? argv #("finish"))
       (sleep 1) ; time for other process to end
       (delete-directory/files
        (build-path (find-system-path 'temp-dir) "setvers"))
       (printf "done!~n")]
      [else
       (error 'winvers "unknown command line: ~e" argv)])))
<commit_msg>use --script when relaunching copy<commit_after>;; This is a wrapper around `winvers-change.ss' to patch binary files with the
;; current version number.
(module winvers mzscheme
  (require (lib "file.ss") "plthome.ss")

  (define (make-copy)
    (let* ([tmpdir (find-system-path 'temp-dir)]
           [vers (build-path tmpdir "setvers")])
      (unless (directory-exists? vers) (make-directory vers))
      (for-each (lambda (p)
                  (let ([dest (build-path vers p)])
                    (when (file-exists? dest) (delete-file dest))
                    (copy-file (build-path plthome p) dest)))
                '("mzscheme.exe" "libmzgcxxxxxxx.dll" "libmzschxxxxxxx.dll"))
      (build-path vers "mzscheme.exe")))

  (define (patch-files)
    (parameterize ((current-command-line-arguments
                    (vector (path->string plthome))))
      (dynamic-require `(lib "winvers-change.ss" "setup") #f)))

  (define collects-dir
    (path->string (simplify-path (build-path (collection-path "mzlib") 'up))))

  (let ([argv (current-command-line-arguments)])
    (cond
      [(equal? argv #())
       (let ([exe (make-copy)])
         (putenv "PLTHOME" (path->string plthome))
         (printf "re-launching first time...~n")
         (subprocess
          (current-output-port) (current-input-port) (current-error-port)
          exe "--collects" collects-dir
          "-mvqL-" "winvers.ss" "setup" "patch"))]
      [(equal? argv #("patch"))
       (sleep 1) ; time for other process to end
       (patch-files)
       (printf "re-launching last time...~n")
       (subprocess
        (current-output-port) (current-input-port) (current-error-port)
        (build-path plthome "mzscheme.exe")
        "-mvqL-" "winvers.ss" "setup" "finish")]
      [(equal? argv #("finish"))
       (sleep 1) ; time for other process to end
       (delete-directory/files
        (build-path (find-system-path 'temp-dir) "setvers"))
       (printf "done!~n")]
      [else
       (error 'winvers "unknown command line: ~e" argv)])))

{'fraction_non_alphanumeric': 0.16598674145843959, 'fraction_numerical': 0.0010198878123406426, 'mean_word_length': 2.4412280701754385, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 8, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 4, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4978533', 'n_tokens_mistral': 1320, 'n_tokens_neox': 1253, 'n_words': 321}