mieki256's diary



2024/10/24(木) [n年前の日記]

#1 [crystal][prog] Crystalを試用

今頃になって知ったのだけど、2024/10/01〜03頃に、Twitter上で、Rubyと静的型付けの話題で色々揉めていたらしい。Rubyの神様が激怒(?)していたようで…。さておき、関連情報をググってたら「Crystal使えばええやん」という話があった。何だソレ?

どうやら、Rubyと似た感じでソースを書ける、Crystalという言語があるらしい。

_The Crystal Programming Language
_The Crystal Programming Language (ja)
_crystal-lang/crystal: The Crystal Programming Language
_Windows (Preview) - The Crystal Programming Language
_トップページ | Introducing Crystal Programming Language - Your awesome subtitle


気になったので、Windows10 x64 22H2上で試用してみた。

インストール :

一般的には Scoop なるツールを利用してインストーする事例が多く紹介されてるようだけど、以下からバイナリを入手することもできる。

_Releases - crystal-lang/crystal

インストーラ版とポータブル版があるけれど、ポータブル版を使ってみることにした。crystal-1.14.0-windows-x86_64-msvc-unsupported.zip を入手して解凍。今回は D:\Dev\Crystal\ に置いた。

Crystalのインストール場所を、環境変数PATHに追加する。今回、cr_use.bat というBATファイルを書いて、使いたくなった時に該当BATファイルを呼び出して使うようにする。

@echo off
set CRPATH=D:\Dev\Crystal
set PATH=%CRPATH%;%PATH%
echo Install Path : %CRPATH%
echo Crystal enable.

動作には、Visual C++ (cl.exe) が必要。自分の環境は Visual Studio Community 2022 をインストールしてあるので、その点は問題無し。

使い方 :

以下で Crystalコンパイラの使い方が紹介されてる。

_コンパイラの使い方 - Crystal

Visual C++ (cl.exe) が利用できる状態じゃないと使えないので…。スタートメニューから、「x64 Native Tools Command Prompt for VS 2022」を選んで起動。DOS窓が開く。これで cl.exe が利用できる状態になる。

先ほど作成した cr_use.bat を実行。これで、crystal.exe にPATHが通ったはず。

バージョンを確認。
> crystal -v
Crystal 1.14.0 [dacd97b] (2024-10-09)

LLVM: 18.1.1
Default target: x86_64-pc-windows-msvc
Crystal 1.14.0 を呼び出せている。

任意のフォルダで、hello.cr を作成。内容は以下。文字列を出力するだけ。
puts "Hello world ! Hello Crystal !"

実行してみる。crystal run hoge.cr でお試し実行ができる。
> crystal run hello.cr
Hello world ! Hello Crystal !

ビルドして実行形式を作ってみる。crystal build hoge.cr でビルドできる。
crystal build hello.cr

以下のファイルが作成された。
gc.dll
hello.cr
hello.exe
hello.pdb
iconv-2.dll

hello.exe を実行してみる。
> hello.exe
Hello world ! Hello Crystal !

実行できた。

これで、Windows上でも Crystal を動かして実行ファイルを作成することができそうだと分かった。

shardsを使おうとしてハマった :

Crystal には shards というパッケージマネージャが同梱されている。これを使うと、プロジェクトの管理が楽になるらしい。shard.yml というファイルに記述された内容に基づいてアレコレしてくれるらしいが…。

_shards コマンド - Crystal

例えば、crystal init app hoge と打ち込めば、プロジェクトの雛形を作成してくれるのだけど。
> crystal init app hello-cr
    create  D:\home\prg\crystal\helloworld\hello-cr\.gitignore
    create  D:\home\prg\crystal\helloworld\hello-cr\.editorconfig
    create  D:\home\prg\crystal\helloworld\hello-cr\LICENSE
    create  D:\home\prg\crystal\helloworld\hello-cr\README.md
    create  D:\home\prg\crystal\helloworld\hello-cr\shard.yml
    create  D:\home\prg\crystal\helloworld\hello-cr\src/hello-cr.cr
    create  D:\home\prg\crystal\helloworld\hello-cr\spec/spec_helper.cr
    create  D:\home\prg\crystal\helloworld\hello-cr\spec/hello-cr_spec.cr
Initialized empty Git repository in D:/home/prg/crystal/helloworld/hello-cr/.git/

この状態で shards を使えばビルドができるのかな、と思いきや…。
> cd hello-cr
> shards
Shards needs symlinks to work. Please enable Developer Mode, or run Shards with elevated rights:
    https://learn.microsoft.com/en-us/windows/apps/get-started/enable-your-device-for-development

