Cygwin + MinGW + GCC 相談室 Part 8 (988レス)
1-

685
(1): 2020/04/28(火)10:52 ID:zAZN/f3s(1) AAS
マジレスするとmsys使ってて問題無ければwsl要らない
686: 2020/04/28(火)17:09 ID:7TaGv6sC(1/4) AAS
>>684
共存できる。msys2はただのアプリでしかないから

>>685
msysの問題はUbuntuと同じようなメンテナンス力を期待できないところかな
WSLは本物のUbuntuのディストリのパッケージが使われてるので
Ubuntuとほぼ同等にメンテナンスされてると思っていい

だけどmsysは(Ubuntuと比べたら小さな)開発者が対応してるパッケージしか使えない
省4
687
(1): 2020/04/28(火)17:14 ID:qC7CqvMj(1) AAS
ホームパスを一緒にすると色々弊害出そう
688: 2020/04/28(火)17:30 ID:7TaGv6sC(2/4) AAS
>>687
シンボリックリンクでホームディレクトリ以下から
アクセスしやすくするのがおすすめ
色々と混ざらないし複数のディストリでも共有できる
689
(1): 2020/04/28(火)18:17 ID:eCWBo+Hl(1) AAS
色々と混ぜたいからホームディレクトリを一緒にするんだろ
そうじゃなければ最初から分けとけばいいだけの話だ
690: 2020/04/28(火)18:20 ID:7TaGv6sC(3/4) AAS
>>689
「色々」と混ぜたいならその「色々」だめを混ぜればいいじゃん
全部混ぜる必要はない
691: 2020/04/28(火)18:21 ID:7TaGv6sC(4/4) AAS
「色々」と混ぜたいならその「色々」だけを混ぜればいいじゃん
692: 2020/04/29(水)09:35 ID:TuLha3Ht(1) AAS
混ぜるな危険
693: 2020/04/29(水)09:46 AAS
Microsoft Store に WSL Ubuntu 20.04 LTS 出てるけど、まだ入れない方がいいんですか
694: 2020/04/29(水)10:27 ID:Cpi+Il5+(1/2) AAS
早くても、8月以降に、20.04.1 とか修正版が出た後。
1年後でも良い

Ruby のirb では、MSYS2/MinGW で、日本語入力でバグるから、
WSL の方が、互換性が高い

日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv で、
色々なバージョンも入れられる

VSCode も、Remote WSL 拡張機能で、Linux 側へアクセスできる
695: 2020/04/29(水)10:38 ID:Cpi+Il5+(2/2) AAS
>>679
コマンドプロンプト・PowerShell で、wsl と入力すれば、WSLが起動する

最も良いのは、Linux 側のフォルダのショートカットをデスクトップにでも作って、
そのフォルダの右クリックメニューから、VSCode を起動する

これで、WSLを起動して、Linux側のプロジェクトを開ける
696: 2020/04/29(水)11:51 ID:Jemg3aCN(1) AAS
wsl, opensuse leapにmingw64入れてクロスビルドしてる。
configure作って--hostでmingw指定すれば楽勝すぎて屁が出そう
697: 2020/04/29(水)11:51 AAS
自分が使っているWSLが1なのか2なのか知る方法は?
698: 2020/04/30(木)13:35 ID:HbyVq09Q(1) AAS
openSUSE Leap 15.1用のmingw配布消えとるやん
くそがー
699: 2020/04/30(木)17:32 AAS
そもそもWSL2はエンスー向けか
普通の人は1が入ってるのか
700: 2020/05/02(土)23:21 ID:nkPqW+JC(1) AAS
MinGWっていうかGitBash環境なんだけど
WSL1より2倍ぐらいシェルスクリプトが遅いんだよね
どこが原因かわからんけどこんなもん?
なにか大きな差がでるポイントでもあるんかね?
701: 2020/05/03(日)03:37 ID:HUz+EFHq(1/8) AAS
WSL1 (bash 4.4.20) だと
$ time bash -c 'i=0; while [ $i -lt 1000000 ]; do : $((i+=1)); done'
real 0m6.317s
user 0m6.313s
sys 0m0.000s

MinGW64 (bash 4.4.23) だと
$ time bash -c 'i=0; while [ $i -lt 1000000 ]; do : $((i+=1)); done'
省10
702: 2020/05/03(日)04:04 ID:HUz+EFHq(2/8) AAS
比較とか計算が遅いのかと思ってやってみたけど
この比率は変わらない

