Angolmois Rust Edition was updated on
Gitを使う。WindowsのカジュアルユーザはMsysGitを導入するのが簡単かもしれない。俺はそうする。
- Select Destination Location:
- 暫定的に“
C:\Git
”にインストールした。 - Select Components:
- Angolmoisを導入したいだけなので、全項目を無効化した。
- Select Start Menu Folder:
- 初期値のまま“Git”にした。
- Adjusting your PATH environment:
- 初期値のまま“Use Git Bash only”にした。
- Configuring the line ending conversions:
- “Checkout as-is, commit Unix-style ...”にした。
“C:\Git\repo
”フォルダを新規作成し、スタートメニュー → すべてのプログラム → Git → Git Bash
git config --global user.email email@example.com
(自分のメールアドレスを指定)git config --global user.name "foo bar"
(自分のユーザ名を指定)git config --global push.default upstream
(よくわからないのでそのへんで見かけた設定を適用)cd /C/Git/repo
git clone https://github.com/lifthrasiir/angolmois-rust
cd /C/Git/repo/angolmois-rust
git submodule init
git submodule update
これでangolmois-rust
とrust-sdl
が揃う。以降はmake
するだけなので、Gitは用済み。
- MinGW
version 0.6.2-beta-20131004-1
において、GUIによるInstallation Managerが備わった。このGUIを経由するとGCC 4.8.2はインストールされない。これが必要なのかどうかよくわからない。 - 64-bit環境のユーザはMinGW-w64とかを使う方が良いのかな? こちらは最初からGitが同梱されているうえにGCC 4.8.2も導入されるパッケージらしいけど、やはりよくわからない。
にRust 0.9がリリースされたけど、Angolmois Rust Editionの場合は、
You require the most recent Rust master, and it may or may not compile in the 0.9 release.
unofficial nightly buildsを自己責任で導入することが推奨される(もうRust 0.10-preとか出てるので)。
@powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%systemdrive%\chocolatey\bin
Windows XP
/Vistaユーザは、Microsoft PowerShell 2.0を事前に導入しておく。(Windows 7にはPowerShell 2.0が、Windows 8 /8.1にはPowerShell 3.0が、それぞれ標準搭載されている。) cmd.exe
から上記コマンドを入力すればいいはずだけど、俺のWindows XPでは何故か失敗する。"1" 個の引数を指定して "DownloadString" を呼び出し中に例外が発生しました: "基礎になる接続が閉じられました: SSL/TLS のセキュリティで保護されているチャネルに対する信頼関係を確立できませんでした"
発生場所 行:1 文字:47
+ iex ((new-object net.webclient).DownloadString <<<< ('https://chocolatey.org/install.ps1'))
+ CategoryInfo : NotSpecified: (:) []、MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException
Exception calling "DownloadString" with the arguments "1": "The underlying connection was closed: Could not establish trust relationship for the secure channel SSL / TLS."
仕方ないのでinstall.ps1を事前にローカルにダウンロードして“
C:\
”あたりに置いておき、「プロパティ → ブロックを解除」しておく。そしてcmd.exe
から以下のコマンドを入力する。@powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex C:\install.ps1" && SET PATH=%PATH%;%systemdrive%\chocolatey\bin
“
C:\Chocolatey
”が作成されればおそらく成功。続いてcmd.exe
から以下のコマンドを入力する。cinst Rust
正しくインストールされたか確認するために、
cmd.exe
からrustcのバージョンを表示させてみる。rustc -v
rustc 0.9 (7613b15 2014-01-08 18:04:43 -0800) host: i686-pc-mingw32うまくいかない場合は適宜どうにかする(環境変数の登録ミス等の原因が考えられる)。上記はインストールに成功していると思うけど、俺が欲しいRust 0.10-preは何度試しても得られない。
Angolmois Rust Editionにおいて、SDLの構成はAngolmois 2.0 alpha 2に倣う必要がある。
しかしMPEGfilter.h
はもはやダウンロードできない。smpeg.h
は現在は二箇所からダウンロードできる。http://svn.icculus.org/*checkout*/smpeg/trunk/smpeg.hhttp://svn.icculus.org/*checkout*/smpeg/tags/release_2_0_0/smpeg.h
両者は現時点では完全に同一の内容で、どちらもMPEGframe.h
を#include
している。これ大丈夫かな。これらのC言語用のヘッダは、Rust版では不要でした。
MSYSからmake
した結果は以下の通り、失敗。Rust 0.10-preならうまくいくのかな?
make rustc -O -L rust-sdl/build/i686-pc-mingw32/sdl -L rust-sdl/build/i686-pc-mingw32/sdl_image -L rust-sdl/build/i686-pc-mingw32/sdl_mixer angolmois.rs -o angolmois angolmois.rs:1881:28: 1881:48 error: type `&parser::parse_bms_from_reader::Block` does not implement any method in scope named `unwrap` angolmois.rs:1881 match (prefix, blk.last().unwrap().inactive()) { angolmois.rs:1970:40: 1970:60 error: type `&parser::parse_bms_from_reader::Block` does not implement any method in scope named `unwrap` angolmois.rs:1970 let inactive = blk.last().unwrap().inactive(); angolmois.rs:2218:25: 2218:66 error: type `&parser::parse_bms_from_reader::BmsLine` does not implement any method in scope named `map_or` angolmois.rs:2218 bms.nmeasures = bmsline.last().map_or(0, |l| l.measure) + 1; angolmois.rs:2218:54: 2218:63 error: the type of this value must be known in this context angolmois.rs:2218 bms.nmeasures = bmsline.last().map_or(0, |l| l.measure) + 1; angolmois.rs:3179:29: 3179:51 error: type `&<VI0>` does not implement any method in scope named `unwrap` angolmois.rs:3179 let last = *words.last().unwrap(); angolmois.rs:3898:24: 3898:45 error: type `&str` does not implement any method in scope named `unwrap` angolmois.rs:3898 let lastpart = parts.pop().unwrap(); angolmois.rs:3907:53: 3907:67 error: mismatched types: expected `|&[u8]| -> std::option::Option<<V629>>` but found `fn(&'a [u8]) -> &'a str` (expected enum std::option::Option but found &str) angolmois.rs:3907 let name = next.filename().and_then(str::from_utf8).map(|v| v.to_ascii_upper()); angolmois.rs:3907:77: 3907:96 error: the type of this value must be known in this context angolmois.rs:3907 let name = next.filename().and_then(str::from_utf8).map(|v| v.to_ascii_upper()); angolmois.rs:3922:49: 3922:63 error: mismatched types: expected `|&[u8]| -> std::option::Option<<V1079>>` but found `fn(&'a [u8]) -> &'a str` (expected enum std::option::Option but found &str) angolmois.rs:3922 let name = next.filename().and_then(str::from_utf8).map(|v| v.to_ascii_upper()); angolmois.rs:3922:73: 3922:92 error: the type of this value must be known in this context angolmois.rs:3922 let name = next.filename().and_then(str::from_utf8).map(|v| v.to_ascii_upper()); error: aborting due to 10 previous errors task 'rustc' failed at 'explicit failure', C:\bot\slave\dist2-win\build\src\libsyntax\diagnostic.rs:75 task '<main>' failed at 'explicit failure', C:\bot\slave\dist2-win\build\src\librustc\lib.rs:453 make: *** [angolmois] Error 101
Sonorous 0.1.0-pre ()
- Download URI is wrong:
https://cosmic.mearie.org/f/sonorous/snaphsot/sonorous-0.1.0-pre-20140131-5a2f221.zip- https://cosmic.mearie.org/f/sonorous/snapshot/sonorous-0.1.0-pre-20140131-5a2f221.zip
More correct
#BGA
support.Binary size optimization (no more external DLL dependency in Windows).
Requires Rust 0.10-pre from this point (using nightlies is recommended); multi-byte paths are now supported as a side effect.
Encoding関係やOpenGL関係のDLL構成がすっきりした。非英数字のパスを読めるようになった(BMS OF FIGHTERSの日本語チーム名フォルダや、PMSパッケージのジャンル名フォルダの、配下のBMS
The procedure entry point
CreateSymbolicLinkW
could not be located in the dynamic link libraryKERNEL32.dll
.
Windows XPユーザはサポートを打ち切られても文句が言えない時期に来ているので、さっさとコンピュータを買い替えるべきだと思います(俺はもうちょっと使い続ける予定ですが)。