タグ

Linuxとcppに関するraimon49のブックマーク (11)

  • 最近またLinux用の日本語IMEを作っている - tokuhirom's blog

    最近またLinux用の日語IMEを作っている 件は mozc の ut がどうこうとかは関係なくて、ふと linux desktop を使おうと昨年末に思いまして、昨年末からちまちまやってます https://github.com/tokuhirom/akaza かな漢字変換って作るの難しいのかなぁ、と思ったので作ってみている。これはまさに Just for Fun でやっている。 わりと普通に自分で常用してる分には困らないかな、というところまできている。 以下は、思ってることの垂れ流しという感じで、まとまってないですが。 「日本語入力を支える技術」というが 2018年に出ていて、このの内容を読めば、だいたいエンジン部分は実装できる。Amazon のレビューではこのよんでも実装できないって書いてあるけど、変換エンジン自体は実装できます。 UI が辛い。けど。 エンジンは、ビタビア

  • 電源を切っても消えないメモリとの付き合い方

    メモリのように書けて永続化される次世代ストレージデバイスNVDIMMの扱い方を解説します これは2019年10月19日に行われる予定だった カーネル/VM探検隊@北陸 5回目(台風の影響で中止) での発表資料です サンプルコード: https://github.com/Fadis/kernelvm_20191019_samples

    電源を切っても消えないメモリとの付き合い方
    raimon49
    raimon49 2019/10/21
    もうR&Dから具合的な実装のフェーズに来ているんだなぁ。
  • 4. カーネルデバッガ、C++ライブラリの移植、ネットワークプロトコルと大規模な実験

    るくすくんの作ったカーネルデバッガやC++ライブラリの移植、C++などの話をしました。出演者: るくす (@RKX1209)、Rui Ueyama (@rui314) https://turingcomplete.fm/4 ハッシュタグは#tcfmです。 TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。 コンパイラやエミュレータを作るためのオススメのなどはありますか? (0:00) るくすくんが未踏で作ったカーネルデバッガ (8:46) C++標準ライブラリを新しい環境に移植する話 (39:35) SPDYやQUIC (58:14) 低レイヤーの歩き方 ビザンチン将軍問題 Gauche Scheme カーネルソフトウェア開発支援ツールの提案 ジョージ・ホッツ comma.

    4. カーネルデバッガ、C++ライブラリの移植、ネットワークプロトコルと大規模な実験
  • コンパイラのリミッタが外れつつある今、null安全は必須なのかもしれない - Qiita

    三行で頼む コンパイラが斜め上の最適化をするようになったからnull安全ないと怖いよね 一行で終わっちゃった。 文 最近、ツイッターを見ていると、プログラマの間でnull安全という言葉がバズっていますね。私も次のようなエントリを楽しく眺めていた訳です: null安全でない言語は、もはやレガシー言語だ null安全はいいぞ。だって、型安全はいいぞ。 null安全を誤解している人達へのメッセージ さてそんな中、少しだけ私の心に留まったエントリがこれです: null安全な言語は、当にゼロコストか これを読んで、私がまず直感的に思ったのは、むしろもはやnull安全のない言語はダメかもしれないということでした。こう書くと、このエントリの内容を否定してると誤解されるかもしれませんが、全くそんなことはありません。このエントリの筆者さんもnull安全の有用性を否定しているわけではないですし、私も古いタ

    コンパイラのリミッタが外れつつある今、null安全は必須なのかもしれない - Qiita
  • C++11のスレッド、アフィニティ、ハイパースレッディング | POSTD

    背景と導入 何十年もの間、CやC++の標準規格は、マルチスレッディングや並行処理を「その標準の範囲を超えたもの」として扱ってきました。標準規格の目的である”抽象機械”の力が及ばない、”対象依存”という影の世界においてです。メーリングリストやニュースグループの質問には並行処理に関するものが山ほど寄せられましたが、それらにすぐに突き返された回答は「C++はスレッドには関知しません」という何とも冷淡なものでした。この件によって当時のことを思い出す人々は、今後も絶えないでしょう。 しかしC++11の登場で、そんな状況に終止符が打たれたのです。C++標準化委員会は、時代の流れに乗らないと、この先C言語が取り残されてしまうと悟ったのでしょう。彼らはスレッドや同期メカニズム、アトミック操作、メモリモデルなどの存在に、ようやく気付いたわけです。そして標準規格として、C++コンパイラやライブラリのベンダーに

    C++11のスレッド、アフィニティ、ハイパースレッディング | POSTD
  • Linux版Google ChromeのビルドにClangが使われる理由 | スラド デベロッパー

    LinuxGoogle ChromeのビルドにはGCCではなくLLVMベースのコンパイラであるClangが使われている。昨年10月にリリースされたChrome 38からGCC 4.6に代わりClangが採用されるようになったのだが、この理由についてPhoronixが記事にしている。 これによると、Clang採用の理由はすでに多くの開発者がLinux上でClangを使っていたということと、C++のより新しい機能を利用するためらしい。Clangは診断出力が優れており、スピードも速く、さらにChromiumChromeの開発版)に特化したClang向けプラグインも作られていたため、開発者のClangへの移行が進んでいたそうだ。GCCのより新しいバージョンではC++の新機能のサポートが進んでいるものの、GCCをアップグレードするよりもClangに移行したほうが容易だと判断したという。 実際にC

  • 本の虫: 記録からみるLinus TorvalsのC++観

    On Wed, 5 Sep 2007, Dmitry Kakurin wrote: > > Gitのソースコードを始めてみた時、2つのことが頭にひっかかった。 > 1. C++じゃなくて純粋なC。理由は不明。移植性とか言わないでよ。 > クソだ。 クソまみれなのはオメーの方だ。 C++は悲惨な言語だ。しかも、少なからぬ数のプログラマーが使っていて、完全無欠のどうしようもないクソを生成するのがめちゃめちゃ簡単になっているという点で、よけいに悲惨だ。マジで、Cを選択する理由が「何もなかった」としてもだ、C++プログラマー避けになるというだけで、Cを使う大義名分になる。 つまりだ:Cの選択は唯一のまともな選択なんだよ。Miles Baderがふざけて、「いやがらせによる追い返し目的」なんていってたが、実際のところ正しい。俺の出した結論では、プロジェクトにCよりC++を使いたがるプログラマーは、む

  • 「UNIXをC++で分散OSに書き直せ」、幻に消えたBill Joyの野望とは - ITジャーナリスト星暁雄の"情報論"ノート

    UNIXの歴史にはある大きな転換点があり、そこには「もう一つの未来」の可能性が開けていました。この転換期に起こった出来事は「UNIX戦争」として知られていますが、その背景に「UNIXをC++で分散OSに書き直す」という野心的な計画があったことは、今ではほとんど語られることはありません。 私は、この一連の出来事の時期に、『日経エレクトロニクス』の記者としてUNIXの動向を追っていました。当時の出来事の概要を、取材者の視点から書き記しておきたいと思います。多くの読者にとって初耳の情報も含まれていると思います。 一連の出来事の発端は1987年に発表された、Sun、AT&T、Microsoftによる統合UNIXの発表です。この発表の前夜がどういう時代だったか、という話がまず必要でしょう。 統合前夜 1980年代後半は、コンピュータの歴史でも重要な時期でした。この時期、32ビット・マイクロプロセッサ

    「UNIXをC++で分散OSに書き直せ」、幻に消えたBill Joyの野望とは - ITジャーナリスト星暁雄の"情報論"ノート
  • perfの使いかた

    概要 Linuxのパフォーマンス解析ツールであるperfの使いかたの紹介 背景 個人的にperfよくできてると思うので紹介したいというのと、 パフォーマンスカウンタの読み方ってあんまり知られてないみたいなので、 それの解説を書きたい。 構成 perf について説明したあと、パフォーマンスカウンタの読みかた、見かた、を説明する。 perfとは何か Linuxに付いてくるプロファイラ。 man perf によると、 NAME ---- perf - Performance analysis tools for Linux と、書いてある。名前がひどいのでなんとかしてほしい。 perf の特徴 個人的には、手軽に使えるのが素晴らしいと思う。 2.6.31以降カーネルに標準で付いてる。(Ubuntuだとlinux-tools-common(TODO:あとで確認)で入るはず) 特殊な設定が必要無く、

  • モダンなC, C++の開発環境の構築方法 - 考える人、コードを書く人

    まだC, C++がないようなので書いてみた。主にLinux(DebianとかUbuntu)での環境構築について。 コンパイラ まずはapt-getでコンパイラをインストールする。UbuntuやDebianなら以下のコマンドでgccやg++および標準ライブラリ等がインストールされる。 $ sudo apt-get install build-essential デバッグツール デバッガおよびデバッグツールは少なくとも以下の三つは入れる。(あとltraceも欲しいかな?) GDB 言わずと知れたGNUのデバッガ Valgrind メモリリークや不正メモリアクセスの検出 strace システムコールのトレース $ sudo apt-get install gdb valgrind strace ビルドツール C, C++のビルドツールといえばまずmakeが浮かぶけど、最近ではSConsやCMak

    モダンなC, C++の開発環境の構築方法 - 考える人、コードを書く人
  • Linuxと64bit環境 VA Linux Systems Japan(ILP32, LLP64, LP64, ILP64)

    64bitプロセサのためのプログラムを、C/C++で書く際に注意すべき点の1つが、整数データモデルの違いです。 32bit環境ではポインタは32bitであり、int型と同じ幅でした。64bitプロセサのプログラミング環境では、ポインタの幅が64bitとなります。Cの言語仕様(ISO/IEC 9899:1999 Programing Languages - C[5]、C99)においては、intは「実行環境のアーキテクチャの暗示する自然な大きさ」となっており、64bitプロセサにおいては64bitとなりそうではありますが、そうではない実装が主流となっています。主な整数データモデルを【表1.2】に示します。

    raimon49
    raimon49 2009/12/18
    gcc -m64→LP64, -m32→ILP32
  • 1