WSL1
$ time bash -c 'for i in $(seq 1000000); do :; done'
real 0m2.159s
user 0m1.828s
sys 0m0.359s
省13
703
(1): 2020/05/03(日)05:18 ID:1PSoskYy(1/2) AAS
調べるとradeonのドライバを切れとか書いてあるけど…
704: 2020/05/03(日)05:22 ID:HUz+EFHq(3/8) AAS
>>703
使ってないよw
705: 2020/05/03(日)05:24 ID:HUz+EFHq(4/8) AAS
radeonの話は画面に出力が絡むなら
関係ありそうな気もするけど、それ以外でも発生するんだろうかね
あとHOMEは MinGWは /c/Users/myname
Cygwinは/home/mynameだ
706: 2020/05/03(日)05:26 ID:HUz+EFHq(5/8) AAS
よく見ると大きな差があるのはuser空間だから
コンパイルオプションが違ってるとかなのかな?
707
(1): 2020/05/03(日)05:38 ID:1PSoskYy(2/2) AAS
seq使うんじゃなくて{1..1000000}の方がいいかもね
708
(1): 2020/05/03(日)06:00 ID:HUz+EFHq(6/8) AAS
>>707
つってもわずか一回だからなぁ。やってみてもいいけど

WSL1
$ time bash -c 'for i in {1..1000000}; do :; done'
real 0m1.710s
user 0m1.547s
sys 0m0.156s
省14
709
(1): 2020/05/03(日)07:25 ID:69WKUEPM(1) AAS
>>708
を、WSL1, Ubuntu 18.04 で、3回やった。
8GB メモリ、CPU-i3・エコモード

real 0m4.680s
user 0m4.234s
sys 0m0.453s
710: 2020/05/03(日)07:38 ID:HUz+EFHq(7/8) AAS
>>709
いや比較しないと意味ないだろw
711: 2020/05/03(日)07:39 ID:HUz+EFHq(8/8) AAS
ちなみに俺のはCPUはi7な
Cygwin、MinGWを実行したら
それの2倍かかるはず
712
(1): 2020/05/03(日)21:39 ID:ADBK+oPb(1) AAS
cygwinはforkがヘボいから遅い
MinGWといいつつmsysのbashやろ
これもforkがcygwinゆずりだから遅い。
wslもfork遅いと思うけど。
virtual boxにwindowsファイルを共有させたものの方が実は速い。
純粋にwindowsとLinuxの環境を同居させたきゃ仮想PC
Linuxでwindows binaryをクロスビルド、テストまでしたけりゃwsl
713: 2020/05/03(日)21:47 ID:v0W4oGhj(1) AAS
まあ名前解決のところと passwd/group の設定はしといた方がいいね
714: 2020/05/03(日)23:40 ID:sXSeyux8(1) AAS
>>712
forkが遅いのはわかってるけど、
このコードでforkなんて大量にはしないだろ?

time bash -c 'for i in {1..1000000}; do :; done'
715
(4): 2020/05/04(月)02:27 ID:R/PLl+Gn(1/4) AAS
元々、bash が、ループ向きではないから、dash などを使う

for は遅いから、while などを使う。
実行時間中のほとんどが、フォークの時間

ループは、awk, perl, ruby などでは、0.1 秒も掛からない。
単一プロセス中の処理だから
716
(1): 2020/05/04(月)03:06 ID:szliIti6(1/5) AAS
あ、dashの結果書くの忘れてた。dashは速いから数を10倍にしてる
傾向は一緒。ただのループなのに2倍ぐらいの差が出てしまう

WSL1
$ time dash -c 'for i in $(seq 10000000); do :; done'
real 0m4.480s
user 0m2.875s
sys 0m2.047s
省10
717: 2020/05/04(月)03:06 ID:szliIti6(2/5) AAS
>>715
どこでフォークしてるというの?
718: 2020/05/04(月)03:16 ID:szliIti6(3/5) AAS
awkは更に速いから、更に10倍にしてる。これなら理解できるな。
CygwinとMinGW64がWSL1より少し遅いのは起動時のパフォーマンスの差だろう
ってことはシェルスクリプトだと、なにか遅くなる処理をやってるってことか
整数型じゃないとか?

