Microsoft、同社のC++標準ライブラリをオープンソース化 37
ストーリー by hylom
続々と 部門より
続々と 部門より
headless曰く、
Microsoftは16日、MSVCのC++標準ライブラリ(STL)のオープンソース化を発表した(C++ Team Blog、Phoronix)。
MSVCチームではオープンソース化の理由として、ユーザーが最新の変更を試すことが可能になり、レビューによるプルリクエストのレビューによる改善も期待できることを挙げている。またC++の標準化が加速する中、主要な機能をオープンソースとして受け入れることが重要だと考えているほか、逆にMSVCチームによる実装をオープンソースとして利用できるようにすることでC++コミュニティーに貢献したいとも考えているとのこと。
MSVCのSTLはGitHubでソースコードが公開されている。ライブラリ間でのコード共有を容易にするため、ライセンスにはlibc++と同じApache License v2.0 with LLVM Exceptionを選択したとのことだ。
STLって名前は紛らわしいな (スコア:1)
Standard Template Libraryのことじゃないのか
Re:STLって名前は紛らわしいな (スコア:1)
STLと言えば、そのMSVCの開発者の1人、Stephan T. Lavavej氏の頭文字でもある。そのSTLさん、最初のコミット https://github.com/microsoft/STL/commit/219514876ea86491de191ceaa88632... [github.com] をしている。
GitHubのプロフィールを見てみよう。メールアドレスもstl@~だよ。
Re: (スコア:0)
Standard Triangulated Languageでしょ
3Dプリンタの普及で一般的になってきたし
Re: (スコア:0)
C言語ならlibcがありますがC++のそういう標準ライブラリーってなんなんでしょう(無知ですみません)
以前人に訪ねた時はSTL(スタンダードテンプレートライブラリー)がそうだと言われましたが
テンプレートって後付だよね…?と疑問に思ってました
Re: (スコア:0)
gccならlibstdc++
clangならlibc++かな
確かにSTLはほとんどヘッダですけどね
Re: (スコア:0)
Visual C++のライブラリは、6.0でP. J. Plauger先生が書いたSTLが追加されたので(それ以前は入出力やコンテナも含めてMFCが担ってた)、内部的には今でもSTLとして管理されているのかも。
ソースチラ見したけど (スコア:0)
やはりハンガリアン記法ですか。まあ本家だし。
Re:ソースチラ見したけど (スコア:1)
どこをチラ見したの?
5、6個ファル見たけど、たとえば、fiopen.cppとかでも
const Char_T* filename
とかで、ハンガリアンないんだけど。
Re: (スコア:1)
./stl/src/winapisupp.cpp とか。
ハンガリアンが盛られてるソースは、win32寄りの、ずっと保守されている部分だと考えたらいいかと。
# win32対応部分で、dw,lpwszなど、もうハンガリアンで書くのに慣れちゃったつかいどころでは、ハンガリアンOK派です
Re: (スコア:0)
こことか: https://github.com/microsoft/STL/blob/master/stl/src/StlCompareStringA.cpp [github.com]
たしかに、大部分の小文字ファイルのソースはハンガリアンじゃないですね。
Re:vcredist問題がなくなるの? (スコア:2)
VC6.0までは Redistributable問題は無かった。
不親切なエラーで立ち上がらない代わりに、突然落ちたりした。
msvcrt.dllに何十もバージョンがあって、dll hellとか呼ばれたもんだよ。
https://devblogs.microsoft.com/oldnewthing/20140411-00/?p=1273 [microsoft.com]
Re:vcredist問題がなくなるの? (スコア:1)
Windows限定の話ではなく、一般論としてのコンパイラとかライブラリ、ランタイムモデルとかの基礎を勉強してみては?
Re: (スコア:0)
「そもそもVC++で作ったOSがなんでVCRedistなしで動いてたの?」ってのは阿呆丸出しだけど、VCランタイムライブラリはWindows Updateで強制インストールでもいいんじゃないかな、とは思う。
(Visual Studioの新バージョンが出るたびに)
ただ、そうすると非MS系のコンパイラメーカーが不利になる、というのはあるかもしれない。
Re: (スコア:0)
regexのような、なんだか脆弱性を含みそうなライブラリもどんどん内蔵になってますし、用のないライブラリは要らない派です
ただ、平均的なオフィスPCだと、Officeが旬のVCのCRTを入れてきますので、WUのサポート対象になると考えていいかと
Re: (スコア:0)
VCランタイム全体じゃないけど、ユニバーサルCRT(最近のVCランタイムの一部)はWindows10に標準で入ってて、それ以前のOSでもWindows Updateで入るよ。
# オフラインの古いOS相手にする場合があると結局面倒…
Re: (スコア:0)
それは大問題だねえ、このタレこみとは無関係だけど。
専用ツールで、再配布可能ランタイムライブラリを同梱したインストールメディアを作るところまでがデフォだから。
デフォのツールチェーンをぶった切ってexeファイルだけ取り出したら動かないという問題をプロジェクトのオプションを変えることなしに解決できるようになるにはかなり高度なAIが必要なんじゃないかな。
Re: (スコア:0)
全部解った上で言ってませんか、それ。仮に浦島太郎でも、そこまで用語を理解しているなら、ご自身で調べれば解ることだと思いますが。
Re: (スコア:0)
批判コメ書くのが目的な人に理は通じないかと。
Re: (スコア:0)
自分は既に全部解っているから調べない。
自分のやっていることは間違いないから上手く行かないのは相手の間違いである。
理が通じないのではなく、自分は既に完璧であるという現状認識が間違っている。
浦島太郎の愚痴なのか語りたいにわかなのか、どちらにせよコメント数は稼いでいる。
Re: (スコア:0)
Re: (スコア:0)
つまりライブラリはすべてstaticリンクしろということですね。
そうすればランタイムは不要になります。exeが馬鹿でかくなりますがw
Re: (スコア:0)
Re: (スコア:0)
リンク時間の短縮効果とか(Cはデフォルトリンケージが広いので、大規模だとsymbolが多くなってlinkが大変)。
本体でmallocしてdllでfreeしたいとか、FILE*を渡したいとか。
dllごとに責任者がいるとか。
Re: (スコア:0)
多分それはdll固有の問題じゃない。
ファイルが分かれている事にはそれぞれ事情がある。確かにまとめることもできるものもある。
スクリプトにしても、ドキュメントにしても、リソースにしても。
Re: (スコア:0)
正直今の時代に標準ライブラリ程度全部自前で持っても大したサイズじゃないと思いますけどね…
Re: (スコア:0)
こんな被害妄想を読んで面白いと感じる人がいると思って書いてるのかね
Re: (スコア:0)
人のためじゃなく自分のために書いてるから関係ないのでは?
Re: (スコア:0)
とりあえずMSを叩いておけばやんややんや場が和む時代に育ち、
とりあえず悪態をつけばブラックユーモアになると思ってる人が、
とりあえずこういう記事で何か面白い話をひるとこうなるんですよ。
Re: (スコア:0)
見るだけで金を寄越せというレベルの課題を解決するのに、C++が使われる。
ていうか、C++嫌いなだけなんじゃw
Re: (スコア:0)
叩かれてるけど、正直分かる。
古のC++/Win32 APIのWindowsプログラミングとか悪夢でしかない。
今時のC++Windows開発がどんな感じかは知らないけど。
話題の江添氏の最新版C++とかC++/.NET開発とかなら相当ましだろう。
でもこれは古い奴だよね。
Re: (スコア:0)
も、もあるよ。でも、vcprtの.defもある。
旧くて新しい。
Re: (スコア:0)
<regex>も、<future>も
Re: (スコア:0)
Windowsは、GUIが必要だからな。
まともなプログラムに、GUIは存在しない。
Re: (スコア:0)
嫉妬かw
Re: (スコア:0)
ご安心ください。MS-DOSの
ソースコードも先日公開されてます。