X



Emacs Part 53
■ このスレッドは過去ログ倉庫に格納されています
0323名無しさん@お腹いっぱい。
垢版 |
2021/10/26(火) 10:50:34.00
雄牛が雌牛の上に乗っかって後尾してるようなロゴなんとかならんの?
0324名無しさん@お腹いっぱい。
垢版 |
2021/10/26(火) 10:51:59.50
後尾じゃなくて交尾の間違いでした。
申し訳ございませんでした。
0329名無しさん@お腹いっぱい。
垢版 |
2021/10/27(水) 14:15:41.48
交尾w
どんだけ想像力がたくましいんだw
中坊の頃はスーパーのチラシでオ○れたがそんなピュアな心はとうに無くなったよ
0330名無しさん@お腹いっぱい。
垢版 |
2021/10/27(水) 16:22:01.24
言われてみれば見えなくもない
gnuのもそうだけどマジでかわいくないよなこのマスコット
あと俺環かもしれんがinit.elにtoggle-fram-fullscreen書いとくとこの交尾牛何故かスタートアップマニュアルから消える

goのgopherの方が数万倍かわいい(´・ω・`)
0333名無しさん@お腹いっぱい。
垢版 |
2021/10/27(水) 21:51:32.62
>>331
牛ではなくgnuだろう

マービン・ミンスキーがgnuの絵を見て、そばにgnuと書かれてるのに気付かず
「これは牛かな?水牛かな?」と言っていつまでたっても当てられなかったのでストールマンは笑い転げた
って話を思い出した
0336名無しさん@お腹いっぱい。
垢版 |
2021/10/28(木) 23:08:28.99
逆に考えるんだ
交尾の一体どこが不適切だというのだろうか
0337名無しさん@お腹いっぱい。
垢版 |
2021/10/29(金) 00:03:10.97
What's the fuck
0338名無しさん@お腹いっぱい。
垢版 |
2021/10/29(金) 06:37:46.18
珍しく伸びてると思ったら何だこれは
0339名無しさん@お腹いっぱい。
垢版 |
2021/10/29(金) 18:51:56.88
>>334
0340名無しさん@お腹いっぱい。
垢版 |
2021/11/03(水) 11:30:10.92
もしわかる人がいれば教えてください。

MX21(Debian11)でemacs-gtk(1:27.1+1-3.1)をインストールしてEmacsは/usr/share/emacs以下にあります。
apel(flim/semi/wanderlustの前に)をソースからmake installするとなぜか/usr/local/share/emacs以下にインストールされ、
そのままflimをmake installすると今度はflimがapelを見付けられません。
PREFIX=/usrとしても無視されてしまい、
LISPDIR/VERSION_SPECIFIC_LISPDIRをそれぞれ指定しないと/usr/share/emacs以下にインストールされません。

これまでapelはmake installするだけでemacsの枝を見付けてくれたはずですが、
何が原因でしょうか?
0344名無しさん@お腹いっぱい。
垢版 |
2021/11/05(金) 23:32:26.54
手元にあるManjaroでも何もしなくても/usr/share/emacs以下に入る。
MX21(Debian11)で-q --no-site-fileで起動してAPEL-MKを読み込んで調べると、
PREFIXには最初から/usrが設定されるがLISPDIRは/usr/local/share/emacs/site-lispになる。

MX21(Debian11)では-q --no-site-fileで起動してもload-pathの先頭の方に/usr/local/share/emacs/site-lisp(空だが)が来る。
Manjaroの方は/usr/share/emacs/site-lispが来るからLISPDIRにこれが設定されるのかな。
なぜMX21(Debian11)では/usr/local...が先頭の方に追加されているのかは不明。
debain-startup.elというのを読まないようにしてもだめみたいだがどこから出て来るの?
0345名無しさん@お腹いっぱい。
垢版 |
2021/11/06(土) 10:40:20.04
それほど詳しくないんだけど、
debian-startup.el*をよけても起動にはemacs.pdmpが使われるからだめなのかな?
どうやらdebian-startupのパッチが当たらないソースなら問題がないように見えるので、
Debianのパッケージが原因ということでいいのかな。
MX18(Debian9)では問題なかったような気がしたけどはっきり憶えてない。
0346名無しさん@お腹いっぱい。
垢版 |
2021/11/06(土) 11:14:10.81
debianはパッケージを使うもの。
パッケージはdebianのファイル配置規則に沿ったディレクトリにインストールするように設定されてる
0347名無しさん@お腹いっぱい。
垢版 |
2021/11/06(土) 14:05:13.30
そういうものなのかな。
MXみたいにDebianのLTSベースで3〜4年使うとパッケージも古くなるから、
Emacsに限らずソースからインストールすることは時々あるんだけど。
ともかく原因は多分わかったのでどちらでも対処できればよいかな。
0348名無しさん@お腹いっぱい。
垢版 |
2021/11/06(土) 15:30:32.16
MXがDebian11に未対応なんじゃない?
Debianの場合自分でビルドするなら/usrとかじゃなくて/homeの自分のホームディレクトリにインストールするものだと思う。
0349名無しさん@お腹いっぱい。
垢版 |
2021/11/06(土) 16:54:24.79
Debianを使ったことがないからあれだけど、
emacs-gtkはDebianのリポジトリのパッケージだし、
apelはgitのソースでまだ何かあるのかな?
emacsが/usr以下にあってもapelが/usr/local以下に入るのはDebianのソースのパッチだと思うけど。
0351名無しさん@お腹いっぱい。
垢版 |
2021/11/06(土) 17:57:39.88
>>340の人は最新のwanderlustを使いたいだけみたいだからDebianパッケージのemacs-gtk使って
wanderlust関連だけホームディレクトリにインストールしたら良いと思うのだけど
もしかしてEmacsも最新の入れたいのかな。Emacsはホームディレクトリではない所に入れるものだね
0352名無しさん@お腹いっぱい。
垢版 |
2021/11/06(土) 21:35:10.86
PREFIX=~/.localみたいにするということですか?
それでapelを~/.local/share/emacs/site-lispにインストールして、
flimとsemiはLISPDIR=~/.local/share/emacs/site-lispで一応インストールできますが、
wanderlustはもう少し面倒みたいです。
いずれにしてもDebianパッケージでないEmacsなら
sudo make installだけで/usr/share/emacs以下にインストールされるのに比べるとやや面倒ですね。

EmacsはDebianパッケージでいいんですがどうも釈然としません。
それに上記意外のelispパッケージのインストールでは特に問題は起きていません。
0353名無しさん@お腹いっぱい。
垢版 |
2021/11/07(日) 23:21:25.99
Emacsの無関係のDebian11パッケージで中途半端にディレクトリ変わってるのがあったから
Emacsも中途半端にディレクトリ変更されてるのかもしれない。
Debian BTSでバグ報告すると解消してもらえるかも
0354名無しさん@お腹いっぱい。
垢版 |
2021/11/08(月) 21:48:36.99
他のelispパッケージで問題が出てないので、
Debianとapel/flim/semi/wanderlustどちらが問題なのか判断が難しそう。
多分、過去には問題がなかったのでDebianの変更と関係はあるんだろうけど、
もともとapel/flim/semi/wanderlustのパッケージの依存関係が面倒でこうなってる気もするし。
0357名無しさん@お腹いっぱい。
垢版 |
2021/11/23(火) 19:58:06.89
ノーガード戦法だ
最初登録申請するときはソースコードをチェックしてるけど、その後のアップデートは当然ながら追いきれるわけもなく、そのまんま各々のEmacsに降ってくる
この辺の事情はVimとかも一緒だと思う
この問題を解決しようとしたら、やるべき事が多すぎてかなり大変だろうね
0358名無しさん@お腹いっぱい。
垢版 |
2021/11/23(火) 21:18:12.06
>>357
薄々は分かってたけど、サンドボックス化されてないemacsではすげー危険だよな。

chromeは限界はあるものの拡張の悪意を封じ込める機構があるからな。emacsは外部コマンドrmとか呼ばれたらどうにもならない。
0359名無しさん@お腹いっぱい。
垢版 |
2021/11/24(水) 00:20:16.35
>>358
ブラウザみたいに出来る事に制限を掛ければ幾分マシになるとは思う
大抵のpackageにはネットワークアクセスは必要無い訳だし、それを制限出来れば少なくともローカルデータの無断アップデートは防げる
ただ、その仕組みを実装するのは簡単じゃないだろうね
0360名無しさん@お腹いっぱい。
垢版 |
2021/11/24(水) 00:24:05.09
取り敢えず、得たいの知れないpackageをインストールしないっていう自衛だけで今まで上手く行ってるし、これからもそうやって行くと思われる
0361名無しさん@お腹いっぱい。
垢版 |
2021/11/24(水) 21:59:07.88
頻繁に更新してるパッケージならメンテしてる人が悪コード混入に気付くだろうし
悪コード混入させる奴は広範囲に影響及ぼすのが目的だろうから利用者の少ないmelpaなんか眼中に無いと思う。
0362名無しさん@お腹いっぱい。
垢版 |
2021/11/24(水) 22:26:33.67
>>361
大筋は同意だけど、そこはなかなか単純に割り切れなくて難しい問題だと思うの。
俺が悪さしようと思ったら監視の少ないショボイ拡張にブラウザのクッキーを全部scpするようなスクリプト入れ込んで、幾つかアカウント盗めればいいかなとか思っちゃう。

個人の悪さとしては十分元が取れる。結局は手間と利益の天秤にすぎないから。
じゃあ何でEmacsでインシデントが起きてないかは知らんww
0363名無しさん@お腹いっぱい。
垢版 |
2021/11/24(水) 22:36:23.35
メジャーなプロジェクトでも、よからぬことが意外とあり得る、というのはいくつかあったやろ。

結局、安心の根拠探しはムリ!
0368名無しさん@お腹いっぱい。
垢版 |
2021/11/25(木) 13:30:22.00
native compilationてあまり話題にならないのかな?
まあ、どれほど違うのか測りかねるところもあるけど。
0370名無しさん@お腹いっぱい。
垢版 |
2021/11/26(金) 04:13:07.88
少なくともEmacs-lispなら出来上がりがかなり不自然になるので
使う前に誰かがきずくと思う
変なところをアクセスしたり、変なポートを開けたり、通信したり
することになるわけだから
0379名無しさん@お腹いっぱい。
垢版 |
2021/11/27(土) 09:52:14.22
なあRMSて敬称? 様付けの方がいいかな
0386名無しさん@お腹いっぱい。
垢版 |
2021/11/28(日) 13:25:27.76
所有者がrootのファイルを編集して保存するとバックアップに失敗します。

C-x C-f /sudo::/etc/secret.txt

Auto-saving...done
Saving file /sudo:root@****:/etc/secret.txt...
Renaming /sudo:root@****:/etc/secret.txt to /home/****/.emacs.d/backup/!sudo:root@****:!etc!secret.txt~...failed
Cannot write backup file; backing up in ~/.emacs.d/%backup%~
Copying /sudo:root@****:/etc/secret.txt to /home/****/.emacs.d/%backup%~...done
Copying /tmp/tramp.ICQiuU.txt to /sudo:root@****:/etc/secret.txt...done
Wrote /sudo:root@****:/etc/secret.txt

バックアップの場所は固定しています。
(setq backup-directory-alist '(("." . "~/.emacs.d/backup/")))
(setq auto-save-file-name-transforms '((".*" "~/.emacs.d/backup/" t)))

tramp-backup-directory-alistは設定していません。
自動保存は設定通り~/.emacs.d/backup/に作成されています。
Emacs29.0.50ですが何が問題でしょうか?
0387名無しさん@お腹いっぱい。
垢版 |
2021/11/28(日) 19:48:41.72
次のコマンドも失敗するので何か制限があるんでしょうか?
% touch /home/****/.emacs.d/backup/!sudo:root@****:!etc!secret.txt~
zsh: modifier failed: r

bashでも失敗します。
% touch /home/****/.emacs.d/backup/!sudo:root@****:!etc!secret.txt~
bash: !etc!secret.fxt~: event not found
0388名無しさん@お腹いっぱい。
垢版 |
2021/11/28(日) 19:57:17.26
sudo のそれるびきちが記事書いてなかったか?
0390名無しさん@お腹いっぱい。
垢版 |
2021/11/29(月) 01:06:41.47
make-backup-file-nameにadviceして通常なら書き込めるファイル名にしても失敗する。
Saving file /sudo:root@asus:/etc/secret.txt...
Renaming /sudo:root@asus:/etc/secret.txt to /home/tosh/.emacs.d/backup/^sudo:root@asus:^etc^secret.txt~...failed
Cannot write backup file; backing up in ~/.emacs.d/%backup%~
Copying /sudo:root@asus:/etc/secret.txt to /home/tosh/.emacs.d/%backup%~...done
Copying /tmp/tramp.rIzC8d.txt to /sudo:root@asus:/etc/secret.txt...done
Wrote /sudo:root@asus:/etc/secret.txt

こうしてしまえば/root/.emacs.d/backup/にバックアップされるから、
バックアップしてファイルの所有者が変わるとだめなのかな?
(setq tramp-backup-directory-alist backup-directory-alist)
0391名無しさん@お腹いっぱい。
垢版 |
2021/12/02(木) 17:32:54.61
るびきちの本買ったけど、古くて使えないのかな
auto-install入れても、空テキストしか持ってこないよ
0394名無しさん@お腹いっぱい。
垢版 |
2021/12/02(木) 21:32:47.47
>>392
そっちは持ってないんですよ
買いですか?
0395名無しさん@お腹いっぱい。
垢版 |
2021/12/02(木) 21:33:19.29
>>393
w
ブッコフで200円だったもんで
0397名無しさん@お腹いっぱい。
垢版 |
2021/12/02(木) 23:28:32.64
>>396
ELisp使えるようになりたいたいんですよねー
一応「ヌー」本第三版は持ってるものの、25使ってて、27にアップデートするのがめんどくさいですw
でもリンクサンクスです
0398名無しさん@お腹いっぱい。
垢版 |
2021/12/02(木) 23:31:30.20
そこに25のマニュアルもあるんですね参考にします
るびきち本はレイアウトとかが割と気に入ってるので、多分Lispの方も買うと思います
0399名無しさん@お腹いっぱい。
垢版 |
2021/12/03(金) 06:47:48.97
>>397
lispはlexical scopeとdynamic scopeどちらも使えるのがいいよね。
dynamic scope使えるおかげで、既存コードの挙動を簡単に変えることができ、emacsのカスタマイズを容易にしている。
コードを追いづらくなるから他の言語では殆どサポートされていない機能だけど。
また、lexical scopeもサポートされているのでクロージャも使える。
0400名無しさん@お腹いっぱい。
垢版 |
2021/12/03(金) 10:09:28.38
>>399
今のElispは全部レキシカルスコープがデフォルトだから、ダイナミックスコープの恩恵は受けてないでしょ
古いソースコードでもダイナミックスコープじゃないと動かないコードはごく僅かだよ
0402名無しさん@お腹いっぱい。
垢版 |
2021/12/03(金) 10:58:16.59
内部設定がデフォルトということではなくて、ソースコードの一番上にレキシカルスコープの宣言を書くことが当たり前になってるから、運用的にデフォルトということか
0404名無しさん@お腹いっぱい。
垢版 |
2021/12/03(金) 18:38:26.20
>>403
言いたい事は分かるけど、それをダイナミックバインディングとは言わないんだよね
強いて言うならスペシャル変数のバインディングという感じか
ダイナミックバインディングと挙動が似てるから混同しがち
ひとつ例を出すと
;; -*- lexical-binding: t -*-
(setq hoge 1)

(defun print-hoge ()
(print hoge))

(defun foo ()
(let ((hoge 2))
(print-hoge)
(print hoge)))

(foo) =>

1

2
となる
setqで強引に作ったグローバル変数はスペシャル変数じゃないのでこうなるけど、一番上のコメント行を削除するとダイナミックバインディンになって
(foo) =>

2

2
となる
0405名無しさん@お腹いっぱい。
垢版 |
2021/12/03(金) 18:48:46.46
ちなみにCommon Lispでも同じ挙動だ
でもCommon Lispをダイナミックバインドの言語とは言わないだろう(設定で出来るらしいが詳しくは知らん)
defvarとletの挙動はスペシャル変数のバインドと言えばいいだろう
0408名無しさん@お腹いっぱい。
垢版 |
2021/12/04(土) 12:00:31.58
>>407
スペシャル変数はダイナミックスコープで管理されると言えばいいんだな
そもそもダイナミックバインディングとダイナミックスコープの用語を一緒くたにするというアホなことしてた
昔のEmacsはスペシャル変数でなくても、letで定義された変数を全てダイナミックスコープで扱うダイナミックバインディングだった
今はスペシャル変数のみダイナミックスコープで扱う、レキシカルバインディングが(運用上)デフォルトになっている
と言えばいいのかね
0412名無しさん@お腹いっぱい。
垢版 |
2021/12/06(月) 01:13:34.08
.elの一行目に
;; -*- lexical-binding: t -*-
を書くとレキシカルバインディングになる
今は全部の.elに書かれてるから、もうデフォルトと言って間違いない
0414名無しさん@お腹いっぱい。
垢版 |
2021/12/06(月) 12:34:41.52
# cd /usr/share/emacs/27.1/lisp
# ls *.el.gz | wc -l
265
# zgrep -l lexical *.el.gz | wc -l
149

/usr/share/emacs/27.1/lisp 配下のファイルでは、lexical の宣言がされているのは、半分強くらいなようです。
0415名無しさん@お腹いっぱい。
垢版 |
2021/12/06(月) 16:18:29.71
dynamic bindingは関数を弄らずに呼び出し側から出力先を変更出来るのが一番の恩恵だと思う
シェルのリダイレクトに似てるな
0416名無しさん@お腹いっぱい。
垢版 |
2021/12/06(月) 16:58:44.24
>>414
今pretestがリリースされている28からだった
$ ls *.el | wc -l
268
$ grep -l lexical-binding *.el | wc -l
268
ちゃんと全部レキシカルバインディングになってるよ!
しかもNEWSには
** The 'lexical-binding' local variable is always enabled.
とも書いてある
これで内部もデフォルトになったよ

>>415
もうdynamic bindingの話はするな
するのならdynamic scopeというべし
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況