2ch勢いランキング 全部 1- 最新50

Linuxは、開発環境が40年前と同レベル


login:Penguin [sage] 2018/03/10(土) 12:14:37.34:F9RE316x
間違ってもらっては困るのは、それはコマンドライン・メインなのが主因ではないということ。
本当の一因は、本来手書きでも簡単な Makefile の作成をわざわざ難しくしてしま
う autotools を権威に流されたのか多くのプロジェクトが使ってしまっている事にある。
高々 Makefile 1つ作るためにも以下のような工程を踏まなければならない。
本来、典型的には、ソースファイルである *.c, *.cxx, *.cpp を指定するだけ
でも自動生成する事が出来るはずなのに、ツール類が馬鹿だからそうなってない。
なのに、「Linuxはプログラマーには便利」などと嘘情報が流れるから、普及しない。
しかも、カレントディレクトリのスクリプトの実行に「./configure」などと「./」
の指定が必要なのも馬鹿丸出し。ファイル名に大文字小文字の区別がされているのも馬鹿。
ファイルのコピーもdosなら、「copy *.c /xxx/aaa 」で済むことが
$ find . -name '*.c' | xargs -n 1 -i cp -p {} /xxx/aaa
などとしなくてはならず長すぎ、馬鹿ですか? しかも、'*.c'の部分が、*.c と書かれている
説明が溢れているがそれだとbashが展開してしまうのでたまたま上手く行く事はあっても、
実際には正しくない。また、mountしないとディスクが認識出来ないのも初代PC-8001の
レベル。PC-8801で自動マウントできるようになったのに(いつの時代(苦笑))。まずは、
不便さを認めるなければ、改善すらままならないのにそれすら全否定。正直に便利と思って
るなら井の中の蛙で馬鹿で無知なだけだ。そして、僅か1点でも間違いがあれば全てが間違って
いるように全否定してしまうLinux信奉者の愚かさもアホとしか言いようがない。
1 [saga] 2018/03/10(土) 12:15:01.91:F9RE316x

01. (Makefile.amの作成) # 手作業
02. $ autoscan
03. [configure.scan生成] # 自動
04. $ cp configure.scan configure.ac
05. (configure.acの修正) # 手作業
06. $ aclocal
07. $ automake -a
08. [Makefile.in生成] # 自動
09. $ autoheader
10. [config.h.in生成] # 自動
11. $ autoconf
12. [configure生成] # 自動
13. $ ./configure実行
14. [Makefile生成] # 自動
login:Penguin [sage] 2018/03/10(土) 12:21:01.63:F9RE316x
馬鹿だから簡単に各方法を見出せず、ただただ、大量のツールを開発し、
時間をかけ苦労して使っている。そして大量の時間と膨大なHDD容量と、
ネット容量を使いまくって、それしかやる事が無い無能連中がOSS開発で
よってたかって、なんとか表面的には動くバグだらけの使えないツール類を
作りまくって出来上がった集大成が Linuxだ。
login:Penguin [sage] 2018/03/10(土) 12:34:52.53:GhVyQtCz
いまだにビルドが遅いんだよな
しかもカーネルをビルドできるだけでドヤ顔できるほどの難易度

コーディング中にリアルタイムでエラーが指摘される時代に何やってんだとは思う
login:Penguin [sage] 2018/03/10(土) 12:38:23.34:D1qSb8RL
ちゃんと動くんならいいじゃないか。
他のOSでは macOS High Sierra はちょい品質が…なのだし。
login:Penguin [sage] 2018/03/10(土) 14:11:12.74:eQWNUFiP
WindowsやiOSやmacOSのビルドは違うとでも思っているのだろうか…
login:Penguin [sage] 2018/03/10(土) 14:31:03.97:lzdUB3GL
LinuxだとVimとそれぞれの言語に応じたデバッガーだな
macOsだと糞Xcode
login:Penguin [sage] 2018/03/10(土) 17:36:12.21:zCz6mMg3
40年前の技術に後れをとる大企業マイクロソフトはどんだけ機能不全なんだよw
login:Penguin [sage] 2018/03/10(土) 19:31:57.68:kO7HFFeK
補助ツールのやってることが場当たりの対応でしかないから、
新しく作るものも場当たりの対応に合うように作ることになる切なさがある
そして今は逆に、みんな好き勝手にビルドツールを作る時代になって、それはそれで面倒くさいことに
login:Penguin [sage] 2018/03/10(土) 21:14:20.31:Iz6oQn3Q

