Remove Julia support
This commit is contained in:
parent
826f136d54
commit
eba271ef75
202
README.org
202
README.org
@ -2209,7 +2209,6 @@ list detailing and motivating each listing:
|
|||||||
(eshell . t)
|
(eshell . t)
|
||||||
(fortran . t)
|
(fortran . t)
|
||||||
(gnuplot . ,(fboundp 'gnuplot-mode))
|
(gnuplot . ,(fboundp 'gnuplot-mode))
|
||||||
(julia . t)
|
|
||||||
(latex . t)
|
(latex . t)
|
||||||
(lilypond . ,(fboundp 'lilypond-mode))
|
(lilypond . ,(fboundp 'lilypond-mode))
|
||||||
(lisp . t)
|
(lisp . t)
|
||||||
@ -2312,7 +2311,6 @@ When called twice, replace the previously inserted \\(\\) by one $."
|
|||||||
(defcustom org-insert-source-block-defaults
|
(defcustom org-insert-source-block-defaults
|
||||||
'("calc -n :results silent"
|
'("calc -n :results silent"
|
||||||
"emacs-lisp -n :results silent"
|
"emacs-lisp -n :results silent"
|
||||||
"julia -n :results silent"
|
|
||||||
"latex -n"
|
"latex -n"
|
||||||
"lisp -n :results silent :package :cs325-user"
|
"lisp -n :results silent :package :cs325-user"
|
||||||
"org -n"
|
"org -n"
|
||||||
@ -2754,9 +2752,9 @@ SCHEDULED: <2023-06-30 Fri>
|
|||||||
#+caption: Active Org Babel languages.
|
#+caption: Active Org Babel languages.
|
||||||
#+RESULTS: lst:org-babel-active-languages
|
#+RESULTS: lst:org-babel-active-languages
|
||||||
#+begin_src emacs-lisp -n :eval never :tangle no
|
#+begin_src emacs-lisp -n :eval never :tangle no
|
||||||
(("calc") ("conf") ("emacs-lisp") ("eshell") ("fortran") ("julia")
|
(("calc") ("emacs-lisp") ("eshell") ("fortran") ("latex")
|
||||||
("latex") ("latex-extra-header") ("latex-header") ("lisp") ("org")
|
("latex-extra-header") ("latex-header") ("lisp") ("org") ("perl")
|
||||||
("perl") ("python") ("ruby") ("shell") ("text") ("toml"))
|
("python") ("ruby") ("shell"))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
#+caption[Get "in-buffer" settings]:
|
#+caption[Get "in-buffer" settings]:
|
||||||
@ -4142,16 +4140,13 @@ out of your way. [[info:eglot#Top][Eglot (info)]] is a builtin since Emacs-29.1
|
|||||||
listings contribute to a programming language mode independent [[https://github.com/joaotavora/eglot][Eglot]]
|
listings contribute to a programming language mode independent [[https://github.com/joaotavora/eglot][Eglot]]
|
||||||
configuration:
|
configuration:
|
||||||
1. Listing [[lst:minimal-eglot-setup][minimal Eglot setup]] adds key bindings to =eglot-mode-keymap=.
|
1. Listing [[lst:minimal-eglot-setup][minimal Eglot setup]] adds key bindings to =eglot-mode-keymap=.
|
||||||
2. Listing [[lst:setup-eglot-jl]] adds [[https://julialang.org/][Julia]] support to [[info:eglot#Top][Eglot (info)]].
|
2. Listing [[lst:setup-oglot]] uses [[https://github.com/gav451/oglot#][oglot]] to enable using [[https://github.com/joaotavora/eglot][Eglot]] in =org-src-mode=
|
||||||
3. Listing [[lst:cli-eglot-jl-setup]] shows how to setup [[https://github.com/non-Jedi/eglot-jl][eglot-jl]] from the command
|
Python buffers (and not for Julia buffers).
|
||||||
line.
|
3. Listing [[lst:eglot-maybe-ensure]] starts [[https://github.com/joaotavora/eglot][Eglot]] in case of proper programming
|
||||||
4. Listing [[lst:setup-oglot]] uses [[https://github.com/gav451/oglot#][oglot]] to enable using [[https://github.com/joaotavora/eglot][Eglot]] in =org-src-mode=
|
|
||||||
Julia and Python buffers.
|
|
||||||
5. Listing [[lst:eglot-maybe-ensure]] starts [[https://github.com/joaotavora/eglot][Eglot]] in case of proper programming
|
|
||||||
modes and proper directory local variables (meaning in presence of a proper
|
modes and proper directory local variables (meaning in presence of a proper
|
||||||
file [[info:emacs#Directory Variables][.dir-locals.el]] in the root directory of any project using proper
|
file [[info:emacs#Directory Variables][.dir-locals.el]] in the root directory of any project using proper
|
||||||
programming modes).
|
programming modes).
|
||||||
6. Listing [[lst:whiten-black]] defines Emacs Lisp functions to undo (whiten) some
|
4. Listing [[lst:whiten-black]] defines Emacs Lisp functions to undo (whiten) some
|
||||||
output of [[https://black.readthedocs.io/en/stable/][Black]] after src_emacs-lisp[:results silent]{(org-babel-tangle)}.
|
output of [[https://black.readthedocs.io/en/stable/][Black]] after src_emacs-lisp[:results silent]{(org-babel-tangle)}.
|
||||||
|
|
||||||
#+caption[Ensure =eglot= installation with minimal setup]:
|
#+caption[Ensure =eglot= installation with minimal setup]:
|
||||||
@ -4164,31 +4159,12 @@ configuration:
|
|||||||
(keymap-set eglot-mode-map "C-c r" 'eglot-rename))
|
(keymap-set eglot-mode-map "C-c r" 'eglot-rename))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
#+caption: Setup ~eglot~ for ~julia-mode~.
|
#+caption: Setup ~oglot~ for ~python-mode~.
|
||||||
#+name: lst:setup-eglot-jl
|
|
||||||
#+begin_src emacs-lisp -n :results silent
|
|
||||||
;; How to invoke `imenu-add-menubar-index' automatically?
|
|
||||||
;; Neither advising `eglot' nor hooking major modes seems to work.
|
|
||||||
(when (ensure-package-installation 'eglot-jl)
|
|
||||||
(eglot-jl-init))
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
#+caption[Setup =eglot-jl= from the command line]:
|
|
||||||
#+caption: Setup =eglot-jl= from the command line.
|
|
||||||
#+name: lst:cli-eglot-jl-setup
|
|
||||||
#+begin_src shell :eval never
|
|
||||||
# Run this from `package-user-dir':
|
|
||||||
julia --project=eglot-jl-20240318.1159/ eglot-jl-20240318.1159/eglot-jl.jl
|
|
||||||
# The SymbolServer is ready caching dependencies when it displays:
|
|
||||||
# [ Info: Received new data from Julia Symbol Server.
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
#+caption: Setup ~oglot~ for ~julia-mode~ and ~python-mode~.
|
|
||||||
#+name: lst:setup-oglot
|
#+name: lst:setup-oglot
|
||||||
#+begin_src emacs-lisp -n :results silent
|
#+begin_src emacs-lisp -n :results silent
|
||||||
(when (and (package-installed-p 'oglot)
|
(when (and (package-installed-p 'oglot)
|
||||||
(require 'oglot nil 'noerror))
|
(require 'oglot nil 'noerror))
|
||||||
(setopt oglot-maybe-ensure-modes '(julia-mode python-mode)))
|
(setopt oglot-maybe-ensure-modes '(python-mode)))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
#+caption[Start =eglot= in case of a proper =dir-local-variables-alist=]:
|
#+caption[Start =eglot= in case of a proper =dir-local-variables-alist=]:
|
||||||
@ -5082,164 +5058,6 @@ Links for further investigation are:
|
|||||||
(add-to-list 'auto-mode-alist `(,(rx ".go" eos) . go-ts-mode)))
|
(add-to-list 'auto-mode-alist `(,(rx ".go" eos) . go-ts-mode)))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** [[https://julialang.org/][Julia programming]]
|
|
||||||
:PROPERTIES:
|
|
||||||
:CUSTOM_ID: sec:julia-programming
|
|
||||||
:END:
|
|
||||||
|
|
||||||
Points for further investigation are:
|
|
||||||
1. Application of the [[https://docs.julialang.org/en/v1/stdlib/Pkg/][Julia Pkg documentation]] requires {{{kbd(M-x term)}}} or a
|
|
||||||
terminal because the inferior Julia interpreter provides no genuine terminal.
|
|
||||||
Type {{{kbd(])}}} to enter package mode and type {{{kbd(<backspace>)}}} or
|
|
||||||
click ~BREAK~ on the ~SIGNALS~ menu to leave package mode. Type
|
|
||||||
{{{kbd(st)}}} in package mode to see a list of added packages. Julia does
|
|
||||||
not recognize dependencies anymore. Therefore, I have used package mode to
|
|
||||||
add ~StaticLint~ and ~SymbolServer~ to make a patched version of [[https://github.com/non-Jedi/eglot-jl][eglot-jl]]
|
|
||||||
work.
|
|
||||||
2. [[https://github.com/emacs-ess/ESS/wiki/Julia][ESS support for the Julia language]] is a somewhat outdated description of how
|
|
||||||
to obtain [[https://julialang.org/][Julia]] support for [[https://ess.r-project.org/][Emacs Speaks Statistics]] and [[https://www.gnu.org/software/emacs/][Emacs]].
|
|
||||||
3. [[https://www.packtpub.com/product/hands-on-design-patterns-and-best-practices-with-julia/9781838648817][Hands-On: Design Patterns and Best Practices with Julia]] is a Julia book with
|
|
||||||
good reviews.
|
|
||||||
4. [[https://juliabyexample.helpmanual.io/][Julia by example]] is a showcase of 1- or 2-liners.
|
|
||||||
5. [[https://github.com/JuliaCI/PkgTemplates.jl][PkgTemplates]] and [[https://juliaci.github.io/PkgTemplates.jl/stable/user/][PkgTemplates User Guide]] explain how to write a [[https://julialang.org/][Julia]]
|
|
||||||
package. [[https://julialang.org/contribute/developing_package/][How to develop a Julia package]] is friendlier but not up to date.
|
|
||||||
6. [[https://nostarch.com/practical-julia][Practical Julia]] is Julia book with good reviews.
|
|
||||||
7. The list of installed packages in listing [[lst:list-julia-packages-result]]
|
|
||||||
facilitate [[https://orgmode.org/worg/org-contrib/babel/languages/ob-doc-julia.html][Julia Code Blocks in Babel]] because the list contains [[https://github.com/JuliaData/CSV.jl][CSV]] and
|
|
||||||
[[https://dataframes.juliadata.org/stable/][DataFrames]].
|
|
||||||
8. How to update automatically to the [[https://julialang.org/downloads/#current_stable_release][current stable release of Julia]].
|
|
||||||
A list of interesting online course material is:
|
|
||||||
1. [[https://ucidatascienceinitiative.github.io/IntroToJulia/][A Deep Introduction to Julia for Data Science and Scientific Computing]].
|
|
||||||
2. [[https://juliateachingctu.github.io/Julia-for-Optimization-and-Learning/stable/][Julia for Optimization and Learning]].
|
|
||||||
3. [[https://github.com/JuliaTeachingCTU/Julia-for-Optimization-and-Learning-Scripts][Julia for Optimization and Learning Scripts]].
|
|
||||||
4. [[https://julia.quantecon.org/intro.html][Quantitative Economics with Julia]] (use backspace to leave package mode).
|
|
||||||
Here are links to Julia programming background videos:
|
|
||||||
1. [[yt:3Ix53dRmcqU][Creating a Julia Pkg with PkgTemplates.jl]]
|
|
||||||
2. [[yt:pOeTz8UlWoc][Revise.jl, Docstrings, Tests, and structuring a Julia package]]
|
|
||||||
Listing [[lst:setup-julia]] setups [[https://julialang.org/][Julia]] support but requires manual tweaking of
|
|
||||||
[[../VCS/ESS/Makefile][Makefile]] to replace [[https://en.wikipedia.org/wiki/Sed][sed]] with [[https://formulae.brew.sh/formula/gnu-sed][gsed]] and of [[../VCS/ESS/lisp/ess-autoloads.el][ess-autoloads.el]].
|
|
||||||
|
|
||||||
#+caption[Setup Julia programming]:
|
|
||||||
#+caption: Setup Julia programming.
|
|
||||||
#+name: lst:setup-julia
|
|
||||||
#+begin_src emacs-lisp -n :results silent
|
|
||||||
(push (expand-file-name "~/VCS/ESS/lisp") load-path)
|
|
||||||
(when (require 'ess-julia nil 'noerror)
|
|
||||||
(setopt inferior-julia-program (executable-find "julia")))
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
#+caption[List installed Julia packages]:
|
|
||||||
#+caption: List installed Julia packages.
|
|
||||||
#+name: lst:list-julia-packages
|
|
||||||
#+header: :wrap "src toml -n"
|
|
||||||
#+begin_src shell :exports both :results raw
|
|
||||||
cat "$HOME/.julia/environments/v1.10/Project.toml"
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
#+caption[List installed Julia packages result]:
|
|
||||||
#+caption: List installed Julia packages result.
|
|
||||||
#+name: lst:list-julia-packages-result
|
|
||||||
#+RESULTS: lst:list-julia-packages
|
|
||||||
#+begin_src toml -n
|
|
||||||
[deps]
|
|
||||||
BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf"
|
|
||||||
CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b"
|
|
||||||
Calculus = "49dc2e85-a5d0-5ad3-a950-438e2897f1b9"
|
|
||||||
DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0"
|
|
||||||
IJulia = "7073ff75-c697-5162-941a-fcdaad2a7d2a"
|
|
||||||
LanguageServer = "2b0e0bc5-e4fd-59b4-8912-456d1b03d8d7"
|
|
||||||
Luxor = "ae8d54c2-7ccd-5906-9d76-62fc9837b5bc"
|
|
||||||
Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7"
|
|
||||||
Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
|
|
||||||
PkgTemplates = "14b8a8f1-9102-5b29-a752-f990bacb7fe1"
|
|
||||||
Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80"
|
|
||||||
StaticLint = "b3cc710f-9c33-5bdb-a03d-a94903873e97"
|
|
||||||
SymbolServer = "cf896787-08d5-524d-9de7-132aaa0cb996"
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
#+caption[List ~Makefile~ for ~Homebrew~ patch]:
|
|
||||||
#+caption: List ~Makefile~ for ~Homebrew~ patch.
|
|
||||||
#+name: lst:list-makefile-for-homebrew-patch
|
|
||||||
#+header: :wrap "src diff -n"
|
|
||||||
#+begin_src shell :exports both :results raw
|
|
||||||
cat "$HOME/VCS/ESS/0001-Patch-Makefile-for-Home-Brew.patch"
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
*** ESS Makefile for Homebrew patch
|
|
||||||
:PROPERTIES:
|
|
||||||
:CUSTOM_ID: sec:ess-for-homebrew-patch
|
|
||||||
:END:
|
|
||||||
|
|
||||||
#+RESULTS: lst:list-makefile-for-homebrew-patch
|
|
||||||
#+begin_src diff -n
|
|
||||||
From 71729a02a190c1f1bfca02dd6db6d5f736437d5a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Gerard Vermeulen <gerard.vermeulen@posteo.net>
|
|
||||||
Date: Mon, 26 Feb 2024 19:48:19 +0100
|
|
||||||
Subject: [PATCH] Patch Makefile for Home Brew
|
|
||||||
|
|
||||||
---
|
|
||||||
Makefile | 16 ++++++++--------
|
|
||||||
1 file changed, 8 insertions(+), 8 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/Makefile b/Makefile
|
|
||||||
index 182094a3..3409cf66 100644
|
|
||||||
--- a/Makefile
|
|
||||||
+++ b/Makefile
|
|
||||||
@@ -4,14 +4,14 @@
|
|
||||||
include ./Makeconf
|
|
||||||
|
|
||||||
ESSVERSION := $(shell cat VERSION)
|
|
||||||
-PKGVERSION := $(shell sed -n 's/;; Version: *\(.*\) */\1/p' lisp/ess.el)
|
|
||||||
+PKGVERSION := $(shell gsed -n 's/;; Version: *\(.*\) */\1/p' lisp/ess.el)
|
|
||||||
ESSDIR := ess-$(ESSVERSION)
|
|
||||||
ifneq ($(ESSVERSION), $(PKGVERSION))
|
|
||||||
- $(shell sed -i 's/Version: .*/Version: $(ESSVERSION)/' VERSION)
|
|
||||||
- ${shell sed -i 's/;; Version: .*/;; Version: $(ESSVERSION)/' lisp/ess.el}
|
|
||||||
+ $(shell gsed -i 's/Version: .*/Version: $(ESSVERSION)/' VERSION)
|
|
||||||
+ ${shell gsed -i 's/;; Version: .*/;; Version: $(ESSVERSION)/' lisp/ess.el}
|
|
||||||
endif
|
|
||||||
|
|
||||||
-ESSR-VERSION := $(shell sed -n "s/;; ESSR-Version: *\(.*\) */\1/p" lisp/ess.el)
|
|
||||||
+ESSR-VERSION := $(shell gsed -n "s/;; ESSR-Version: *\(.*\) */\1/p" lisp/ess.el)
|
|
||||||
|
|
||||||
.PHONY: all
|
|
||||||
all: lisp doc etc autoloads
|
|
||||||
@@ -19,10 +19,10 @@ all: lisp doc etc autoloads
|
|
||||||
.PHONY: version
|
|
||||||
version: VERSION
|
|
||||||
@echo "********************* VERSIONS **************************"
|
|
||||||
- @echo $(shell $(EMACS) --version | sed -n 1p)
|
|
||||||
+ @echo $(shell $(EMACS) --version | gsed -n 1p)
|
|
||||||
@echo ESS $(ESSVERSION)
|
|
||||||
@echo ESSR $(ESSR-VERSION)
|
|
||||||
- @sed -i "s/\"VERSION\"/\"$(ESSVERSION)\"/" lisp/ess-custom.el
|
|
||||||
+ @gsed -i "s/\"VERSION\"/\"$(ESSVERSION)\"/" lisp/ess-custom.el
|
|
||||||
@echo "*********************************************************"
|
|
||||||
|
|
||||||
.PHONY: lisp
|
|
||||||
@@ -59,7 +59,7 @@ autoloads:
|
|
||||||
essr: VERSION
|
|
||||||
@echo "**********************************************************"
|
|
||||||
@echo "** Making ESSRv$(ESSR-VERSION) **"
|
|
||||||
- @sed -i "s/^ *VERSION <- .*/ VERSION <- \"$(ESSR-VERSION)\"/" etc/ESSR/R/.load.R
|
|
||||||
+ @gsed -i "s/^ *VERSION <- .*/ VERSION <- \"$(ESSR-VERSION)\"/" etc/ESSR/R/.load.R
|
|
||||||
cd etc/ESSR/; ./BUILDESSR; cd -
|
|
||||||
@git add etc/ESSR.rds lisp/ess.el etc/ESSR/R/.load.R
|
|
||||||
git commit -m"ESSR Version $(ESSR-VERSION)"
|
|
||||||
@@ -160,7 +160,7 @@ cleanup-rel:
|
|
||||||
@rm -f tarballs dist tag homepage upload rel
|
|
||||||
|
|
||||||
%.spec: %.spec.in VERSION
|
|
||||||
- sed 's/@@VERSION@@/$(ESSVERSION)/g' $< > $@
|
|
||||||
+ gsed 's/@@VERSION@@/$(ESSVERSION)/g' $< > $@
|
|
||||||
|
|
||||||
## --- RELEASE section ---
|
|
||||||
|
|
||||||
--
|
|
||||||
2.42.0
|
|
||||||
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** [[https://www.seas.upenn.edu/~chaoliu/2017/09/01/python-programming-in-emacs/][Python programming]]
|
** [[https://www.seas.upenn.edu/~chaoliu/2017/09/01/python-programming-in-emacs/][Python programming]]
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
:CUSTOM_ID: sec:python-programming
|
:CUSTOM_ID: sec:python-programming
|
||||||
@ -6052,7 +5870,7 @@ formatter for Python]].
|
|||||||
#+begin_src emacs-lisp -n :results silent
|
#+begin_src emacs-lisp -n :results silent
|
||||||
(when (and (ensure-package-installation 'electric-operator)
|
(when (and (ensure-package-installation 'electric-operator)
|
||||||
(fboundp 'electric-operator-mode))
|
(fboundp 'electric-operator-mode))
|
||||||
(dolist (symbol '(c-mode-common-hook julia-mode-hook python-mode-hook))
|
(dolist (symbol '(c-mode-common-hook python-mode-hook))
|
||||||
(add-hook symbol #'electric-operator-mode)))
|
(add-hook symbol #'electric-operator-mode)))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user