Emacs part 18
■ このスレッドは過去ログ倉庫に格納されています
0001フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw
2006/03/02(木) 23:19:32GNU Emacs - GNU Project - Free Software Foundation (FSF)
http://www.gnu.org/software/emacs/
emacs - SCM: CVS Repositories [Savannah]
http://savannah.gnu.org/cvs/?group=emacs
EmacsWiki
http://www.emacswiki.org/
Emacs 電子書棚
http://www.bookshelf.jp/
0497名無しさん@お腹いっぱい。
2006/04/11(火) 01:02:21fork しようよ。
0498名無しさん@お腹いっぱい。
2006/04/11(火) 01:07:55Emacsにもそれを適用してみるのはどうだろう?
探索や置換をprimitiveにするとそこそこ高速になると思う。
0499名無しさん@お腹いっぱい。
2006/04/11(火) 01:09:23xemacsなんてたとえてみればアミバ流北斗神拳だろ。
0500名無しさん@お腹いっぱい。
2006/04/11(火) 01:11:490501名無しさん@お腹いっぱい。
2006/04/11(火) 01:14:20> アリゴリズム
0502500
2006/04/11(火) 01:15:190503名無しさん@お腹いっぱい。
2006/04/11(火) 10:45:30日本人の最大の欠点。
英語で議論できない。
パッチだけ送って取り込まれないとごねる。
0504名無しさん@お腹いっぱい。
2006/04/11(火) 13:10:300505名無しさん@お腹いっぱい。
2006/04/11(火) 13:55:170506名無しさん@お腹いっぱい。
2006/04/11(火) 14:18:10rmsは始めごねてたのに
0507名無しさん@お腹いっぱい。
2006/04/11(火) 14:55:350508名無しさん@お腹いっぱい。
2006/04/11(火) 18:22:12コンパイルするというパッチが送られてきたときは
http://lists.gnu.org/archive/html/emacs-devel/2004-03/msg00469.html
I don't think that a speedup of less than a factor of 2 would be worth
installing something that might take substantial maintenance effort.
いきなりこれ。で、パッチ作者ががんばって効率化したら
http://lists.gnu.org/archive/html/emacs-devel/2004-06/msg00103.html
I simply deleted that TODO entry, since it looks like this optimization
isn't worth a big effort. Computers are so fast nowadays that Emacs
Lisp code hardly needs speeding up.
ということで終了だもん。途中で言ってること変えるんだから議論のしようがない。
0509名無しさん@お腹いっぱい。
2006/04/11(火) 18:29:250510名無しさん@お腹いっぱい。
2006/04/11(火) 18:48:11俺自身も遅いマシンでベイジアンフィルタつきnavi2chで見るために
バイトコードをx86のネイティブコードに変換するのを自分で実装して
一時期使ってたりしたけどさ。
それ自体は仕事としては、あまり前向きな仕事じゃないんだよ。
どうせ真面目に高速化を考えてもっていこうとすると今のelispをそのまま扱う
んじゃなくなるだろうから、かなりのreworkというかやり直しになるんだし。
メールを見るに、そのパッチを投げた人もそのへんわかってるんじゃないかと思うけど。
自分では何もしない人から見ると面白そうだけど、
やってみればその仕事の価値というか位置付けみたいなものは自分でわかる。
0511名無しさん@お腹いっぱい。
2006/04/11(火) 19:05:00rmsはEmacsLispを高速化する気さらさらないんだから。
navi2chもpure elispだなんて愚かな設計だよ。
誰かEmacsで動く高速な2chブラウザ開発してないかね。
0512名無しさん@お腹いっぱい。
2006/04/11(火) 19:07:22EmacsLispが遅いことを知っているからこそ時間のかかる処理を外部コマンドにやらせている。
0513名無しさん@お腹いっぱい。
2006/04/11(火) 19:10:26どんどん内部化するという傾向があるように思うのだけど、
あれはどういう理由なの?
バックエンドを作っておけばいろいろなインターフェースから使えるから、
外部コマンドを使うというのは大変良い解法のように思えるのだけど。
何か問題があるの?
0514名無しさん@お腹いっぱい。
2006/04/11(火) 19:13:290515名無しさん@お腹いっぱい。
2006/04/11(火) 19:13:34ユーザに外部コマンドをインストールさせるのが面倒だとか考えてんじゃないの?
ユーザとしては動作が遅くなる方が大問題なんだけど。
emacs-w3mもnavi2chもソース見てて痛々しいんだよな。
0516名無しさん@お腹いっぱい。
2006/04/11(火) 19:17:04計算処理は外部コマンド、入出力、表示のみEmacsLispというのが最適解なんだろうね。
0517名無しさん@お腹いっぱい。
2006/04/11(火) 19:48:09mewは確かに、
mewencode, mewl, incm, mewstunnelを持っているけど、
昔に比べると徐々にelispを使う方向になってきている。
0518名無しさん@お腹いっぱい。
2006/04/11(火) 20:10:40なんか1.xx時代はとても速かったのに。
0519名無しさん@お腹いっぱい。
2006/04/11(火) 20:21:24IMがmewのバックエンドだった。
0520517
2006/04/11(火) 20:26:35$ imls +フォルダ名 > ~/Mail/フォルダ名/.mew-cache
ってやってた。万単位のメールあるところで。
今は全部elispで書けるから、設定の自由度上がったけれど、遅いね。
0521名無しさん@お腹いっぱい。
2006/04/11(火) 20:31:210522名無しさん@お腹いっぱい。
2006/04/11(火) 20:52:560523名無しさん@お腹いっぱい。
2006/04/11(火) 20:54:02> いろんなプラットフォームで動く外部コマンド書くのもつらくない?
Perl/Rubyでいっぱつ。
0524名無しさん@お腹いっぱい。
2006/04/11(火) 20:55:57まあ、なんらかの標準化や翻訳メカニズムを作ってしまえば、それで
行けるのだろうけど。
0525名無しさん@お腹いっぱい。
2006/04/11(火) 21:35:15べつにCでもいいじゃん。小規模のものなら誰かが移植してくれる。
>>524
それはひとえに設計が悪いからじゃないのか?
EmacsLispでオプションを設定してコマンドラインで渡せばいいだろ。
0526名無しさん@お腹いっぱい。
2006/04/11(火) 23:36:33昨今の強力なマシンなら Emacs だけで処理してもなんとかなるし。
速さより手軽にいじれることのが重要になってくんでしょ、きっと。
0527名無しさん@お腹いっぱい。
2006/04/11(火) 23:53:21MewはMH-Eの代替品だからああいう形になっているのかと思っていた。
そういえば、最近のMewのInfoからはMH-Eの悪口消えたのね。
0528名無しさん@お腹いっぱい。
2006/04/12(水) 00:42:42emacs-w3mはw3の二の舞になってるね。
>>526
EmacsLispが増えるとその反面、全体像が見えづらくなってカスタマイズが困難だけど。
いっそのことEmacsLispを1000行前後に抑えてあとは全部外部コマンドまかせにしてくれ。
>>527
なつかしい、俺がLinux駆け出しだったころ悪口書いてあったな。
0529名無しさん@お腹いっぱい。
2006/04/12(水) 00:47:19Pen4の3GHzだけど遅く感じることがあるんだけど。
0530名無しさん@お腹いっぱい。
2006/04/12(水) 00:48:240531名無しさん@お腹いっぱい。
2006/04/12(水) 00:49:500532名無しさん@お腹いっぱい。
2006/04/12(水) 01:30:080533名無しさん@お腹いっぱい。
2006/04/12(水) 01:36:57ソースはとんでもなく読み辛くて汚い。
Emacsをソースから入れている人は、知らない関数とかをhelpで調べて、
そっからlisp、Cに限らずソースに直接飛んだりしてると思うけど、
vimとかそれが出来ないんだよ?
どんなに単純そうな処理ですら、キーを押した後なにが起きてるのか
わからんのは、どうかと思うよ。
外部コマンドなんかにしたら、なおさらブラックボックス化してくよ。
0534名無しさん@お腹いっぱい。
2006/04/12(水) 01:42:38外部コマンドに依存するのはいやだなぁ。
0535名無しさん@お腹いっぱい。
2006/04/12(水) 01:44:030536名無しさん@お腹いっぱい。
2006/04/12(水) 01:52:57rmsは高速化する気まったくないようだから。
インストールが面倒とか言う厨房はかえれ。
0537名無しさん@お腹いっぱい。
2006/04/12(水) 01:55:47「主張して実践する」ことで示すしかないのだし。
ここはそれぞれの方法の利点欠点をリストアップして、
インプリメントの一助にするのが建設的。
0538名無しさん@お腹いっぱい。
2006/04/12(水) 02:08:50も言ってるけど、primitive不足ってのが最大の理由だろう。
0539名無しさん@お腹いっぱい。
2006/04/12(水) 02:25:50かといってdynamic linkも本家に取り込んでくれない
だから高速化したければ外部プロセスに追い出すのが現実的
0540名無しさん@お腹いっぱい。
2006/04/12(水) 02:30:40Emacsもそうしてもらいたいものだね。
0541名無しさん@お腹いっぱい。
2006/04/12(水) 07:15:40外部プロセスに渡して幸せになりたいのも判るけど、
自分は現状で満足な訳で。
まぁつまり、ぐだぐだ言うより外部プロセスをかっこよく使って
高速に動くソフトをいっぱい書いて布教した方が建設的じゃね?
0542名無しさん@お腹いっぱい。
2006/04/12(水) 08:12:26> 高速に動くソフトをいっぱい書いて布教した方が建設的じゃね?
そうしましょう、そうしましょう。
0543名無しさん@お腹いっぱい。
2006/04/12(水) 08:46:25痛々しい箇所の具体例きぼん
0544名無しさん@お腹いっぱい。
2006/04/12(水) 15:51:16多すぎて書ききれない。
テキスト処理を黙々とやらせてるところ。
EmacsLispはテキスト処理苦手なんだってば。
3GHzマシンなのにnavi2chでスレを開くとき10秒前後待たされる。
emacswikiのindexを開くのに何十秒も待たされる。
0545名無しさん@お腹いっぱい。
2006/04/12(水) 15:53:42多すぎるならためしに2つ3つ挙げてみてよ。
0546名無しさん@お腹いっぱい。
2006/04/12(水) 17:30:03困っております。
utf-8のファイルの一部にperl(cygwin)のコマンドをかけて
整形したいのですが、perlスクリプト自体は、正常にutf-8の
コードを吐きますので問題ないはずなのに、emacsのバッファには
こんな変な文字が出ちゃいます。
1. 壤壤壤「壤「↓壤壤壤「壤「∂壤壤壤「壤「∀壤壤壤「壤カ∪壤壤壤「壤ウ 壤壤壤「壤」E壤壤壤「壤」B壤壤壤「壤。[壤壤壤「壤」壤壤壤「壤ウ壤壤壤「壤「∇懼ャタ壤壤壤「壤ュs壤壤壤「壤「ュ壤壤壤「壤「⇔壤壤壤「壤。H
文字コード関係の設定を変えてるんですが、どうも臭いと思われる
以下の2番目の奴を変更する関数がないようです。
set-buffer-file-coding-system
だと一番目のしか変わらないのですが、何で変えられるのでしょうか。
Coding system for saving this buffer:
u -- utf-8-dos
Default coding system (for new files):
S -- japanese-shift-jis-dos
0547名無しさん@お腹いっぱい。
2006/04/12(水) 19:23:380548名無しさん@お腹いっぱい。
2006/04/12(水) 19:25:330549名無しさん@お腹いっぱい。
2006/04/12(水) 19:41:310550名無しさん@お腹いっぱい。
2006/04/12(水) 20:52:55馬鹿を追い詰めなさんな。
0551546
2006/04/12(水) 21:48:55ありがとうございます。
set-default-coding-systemって、version21にはないようです。
以前はあったのは知ってます。(19だったか20)
set-buffer-process-coding-systemやると、outputのコードを
聞かれてutf-8とやるまではいいのですが、inputのをutf-8で
答えると、no processとかのメッセージが帰ってくる。
無視してやってみるも、やはり>>546みたいに文字化けします。
さんざんググりもしましたが情報がないので、たぶん、
cygwin、Meadowという環境では無理なのかとも思っています。
0552名無しさん@お腹いっぱい。
2006/04/12(水) 21:54:420553名無しさん@お腹いっぱい。
2006/04/12(水) 21:55:150554546
2006/04/12(水) 22:02:24Meadow固有ですかね。こんな作りのネットインストール版です。
GNU Emacs 21.4.1 (i386-mingw-nt5.1.2600) of 2005-08-28 on CUBE
0555名無しさん@お腹いっぱい。
2006/04/12(水) 22:09:000556名無しさん@お腹いっぱい。
2006/04/12(水) 22:56:52してみろ
0557名無しさん@お腹いっぱい。
2006/04/13(木) 01:24:07俺なら、
shell-command-on-region で、リダイレクトしちゃって、
delete-region
insert-file
で逃げる。
0558名無しさん@お腹いっぱい。
2006/04/13(木) 02:11:30Cのようなマクロを含む言語はelispでパースしきれないから、このアプローチも頷ける。
動かすの少々大変だけど、誰か改良してくれないかな。
0559546
2006/04/13(木) 03:03:36私に言ってるんですよね、どうもです。
grepしたら、
/cygdrive/d/Meadow/lisp$ grep set-default-coding-system language/*.el
language/japan-util.el: (set-default-coding-systems 'japanese-shift-jis-dos)
こんなんあったんで、.emacsに、(require 'japan-util)って書いて
再起動してやってみたんですが、だめでした。
0560546
2006/04/13(木) 03:39:07ありがとうございます。
M-xで出てこないようなコマンドは.emacsで設定しなければいけないんですか。
>>557
やってみたんですが、ファイル自体はちゃんとutf-8でできてるんですが、
insertすると日本語はいいんですがlat-1の文字が変な文字になっちゃいます。
それで、after-insert-file-set-buffer-file-coding-systemら辺だろうと
思うのですが、M-xでその関数は呼べない。.emacsに設定すると(まだ
やってみてないんですが)、普段もutf-8ばっかり使わなきゃならなくなるの
も困るんです。
0561名無しさん@お腹いっぱい。
2006/04/13(木) 04:18:34その程度の常識すらわからないんだったら、あきらめろ。
今のおまいに多言語を扱うのははやすぎる。
常識から勉強するこったな。
0562名無しさん@お腹いっぱい。
2006/04/13(木) 04:31:51emacs ユーザは elisp の構造が理解できてて当たり前ってのも
すごい常識だよな。
0563名無しさん@お腹いっぱい。
2006/04/13(木) 04:40:490564名無しさん@お腹いっぱい。
2006/04/13(木) 05:35:01ど一般教養レベル。自分から学ぼうとする気のない人が使うべきものではない。
そういう人はワードかメモ帳でも使ってなさいな。
0565名無しさん@お腹いっぱい。
2006/04/13(木) 05:46:30> Cのようなマクロを含む言語はelispでパースしきれないから、このアプローチも頷ける。
そんなことはないだろ。elispだってプログラミング言語だ。
0566名無しさん@お腹いっぱい。
2006/04/13(木) 06:40:110567名無しさん@お腹いっぱい。
2006/04/13(木) 06:49:11> だが、遅い!遅すぎるー!!
そうだな。
でもわめいても速くならないぞ。
0568名無しさん@お腹いっぱい。
2006/04/13(木) 06:56:190569名無しさん@お腹いっぱい。
2006/04/13(木) 07:03:140570名無しさん@お腹いっぱい。
2006/04/13(木) 08:05:21> 3GHzマシンなのにnavi2chでスレを開くとき10秒前後待たされる。
XP,PenM1.7Gで3秒程度だから単に回線が重いとかメモリがないとかの
問題じゃないのか?
0571544
2006/04/13(木) 08:12:30これだけのスペックがあるならそもそも1秒以上かかるのがおかしいんだよね。
0572名無しさん@お腹いっぱい。
2006/04/13(木) 08:17:42痛々しい箇所の具体例きぼん
0573名無しさん@お腹いっぱい。
2006/04/13(木) 08:20:30設定すらまともにできないあほがw
0574名無しさん@お腹いっぱい。
2006/04/13(木) 08:20:57個人的な不満点。
auto-revert-modeとか設定しているとファイルを
開けば開くほど重くなる。
(auto-revert-intervalを増やすことで回避)
jit-lock-modeは巨大なファイルには重い。
fast-lockでキャッシュしたほうがはじめに開くのが遅いが
その後は速い。だがauto-revertと相性が悪い。
フォントの色変えぐらいはネイティブにならないかなぁ
0575544
2006/04/13(木) 08:29:31俺のemacs設定ファイルは1万行を超えますが?
>>572
w3m-fontifyなどわざわざ遅い言語で黙々とテキストをパースしているところ
おかげで待たされる待たされる
0576名無しさん@お腹いっぱい。
2006/04/13(木) 08:33:100577名無しさん@お腹いっぱい。
2006/04/13(木) 08:34:49offlineということは一度開いているファイルを開くんだろ。
キャッシュバッファを消して試したが1秒もかからん。
おまいの環境が悪いだけだ。
0578544
2006/04/13(木) 08:35:070579544
2006/04/13(木) 08:39:150580名無しさん@お腹いっぱい。
2006/04/13(木) 08:48:46そんな設定しなくても速いよ、普通は。
おまいの環境が悪いと言っているだろう。
もう一度見直せ。elispのせいにすんじゃねぇ
0581名無しさん@お腹いっぱい。
2006/04/13(木) 08:49:300582名無しさん@お腹いっぱい。
2006/04/13(木) 09:31:57それからelispのパフォーマンスはEmacs自体のコンパイル時の最適化オプションで結構変わる。
きつめに最適化した方がEmacs自体のコンパイルには時間がかかるが、make bootstrap全体ではむしろ速かったりする。
0583名無しさん@お腹いっぱい。
2006/04/13(木) 09:55:54糞コテの人ですか?
0584名無しさん@お腹いっぱい。
2006/04/13(木) 09:57:51w3m-fontifyをどう改良すればいいと思う?
0585名無しさん@お腹いっぱい。
2006/04/13(木) 10:01:17ほうほう。体感できるほど影響あるすか?
蛇足だけど bootstrap (= byte compile) の処理時間と elisp の実行速度って
直結しないような気がするんだけどそうでもないのかね。
0586キング
2006/04/13(木) 10:54:24最速の emacs を組み立てた者には褒美をさしあげよう
もちろんウィンドウズ版な
0587名無しさん@お腹いっぱい。
2006/04/13(木) 11:59:30春やなぁ。バイトコンパイルもやらずに遅い遅いと言っていたのか・・・
0588名無しさん@お腹いっぱい。
2006/04/13(木) 12:35:00こんな感じにすればかなり (手元では 10% 以上) elisp 周りが速くなる。
Index: Makefile.in
@@ -782,8 +782,8 @@
bootstrap-build: FRC
(cd lisp; $(MAKE) $(MFLAGS) bootstrap-prepare)
- (cd src; $(MAKE) $(MFLAGS) bootstrap)
+ (cd src; $(MAKE) $(MFLAGS) bootstrap CC='$(CC) -fprofile-generate' )
(cd lisp; $(MAKE) $(MFLAGS) bootstrap EMACS=../src/bootstrap-emacs${EXEEXT})
(cd src; $(MAKE) $(MFLAGS) mostlyclean)
- $(MAKE) $(MFLAGS) all
+ $(MAKE) $(MFLAGS) CC='$(CC) -fprofile-use' all
(cd lisp; $(MAKE) $(MFLAGS) bootstrap-after)
0589名無しさん@お腹いっぱい。
2006/04/13(木) 12:37:29あ、すまん、585 != 544 ね。
影響ってのはコンパイルオプションのほうの話ね。
0590582
2006/04/13(木) 15:01:00CFLAGSで-I...や-D...を指定する際、下手をするとデフォルトの-O2を潰してしまうので注意が必要。
> bootstrap (= byte compile) の処理時間と elisp の実行速度って直結しないような気がするんだけど
バイトコンパイラもelispで書かれているので、基本的なデータ処理のベンチマークにはなる。
もちろん、本当に速くしたいものとバイトコンパイラとで処理の内容が違うということはあるかもしれないが。
0591名無しさん@お腹いっぱい。
2006/04/13(木) 17:25:580592名無しさん@お腹いっぱい。
2006/04/13(木) 17:31:02http://ja.wikipedia.org/wiki/RMS
0593名無しさん@お腹いっぱい。
2006/04/13(木) 17:58:37Richard Matthew Stallmanだったのか。
0594名無しさん@お腹いっぱい。
2006/04/13(木) 19:57:180595名無しさん@お腹いっぱい。
2006/04/13(木) 19:58:160596名無しさん@お腹いっぱい。
2006/04/14(金) 00:31:49どうやってカタカナに変換したらよいですか?
japanese-katakanaを使うしかないですか?
wnn,skkなどの導入はできないものとします。
■ このスレッドは過去ログ倉庫に格納されています