> ファイルのコピーもdosなら、「copy *.c /xxx/aaa 」で済むことが
できないんだっけ?
login:Penguin [sage] 2018/03/10(土) 23:08:08.54:Trf+5FyR
DOSはコマンドラインの長さ制限が厳しすぎて*のファイル名展開したら
Linuxでcp *.c /xxx/aaaするより限界低そうだけどどうなんだろうな
login:Penguin [sage] 2018/03/11(日) 01:56:09.27:ceorHAxI
久しぶりに同意できる
login:Penguin [sage] 2018/03/11(日) 02:44:26.18:W7wkl3nL
CUI で開発できるので、うれしい。
よく知らないGUIのOSだと、モヤモヤする。
login:Penguin [sage] 2018/03/11(日) 07:43:32.76:7srcRXE1

copyじゃなく、xcopyかな。
login:Penguin [sage] 2018/03/11(日) 08:13:57.73:7srcRXE1

DOSのcommand.comはワイルドカードを展開しない仕様だったからコマンドラインの
文字数制限の壁にかからなかった。一方、Linuxは、普段は cp *.c /xxx/aaa で行け
ても全てのファイル名の合計文字数が長くなればその制限に引っかかる。だから
結局、findを使わざるを得なくなることがある。そしてファイル数が多いときにもエラーを
絶対に起こさないためには最初からfindを使わざるを得ないと思う。じゃあなんのために、
bashのワイルドカード展開はあるかって話になるかも。
login:Penguin [sage] 2018/03/11(日) 10:02:48.60:FS0P3X2Y

知識がついてきてないだけやんwwww
login:Penguin [sage] 2018/03/11(日) 11:16:41.03:wZ7PAPAy
CUIはどこいっても似たようなもんだからな
GUIは文化の壁が厚すぎる
OS違ったら当然のこと、業界によっても常識が変わるからな
login:Penguin [] 2018/03/11(日) 11:31:33.53:1WQdp6Y+
ワイルドカードの展開は余計なお世話だと言いたいのかな。それなら抑止するオプションもあるのだが。
「この仕様はどんなメリットがあるの?」とか「DOS のこれは Linux ではどうやるの?」とかなら助けてやれるかもしれないのだが。
login:Penguin [sage] 2018/03/11(日) 12:48:03.51:YsLyPzcd
面倒でもあるが細かい所まで手を入れる事できるからまし。vsでビルドで謎エラーとか
login:Penguin [sage] 2018/03/12(月) 03:16:00.77:ZVV/4ff9
cmakeが主流になりつつあるだろ
誰も知らんのか
login:Penguin [sage] 2018/03/13(火) 07:39:51.39:bSKvTeow
autotoolsとCMake、正直どっちもつらみがある
CMakeなら.slnファイルも作れるという強みはあるが…

しかしはいろいろと誤認や知識不足がみられるな
PATHに.入れればconfigureで実行できるようになるがセキュアでないので
推奨されない
今時のGUI環境ならPnPでディスクは勝手にマウントされる
wildcardの展開をshellまかせにするかコマンド側がよろしくやってくれるのかは
一長一短あるだろう

Visual Studioがいい環境なのは認めるよ。VSCodeはその域に達してないし
login:Penguin [sage] 2018/03/13(火) 10:22:06.61:5bGA/MLX

>PATHに.入れればconfigureで実行できるようになるがセキュアでないので
>推奨されない

それでバランスしてしまったのがUnix文化の困ったところなんだ。
DOSだと、暗黙のうちに「.」が検索パスに入っていることが前提だからそれを
前提にした文化が形成されたので、その状態でも十分に「セキュア」になった。

その結果、./を付けなくてもカレント・ディレクトリのEXEやBATファイルを実行できる
という超便利な環境となった。ところが、Unixだと古い文化を引きずったまま
直ることが無かったので不便なままとなった。その結果、今後Wineが究極まで
達してもLinuxがWindowsの代わりにはなりえないかも知れない。
login:Penguin [sage] 2018/03/13(火) 10:33:37.76:5bGA/MLX

>今時のGUI環境ならPnPでディスクは勝手にマウントされる

Ubuntuだけど、

1. /etc/fstab に光学ドライブを書いておくと、Login前に待機状態になってしまう。
2. Login後、メディアを入れてからNautilusでドライブをクリックすると認識はできる。
3. しかし、メディアを交換したときにトラブルが生じやすい。例えば、Wineだ。
4. HDDですら、Nautilusでドライブをクリックせずに、いきなり端末を使った場合には
  マウントされてない。
