groongaインストールメモ

  • groonga v1.0.3 install
./configure --prefix=/usr/local && make && sudo make install
  • groonga storage engine v0.3 install
./configure \
  --with-mysql-source=/usr/local/src/mysql-5.1.50 \
  --with-mysql-config=/usr/local/mysql/bin/mysql_config
  • groonga storage engine の反映
mysql> INSTALL PLUGIN groonga SONAME 'ha_groonga.so';
mysql> SHOW ENGINES;

チラシの裏

別の名を作業記録ともいう。

alliance-5.0-20070718.tar.gz

  • 終了
    • ./nero/src/MDefs.h
+ # include <limits.h>
    • ./nero/src/MPri.cpp
+ # include <memory.h>
    • ./nero/src/ADefs.h
- private:  static void  operator delete (void *zone);
+ public:  static void  operator delete (void *zone);
    • ./ocp/src/placer/Ocp.cpp
    • ./ocp/src/placer/PPlacement.h
+ # include <string.h>
    • ./sea/src/DEF_grammar_lex.l
- #define yylineno DEF_grammarlineno
  • エラー
/usr/include/c++/4.3/backward/backward_warning.h:33:2: warning: #warning This file includes at least one deprecated or antiquated header which may be removed without further notice at a future date. Please use a non-deprecated interface with equivalent functionality instead. For a listing of replacement headers and interfaces, consult the file backward_warning.h. To disable this warning use -Wno-deprecated.
In file included from Ocp.cpp:36:
PPlacement.h: In member function ‘bool eqstr::operator()(const char*, const char*) const’:
PPlacement.h:63: error: ‘strcmp’ was not declared in this scope
Ocp.cpp: In function ‘int main(int, char**)’:
Ocp.cpp:175: error: ‘strcmp’ was not declared in this scope
Ocp.cpp:297: error: ‘strcat’ was not declared in this scope
Ocp.cpp:340: error: ‘strncmp’ was not declared in this scope
Ocp.cpp:437: 警告: deprecated conversion from string constant to ‘char*’
Ocp.cpp:355: 警告: ignoring return value of ‘int system(const char*)’, declared with attribute warn_unused_result
make[3]: *** [Ocp.o] エラー 1
make[3]: ディレクトリ `/home/supistar/Desktop/alliance-5.0/ocp/src/placer' から出ます
make[2]: *** [all-recursive] エラー 1
make[2]: ディレクトリ `/home/supistar/Desktop/alliance-5.0/ocp/src' から出ます
make[1]: *** [all-recursive] エラー 1
make[1]: ディレクトリ `/home/supistar/Desktop/alliance-5.0/ocp' から出ます
make: *** [all-recursive] エラー 1

すっごくハマるよvimperator。

すっごくおもしろいです。vimperator。

先月の30日に導入して1週間ちょっとですが、

vimperator無しのブラウジングが考えられなくなる程までになりました。

デフォルトでも十分インパクトはありますが、自分なりにカスタマイズして使うとインパクト1000倍!!

ちょっと設定を自分好みに弄るつもりが、気がつけば・・・。なんてことも。

この中毒性、恐ろしいですね><


////////////////////////////////////////////////////////////////////////


私の場合は導入したてのころは1.2を使っていましたが、

いろいろと不都合なこととかあったりしたので2.0preに移行しました。

# hatenaStar.jsのヒント機能を使いたかったのが理由として大きいです。

しかし移行しているときにいろいろ手こずったので、手こずったところを以下に書いておきます。


ポイントになりそうなところは2点。

  • ポイント1 : ビジュアルベル

vimperator1.2ではビジュアルベルの無効化が、

set visualbellstyle=display:none;

で可能でしたが、
visualbellstyleがsetのオプションから消えているため、代わりに

highlight Bell display:none

もしくは

set novisualbell

と書いてあげましょう。

  • ポイント2

vimperator1.2で使用できた hintstyle / linkbgcolor / activelinkbgcolor は、
vimperator2.0では hightlight { Hint / HintElem / HintActive} で。

例えば、vimperator1.2では以下のようにヒントのスタイルを設定できますが、

"ヒント(フォーカス時)のスタイルを指定
set focusedhintstyle=z-index:5000; font-family:monospace; font-size:12px; color:ButtonText; background-color:ButtonShadow; border-color:ButtonShadow; border-width:1px; border-style:solid; padding:0px 1px 0px 1px; position:absolute;
"リンクの色
set linkbgcolor=aqua
"アクティブなリンクの色
set activelinkbgcolor=lightblue

vimperator2.0では以下のようにヒントのスタイルを設定します。

"ヒントのスタイル指定
highlight Hint z-index:5000; font-family:monospace; font-size:15px; color:white; background-color:blue; border-color:ButtonShadow; border-width:0px; border-style:solid; padding:0px 1px 0px 1px; position:absolute;
"リンクの色
highlight HintElem background-color:aqua;
"アクティブなリンクの色
highlight HintActive background:lightblue;

////////////////////////////////////////////////////////////////////////

以下には備忘録も兼ねて、使っているplugin + vimperatorrc晒し。
使っているvimperatorは2.0pre(2009/01/03)です。

見直してみると、やっぱりカラースキームは
vimperator/plugin/hogehoge.vimp に書くほうがよさそうかも。
でもまだ発展途中なのでこの辺はご愛敬。('ω' )

# こういうのはcodereposに上げた方がいいのかなぁ・・・?

////////////////////////////////////////////////////////////////////////

[plugin]

copy.js (テンプレートから文字列のコピー)
direct_bookmark.js (ソーシャルブックマークへのPOST)
hatenaStar.js (はてなスターをつけられるように)

[.vimperatorrc]

" vimperatorrc for 2.0pre
" by supistar (http://twitter.com/supistar)

" ----- thanks for... -----
" http://blog.blueblack.net/item_249
" http://coderepos.org/share/browser/dotfiles/vimperator/retlet-vimperatorrc
" http://vimperator.org/trac/blog/vimperator_2_0_a2
" http://twitter.com/hogelog/status/1095507270


" ----- Start Loading -----

echo "Vimperator Loading..."

" ----- Main Options -----

"ブラウザタイトルの変更
set titlestring='Firefox with vimperator - supistar'
"メニューを表示
set guioptions=m
"ページ全体で検索語を強調表示
set hlsearch
"ビープ音を鳴らさずビジュアルベルを使用
set visualbell
"ビジュアルベルを無効化
highlight Bell display:none

"テキストボックスなど入力欄にフォーカスを奪われるのを防ぐ
set focuscontent
"exモード時のインクリメント補完
set wildoptions=auto
"open/tabopen時の補完候補 (Like AwesomeBar)
set complete=sl

"Awesomebarの補完対象にBookmarkletを追加、件数を50件に変更
set! browser.urlbar.filter.javascript=false
set! browser.urlbar.maxRichResults=50

"コマンド履歴保存件数
set history=1000
"検索は大文字小文字を無視
set ignorecase

" ----- Color Options -----

"ヒントのスタイル指定
highlight Hint z-index:5000; font-family:monospace; font-size:15px; color:white; background-color:blue; border-color:ButtonShadow; border-width:0px; border-style:solid; padding:0px 1px 0px 1px; position:absolute;

"リンクの色 (set linkbgcolor=aqua)
highlight HintElem background-color:aqua;
"アクティブなリンクの色 (set activelinkbgcolor=lightblue)
highlight HintActive background:lightblue;


" ----- Key Mappings -----

"<C-c>で選択範囲をコピー
map <C-c> :echo 'Yank!'<CR>Y
"j/kの移動量を5倍に
map j 5<C-e>
map k 5<C-y>
"<BS>で「戻る」(Firefoxの挙動に合わせる)
map <BS> H
"m/,で「戻る/進む」(シフト押すのが面倒)
map m H
map , L
"h/lでタブ移動
map h <C-p>
map l <C-n>
"Uで親ディレクトリに移動
map U gu
"<C-f>で検索
map <C-f> /
"コンテキストメニュー:名前を付けて保存 (<S-F10>がうまく動かないので放置)
"map S <S-F10-k> "for windows
"map S <S-F10-p><CR> "for linux

"はてぶコマンド(direct_bookmark.js)をsに割り当て
map s :sbm<space>
"はて☆すた(hatenaStar.js)をSに割り当て(hintmodeで起動)
map S ;h

"テキストエリア内での操作をWindowsと同様に
inoremap <C-a> <C-v><C-a>
inoremap <C-z> <C-v><C-z>
inoremap <C-x> <C-v><C-x>
inoremap <C-c> <C-v><C-c>
inoremap <C-v> <C-v><C-v>
cnoremap <C-a> <C-v><C-a>
cnoremap <C-z> <C-v><C-z>
cnoremap <C-x> <C-v><C-x>
cnoremap <C-c> <C-v><C-c>
cnoremap <C-v> <C-v><C-v>


" ----- Plugin Options -----

"はてブのみ使用 (plugin:direct_bookmark.js)
let g:direct_sbm_use_services_by_tag = "h"
let g:direct_sbm_use_services_by_post = "h"


source! ~/_vimperatorrc.local

" ----- Finish Loading -----

echo "Ready for using Vimperator >w<"

" vim: set ft=vimperator:

Memo

include/linux/rwsem.h @ kernel 2.6.26-8

147行目あたり。

static inline void downgrade_write(struc
 {
 	compat_downgrade_write(rwsem);
 }
+
+#ifdef CONFIG_RWSEM_GENERIC_SPINLOCK
 static inline int rwsem_is_locked(struct compat_rw_semaphore *sem)
 {
 	return compat_rwsem_is_locked(sem);
 }
+#endif
+
 # define down_read_nested(sem, subclass) \
 		compat_down_read_nested(sem, subclass)
 # define down_write_nested(sem, subclass) \

カーネル再構築時に出たエラー(Kernel 2.6.18) その2

  CC      init/version.o
  LD      init/built-in.o
  LD      .tmp_vmlinux1
kernel/built-in.o: In function `do_gettimeofday':
(.text+0x23048): undefined reference to `__udivdi3'
kernel/built-in.o: In function `do_gettimeofday':
(.text+0x23068): undefined reference to `__umoddi3'
kernel/built-in.o: In function `getnstimeofday':
(.text+0x23248): undefined reference to `__umoddi3'
kernel/built-in.o: In function `getnstimeofday':
(.text+0x23269): undefined reference to `__udivdi3'
kernel/built-in.o: In function `do_timer':
(.text+0x248e4): undefined reference to `__umoddi3'
kernel/built-in.o: In function `do_timer':
(.text+0x24902): undefined reference to `__udivdi3'
make[1]: *** [.tmp_vmlinux1] エラー 1
make[1]: ディレクトリ `/usr/src/kernel/linux-2.6.18.4' から出ます
make: *** [debian/stamp-build-kernel] エラー 2


