gksato
すみません、tf-randomも欲しいのを完全に忘れてました。PullReqを投げようかと思います。ただ、このままだとmod_poppoさんのと(アルファベット順を考えると)conflictを起こしそうなので、……GitHubの使い方に慣れていません。マージ待ちをするのが良いのでしょうか?
tf-random
も追記しました。ghcup
の手順が若干変わるのではないかという・・・。bytestring-to-vector
( ByteString
とStorable Vector
の間の変換をcopylessに行う)ってどう思います? このパッケージ自体はnaiveに考えると文字列問題系のときに気軽に使えそうでちょっと欲しいな,とも思うんですが,申請しようかは迷っております. vector-bytestring
( ByteString
reimplemented as Storable Vector
of Word8
…しかし性能は追いついていないので代替にはならない)とかとモジュール名被りを起こしていたり,そのあとStream Fusionで連鎖的に変換することを前提にするなら unfoldrN n ByteString.uncons
でもいいような気もしたり,で……vector-th-unbox
(それに伴い template-haskell
) , mutable-containers
, hashable
(`psqueues` の関係で) くらいあった方が良さそうだと気がついたので、明日か明後日あたりプルリク投げますvector-th-unbox
は unboxing-vector
があればいらなさそう、というのはありますが。bytestring
, deepseq
, transformers
, containers
辺りのインストール済みパッケージが含まれるのは…まあ含まれても問題ないんだからいいんでしょうか? ghcupの既定ghcバージョンが上がった時にそこらへんでエラーが起きてくれそうでもありますし。template-haskell
はGHC付属パッケージに含まれるため、要望パッケージに追加しないつもりでいたので。追加した方がいいんですかね?bytestring-to-vector
、DL数の少なさから、今後メンテされるか不安が。どうしても添え字アクセスがしたければ unsafeUseAsCString
と peekElemOff
で似たような事が可能ですしindex
関数ありましたね。 Vector
にしかないアルゴリズムをどうしても使いたい、みたいなユースケースでしょうかByteString
Vector
MVector
MVector
Vector
Vector
bytestring-to-vector
も(容易に削除可能な形で)含めてプルリク投げたので,みなさまコメントをお願いしますindex
とかで処理するなら、実のところ Vector
に変換する必要は感じてなくて、GCでTLEが嫌なので入力領域を可変配列でそのまま書き換えたい、という欲求がある場合を想定してるんですよね。vector-bytestring とモジュール名被りを起こしている
ByteString
って,入力のタイミング以外ではほとんど使いません.だから,メリットって,使うと実行時間とメモリ使用量をO(N) [N:入力サイズ] 減少できる(精神衛生上良い)ぐらいしかないんですよね.Constant mutipleでTLE/MLEになるような問題で微妙に時間計算量を稼ぐとか,それくらいなんですよねえ.名前かぶりは最悪PackageImportsを使うと言うことでいいんじゃないっすかね。
端から見るにそこまでするメリットがあるの、という気もしますが。
vector-bytestring
についてはそこまで気にしないでもいいという意見を持っています.というのも,正直, vector-bytestring
には bytestring-to-vector
に比べても全く使い道が見当たらないんですよね.bytestring-to-vector
は ByteString
と Storable Vector
の代数的データ型としての違いを単純に吸収するだけなので,データ型としての定義が変更されない限りメンテナンスの必要がありません.しかし,bytestring
そのものの速度を得るには bytestring
と同レベルの開発リソースが注がれる必要がありそうですが,メンテナンスは活発ではなさそうです.vector-bytestring
が導入されて bytestring-to-vector
が除外されるレベルで vector-bytestring
がポピュラーになるなんて未来もないではない(本当に?)し,最悪遊びがしたければdata型の書き換えを手でやっても良いんですよね.VU.unfoldrN n BS.uncons
と書くたびに生じる「無駄なコピーをしているときの強迫的な罪悪感」みたいなもの、から離れて競技に対する集中力を取り戻したい、みたいな動機が近い気がするので、正直、時間が経てば経つほどこのパッケージを強く推すのには躊躇が生まれてきてしまっています。bytestring-to-vector
のpull requestをcloseしようと思っているのですが,大丈夫ですよね?