5. おまけをいうと、FAT32のような単純なドライブですら、Linuxではext3とはpermissionなど
  で非互換がおきまくって、正しく動作出来ない。たとえば、そのドライブでは、ソースからは
  上手くmakeが出来ず、どこかで不具合が生じてしまう。だから、ext3ドライブにソースを
  全コピーしないといけなくなる。
login:Penguin [sage] 2018/03/13(火) 10:35:32.21:5bGA/MLX

>wildcardの展開をshellまかせにするかコマンド側がよろしくやってくれるのかは
>一長一短あるだろう

現実に良く使うコマンドがとても長くなってしまっているのだから、結果的にはLinuxの
方が使いにくい。
login:Penguin [sage] 2018/03/13(火) 10:52:01.11:5bGA/MLX

>Visual Studioがいい環境なのは認めるよ。

この書き方だと、プログラムの経験が浅い人にはVisual Studio だけが例外的に
「いい環境」なだけだと思われてしまう。

ところが、実際にはそうではなく、TurboC++, WatcomC++なども、十分に便利だった。
コマンドラインでも、gccやgnu make などとくらべて、だいぶ便利だったんだ。

はっきりいえば、gccやmakeやLinux文化は洗練されておらず、頭が悪いんだ。
login:Penguin [sage] 2018/03/13(火) 11:51:15.98:wIVMmkuq
Emacsだけ有ればいいさ!
login:Penguin [sage] 2018/03/13(火) 12:29:55.64:9i5woyma
makeは特別に良いとは言わないけど別に悪くもない
それより最近は言語に特化したビルドツールが多いから色々覚えなきゃいけないのが面倒
login:Penguin [sage] 2018/03/13(火) 12:45:35.08:5bGA/MLX

基本的には、make自身の問題よりも書き方やそれ以外の変なツールが標準になっていることの問題
が大きい。しかし、gnu toolsは、余計なメッセージだけを消す事が出来ないことが多いのが
クソなんだ。消そうと思うと全てのメッセージが消えたりして、使い物にならない。turbo c++
や watcom c++ , msc++, vc++のツール類は、どれもそんな初歩的な不具合は無かった。
login:Penguin [] 2018/03/13(火) 12:55:37.69:IE+orhWI
すごいな。いろんな意味で。現状に不満があるのは理解できたけど、不満を解消するために何をしたの?
login:Penguin [sage] 2018/03/13(火) 13:08:58.30:5bGA/MLX
それが責任者不在の問題点。こっちは部外者なのに責任を負わそうとする。
login:Penguin [sage] 2018/03/13(火) 23:35:22.57:WPjn7ohc
昔は、好きでやってる開発者に世界中のユーザーが支援して品質を高めていくオープンソースやフリーソフトに、
仕事で嫌々やってる商用ソフトがかなうわけないと思ってたけど、そうでもなかったな。
やっぱり仕事で真剣にやってる人たちにはかなわないんだな。
login:Penguin [sage] 2018/03/14(水) 05:31:25.15:4nEasH7v
jetbrainsのIDE使っとけば
login:Penguin [sage] 2018/03/14(水) 07:17:28.33:HRaHWJ8k
TURBO Cのコマンドラインは使ったことないな。IDEは便利だったけど。
ただ当時のレベルだったらemacsのmake+ctags環境も十分匹敵する
レベルだったと思うが。あの頃にリファクタリング機能とかなかっただろう。

jetbeansの名前も出てるけど、Eclipse, Anjuta, KDevelopみたいな
IDEもある中でそういうのを出して比較しないのはちょっとフェアじゃ
ないんじゃないか。
まあそれらと比較してもIntelliSenseに及ばないんだけど。
login:Penguin [sage] 2018/03/14(水) 07:43:43.32:HRaHWJ8k
出自が1マシンを複数ユーザーで使うことが前提の環境だったので
悪意あるユーザーの想定が必要だった。というかWindosが今の状態で
十分セキュアとは思えないんだけど。悪意あるユーザに勝手にファイル
置かれて実行されるリスクは下がっちゃいないのでは。

fstabを書いた例と書かない例を混ぜて文句いうのはちょっと感心しない。
FAT32はそもそもろくなメタデータおけなくてPOSIX的なファイルの扱い
にマッチしないのでそりゃしょうがないよとしかいえない。
全コピーしなくてもloopback filesystem置く手段はある。Windowsでも
似たようなこと(vhdファイル作ってマウント)しないとFAT32領域に
まともにアプリがインストールできない事態起きるし。

