KOTET'S
PERSONAL
BLOG

Dlang

D言語についての記事。

#dlang DとCのインターフェース:配列 Part 1【翻訳】

#dlang #tech #translation #d_blog #d_and_c #advent_calendar

これは Interfacing D with C: Arrays Part 1 – The D Blog を 許可を得て 翻訳した D言語 Advent Calendar 2018 - Qiita 15日目の記事です。 誤訳等あれば気軽に Pull requestを投げてください。 この

#dlang シクシク素数列 D言語編

#dlang #tech #advent_calendar

シクシク素数列 Advent Calendar 2018 #Qiita https://t.co/sgiUB4S5dE 言語がかぶらないように同一ルールで実装するだけのAdC。まだ空き枠があるのでぜひ。今ならPHP、Perl、D言語、H

#dlang 君もDでx86_64向けCコンパイラを書こう

#dlang #tech #advent-calendar

これは、強い人が多すぎてもはやCコンパイラ書いた程度では面白味がない気がしてくる D言語 Advent Calendar 2018 11日目の記事です。 この記事の対象読者は過去の自

#dlang 2つの「コンパイル時」【翻訳】

#dlang #tech #translation #d_wiki #advent_calendar

これは User:Quickfur/Compile-time vs. compile-time - D Wiki を翻訳した D言語 Advent Calendar 2018 5日目の記事です。 この記事は原文と同じGNU Free Documentation Licenseで公開されます。 誤訳等あれば気軽に Pull r

#dlang DMD 2.082.0 Released【翻訳】

#dlang #tech #translation #d_blog

週末、DMD 2.082.0 がリリースされました。 このリリースには歓迎すべきツールチェインの改善を含む28の主要な変更と、 76の Bugzilla issues のクローズが含まれます。

#log 完備辞書と気分の上下

#log #dlang #tech

完備辞書とはなにか 完備辞書というものがある。 詳細な解説は他のサイト や 書籍 を参照してほしいが、簡単にいうとビット列に対する操作が高速、 かつ省メ

#dlang 標準ライブラリの to で配列を変換する

#dlang #tech

