branch: externals/eev
commit c13cc8cda946ad2d1e9ecddb39f8401511a8530a
Author: Eduardo Ochs <eduardoo...@gmail.com>
Commit: Eduardo Ochs <eduardoo...@gmail.com>

    New video ("2025modern") and some changes for Maxima.
---
 ChangeLog         | 33 ++++++++++++++++++++++++++++++++
 VERSION           |  4 ++--
 eev-elinks.el     |  2 +-
 eev-intro.el      | 39 ++++++++++++++++++++++++++------------
 eev-lean4.el      |  6 +++++-
 eev-plinks.el     |  7 ++++---
 eev-testblocks.el |  7 +++++--
 eev-tlinks.el     | 12 +++++++++---
 eev-videolinks.el | 56 ++++++++++++++++++++++++++++++++++++++-----------------
 9 files changed, 125 insertions(+), 41 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 75e0849b4b..0e2edca3e7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,36 @@
+2025-06-07  Eduardo Ochs  <eduardoo...@gmail.com>
+
+       * eev-videolinks.el (ee-1stclassvideos-info): new video
+       (incomplete!): "2025modern".
+
+       * eev-intro.el (find-windows-beginner-intro): moved the files in
+       "~/.maxima/" to edrx-dot-maxima.tgz; added a red star line with a
+       (load "~/MAXIMA/edrx-maxima.el").
+
+2025-05-16  Eduardo Ochs  <eduardoo...@gmail.com>
+
+       * eev-videolinks.el (ee-1stclassvideos-hsubstem)
+       (ee-1stclassvideos-lsubstem): new functions.
+
+2025-05-15  Eduardo Ochs  <eduardoo...@gmail.com>
+
+       * eev-tlinks.el (ee-let*-macro-1stclassvideo-c): new variables:
+       `pagestem'...
+
+2025-05-06  Eduardo Ochs  <eduardoo...@gmail.com>
+
+       * eev-testblocks.el (ee-insert-test-lisp-mode-nil): new function.
+       (ee-insert-test-lisp-mode): use `current-prefix-arg'.
+
+2025-03-22  Eduardo Ochs  <eduardoo...@gmail.com>
+
+       * eev-intro.el (find-windows-beginner-intro): mention my
+       presentation at the EmacsConf 2024.
+
+2025-03-21  Eduardo Ochs  <eduardoo...@gmail.com>
+
+       * eev-plinks.el (find-wget): run `ee-expand' on url.
+
 2025-03-05  Eduardo Ochs  <eduardoo...@gmail.com>
 
        * eev-blinks.el (find-clprin2, ee-clprin2): new aliases.
diff --git a/VERSION b/VERSION
index ded0f68250..083e11dbea 100644
--- a/VERSION
+++ b/VERSION
@@ -1,2 +1,2 @@
-Wed Mar  5 20:50:17 GMT 2025
-Wed Mar  5 17:50:17 -03 2025
+Sat Jun  7 04:04:48 GMT 2025
+Sat Jun  7 01:04:48 -03 2025
diff --git a/eev-elinks.el b/eev-elinks.el
index 72738e7eef..29e1bc893d 100644
--- a/eev-elinks.el
+++ b/eev-elinks.el
@@ -872,7 +872,7 @@ a hack to let use use `M-h M-i' for both \"intro\" and 
\"info\"."
 ;;
 ;; Note that this code is very old and uses only very basic Lisp
 ;; functions. The functions in eev-kla.el do something similar to
-;; this, but using cl-loop. See:
+;; this, but using `cl-loop'. See:
 ;;   (find-kla-intro)
 ;;
 ;; Each call to `(code-c-d C D)' generates an entry `(C D)' in the
diff --git a/eev-intro.el b/eev-intro.el
index e5743e455b..a4cd6ac9e1 100644
--- a/eev-intro.el
+++ b/eev-intro.el
@@ -1,6 +1,6 @@
 ;;; eev-intro.el --- sandboxed tutorials for eev, like (find-eev-quick-intro)  
-*- lexical-binding: nil; -*-
 
-;; Copyright (C) 2013-2024 Free Software Foundation, Inc.
+;; Copyright (C) 2013-2025 Free Software Foundation, Inc.
 ;;
 ;; This file is part of GNU eev.
 ;;
@@ -19,7 +19,7 @@
 ;;
 ;; Author:     Eduardo Ochs <eduardoo...@gmail.com>
 ;; Maintainer: Eduardo Ochs <eduardoo...@gmail.com>