そこはもう慣れの問題で自分は「クソ、勝手に処理しやがって」と
思うことの方が多いし味方の別れるところだと思う。個人的にはそんなに
頻繁に使うならエイリアスかスクリプトにでもしたら、と思う。
login:Penguin [sage] 2018/03/14(水) 08:42:41.08:4J3TJdzv

>全コピーしなくてもloopback filesystem置く手段はある。

こういうのを聞いて、イザやってみても別のところで不具合が起きて時間の無駄になった
経験が沢山ある。
login:Penguin [sage] 2018/03/14(水) 09:11:53.42:4J3TJdzv

>FAT32はそもそもろくなメタデータおけなくてPOSIX的なファイルの扱い
>にマッチしないのでそりゃしょうがないよとしかいえない。

数学的にはFAT32であってもext3の模倣もする事が出来る。
あなたは数学は苦手ですか? 苦手なら、数学とプログラムと
UnixとWindowsとExt3とFAT32の全てに詳しい者に聞いてみるといい。

自分にはそれをするための方法が頭の中で分かる。そういうツールや
ドライバが既にあるという意味ではない。作ろうと思えば作れるという
意味。そして、自分にはその義務はない。
login:Penguin [sage] 2018/03/14(水) 16:11:19.24:B9yzXWAU
なんでコンパイラと統合環境比べてるの?
統合環境でVSが良いのは認めるけどLinuxだってEclipseやJetbrainはあるし
login:Penguin [sage] 2018/03/14(水) 16:13:41.16:B9yzXWAU
WindowsってただVSが良いというだけじゃん
未だにまともなパッケージ管理もないしシェルは使えないし開発する環境としては最悪だよ
login:Penguin [sage] 2018/03/14(水) 16:32:54.53:q4XJOHSe
VisualStudioが便利な言語って限られるし
開発環境全般で言えばWindowsだけじゃ不足なのでWSLが持て囃されたりしてるし
万能なものはないからいいとこ取りで使っていればいいだけだ
login:Penguin [] 2018/03/14(水) 16:48:10.54:80z85C3j
MS-DOS を使っていた時代は、UNIX を使っている人たちが羨ましくて仕方なかったな。本当に何から何まで羨ましかった。
だから、Linux よりも DOS がいいというのはなかなか興味深い見解だと思ったのだが……どうやらお呼びじゃなさそうだ。
login:Penguin [sage] 2018/03/14(水) 16:55:34.82:4J3TJdzv

そりゃ、DOSはLinuxのサブセットみたいに普通思い勝ち。でも実際はむしろMSが
進化させたんじゃないかと、今では思ってる。実際MS製Unixは売れずにDOS
だけが売れたし。
login:Penguin [sage] 2018/03/14(水) 17:03:07.07:4J3TJdzv

コマンドライン・コンパイラを比較してもやはり、TurboC++, WatcomC++などとくらべて
gnu tools は使いにくいと思ってるし、上でもそう書いてる。
login:Penguin [sage] 2018/03/14(水) 17:22:38.91:Ot1p/P4U
使いこなせないだけだろw
login:Penguin [sage] 2018/03/14(水) 17:22:39.04:KnbtLvIZ
autotoolsはマルチプラットフォームを前提としたものだからTurboとかとは目的が違う
別のOSでも同様の手順でいいという使い勝手はTurboCとかじゃ実現できないわけで結局使い易いとかは主観でしかないしどれだけ自分に都合が良いかというだけのこと
login:Penguin [sage] 2018/03/14(水) 17:26:17.11:4J3TJdzv

色々な嘘によって、ミュンヘン市は損害を追ったのに、Linuxサイドは「技術的な問題じゃない」
という一点張り。スラドではこの態度に対し、「なんと言う言い訳」と言われてた。
login:Penguin [sage] 2018/03/14(水) 17:26:44.28:Ot1p/P4U
使いやすいとか使いにくいは慣れの問題だし
最初に手をそめた環境がその人の一生の好みを決めるところがある
自分の好みを言っても主観以外のなにものでもない
login:Penguin [sage] 2018/03/14(水) 17:30:09.61:4J3TJdzv