D言語にはstd.conv.toという便利な関数がある。 これは配列の型も変換できるのだが、いままでうまく使えなくて毎回.map!(to!lo

#dlang dppでCのヘッダファイルを自動変換

#dlang #tech #log

dpp というパッケージが登場し、使った人の好意的な声をよく聞くようになった。 自分はいまのところ C と連携するようなプログラムを書く予定はないが、 興

#dlang Dで書くクワイン・マクラスキー法

#dlang #tech #log

先日大学でクワイン・マクラスキー法(Quine-McCluskey algorithm)を習った。 簡単にプログラムに落とし込めそうでテンション

#dlang KotetのD言語作業環境2018年春

#dlang #tech #log

一部に需要があるみたいなので、この機会に自分とD言語をつなぐ作業環境について記録しておく。 OS Arch Linuxである。 据え置きのPCもあるがノート

#dlang D言語のビジョン2018年前半期【翻訳】

#dlang #d_wiki #tech #translation

このドキュメントではDの高レベルなビジョンについて2学期制的粒度で論じます。 これは毎年1月と7月にリリースされます。 ここで示された目標はあくまでDのリーダーシップが取り組んでいることであり、明示的に促進されるもの、もしくはD言語の成功にとって重要だと強く信じられているものです。 他の形での貢献も常に受け入れられ、このドキュメントに合わせる必要はありません。

#dlang LDC 1.8.0 Released【翻訳】

#dlang #tech #translation #d_blog

Co-maintainerのDavid NadlingerがDConf 2013のトークで話したように、 LDC、LLVMバックエンドを使ったD言語コンパイラはここ十数年活発に開発されてきました。 GCCバックエンドを使いGCCへ追加された GDCと合わせてDの2大プロダクションコンパイラだと考えられています。

#dlang DCompute:GPU上で走るD【翻訳】

#dlang #tech #translation #d_blog

これはDComputeの2つ目の記事です。 前回の記事では、DComputeの発展と小さな例を扱いました。 カーネルをビルドすることには成功しましたが、それを既存のフレームワークや自力で簡単に実行する方法はありませんでした。 しかし今はそんなことはありません。

#dlang DCompute:ネイティブDによるOpenCLやCUDAのGPGPU【翻訳】

#dlang #tech #translation #d_blog

DComputeはGPUやその他アクセラレータを使う計算集約型コードのためにOpenCLやCUDA用のネイティブカーネルをDで書くことをサポートするフレームワークでありコンパイラ拡張です。

#dlang DMD 2.079.0 Released【翻訳】

#dlang #tech #translation #d_blog

D言語財団はDプログラミング言語のリファレンスコンパイラ、DMDのバージョン2.079.0をアナウンスします。

#dlang プログラムの城を粉々にしてしまうバグを永久に克服する【翻訳】

#dlang #tech #translation #d_blog

簡単に発生し、チェックが難しく、たいていテストにも引っかからず、 デプロイされるとあなたの城を粉砕する、 そんなバグに苦労したことはありませんか? そういうバグはあなたの時間と金銭を何度も奪ってゆきます。 自分がもっと優れたプログラマならこんなことは起こらないのに、そうでしょう?

#dlang DMD 2.078.0 Has Been Released【翻訳】

#dlang #tech #translation #d_blog

DMDのメジャーリリース、2.078.0が新年にパッケージされ、提供されていました。 完全なチェンジログはdlang.orgで見ることができ、あなたのプラットフォーム向けのコンパイラがメインダウンロードページか2.078.0 リリースディレクトリからダウンロードできます。

#dlang Dの新しい名前修飾【抄訳】

#dlang #tech #translation #d_blog

D言語の短期的な設計目標の一つにCとのインターフェース能力があります。 その目標のために、Cの標準ライブラリへのアクセスを可能にし、CやC++コンパイラが使うのと同じオブジェクトファイルフォーマットとシステムリンカを使うABI互換を提供しています。

#dlang DとCのインターフェース:入門編【翻訳】

#dlang #tech #translation #d_and_c #d_blog #advent_calendar

D言語の短期的な設計目標の一つにCとのインターフェース能力があります。 その目標のために、Cの標準ライブラリへのアクセスを可能にし、CやC++コンパイラが使うのと同じオブジェクトファイルフォーマットとシステムリンカを使うABI互換を提供しています。

#dlang インストールスクリプトの使い方

#dlang #tech #advent_calendar

今日は12月7日だが、空いていたのでD言語 Advent Calendar 2017 2日目に参加する。D言語のダウンロードページにあるインストールスクリプトが、バージョン指定など思いの外多機能で便利だということに今更気がついた。 ただ--helpを日本語化しただけではあるが、使い方と、実際に使った結果をまとめておく。

#dlang マイナス時間で完了するfizzbuzz

#dlang #tech #advent_calendar

"D言語なら、この程度の処理はマイナス時間で完了する。コンパイル時にメッセージまで出力し、プログラムが開始する前に全てを終わらせられるのだ。"

#dlang DMDとDUBをソースからインストールする

#dlang #log #tech #advent_calendar

最近D言語を書いていない。というかプログラミングらしいことをしていない。さらに今使っているコンピュータにはDMDがインストールされてすらいない。

#dlang 「どれかと等しい」を簡潔に書く

#dlang #tech #log

`a == b || a == c || a == d || a == e`のような同じ値に対して何度も同値比較をするコードを簡潔に書く方法を学んだので日記を兼ねて書く。

#dlang DMD 2.077.0 Released【翻訳】

#dlang #tech #translation #d_blog

D FoundationはDMD 2.077.0を発表しました。 このDプログラミング言語のリファレンスコンパイラの最新のリリースはdlang.orgのダウンロードページから利用できます。

#dlang D言語の2つのnext_permutation

#dlang #tech

このツイートを見て「そうだったのか!知らなかった!」と言ってググったが目が節穴なのでこうして記事を書きはじめるまで目の前の検索結果が読めなかった。

#dlang オウン・ウェイ - GCを避けたアロケーション (Part2: ヒープ)【翻訳】

#dlang #tech #translation #dlang_gc_series #d_blog

この投稿はD プログラミング言語のガベージコレクションについての進行中のシリーズの一部であり、 GCの外のメモリのアロケーションに関する2番目の投稿です。 パート1ではスタックアロケーションについて論じました。 今回は非GCヒープからのメモリのアロケーティングについて見て行きます。

#log Dで巡るソートアルゴリズム その2

#log #dlang #tech

前回の続き。 今週は挿入ソート、コムソート、マージソートを書いた。 ここ一週間あまり体調が良くなかったため、気力と思考力の面であまりソートが書けなかった。

#log Dで巡るソートアルゴリズム その1

#log #dlang #tech

最近はプログラミングについてあまり大きいものを作ったり複雑なものを考えたりする時間がとれないので、 1.それなりにプログラムしてる感がある 2.達成感を得るまでの作業量が少ない という課題が欲しかった。 そこでソートの実装をすることにした。

#dlang DMD 2.076.0 Released【翻訳】

#dlang #tech #translation #d_blog

コアDチームがプログラミング言語Dのリファレンスコンパイラ、DMDのバージョン2.076.0を公開し、 ダウンロードできるようになりました。 このリリースの大きな特徴は2つあり、ジェネレーティブプログラミングとジェネリックプログラミングのためのstatic foreach機能と、 Cプロジェクトを徐々にDに切り替えていくことを簡単かつ有用にする、非常に強化されたC言語統合です。

#dlang AtCoder Beginner Contest 006 - D

#dlang #tech

最近はAtcoderの過去問をのそのそ解いている。 ABC006のD問題の公式の解説がいまいちしっくりこなかったので、 自分の言葉で解説しなおしてみる。 どちらがわかりやすいかは記事を読んだ人によると思う。

#dlang 2の平方根をDだけで1万桁求める

#dlang #tech

かなり前に円周率をたくさん求めたくなって、 せっかくだからD言語だけで書いてみようと思い、 こちらの記事を参考にbigfixedというライブラリを作った。 これはstd.bigintを使って固定小数点計算をするものである。 しかし作っているうちに飽きてしまい……

#dlang ドキュメントの過去版を見る

#dlang #tech

AtcoderのD言語が微妙に古かったりして昔のドキュメントがたまに欲しくなる。 たまに欲しくなるのに自分の検索能力が低いのかググっても全然出てこないしURLもなかなか覚えられないので、 毎回公式フォーラムの投稿をページ送りして探していた。 そこでここに書いて出てくるようにする。

#dlang 整数閉区間のRange

#dlang #tech

binary.h in Dで、 第二引数が含まれるiotaというか、そんな感じのRangeが欲しくなった。 つまり0と10が与えられたら[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]を返すようなやつである。

#dlang オウン・ウェイ - GCを避けたアロケーション (Part1: スタック)【翻訳】

#dlang #tech #translation #dlang_gc_series #d_blog

この記事は、 Go Your Own Way (Part One: The Stack) – The D Blog1 を自分用に翻訳したものを 許可を得て 公開するものである。 誤字や誤訳などを見つけたら今すぐ Pull requestだ

#dlang Dにおけるコンパイル時ソート【翻訳】

#dlang #tech #translation #d_blog

DフォーラムでのRussel Winderの挑発的な問い、「きっとDならもっとうまくやる」が私の目にとまりました。 「本当に何もする必要はありません。ただ標準ライブラリのソートを使ってください」 彼はそう言って、コードを続けました

#dlang binary.h in D

#dlang #tech

C言語にはなぜか二進数リテラルがないため、そういうことをしたい場合自分で何とかする必要がある。 D言語には普通に二進数リテラルがあるが、同じことをするコードを書いてTemplate Mixinの練習をすることにした。

#dlang importでコンパイル時にファイルを埋め込む

#dlang #tech

以前に importを使って大きな文字列を別のファイルから読み込んだが、 同じ手を使って画像や動的リンクライブラリなどのテキストでないデータも読

#dlang 駆け足の人生:GCを減らすための工夫【翻訳】

#dlang #tech #translation #dlang_gc_series #d_blog

この記事は、Life in the Fast Lane – The D Blogを自分用に翻訳したものを 許可を得て 公開するものである。 今回だいぶ翻訳が怪しいので、誤字や誤訳などを見つけたら今すぐ Pull requestだ!

#dlang automem: DのハンズフリーRAII【翻訳】

#dlang #tech #translation #d_blog

ガベージコレクトをする言語はフレーム問題に苦しむ傾向があり、Dもその例外ではありません。 マーク・アンド・スイープ・ガベージコレクタを取り入れることは簡単かつ便利な安全メモリ管理を実現しますが、 しかし、GCが一般的にパフォーマンスキラーであるという広まった認識、 たったそれだけのために多くの潜在的ユーザを遠ざけてしまいます。

#dlang なぜ、どういう時にSOAを使うべきなのか【翻訳】

#dlang #tech #translation

この記事は Why and when you should use SoA · を自分用に訳したものを 許可を得て 公開するものである。 コードのコメントも一部翻訳されている。 ところどころ訳が怪しいと

#dlang CTFEを強制するテンプレート

#dlang #tech

CTFE可能な関数を確実にCTFEさせて、CTFEできないときはエラーを吐くようなテンプレートを作った。 if (__traits(compiles, F(Args)))のところ、何か

#dlang コンパイル時fizzbuzzと謎のaliasSeqOf

#dlang #tech

D言語のfizzbuzz - kubo39’s blog を読んで、コンパイル時fizzbuzzはforeachを使えば短く書けるのでは?と思い実際に書いてみることにし

#dlang 処理後の結果を見られるdmdのスイッチ -vcg-ast

#dlang #tech

Dconf 2017で出てきたコマンドラインスイッチ-vcg-astについて書き残しておく。 これはgccでいう-Eオプションのようなもので、これはいろ

#dlang dubで自力でCの構造体を使う

#dlang #tech

前回の続き。 前回と同じようにOpenSSLを使ってstd.digest.shaを使わずにSHA256を計算する。 今回は前回と違い、データは逐

#dlang dubで自力でOpenSSLを呼び出す

#dlang #tech

前回の続き。 明示的にリンクする必要のあるライブラリであるOpenSSLを使ってstd.digest.shaを使わずにSHA256を計算する。

#dlang dubで自力でCのsqrt()を呼び出す

#dlang #tech

前回の続き。 今度はヘッダファイルを読むのにプリプロセスの必要なものを使いたい、 ということでcore.stdc.mathを使わずにD言語のアプ

#dlang dubで自力でCの標準ライブラリを呼び出す

#dlang #tech

D言語はC言語のコードを使えるとは聞いたことはあったが、実際にそれをやったことはなくていまいち理解していなかったのでいろいろ試してみる。 調べ

#dlang Dのメタプログラミングは面白くない - C++との比較【翻訳】

#dlang #tech #translation

講演者の静かな声と、ほとんどC++のコードのみを映し出すスライド(通常キーノートで期待していたものではありません)にもかかわらず、 Louis DionneのMeeting C++ 2016でのメタプログラミングについてのトーク は本当に面白いものでした。

#dlang テキストページャをPythonからDに移植する【翻訳】

#dlang #tech #translation

数週間前、私はこのような記事を書きました: tp, a simple text pager in Python 数日前、私はこのページャをPythonからD 言語として知られるDに移植しようと思いたち、そして実行しました。

#dlang dlibでマンデルブロ集合を描く

#dlang #tech

前回に続いて、マンデルブロ集合の画像をD言語で描くことができた。 pngの取り扱いはdlibを使った。

#dlang 死神を恐れないで - GCについて知る【翻訳】

#dlang #tech #translation #dlang_gc_series #d_blog

‪"Dには、こんにち使用されている多くの言語と同じように、すぐに使えるガベージコレクタがあります。‬‪GCのことを心配せずにかけて、それを最大限活用できるタイプのソフトウェアが多くあります。‬しかしGCは不利な点を持ち、ガベージコレクションが望ましくないシナリオがたしかにあります。‬"

#dlang 新・CTFEエンジンについて【翻訳】

#dlang #tech #translation #d_blog

9ヶ月前、私はNewCTFEと呼ばれる、Dコンパイラフロントエンドのコンパイル時関数実行(CTFE) 機能の再実装のプロジェクトで作業をしていました。 CTFEはDの革新的機能とされています。

#dlang Dでマンデルブロ集合を書く

#dlang #tech

なにか計算的なことをやってみたくてマンデルブロ集合を書く。 「描く」ではなく「書く」なのはコマンドライン上に文字で表現するからである。 マンデル

#dlang In式のオーバーロード2種

#dlang #tech

普通にドキュメントを読めば書いてあることなんだけどなぜか調べるのに手間取ったので、専用の記事を書く。 やりたいこと1つに対応して1つの記事があ

#dlang Lazyな新しいimportについての議論

#dlang #tech

最近は英語のD言語情報を読めるようになってきて楽しい。 特にGoogle翻訳の改善により、自分の貧弱な英語力でも大半はスラスラとストレスのない

#dlang 名前を言ってはいけないあの型 - Voldemort Types

#dlang #tech

こちら のサイトでVoldemort Typesとかいう衝撃的な名前のものを見たのでしっかり読み込んでみた。 前提 まずインデックスの2乗が得られる

#dlang コンパイル時にファイルから文字列を読み込む

#dlang #tech

長い文字列を埋め込むために いろいろ迷走した が、コンパイル時にファイルから文字列を読み込む方法があることに気づいたので詳しく調べる。 Import Expression という

#dlang 文字列の長さを取得するときはlengthを使ってはいけない

#dlang #qiita #tech

自分の進捗表示用パッケージprogressにPRが来た。どうやら文字列の長さを得るときはlengthではいけない時があるそうだ。

#dlang 〜D言語くんの分裂に関する更なる考察〜(代理投稿)

#dlang #qiita #dlangman #advent_calendar

友人が期末考査2日目のテスト後のスタバにて公開前の新説を出して危うくキャラメルマキアートを噴き出しそうになった事から全ては始まる

#dlang 待ち時間をD言語くんで彩る - 進捗表示ライブラリを作った

#dlang #qiita #tech #dlangman #advent_calendar

かのマハトマ・ガンジーも もし、私にD言語くんがなければ、これほど長く苦しい戦いには耐えられなかったでしょう。 と言ったように、生活の中でD言語くんを忘れないようにすることはとても大切です。退屈な待ち時間でもそこにD言語くんがいれば幸せになれるのではないでしょうか。 そこでPythonのprogressを参考にライブラリprogressを作りました。dubに登録してあります。

#dlang 改行とかのある文字列をエスケープしないで書きたい

#dlang #qiita #tech #dlangman

AAなどの文字列はエスケープすると超絶見難くなるのでそのまま書きたくなった。

#dlang cowsay -f dman

#dlang #qiita #tech #dlangman #advent_calendar

人間生きていればD言語くんを降臨させないといけない場面に何度も遭遇する。そこで`cowsay -f dman`でいつでもD言語くんを崇めることができるようにする。

#dlang ローカルのdubプロジェクトに依存するdubプロジェクト

#dlang #qiita #tech

自作のライブラリを別のdubプロジェクトにしたかったので調べたけどすぐには見つからなかったので書く。わかれば簡単なことだった。タイトルはこれで適切なんだろうか?

#dlang D言語くんの繁殖についての新説

#dlang #qiita #dlangman #advent_calendar

‪2015年に繁殖期のD言語くんが発見され、D言語くんが単為生殖で増殖するようすが明らかになった。しかしこの繁殖方法は・並列で増えることができない・繁殖期のD言語くんが増えない等の問題点を抱えており、同時にD言語くんの絶滅が危惧された。だが、最近現地の住民の証言から……‬

#dlang JSONValueにJSONValueを入れる

#dlang #qiita #tech

語彙が足りなくて適切なタイトルが出てこない。とにかくそういう事をするときは、JSONValue[string]という状態でないといけないようだ。

#dlang D言語でBasic認証

#dlang #qiita #tech

std.net.curlを使えば簡単にできた。探すのにすこし時間がかかったのでサンプル的なものを書く。

#dlang Dでつくるbrainfu*kのインタプリタ

#dlang #qiita #tech

brainf*ckの処理系はすでにいろんな人が作っているけど勉強になりそうだったので自分で書いてみた。

#dlang OpenGL/GLFWはじめての人がD言語でウィンドウを表示するまで

#dlang #qiita #tech

DでOpenGLとかそういうのが使いたくなったので練習をした。Dubを使って環境構築した記事がなかなか見つからなかったのでまとめ記事を書く。

#dlang 行列と高速化の練習をした

#dlang #qiita #tech

行列に興味がある。しかし数Cは廃止され、行列の勉強はしないとのことなので少しづつ自主学習。

#dlang ズンドコキヨシ with D

#dlang #qiita #tech

元ネタを読んで一番最初に思いついたやり方です。