-;; Version:    20241127
+;; Version:    20250607
 ;; Keywords:   e-scripts
 ;;
 ;; Latest version: <http://anggtwu.net/eev-current/eev-intro.el>
@@ -6959,7 +6959,8 @@ for examples:
 My presentation at the EmacsConf2021 was about test blocks.
 Links:
 
-  Pages:  http://anggtwu.net/emacsconf2021.html
+  Pages:  http://anggtwu.net/eepitch.html
+          http://anggtwu.net/emacsconf2021.html
           https://emacsconf.org/2021/talks/test/
   Slides: http://anggtwu.net/LATEX/2021emacsconf.pdf
   Video:  (find-eev2021video \"00:00\")
@@ -14993,12 +14994,19 @@ for Linux\" - instead of my previous method, that 
used this:
   (find-1stclassvideo-links \"2022eevwconfigpt1\")
   (find-1stclassvideo-links \"2022eevwconfigpt2\")
 
-and we are now testing this new set of instructions.
+and we are now testing this new set of instructions. My presentation at
+the EmacsConf 2024 was about this - see:
+
+  Page:  http://anggtwu.net/emacsconf2024.html
+  Play:  (find-eev2024video \"0:00\")
+  HSubs: (find-eev2024hsubs \"0:00\")
+
 Note: _This is a work in progress!!!_
 
 
 
 
+
 1. Install WSL, Debian, and Emacs
 =================================
 The complete instructions are here:
@@ -15327,13 +15335,18 @@ eepitch block,
  (eepitch-kill)
  (eepitch-shell)
   cd /tmp/
+  wget -N http://anggtwu.net/tmp/edrx-dot-maxima.tgz
   wget -N http://anggtwu.net/tmp/edrx-maxima.tgz
   # (find-fline \"/tmp/edrx-maxima.tgz\")
-  # (find-fline \"/tmp/edrx-maxima.tgz\" \".maxima/maxima-init.mac\")
+  # (find-fline \"/tmp/edrx-dot-maxima.tgz\")
+  # (find-fline \"/tmp/edrx-dot-maxima.tgz\" \".maxima/maxima-init.mac\")
+  tar -C ~/ -xvzf /tmp/edrx-dot-maxima.tgz
   tar -C ~/ -xvzf /tmp/edrx-maxima.tgz
+  # (find-fline \"~/MAXIMA/edrx-maxima.el\")
+ (load         \"~/MAXIMA/edrx-maxima.el\")
 
 that also installs my init file for Maxima and lots of small
-programs that I wrote. Note that the \"tar -C ~/ -xvzf\" above
+programs that I wrote. Note that the \"tar -C ~/ -xvzf\"s above
 will extract the files from the .tgz into these five directories,
 
   (find-fline \"~/.maxima/\")
@@ -15342,18 +15355,20 @@ will extract the files from the .tgz into these five 
directories,
   (find-fline \"~/luatree/\")
   (find-fline \"~/myqdraw/\")
 
-overwriting any files with the same names that are already there -
-and you had done any changes yourself to the Maxima init file the
-\"tar\" above will overwrite it. Check:
+overwriting any files with the same names that are already there.
+In particular, if you had done any changes yourself to the Maxima init
+files, the \"tar ...edrx-dot-maxima.tgz\" above will overwrite it!
+Check:
 
   (find-fline \"~/.maxima/maxima-init.mac\")
-  (find-fline \"/tmp/edrx-maxima.tgz\")
-  (find-fline \"/tmp/edrx-maxima.tgz\" \".maxima/maxima-init.mac\")
+  (find-fline \"/tmp/edrx-dot-maxima.tgz\")
+  (find-fline \"/tmp/edrx-dot-maxima.tgz\" \".maxima/maxima-init.mac\")
 
 Here are some tests for qdraw:
 
   (find-qdraw-links \"x,x^2,x^3,x^4\" \"-2,2\" \"-2,2\")
-  (find-es \"maxima\" \"2024.1-intro-complex\")
+  (find-myqdraw \"myqdraw3.mac\" \"myimp\")
+  (find-myqdraw \"myqdraw3.mac\" \"zpts\")
 
 
 
diff --git a/eev-lean4.el b/eev-lean4.el
index ecabc2ba60..20ae2ae125 100644
--- a/eev-lean4.el
+++ b/eev-lean4.el
@@ -89,9 +89,13 @@
 
 
 ;; «code-c-ds»  (to ".code-c-ds")
+;; (find-fline "~/.elan/toolchains/")
 ;; (find-lean4prefile "")
 ;; (find-lean4presh "find * | sort")
-(code-c-d "lean4pre"  
"~/.elan/toolchains/leanprover--lean4---stable/src/lean/")
+(code-c-d "lean4pre" "~/.elan/toolchains/leanprover--lean4---stable/src/lean/")
+(code-c-d "lean4pre" 
"~/.elan/toolchains/leanprover--lean4---v4.19.0/src/lean/")
+;; (find-lean4prefile "")
+
 
 ;; If lean4-mode or lsp-mode are not installed then the `code-c-d's
 ;; below will point to "nil" instead of to a real directory, and you
diff --git a/eev-plinks.el b/eev-plinks.el
index bdb2743721..94cf5df7e9 100644
--- a/eev-plinks.el
+++ b/eev-plinks.el
@@ -1,6 +1,6 @@
 ;;; eev-plinks.el -- elisp hyperlinks to invoke external processes.  -*- 
lexical-binding: nil; -*-
 
-;; Copyright (C) 2012-2024 Free Software Foundation, Inc.
+;; Copyright (C) 2012-2025 Free Software Foundation, Inc.
 ;;
 ;; This file is part of GNU eev.
 ;;
@@ -19,7 +19,7 @@
 ;;
 ;; Author:     Eduardo Ochs <eduardoo...@gmail.com>
 ;; Maintainer: Eduardo Ochs <eduardoo...@gmail.com>
-;; Version:    20250222
+;; Version:    20250321
 ;; Keywords:   e-scripts
 ;;
 ;; Latest version: <http://anggtwu.net/eev-current/eev-plinks.el>
@@ -430,7 +430,7 @@ If you need to adjust how `find-wget0' handles encodings,
 redefine `find-wget' to make it call `find-wget0' inside a `let*'
 block."
   (interactive (browse-url-interactive-arg "URL: "))
-  (apply 'find-wget0 url pos-spec-list))
+  (apply 'find-wget0 (ee-expand url) pos-spec-list))
 
 (defun find-wget-mode (sexp url &rest pos-spec-list)
   "Like `find-wget', but runs SEXP in the buffer with the contents of URL.
@@ -697,6 +697,7 @@ See: (find-strange-functions-intro)"
 ;;        (find-try-sly-intro "2. Install some elisp packages")
 ;;   Try: (ee-clhs-lookup-index "car")
 ;;        (find-clhsdoci        "car")
+;;        (find-ehashtable (clhs-symbols))
 ;;
 (defun find-clhsdoci (clhsname &rest rest)
   "Open the page of the Common Lisp Hyperspec corresponding to CLHSNAME.
diff --git a/eev-testblocks.el b/eev-testblocks.el
index 288ca90e55..680ac6cf8b 100644
--- a/eev-testblocks.el
+++ b/eev-testblocks.el
@@ -1,6 +1,6 @@
 ;;; eev-testblocks.el - create "test blocks" using multiline comments.  -*- 
lexical-binding: nil; -*-
 
-;; Copyright (C) 2019-2024 Free Software Foundation, Inc.
+;; Copyright (C) 2019-2025 Free Software Foundation, Inc.
 ;;
 ;; This file is part of GNU eev.
 ;;
@@ -19,7 +19,7 @@
 ;;
 ;; Author:     Eduardo Ochs <eduardoo...@gmail.com>
 ;; Maintainer: Eduardo Ochs <eduardoo...@gmail.com>
-;; Version:    20241005
+;; Version:    20250506
 ;; Keywords:   e-scripts
 ;;
 ;; Latest version: <http://anggtwu.net/eev-current/eev-testblocks.el>
@@ -207,6 +207,9 @@ include(\"%s\")
 ))))
 
 (defun ee-insert-test-lisp-mode ()
+  (funcall (ee-intern "ee-insert-test-lisp-mode-%s" current-prefix-arg)))
+
+(defun ee-insert-test-lisp-mode-nil ()
   (interactive)
   (insert (ee-adjust-red-stars (format "
 #|
diff --git a/eev-tlinks.el b/eev-tlinks.el
index c5fff69b95..31ff18ec34 100644
--- a/eev-tlinks.el
+++ b/eev-tlinks.el
@@ -1,6 +1,6 @@
 ;;; eev-tlinks.el --- hyperlinks to temporary buffers generated by templates  
-*- lexical-binding: nil; -*-
 
-;; Copyright (C) 2013-2024 Free Software Foundation, Inc.
+;; Copyright (C) 2013-2025 Free Software Foundation, Inc.
 ;;
 ;; This file is part of GNU eev.
 ;;
@@ -19,7 +19,7 @@
 ;;
 ;; Author:     Eduardo Ochs <eduardoo...@gmail.com>
 ;; Maintainer: Eduardo Ochs <eduardoo...@gmail.com>
-;; Version:    20241220
+;; Version:    20250425
 ;; Keywords:   e-scripts
 ;;
 ;; Latest version: <http://anggtwu.net/eev-current/eev-tlinks.el>
@@ -2018,7 +2018,8 @@ fossil open ~/usrc/fossil-repos/{subdir}.fsl
 ;; «find-apt-get-source-links»  (to ".find-apt-get-source-links")
 ;; (find-find-links-links "{k}" "apt-get-source" "pkg")
 ;; A test: (find-apt-get-source-links)
-;;    See: (find-eev2019video "14:43" "So the quickest way to change xpdf")
+;;    See: (find-eev2019hsubs "14:43" "So the quickest way to change xpdf")
+;;         (find-eev2019video "14:43" "So the quickest way to change xpdf")
 
 (defun find-apt-get-source-links (&optional pkg &rest pos-spec-list)
 "Visit a temporary buffer containing a script for apt-get source."
@@ -3664,6 +3665,7 @@ This function is used by `ee-0x0-upload-region'."
 ;; Test: (ee-let*-macro-1stclassvideo-c "eev2021" title)
 (defmacro ee-let*-macro-1stclassvideo-c (c &rest code)
   "An internal function used by `find-1stclassvideo-links'."
+  (declare (indent 2))
   `(let* ((c ,c)
          (title     (ee-1stclassvideos-field c :title))
          (mp4       (ee-1stclassvideos-field c :mp4))
@@ -3678,6 +3680,9 @@ This function is used by `ee-0x0-upload-region'."
          (hasindex  (ee-1stclassvideos-field c :index))
          (mp4stem   (ee-1stclassvideos-mp4stem c))
           (mp4found  (ee-1stclassvideos-mp4found c))
+          (pagestem  (ee-1stclassvideos-pagestem c))
+          (hsubstem  (ee-1stclassvideos-hsubstem c))
+          (lsubstem  (ee-1stclassvideos-lsubstem c))
          (hash      (ee-1stclassvideos-hash c))
          (hassubs   exts)
          (subsinit  (and hsubs (replace-regexp-in-string "^.*#" "" hsubs))))
@@ -5564,6 +5569,7 @@ myqdraw([xr({xr}),yr({yr})], myexs());
      ""
      ,(ee-template0 "\
 ;; (find-clhsdoci \"{name}\")
+;; (find-ehashtable (clhs-symbols))
 ;; (find-sbclnode \"Function Index\" \" {name}:\")
 ;; (find-sbclgrep \"grep --color=auto -niRH --null -e '{name}' *\")
 ;; (find-sbclgrep \"grep --color=auto -niRH --null -e 'defun {name}' *\")
diff --git a/eev-videolinks.el b/eev-videolinks.el
index 8890a30fbc..315966f2c1 100644
--- a/eev-videolinks.el
+++ b/eev-videolinks.el
@@ -1,6 +1,6 @@
 ;;; eev-videolinks.el --- support for [Video links:] blocks.  -*- 
lexical-binding: nil; -*-
 
-;; Copyright (C) 2021-2024 Free Software Foundation, Inc.
+;; Copyright (C) 2021-2025 Free Software Foundation, Inc.
 ;;
 ;; This file is part of GNU eev.
 ;;
@@ -19,7 +19,7 @@
 ;;
 ;; Author:     Eduardo Ochs <eduardoo...@gmail.com>
 ;; Maintainer: Eduardo Ochs <eduardoo...@gmail.com>
-;; Version:    20241231
+;; Version:    20250516
 ;; Keywords:   e-scripts
 ;;
 ;; Latest version: <http://anggtwu.net/eev-current/eev-videolinks.el>
@@ -84,8 +84,9 @@
 ;;   «.2024butler»                     (to "2024butler")
 ;;   «.2024trywithasexp»               (to "2024trywithasexp")
 ;;   «.2024bashtest»                   (to "2024bashtest")
-;;   «.2024pianoroll»                  (to "2024pianoroll")
 ;;   «.eev2024»                                (to "eev2024")
+;;   «.2024pianoroll»                  (to "2024pianoroll")
+;;   «.2025modern»                     (to "2025modern")
 ;; «.ee-1stclassvideos-field»          (to "ee-1stclassvideos-field")
 ;; «.second-class-videos»              (to "second-class-videos")
 ;;   «.code-eevvideo»                  (to "code-eevvideo")
@@ -993,6 +994,21 @@ of the videos and play them with mpv. Compare with
      :subs    ".vtt"
      :comment "An introduction to test blocks to people who are afraid of 
them.")
     ;;
+    ;; «eev2024»  (to ".eev2024")
+    ;; Play: (find-eev2024video "0:00")
+    ;; Subs: (find-eev2024hsubs "0:00")
+    ("eev2024"
+     :title "Emacs, eev, and Maxima - Now! (EmacsConf 2024)"
+     :mp4   "http://anggtwu.net/eev-videos/emacsconf2024.mp4";
+     :yt    "http://www.youtube.com/watch?v=ZQ4mUSRcqJc";
+     :page  "http://anggtwu.net/emacsconf2024.html";
+     :hsubs "http://anggtwu.net/emacsconf2024.html#0:00";
+     :date    "2024dec07"
+     :length  "30:33"
+     :subs    ".vtt"
+     :index   t
+     :comment "A non-technical video about teaching Emacs and eev to Brazilian 
students.")
+    ;;
     ;; «2024pianoroll»  (to ".2024pianoroll")
     ;; Play: (find-2024pianorollvideo "0:00")
     ;; Subs: (find-2024pianorollhsubs "0:00")
@@ -1007,21 +1023,19 @@ of the videos and play them with mpv. Compare with
      :subs    ".vtt"
      :comment "This video is about keyboard macros AND elisp macros!")
     ;;
-    ;; «eev2024»  (to ".eev2024")
-    ;; Play: (find-eev2024video "0:00")
-    ;; Subs: (find-eev2024hsubs "0:00")
-    ("eev2024"
-     :title "Emacs, eev, and Maxima - Now!"
-     :mp4   "http://anggtwu.net/eev-videos/emacsconf2024.mp4";
-     :yt    "http://www.youtube.com/watch?v=ZQ4mUSRcqJc";
-     :page  "http://anggtwu.net/emacsconf2024.html";
-     :hsubs "http://anggtwu.net/emacsconf2024.html#0:00";
-     :lang  "portuguese"
-     :date    "2024dec07"
-     :length  "30:33"
+    ;; «2025modern»  (to ".2025modern")
+    ;; Play: (find-2025modernvideo "0:00")
+    ;; Index: (find-1stclassvideoindex "2025modern")
+    ("2025modern"
+     :title "Some problems of modernizing Emacs (incomplete - slides 0 to 6 
only)"
+     :mp4   "http://anggtwu.net/eev-videos/2025-modern.mp4";
+     :yt    "http://www.youtube.com/watch?v=BRbOXmvkFFA";
+     :page  "http://anggtwu.net/2025-modern.html";
+     :hsubs "http://anggtwu.net/2025-modern.html#0:00";
+     :date    "2025mar12"
+     :length  "20:38"
      :subs    ".vtt"
-     :index   t
-     :comment "A non-technical video about teaching Emacs and eev to Brazilian 
students.")
+     :comment "A video about vector-like lambdas, `cl-print', and buttons.")
     ))
 
 
@@ -1040,6 +1054,7 @@ of the videos and play them with mpv. Compare with
 ;; (ee-1stclassvideos-localmp4 "eev2021")
 ;; (ee-1stclassvideos-mp4found "eev2021")
 ;; (ee-1stclassvideos-hash     "eev2021")
+;; (ee-1stclassvideos-hsubstem "eev2021")
 ;; (ee-1stclassvideos-hsubsurl "eev2021")
 ;; (ee-1stclassvideos-hsubsurl "eev2021" "01:45")
 ;; (find-eev "eev-videolinks.el" "more-info")
@@ -1055,6 +1070,13 @@ of the videos and play them with mpv. Compare with
   (let ((url (ee-1stclassvideos-field c :page)))
      (replace-regexp-in-string "^.*/\\([^/]*\\)\\.html$" "\\1" url)))
 
+(defun ee-1stclassvideos-hsubstem (c)
+  (let ((url (or (ee-1stclassvideos-field c :hsubs) "nil")))
+     (replace-regexp-in-string "^.*/\\([^/]*\\)\\.html.*$" "\\1" url)))
+
+(defun ee-1stclassvideos-lsubstem (c)
+  (ee-1stclassvideos-mp4stem c))
+
 (defun ee-1stclassvideos-hash (c)
   (let ((yt (ee-1stclassvideos-field c :yt)))
      (replace-regexp-in-string "^.*=\\([^=]*\\)$" "\\1" yt)))

Reply via email to