WSL1
$ time awk 'BEGIN{i=0;for(i=0;i<100000000;i++);}'
real 0m4.121s
省12
719: 715 2020/05/04(月)04:54 ID:R/PLl+Gn(2/4) AAS
for がコマンドだから、フォークされるのだろ。
だから、シェルスクリプトでは、while を使えと言われる

bash よりも、dash を使う。
それ以上は、awk, perl, ruby
720: 2020/05/04(月)05:14 ID:szliIti6(4/5) AAS
whileを使うと遅いからforに変えたのですが?
forを使った>>716とループ回数は同じ

WSL1
$ time dash -c 'for i in $(seq 10000000); do :; done'
real 0m4.480s
user 0m2.875s
sys 0m2.047s
省14
721: 715 2020/05/04(月)07:28 ID:R/PLl+Gn(3/4) AAS
8年前のシェルスクリプトの本には、
10万行の処理で、

for : 9分
while : 5秒
awk/perl : 0.1秒
722
(1): 715 2020/05/04(月)07:33 ID:R/PLl+Gn(4/4) AAS
$((i+1)) という部分が、コマンドだから遅いのだろう

ほとんどが、そのフォーク時間
723: 2020/05/04(月)07:37 ID:iIYyf/rd(1) AAS
せいぜいbashのサブコマンドで、forkしとらん気がする
ただマルチスレッドは使ってるかも知れんし、その際のメモリ操作はなんか性能の問題があった気はする
724: 2020/05/04(月)07:49 ID:szliIti6(5/5) AAS
>>722
コマンドじゃないよ
725: 2020/05/04(月)18:39 ID:EvcVp/Zr(1) AAS
$(())内でiを更新できることから分かるようにforkしていないし、少なくともbashとdashはシングルスレッド

linux上で
ltrace -f bash -c 'for i in {1..1000000}; do :; done'
したら、mallocを何度も呼んでいるようだから、ヒープ操作関係が遅い可能性はある
実際、linux上でもmallocの実装をglibcのからjemallocに切り替えたら上のループが2割近く速くなった
726: 2020/05/06(水)17:53 ID:cyb3WwF6(1) AAS
wsl2は仮想マシンになるのか
windowsバイナリ実行できるのかな
727
(1): 2020/05/06(水)19:33 ID:DK8FW5YB(1) AAS
以下のパッケージ、入れようとすると対象が見つからないと出るんだけど・・・

dlfcn
libpng
tools-git
jq
clang
728: 2020/05/06(水)20:42 ID:Fjn1hDTG(1) AAS
WSL, Ubuntu 18.04 には、jq もあるけど

apt-cache show jq

