Skip to content

Conversation

jiro4989
Copy link
Contributor

@jiro4989 jiro4989 commented Jun 29, 2020

概要

  • --features oniguruma で oniguruma を有効にしてビルドできるように変更
    • デフォルトでは oniguruma が無効になってしまうため、CIのビルドオプションに --features oniguruma を追加

内容

  • impure::onigpure::onig モジュールを追加
  • それぞれは同じ型、同じ関数を定義されている必要があります
  • main.rs からは直接外部ライブラリのonigモジュールを呼び出さず、 impure::onigpure::onig に隠蔽されたonigの機能を呼び出します

補足

以下はビルド時の出力です。

⟩ cargo build
   Compiling proc-macro2 v1.0.18
   Compiling memchr v2.3.3
   Compiling unicode-xid v0.2.1
   Compiling syn v1.0.33
   Compiling serde_derive v1.0.114
   Compiling libc v0.2.71
   Compiling lazy_static v1.4.0
   Compiling regex-syntax v0.6.18
   Compiling serde v1.0.114
   Compiling log v0.4.8
   Compiling quick-error v1.2.3
   Compiling cfg-if v0.1.10
   Compiling strsim v0.9.3
   Compiling termcolor v1.1.0
   Compiling thread_local v1.0.1
   Compiling humantime v1.3.0
   Compiling quote v1.0.7
   Compiling aho-corasick v0.7.13
   Compiling atty v0.2.14
   Compiling regex v1.3.9
   Compiling env_logger v0.7.1
   Compiling docopt v1.1.0
   Compiling teip v1.2.0 (/home/vagrant/src/github.com/jiro4989/teip)
    Finished dev [unoptimized + debuginfo] target(s) in 36.98s

⟩ cargo build --features oniguruma
   Compiling cc v1.0.55
   Compiling version_check v0.9.2
   Compiling glob v0.3.0
   Compiling bitflags v1.2.1
   Compiling unicode-width v0.1.7
   Compiling strsim v0.8.0
   Compiling vec_map v0.8.2
   Compiling ansi_term v0.11.0
   Compiling bindgen v0.53.3
   Compiling shlex v0.1.1
   Compiling lazycell v1.2.1
   Compiling rustc-hash v1.1.0
   Compiling peeking_take_while v0.1.2
   Compiling pkg-config v0.3.17
   Compiling libloading v0.5.2
   Compiling nom v5.1.2
   Compiling clang-sys v0.29.3
   Compiling textwrap v0.11.0
   Compiling which v3.1.1
   Compiling clap v2.33.1
   Compiling cexpr v0.4.0
   Compiling onig_sys v69.5.0
   Compiling onig v6.0.0
   Compiling teip v1.2.0 (/home/vagrant/src/github.com/jiro4989/teip)
    Finished dev [unoptimized + debuginfo] target(s) in 36.64s

--features oniguruma を有効にしたほうだけ onig をコンパイルしています。
以下はコマンドの実行結果です。

⟩ cargo build
    Finished dev [unoptimized + debuginfo] target(s) in 0.15s

⟩ echo '寿司' | ./target/debug/teip -oGg '寿'
teip: This build is not enabled 'oniguruma'
⟩ cargo build --features oniguruma
    Finished dev [unoptimized + debuginfo] target(s) in 0.06s

⟩ echo '寿司' | ./target/debug/teip -oGg '寿'
[寿]司

@greymd greymd self-assigned this Jun 29, 2020
@greymd
Copy link
Owner

greymd commented Jun 29, 2020

!?
これはすごい!!
後日拝見します……!
一旦 ack まで。

@greymd greymd merged commit 23ceb55 into greymd:master Jul 1, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants