{"id":1471,"date":"2011-11-08T22:51:25","date_gmt":"2011-11-08T13:51:25","guid":{"rendered":"http:\/\/borg4.vdomains.jp\/~goro\/diary\/?p=1471"},"modified":"2011-11-08T22:51:25","modified_gmt":"2011-11-08T13:51:25","slug":"lionx86_64-%e3%81%a7-ruby19-migemo-0-40","status":"publish","type":"post","link":"http:\/\/borg4.vdomains.jp\/~goro\/diary\/2011\/1471","title":{"rendered":"Lion(x86_64) \u3067 ruby19-migemo-0.40"},"content":{"rendered":"<p>Lion \u306b\u306a\u3063\u3066\u56f0\u3063\u305f\u3053\u3068\u306e\u3072\u3068\u3064\u304c \/usr\/pkg\/etc\/mk.conf \u306b ABI=64 \u3068\u66f8\u3044\u3066\u3044\u308b\u3068\u3001 ruby-18-base \u306e build \u306b\u5931\u6557\u3059\u308b\u3053\u3068\u3002\u7d20\u3067 build \u3059\u308c\u3070\u6210\u529f\u3059\u308b\u306e\u3067 pkgsrc \u304c\u3084\u3063\u3066\u308b\u306a\u306b\u304b\u304c\u60aa\u3044\u3093\u3067\u3057\u3087\u3046\u3051\u3069\u3001 ABI=32 \u3060\u3068 build \u306f\u901a\u308b\u306e\u3067 pkgsrc \u3060\u3051\u304c\u60aa\u3044\u3093\u3058\u3083\u306a\u3055\u305d\u3046\u3002\u3067\u3001 ABI=32 \u3067\u4f5c\u3063\u305f ruby18-base \u3092\u5165\u308c\u3088\u3046\u3068\u3059\u308b\u3068<\/p>\n<blockquote>\n<pre>pkg_add: Warning: package `ruby18-base-1.8.7.352' was built for a platform:\r\npkg_add: Darwin\/i386 11.2.0 (pkg) vs. Darwin\/x86_64 11.2.0 (this host)\r\npkg_add: 1 package addition failed<\/pre>\n<\/blockquote>\n<p>\u3068\u304b\u6012\u3089\u308c\u3066\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u51fa\u6765\u306a\u3044\u306e\u3067 ruby18-base \u306e\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u304c\u51fa\u6765\u306a\u3044\u306e\u3067\u3059\u3002<\/p>\n<p><!--more--><\/p>\n<p>ruby19-base \u306a\u3089\u554f\u984c\u306a\u304f build \u51fa\u6765\u308b\u306e\u3067\u3001\u3053\u3053\u306f\u4e00\u767a ruby19 \u306b\u79fb\u884c\u3059\u3079\u304d\u306a\u306e\u3067\u3059\u304c\u3001\u6700\u65e9\u52d5\u304b\u306a\u3044\u3068\u751f\u304d\u3066\u884c\u3051\u306a\u3044\u30ec\u30d9\u30eb\u306e textproc\/migemo \u304c ruby19 \u306b\u672a\u5bfe\u5fdc\u306a\u306e\u3067\u3001\u4eca\u307e\u3067\u6211\u6162\u3057\u3066 Snow Leopard \u306e\u6642\u306b build \u3057\u305f ruby18 \u3092\u4f7f\u3063\u3066\u3044\u305f\u306e\u3067\u3059\u3002\u304c\u3001\u306a\u306b\u304b\u306e\u62cd\u5b50\u306b ruby18 \u3092\u629c\u3044\u3066\u3057\u307e\u3063\u305f\u306e\u3067\u3001\u305b\u3063\u304b\u304f\u3060\u304b\u3089\u3068 ruby19 \u5bfe\u5fdc\u306e migemo \u3092\u63a2\u3059\u3053\u3068\u306b\u3057\u307e\u3057\u305f\u3002<\/p>\n<p>\u305d\u3057\u305f\u3089 <a href=\"http:\/\/d.hatena.ne.jp\/yshl\/20090814\/1250197679\">ruby19 \u7528\u306e patch \u3092\u66f8\u3044\u3066\u3044\u308b\u4eba\u3092\u767a\u898b<\/a>!! \u306a\u3093\u3060\u30fc\u3001\u3068\u62cd\u5b50\u629c\u3051\u3057\u3066\u3053\u306e patch \u3092\u5f53\u3066\u305f\u306e\u3067\u3059\u304c\u3001\u4f55\u6545\u304b\u4ffa\u306e Lion \u3067\u306f\u52d5\u3044\u3066\u304f\u308c\u306a\u3044\u3002\u3068\u3044\u3046\u3053\u3068\u3067\u3044\u308d\u3044\u308d\u8a66\u884c\u932f\u8aa4\u3057\u3066\u307f\u305f\u3089\u30c6\u30ad\u30b9\u30c8\u51e6\u7406\u3092\u3057\u3066\u3044\u308b\u3068\u3053\u308d\u306b force_encoding(&#8220;EUC-JP&#8221;) \u3092\u8db3\u3057\u3066\u3042\u3052\u308c\u3070\u5927\u4e08\u592b\u3063\u307d\u3044\u3053\u3068\u304c\u5206\u304b\u3063\u305f\u306e\u3067\u3001\u4ffa\u306e\u74b0\u5883\u3067\u52d5\u304f patch \u3092\u66f8\u3044\u3066\u307f\u307e\u3057\u305f\u3002<\/p>\n<p>\u524d\u8ff0\u306e patch \u304c\u5f53\u305f\u3063\u3066\u3044\u308b\u3053\u3068\u304c\u524d\u63d0\u3067\u3059\u304c\u3001\u3053\u3093\u306a\u611f\u3058\u3002 tests \u3067\u00a0make check-TESTS \u3059\u308b\u3068 1 \u500b\u3060\u3051\u30b3\u30b1 FAIL \u3057\u307e\u3059\u304c\u3001\u3056\u3063\u3068\u4f7f\u3063\u305f\u611f\u3058\u3067\u306f\u554f\u984c\u306a\u304f\u691c\u7d22\u3067\u304d\u3066\u308b\u306e\u3067\u591a\u5206\u5927\u4e08\u592b\u3067\u3057\u3087\u3046\u3001\u4ffa\u306e\u74b0\u5883\u9650\u5b9a\u3067\u3059\u304c\u3002<\/p>\n<blockquote>\n<pre>diff -ur migemo-0.40-ruby19\/genchars.sh migemo-0.40-ruby19-pkgsrc\/genchars.sh\r\n--- migemo-0.40-ruby19\/genchars.sh\t2011-11-08 16:36:12.000000000 +0900\r\n+++ migemo-0.40-ruby19-pkgsrc\/genchars.sh\t2011-11-08 15:51:50.000000000 +0900\r\n@@ -1,6 +1,6 @@\r\n #! \/bin\/sh\r\n\r\n-ruby -rromkan -nle 'head = $_.split[0]; if \/^\\w+$\/ =~ head then puts head else roma = head.to_roma; puts roma, roma.to_kunrei end' migemo-dict |uniq&gt; tmp.ascii.words\r\n+ruby -rromkan -nle 'head = $_.force_encoding(\"EUC-JP\").split[0]; if \/^\\w+$\/ =~ head then puts head else roma = head.to_roma; puts roma, roma.to_kunrei end' migemo-dict |uniq&gt; tmp.ascii.words\r\n\r\n # Get the top 500 frequent ngrams.\r\n for i in 1 2 3 4 5 6 7 8; do\r\ndiff -ur migemo-0.40-ruby19\/migemo-convert.rb migemo-0.40-ruby19-pkgsrc\/migemo-convert.rb\r\n--- migemo-0.40-ruby19\/migemo-convert.rb\t2011-11-08 16:36:12.000000000 +0900\r\n+++ migemo-0.40-ruby19-pkgsrc\/migemo-convert.rb\t2011-11-08 16:17:44.000000000 +0900\r\n@@ -25,7 +25,7 @@\r\n puts \";;\"\r\n lines = readlines\r\n while line = lines.shift\r\n-  if \/^;\/ =~ line\r\n+  if \/^;\/ =~ line.force_encoding(\"EUC-JP\")\r\n     puts line\r\n   else\r\n     lastline = line\r\n@@ -36,9 +36,9 @@\r\n\r\n dict = [];\r\n while line = lines.shift\r\n-  if \/^(#{HIRAGANA}+)[a-z]? (.*)\/ =~ line || \/^(\\w+) (.*)\/ =~ line\r\n+  if \/^(#{HIRAGANA}+)[a-z]? (.*)\/ =~ line.force_encoding(\"EUC-JP\") || \/^(\\w+) (.*)\/ =~ line.force_encoding(\"EUC-JP\")\r\n     head = $1\r\n-    words = $2.split('\/').map {|x|\r\n+    words = $2.force_encoding(\"EUC-JP\").split('\/').map {|x|\r\n       # remove annotations and elisp codes\r\n       x.sub(\/;.*\/, \"\").sub(\/^\\((\\w+)\\b.+\\)$\/, \"\")\r\n     }.delete_if {|x| x == \"\"}\r\ndiff -ur migemo-0.40-ruby19\/migemo-dict.rb migemo-0.40-ruby19-pkgsrc\/migemo-dict.rb\r\n--- migemo-0.40-ruby19\/migemo-dict.rb\t2011-11-08 16:36:12.000000000 +0900\r\n+++ migemo-0.40-ruby19-pkgsrc\/migemo-dict.rb\t2011-11-08 16:26:26.000000000 +0900\r\n@@ -1,3 +1,4 @@\r\n+# -*- encoding:euc-jp -*-\r\n #\r\n # Ruby\/Migemo - a library for Japanese incremental search.\r\n #\r\n@@ -38,7 +39,7 @@\r\n\r\n   private\r\n   def decompose (line)\r\n-    array = line.chomp.split(\"\\t\").delete_if do |x| x == nil end\r\n+    array = line.force_encoding(\"EUC-JP\").chomp.split(\"\\t\").delete_if do |x| x == nil end\r\n     key = array.shift\r\n     values = array\r\n     raise if key == nil\r\n@@ -83,7 +84,7 @@\r\n class MigemoUserDict &lt; MigemoDict\r\n   def initialize (filename)\r\n     super(filename)\r\n-    @lines = @dict.readlines.delete_if {|x| \/^;\/ =~ x}.sort\r\n+    @lines = @dict.readlines.delete_if {|x| \/^;\/ =~ x.force_encoding(\"EUC-JP\")}.sort\r\n   end\r\n\r\n   def lookup (pattern)\r\ndiff -ur migemo-0.40-ruby19\/migemo-index.rb migemo-0.40-ruby19-pkgsrc\/migemo-index.rb\r\n--- migemo-0.40-ruby19\/migemo-index.rb\t2011-11-08 16:36:12.000000000 +0900\r\n+++ migemo-0.40-ruby19-pkgsrc\/migemo-index.rb\t2011-11-08 15:27:49.000000000 +0900\r\n@@ -16,7 +16,7 @@\r\n #\r\n offset = 0\r\n while line = gets\r\n-  unless line =~ \/^;\/\r\n+  unless line.force_encoding(\"EUC-JP\") =~ \/^;\/\r\n     print [offset].pack(\"N\")\r\n   end\r\n   offset += line.bytesize<\/pre>\n<\/blockquote>\n<p>\u3053\u308c\u3060\u3051\u3060\u3068\u3064\u307e\u3089\u306a\u3044(?)\u306e\u3067\u3001 textproc\/migemo \u306b<a href=\"http:\/\/borg4.vdomains.jp\/~goro\/tmp\/pkgsrc_ruby19-migemo.patch.gz\">\u5bfe\u3059\u308b patch\u3082\u4f5c\u3063\u305f\u306e\u3067\u4e0d\u6cd5\u6295\u68c4<\/a>\u3002\u30db\u30f3\u30c8\u306f\u3061\u3083\u3093\u3068 send-pr \u3059\u3079\u304d\u306a\u3093\u3060\u308d\u3046\u3051\u3069\u3001\u5143\u306e patch \u306e\u30e9\u30a4\u30bb\u30f3\u30b9\u304c\u3088\u304f\u308f\u304b\u3089\u306a\u3044\u306e\u3068\u3001\u3053\u306e patch \u304c\u672c\u5f53\u306b\u5fc5\u8981\u306a\u306e\u304b\u3082\u308f\u304b\u3093\u306a\u3044\u306e\u3067\u3053\u3093\u306a\u5f62\u3067\u516c\u958b\u3057\u3066\u307f\u307e\u3057\u305f\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Lion \u306b\u306a\u3063\u3066\u56f0\u3063\u305f\u3053\u3068\u306e\u3072\u3068\u3064\u304c \/usr\/pkg\/etc\/mk.conf \u306b ABI=64 \u3068\u66f8\u3044\u3066\u3044\u308b\u3068\u3001 ruby-18-base \u306e build \u306b\u5931\u6557\u3059\u308b\u3053\u3068\u3002\u7d20\u3067 build \u3059\u308c\u3070\u6210\u529f\u3059\u308b\u306e\u3067 pkg [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[76,77,30,23],"class_list":["post-1471","post","type-post","status-publish","format-standard","hentry","category-mac","tag-emacs","tag-mac","tag-pkgsrc","tag-software"],"_links":{"self":[{"href":"http:\/\/borg4.vdomains.jp\/~goro\/diary\/wp-json\/wp\/v2\/posts\/1471","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/borg4.vdomains.jp\/~goro\/diary\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/borg4.vdomains.jp\/~goro\/diary\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/borg4.vdomains.jp\/~goro\/diary\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/borg4.vdomains.jp\/~goro\/diary\/wp-json\/wp\/v2\/comments?post=1471"}],"version-history":[{"count":2,"href":"http:\/\/borg4.vdomains.jp\/~goro\/diary\/wp-json\/wp\/v2\/posts\/1471\/revisions"}],"predecessor-version":[{"id":1473,"href":"http:\/\/borg4.vdomains.jp\/~goro\/diary\/wp-json\/wp\/v2\/posts\/1471\/revisions\/1473"}],"wp:attachment":[{"href":"http:\/\/borg4.vdomains.jp\/~goro\/diary\/wp-json\/wp\/v2\/media?parent=1471"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/borg4.vdomains.jp\/~goro\/diary\/wp-json\/wp\/v2\/categories?post=1471"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/borg4.vdomains.jp\/~goro\/diary\/wp-json\/wp\/v2\/tags?post=1471"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}