メンテナー : 陳昌倬
729: 2020/05/06(水)22:45 ID:UqyV1t7H(1) AAS
>>727
ないんだろ?Cygwinは独自のディストリ
Windowsに移植できたもの、自分が関心があるパッケージしか
登録されていない
730: 2020/05/11(月)23:46 ID:77t5bXxM(1) AAS
GCC 10.1まだですか
731: 2020/05/12(火)00:26 ID:6XbzcR0E(1) AAS
ついにGCCのバージョンも10まできたか・・
732: 2020/05/12(火)01:18 ID:yS+J4vmz(1) AAS
GCCじゅにや
733: 2020/05/12(火)07:09 ID:zxRznJOz(1) AAS
カバにダンスをさせるのは
あまり楽しくないそうだ
734: 2020/05/14(木)00:17 ID:rBW8Yffw(1) AAS
MSYS2でWin32アプリ作ってみようとチャレンジ中
735: 2020/05/14(木)10:05 ID:tvxDWcUo(1/2) AAS
きばれ
tdm-gcc (64)
736: 2020/05/14(木)10:09 ID:tvxDWcUo(2/2) AAS
外部リンク:jmeubank.github.io
737: 2020/05/14(木)10:17 ID:HbCKurWZ(1) AAS
Ruby はやめとけ
738: 2020/05/22(金)14:26 ID:DztlkuPK(1) AAS
msys2をサイレントインストールするにはどうしたら良いですか?
739: 2020/05/28(木)04:57 AAS
WSL2で 9PFs 経由でWin32側のファイルを読み込むの、なんでこんな遅いの?
740: 2020/05/28(木)05:10 ID:X/662gLn(1) AAS
仮想マシン経由だからでは?
だからWSL1も引き続き開発してるわけで
741: 2020/05/29(金)02:44 ID:o1TI0Bdi(1) AAS
そろそろ更新してくれ
742: 2020/06/23(火)03:13 ID:1wsAa41I(1) AAS
新版まだですか〜
743: 2020/06/23(火)04:40 ID:TI7IUkkN(1) AAS
あきらめれ。Cygwinはもうお役御免
744: 2020/06/23(火)05:19 ID:AJ4z3x9t(1/3) AAS
同意。mingwは存在意義があるけど、cygwinは役割を終えた。
745: 2020/06/23(火)07:12 ID:lBX+9FOg(1) AAS
cygwin
ついに死す、か・・
746: 2020/06/23(火)08:06 ID:oj2a+YQY(1/2) AAS
大往生だね
747: 2020/06/23(火)12:40 ID:AJ4z3x9t(2/3) AAS
mingwは「Git For Windows」のバンドルモジュールとしてしぶとく生き残る。
cygwinはdll依存をなくしてmingwに統合されていくでしょ。
748: 2020/06/23(火)13:37 ID:IV3AROMx(1/2) AAS
それを言ったらGit Bashはmsys2のbashだが、bashがmingwに移植されるとは思えんな
749: 2020/06/23(火)13:44 ID:oj2a+YQY(2/2) AAS
gcc -staticがデフォじゃないのがよくわからん
じゃあMinGWの立ち位置って何よって
750: 2020/06/23(火)13:57 ID:4kHZmTBE(1) AAS
外部リンク[html]:www.itmedia.co.jp
外部リンク:www.security-next.com
751: 2020/06/23(火)14:46 ID:ORgy0fyK(1) AAS
bash使いたいならbusybox-w32を使えばいいじゃない
752
(1): 2020/06/23(火)18:04 ID:IV3AROMx(2/2) AAS
MinGWの立ち位置?
Win32アプリをビルドできるGCC環境
753: 蟻人間 ◆T6xkBnTXz7B0 2020/06/23(火)18:07 ID:5yVlyLrR(1/3) AAS
ReactOS Build Environment (RosBE)という選択肢もアリます。
754
(1): ◆QZaw55cn4c 2020/06/23(火)18:42 ID:sbDHiXI+(1) AAS
MSVC に依存したくないので、mingw をお手軽に維持できる cygwin 環境はありがたいですね…
755: 蟻人間 ◆T6xkBnTXz7B0 2020/06/23(火)18:50 ID:5yVlyLrR(2/3) AAS
WineHQとかRosBEとかはLinuxでも使えるクロスコンパイラを用意している。まあ、やる人は少ないが。
756: 2020/06/23(火)18:53 ID:V6B5o2yX(1) AAS
別にlinuxからでもクロスコンパイルできるんやろ?
757: 蟻人間 ◆T6xkBnTXz7B0 2020/06/23(火)19:25 ID:5yVlyLrR(3/3) AAS
XPでも動くプログラムが作れるってのが味噌。MSYS2はVista+に移行した。
758: 2020/06/23(火)22:02 ID:AJ4z3x9t(3/3) AAS
mac OSはzshに移行したというのに
759: 2020/06/23(火)22:14 ID:MHuIwrXa(1) AAS
移行したと言うか、互換性の点でbashの方が良かったが
bashのライセンスがGPL3に変わって受け入れられなかったから
仕方なくzshにしたってだけだろ
古いbash 3系よりは、zshの方がまだましという消極的な理由
760: 2020/06/24(水)11:23 ID:6+kkBVmV(1) AAS
>>752
>>754
tdmgcc で cygwin から解放されました
ほんとうにありがとうございました
761: 2020/07/23(木)17:26 ID:VHveRWmf(1) AAS
更新まだですか
762: 2020/07/25(土)17:28 ID:zqROUOzo(1) AAS
tdmgcc は wikipedia では開発が止まった事になってるな。
763: 2020/07/25(土)19:44 ID:e/b0FSz8(1) AAS
フェラチオザウルスにパクってされちゃうよ
764: 2020/07/27(月)10:47 ID:vNtx9fDh(1) AAS
日本語情報が怪しい時は
英語で探せとあれほど
外部リンク:en.wikipedia.org
765: 2020/08/02(日)17:49 ID:5nHbYcRj(1) AAS
GCC10.2が出ましたが更新まだですか
1-
あと 223 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.031s