LibreOfficeの開発者もそんな事言ってた・・・。
login:Penguin [sage] 2018/03/14(水) 17:58:02.77:4J3TJdzv
欧米流は、言い訳が多いな。
login:Penguin [sage] 2018/03/14(水) 18:31:54.74:4J3TJdzv

ただ、そんなことしなくても(30年前に比べれば)言語やOSで色々と統一化や
標準化もあったりしたせいか、それらのツールのやり方が本末転倒で意味不明
な存在になってり。

今は、そもそも出来ない場合にはそんなツール使っても出来ないし、出来る
場合には使わなくても出来る。存在意義がどれくらい果たしてあるのか。
login:Penguin [sage] 2018/03/14(水) 18:51:47.32:rvms1pqi
出来るかどうかってのは使う人間の能力によるところが大きいから出来なかったとしても仕方がない
login:Penguin [sage] 2018/03/14(水) 18:57:43.24:4J3TJdzv

今は、「マルチプラットフォーム」での非互換部分を自動的に修正してくれるかどうかの話
やで。
login:Penguin [sage] 2018/03/14(水) 19:32:56.84:rvms1pqi
そのソフトウェアがそのOSに対応してるのなら自動的に追従するようになってるだろ
想定されたOSでそれが出来ないということなら問題は人間側に(以下略
login:Penguin [sage] 2018/03/14(水) 23:56:01.59:qC2L6BuB
スレタイだけでの反応なんだけれど、
16年前に書いたソース群を、今日makeする事ができた。

これ、本当に凄い事だと思う。1回覚えた事や環境がずっと使えるって幸せ。
login:Penguin [sage] 2018/03/15(木) 00:25:00.60:cRQ+JQN/
読むと、autoconfは確かに面倒なの同意。
良書がなかったしね。訳本も酷かった。本当に酷かった。

そもそもポータビリティに気を付けてソースを書きなさい。
後は、色んな環境でもmakeできるようにしてあげるよって思想だった記憶。

お陰でvine2.1.5時代に作った物が今でもmakeできた。
ただ、思い出して修正できるまでに10日かかった。
当時も日本人開発のソフトには導入が不完全で、バグレポート送ったりしてたわ。
login:Penguin [sage] 2018/03/15(木) 10:44:40.56:lnWZyj3L
えっ!?

ttp://http://www.jaist.ac.jp/~kiyoshiy/memo/autoconf.html

>autoconf/automakeのバージョンを少し上げただけで、 それまでに作成した
>configure.inに対してautoconf/automakeを実行すると エラーや警告を生じる
>ようになる場合が多々あります。 むやみに最新バージョンをインストールし
>ないほうがよいようです。

>以降の記述でも、autoconf/automakeのバージョンによってはエラーや警告
>が発生する場合があります。
login:Penguin [sage] 2018/03/15(木) 10:52:04.96:lnWZyj3L
どっちの関数があるかないかによって、自分のコードにこんなの書かされる。
片方の環境しかなければ、もう片方のテストはしないってことだよね。

#ifdef HAVE_GETCWD
  getcwd(pathname, sizeof(pathname));
#else
#  ifdef HAVE_GETWD
  getwd(pathname);
#  endif
#endif


このようなコードを何回も書くのは駄目コードだ。なぜなら、1文字でも間違って
いればバグるのに、テストも出来ないから。
login:Penguin [] 2018/03/15(木) 11:03:36.94:lnWZyj3L
例えば、マクロ名を間違って、

#ifdef HAVE_GETCVD
#ifdef _HAVE_GETCWD
#ifdef HAVE_GET_CWD
#ifdef HAVE_GTECWD
#ifdef HAVE_GETCW

などと書いてしまったらどうなるか。このようなミスは、ヒューマンエラーなので、
頭の良さや経験や能力に関わらず、誰にでも起こりうる(なのに、エラーになら
ない。)。


また、それとは別に、例えば、その環境では
getcwd(pathname, sizeof(pathname));
の部分をコンパイラがパースすらしない場合、

getcwd(pathname. sizeof(pathname));
getcwd(pathname, sizeof(pathname)):
getcwd(pathname, sizoef(pathname)):
getcwd(pathname, sizeof(pathnmae));

などの書き間違いがあったらどうなるか。
, . ; : の間違いがあるが良く見ないと分からない。
これならまだコンパイル・エラーになるだけなので
まだ良くて、一度もテストしないなら、コンパイルは通るのに、
実行段階で結果だけがおかしくなることもありうる。その場合は
もっとたちが悪い。
login:Penguin [sage] 2018/03/15(木) 14:29:04.87:LTp8xgxY
それはCプリプロセッサの問題だろ
login:Penguin [sage] 2018/03/15(木) 14:49:32.28:lnWZyj3L

頭の言いプログラマなら、別の方法を探す。
馬鹿だからその「解」が見つからない。
login:Penguin [sage] 2018/03/15(木) 14:57:50.65:LTp8xgxY

プリプロセッサに代わる頭の良いやり方を是非開発して
login:Penguin [sage] 2018/03/15(木) 15:07:39.22:lnWZyj3L

1つの方法としては、新規に共通(互換)ライブラリを作れば良い。

上の例だと最も単純には、

1. getcwd(pathname, sizeof(pathname));
2. getwd(pathname);

の「1」の方はアプリ・プログラムでは使わずに、必ず2を使うようにする。
そして2が存在しない環境向けには、

xxx getwd(zzz *pathname) // zzz は恐らく char
{
 ・・
 aaa = getcwd(pathname, 最大パス文字数);
 ・・・
}

のような感じのライブラリ関数を提供してしまう。こうしてしまえば、
autotool なんてアプリをビルドする際には全く使わなくて良くなる。
長いパス名が使える環境向けには、「最大パス文字数」を動的に可変に
する方法も有り得る。そうするには工夫が必要だが不可能なことではない。
login:Penguin [sage] 2018/03/15(木) 15:18:54.99:LTp8xgxY
そのやり方は無造作にやるとシンボル名が衝突してコンパイルやリンクエラーになりますが
動作の切り分けはどうやってするのですか?
login:Penguin [sage] 2018/03/15(木) 15:25:01.52:lnWZyj3L

シンボル名の「衝突」と言っても色々な場合があり、一概には言えないが、
新しい共通ライブラリ関数は、例えば
cmn_getwd()
のように先頭に 「cmn_」を付けてしまって、アプリは、「cmn_xxx」の
方だけを使うようにすれば、衝突の心配が1つ消える。
login:Penguin [sage] 2018/03/15(木) 15:36:11.68:LTp8xgxY

名前変更した共通ライブラリをビルドするときはどう回避するの?
login:Penguin [sage] 2018/03/15(木) 16:15:21.72:lnWZyj3L


それは色々なやり方があるが、2つだけ書いておく:
1. そのライブラリのソースだけは、プラットフォームごとに場合分けしてしまう。
2. 何らかのツールで、関数ごとに使えるかどうかチェックし、1,0のフラグを
  マクロに設定するヘッダフィルを作成し、そのマクロで#ifdefで場合分けする。

どちらの方法でも、ライブラリだけを誰かが集中的に徹底的にテストとバグ取りして、
ライブラリを作る人だけは、全プラットフォームでテストを徹底的にしさえすれば、
のような危険が生じる可能性を限りなく0に近づけられる。
login:Penguin [sage] 2018/03/15(木) 16:34:03.34:LTp8xgxY

本質的にプリプロセッサの問題を解決しておらず
欠陥品を頑張ってなんとかするというのは頭の良い解決策とは
余り言わないと思いますが。
login:Penguin [sage] 2018/03/15(木) 16:37:22.78:lnWZyj3L

だったら、プリプロセッサを改良すれば良いよ。
login:Penguin [sage] 2018/03/15(木) 16:53:31.36:LTp8xgxY

具体的に改良点も挙げずに言われても無意味ですし
プリプロセッサが改良できるならあなたが最初に上げた問題点も解決するのでは?
login:Penguin [] 2018/03/15(木) 17:00:13.27:lnWZyj3L

>プリプロセッサが改良できるならあなたが最初に上げた問題点も解決するのでは?

いや、それだけだと「」の前半の問題は解決するが、後半の問題は残る。

の方法を使えば、両方の問題を解決できる。モジュール別テストは強力だから。
login:Penguin [sage] 2018/03/15(木) 17:04:19.91:lnWZyj3L

>具体的に改良点も挙げずに言われても無意味ですし

の前半の問題を根本的に解決したければ、gccの前処理(プリプロセス)部分
に独自の前処理指令を追加すれば良い。

ただ、そこまでしなくても、の方法のようにすれば、モジュール別テストの効果で
非常に安定なプログラムを作り得る。
login:Penguin [sage] 2018/03/15(木) 17:11:21.49:LTp8xgxY
共通ライブラリのビルド時にシンボル名の衝突回避をプラットフォーム毎に判別する
方法が具体的に何も提示されてないのですが。
login:Penguin [sage] 2018/03/15(木) 17:20:34.61:lnWZyj3L

一応、何度も「衝突回避」と書いてあるけど、「関数が定義されているか
どうかによる場合分け」みたいなことだよね。

その部分だけは、何らかのツールを使えばよい。最も単純な物でよければ、シェル
スクリプトでもいける。コンパイラ処理系によって違ってくるが、使うライブラリ
全てについて、ライブラリアンやリンカなどでexport symbolの一覧を出して、
関数名(シンボル名)が出力されるかを調べれば良い。それは、
librarian -list_exports xxx.lib | grep シンボル名
が1文字以上の何かを出力すれば真、何も出力しなければ偽、という
様な論理で良い。それをシェルスクリプトに書けば良い。
login:Penguin [sage] 2018/03/15(木) 17:23:35.45:lnWZyj3L
スマンが、用事があるのでしばらく抜ける。
login:Penguin [sage] 2018/03/15(木) 17:34:21.87:LTp8xgxY

判定結果をどうやってソースコードに反映させるのですか?

あなたが今提案したようなことをautoconfがやっているということは
目をつむっておきますが。
login:Penguin [sage] 2018/03/15(木) 17:36:26.04:LTp8xgxY
というか既存のビルドシステムや共通ライブラリの実装に精通してないどころか
Cでまともにプログラム書いた経験があるように見えないのですがね。
login:Penguin [sage] 2018/03/15(木) 17:37:50.07:lnWZyj3L
いや、実際に上司などからも、滅多にいない最高レベルのプログラマだと評されていたの
でそれはない。
login:Penguin [sage] 2018/03/15(木) 17:38:50.81:lnWZyj3L
さらにいえば、昔から神童だと言われてきた。
login:Penguin [] 2018/03/15(木) 20:09:28.05:ewca0ZvD
っていうか、ビル・ゲイツが今時のできるプログラマは間違いなくMacを使ってるとか
言ってたけど、俺はMac使ってないからよく知らないけど、Ubuntuなら何でもパッケージ揃ってるじゃん・・w

Macもネットとか見て大体想像つくけど、Ubuntuの方が上だろ・・?

Windowsの時の糞めんどくせえ環境変数の設定とか全然しなくていいからUbuntu大好き
login:Penguin [] 2018/03/15(木) 20:12:16.29:ewca0ZvD
Windows98の頃なんて、VC買ってやってみたけど、インテリセンスの出てくるのが糞遅くて
ワロタよw Javaも最初のAutoexec.batにパス記載するのも、順番違うとコンパイルや実行できねえし・・w

今のWindowsは良くしらんけども。
login:Penguin [sage] 2018/03/15(木) 20:49:16.98:9s2u5/Ot
ゲイツそんなこと言ったの?
login:Penguin [sage] 2018/03/15(木) 21:50:42.20:7HZLjuXm

その昔umsdosってのがあってだな…実際ext2っぽいメタデータをVFAみたいに
VOLに詰め込む実装もあったんだよ。もうメンテされてないけど。
むしろ現代では逆にf2fsなんていうものでFATを模倣するような挙動を
androidでやってる。
login:Penguin [sage] 2018/03/23(金) 00:19:12.64:uVffKzsn
1がアホなのはわかったw
昔は文字数制限がシビアでそれに引っかかった時に対処するのに四苦八苦してfindだとかいろいろ組み合わせただけだぞ
login:Penguin [] 2018/03/23(金) 14:04:49.90:UeEv/zvW
便利さと安全さは交換条件
login:Penguin [sage] 2018/04/01(日) 19:08:05.21:yxrC+deI
WebAssembly を試そうと、Ubuntu に emscription をインストールしようとしたら、
64bit OS用にしか precompiled 版がない。

どこが開発者に使いやすいものか。
login:Penguin [] 2018/04/01(日) 19:13:15.86:yxrC+deI
ソースからインストールしようとすると、clangまでソースからビルドさせようとしやがる。
500MB位DLを強要されそうになった。

もっとも、バイト数も表示されないので、推定だが。このバイト数も表示されない、というのも
LinuxのCLIパッケージ・マネージャーによくある問題点だ。Windowsだと、zipファイルのDL
サイズは速い段階で分かるが、Linuxだとスクリプトによっては最後まで分からないことが
ある。今回も「その分からないタイプの」スクリプトだった。

アメリカは高速回線でどうでも良いのかも知れんが、こっちはたまったもんじゃない。
login:Penguin [sage] 2018/04/01(日) 19:17:23.33:yxrC+deI
単に zip ファイルにまとめてしまえばいいだけなのに、何のために
apt-get や apt があるのかも分からない。

アホですか。
login:Penguin [sage] 2018/04/02(月) 05:24:14.30:06ieJ5Hu
開発者なら普通は64bitOS使ってるからな
login:Penguin [sage] 2018/04/02(月) 08:51:24.65:6FMJWj1c
そういうのがウザイ
login:Penguin [sage] 2018/04/02(月) 13:36:16.49:6FMJWj1c
しょうがないのでWin7でやったら、上手くいった。
せっかくLinuxでやろうと思ったのに。
いつもこんな感じになっちまう。残念。。。
login:Penguin [] 2018/04/02(月) 17:35:08.84:O58OwMyS
自称神童のアホですかおじさんは Linux では幸せになれないと思うよ。Linux のことなど忘れなさい。
login:Penguin [sage] 2018/04/02(月) 18:03:24.62:6FMJWj1c
ちゅうか、この調子だと数十年たってもLinuxへの移行は進まなさそう。
GoogleのChromeOSや、デスクトップ用のなんとかOSがなんとかしてくる
かも知れんが。
login:Penguin [sage] 2018/04/02(月) 18:05:51.44:6FMJWj1c

そうやって、色々な人が離れて行くんだろうよ、今までも、これからも。
というか、もはやボランティアの力だけではどうにもならん気もする、
DesktopでのLinuxは。やはりGoogleか。
login:Penguin [sage] 2018/04/02(月) 23:56:25.09:6vflFCoS
いつまで32bitなんて使ってんだ
login:Penguin [sage] 2018/04/03(火) 00:45:33.28:ulFIPWeY
Linuxまで最新OSの真似するなんてなんと生意気な。
自分たちの立ち位置が認識できてない。何一つマトモニなものが
ないというのに。
login:Penguin [sage] 2018/04/03(火) 07:45:59.33:OGhwyKh3
初心者がLinuxとストレスフリーで生きる為の6か条

1.Winをリプレース出来るなどど考えるのはやめましょう。共用しましょう。
2. 印刷はあきらめましょう。
3. Wifiの使用はあきらめましょう。
4. 音楽・動画・画像の編集/制作はあきらめましょう。
5. Nvidia製品の使用は控えましょう。
6. 教本を買いましょう。Linux界に限ってはググレカスは遠回りです。
7. Ubuntuを我慢して使い続けましょう。
login:Penguin [sage] 2018/04/03(火) 12:04:03.80:udUPvT8n
Emacsが死んでVimが生き残るとは訳のわからん世界だな
どっちも死んで環境刷新すりゃいいのに
login:Penguin [sage] 2018/04/03(火) 12:25:04.63:ulFIPWeY
どっかの教育機関が、学生に紹介して洗脳したんじゃない。
初めて触ったエディタがvimになっちゃって。Macとかも東大が洗脳してる。
酷いもんだ。
login:Penguin [] 2018/04/07(土) 14:29:26.83:qYZmw88H
いまどきコマンド形式のエディタなんて効率の悪いものにしがみつかなきゃならんのはLinuxぐらいだからなぁ。
login:Penguin [] 2018/04/07(土) 14:58:29.55:dbBuTpv8
最近はエディタはnanoが推奨されてねか?
login:Penguin [] 2018/04/07(土) 15:05:52.91:AohAt9rK
これめっちゃ使いやすいよ

Download Visual Studio Code - Mac, Linux, Windows
ttp://https://code.visualstudio.com/download

犬厨が棍棒持って恐竜追い回している間に
MSはロケット打ち上げて火星までいっちゃった感じ

勢い5万以上のスレをメールでお知らせするサービス、実施中!!
憧れボディをGETしたい!その夢、ボニックで!

2ch勢いランキング 全部 1- 最新50 Linux板ランキング

凡例:

レス番

100 (赤) → 2つ以上レスが付いている
100 (紫) → 1つ以上レスが付いている

名前

名無しさん (青) → sage のレス
名無しさん (緑) → age のレス

ID

ID:xxxxxxx (赤) → 発言が3つ以上のID
ID:xxxxxxx (青) → 発言が2つ以上のID

このページは2ch勢いランキングが作成したキャッシュです。元のページはこちら。削除についてはこちら