「Symlinks を使うから開発者モードにするか権限を上げろ」と言ってきた…。

以下を眺めると、非開発者モードで利用できるようにするのは難しい、と言っているように見えた。

_Windows: A required privilege is not held by the client - Issue #556 - crystal-lang/shards

仕方ないので、一時的に Windows10 x64 22H2 の開発者モードを有効にして試してみた。スタートメニュー → 設定 → 更新とセキュリティ → 開発者向け → 開発者モード、をONに。

_Windows 10で開発者モードにする - Windows 10 Tips | iPentec

> shards
Resolving dependencies
Writing shard.lock

> shards check
Dependencies are satisfied

> shards version
0.1.0

> shards build
Dependencies are satisfied
Building: hello-cr

shards が動くようになってくれた。

shards build と打ったら、bin/ ができて、中に実行ファイルが生成された。bin/ の中は以下。
gc.dll
hello-cr.exe
hello-cr.pdb
iconv-2.dll

でもまあ、入門時は使わなくても良さそうだし…。開発者モードはOFFに戻しておいた。

余談。開発者モードの罠 :

開発者モードにしたら、普段使ってる BATファイルが実行できなくなってしまった。「\Microsoft の使い方が間違っています。」と表示されてしまう。

BATファイル内のラベルが小文字で書かれていたのがよくなかったらしい。大文字に修正したら動いてくれた。そういうものなの…?

ちなみに、自分でBATファイルを書くときは、昔ながらの流儀でラベルは大文字にしているのだけど、他の方が書いたソレをそのまま持ってきて使っていたものだから…。とりあえず、非開発者モードでは、ラベルが小文字でも動いてしまうようだなと…。

#2 [tv] 「NHKスペシャル ジャニー喜多川 アイドル帝国の実像」を視聴

思考メモというか感想メモ。

NHK総合で放送されてた番組を録画していたので視聴。本放送時も一応見ていたけれど、ウトウトしながら見てたので…。

なんともモヤモヤしてくる内容だった。

元フォーリーブスの方が発言してたけど、「少年達を見る目がフツーじゃない人だからアイドルを売り込むためのアレコレも実行できた」という見方には、なんだか納得してしまった。

フツーのおじさんの感覚では、そのへんを歩いてる少年達を見て「美味しそう」なんて露ほども思わないわけで、つまりは少年達に価値なんか見出すことは無いし、価値が見出せないのだから売り込むためのアレコレだって本気で取り組めないはずで。対して、少年達を常に邪な目で見ているガチな人種だからこそ、そこに価値を見出せるし、価値を見出せているからどうやって魅力的な商品にしていくのかも本気で取り組める、という面はあったのだろうなと…。このあたり、女性アイドルに対するソレで置き換えてみれば分かりやすいのかもしれない。おじさん達が若い女の子を見る時に邪な目で見ていないと言えるだろうか。むしろ邪な目で見ているからこそ価値を見出せて、アイドルと言う商品を磨いていくモチベにも繋がるのではないか…? いや、知らんけど。

日本が男性社会というのも関係していたのだろうか…。少年達の商品価値を見出せるのは女性のほうが多いだろうと思うのだけど、もし、女性達がジャニー氏のようなポジションで活躍できる状況があったら、ジャニーズだってここまで大きくは…。いや、姉のメリー氏が実権を握ってたわけだから、男性社会云々はあまり関係ないか。

マスコミが業界一丸となって事件を隠蔽してきた、という面も、たしかにあるよなと…。例えば Wikipedia のまとめを眺めると、ますますそう思える…。何度も何度も、問題を明らかにするチャンスはあったのに、何度も何度も無視してる。

_ジャニー喜多川による性加害問題 - Wikipedia

所謂暴露本も出ていたし、告発していたマスコミも一部には居るのだけど、業界全体では完全無視していたあたり、これは隠蔽としか思えない。

さておき。番組内で提示されていたデータが ―― 他局がジャニーズを使わせてもらえなくなっている状況を横目に、NHKが積極的に起用を増やしていってジャニーズの権力を増強していったというデータも興味深かった。当時のお偉いさん(かつ、ジャニーズ後継事務所の偉い人)に取材を試みたら「仲間じゃないか」「なんで俺だけ」と言い出したあたりもなかなか…。当人は、上から「若年層を取り込め」と命令されたからやっただけ、みたいな感覚なんだろうけど。

それにしても、加害者と、隠蔽を画策した権力者が、どちらも故人と言うのが…。言い方はアレだけど、やり逃げだよな…。もやもやする…。

以上、1 日分です。

過去ログ表示

Prev - 2024/10 - Next
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project