調べてみるとどうやらGCC4.3が悪戯しているようで(^^;

ちなみにうちのGCCさん。

supistar@snowdrop:$ gcc -v
...
gcc version 4.3.2 (Ubuntu 4.3.2-1ubuntu11)

ということで、以下のようにMakefileを修正してあげましょう。

修正箇所はだいたい516〜534行目くらいにあります。


Kernel2.6.23以下のバージョンでは以下のように。

 # disable pointer signed / unsigned warnings in gcc 4.0
 CFLAGS += $(call cc-option,-Wno-pointer-sign,)

+ # workaround to avoid gcc 4.3 emitting libgcc calls (see gcc bug #32044)
+ CFLAGS += $(call cc-option,-fno-tree-scev-cprop,)

Kernel2.6.24以上のバージョンでは以下のように。

 # disable pointer signed / unsigned warnings in gcc 4.0
 KBUILD_CFLAGS += $(call cc-option,-Wno-pointer-sign,)
 
+# workaround to avoid gcc 4.3 emitting libgcc calls (see gcc bug #32044)
+KBUILD_CFLAGS += $(call cc-option,-fno-tree-scev-cprop,)


やっかいものだな・・・。

参考ページ。thanks!

GCC 4.3 情報

http://d.hatena.ne.jp/pyopyopyo/20071208/p1