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)))