Skip to content

Instantly share code, notes, and snippets.

@mzp
Last active August 29, 2015 14:13
Show Gist options
  • Save mzp/ebbd01613736beda61bd to your computer and use it in GitHub Desktop.
Save mzp/ebbd01613736beda61bd to your computer and use it in GitHub Desktop.
SML# contrib.md

目標

see: https://github.com/bleis-tift/SmlSharpContrib

SML#のライブラリが足りないのでなんとかしたい。

方針(検討中)

  • こったライブラリにはしない
  • 適当なCライブラリの薄いラッパにする
  • メソッドはすべて移植する(よっぽど不要なやつは省く?)

移植候補

Optionalなシグネチャ・ストラクチャ

http://sml-family.org/Basis/overview.html

  • ARRAY2: 多相な二次元配列
    • Array2
  • BIT_FLAGS: ビットフラグ
  • GENERIC_SOCK: ソケット(INET_SOCKETとUNIX_SOCKETの以外のを作る)
    • GenericSock
  • INET_SOCK: インターネットソケット
    • INetSock
  • INT_INF:整数のインタフェース
    • IntInf
  • MONO_ARRAY2: (多相でない)二次元配列
    • Word8Arary2
    • CharArray2
    • WideCharArray2
    • BoolArray2
    • IntArray2
    • WordArray2
    • RealArray2
    • LargeIntArray2
    • LargeRealArray2
    • Int Array2
    • WordArray2
    • RealARray2
  • NET_HOST_DB: DNS等の名前解決
    • NetHostDB
  • NET_PROT_DB: /etc/protocolsなどによる名前からサービス名の解決
    • NetProtDB
  • NET_SERV_DB: /etc/servicesなどによるポートからサービス名の解決
    • NetServDB
  • PACK_REAL: 浮動小数のシリアライズ
    • PackRealBig: big endian用
    • PackRealLittle: little endian用
    • PackRealBig
    • PackRealLittle
  • PACK_WORD: N-bitのワードのシリアライズ
    • PackWordBig: big endian用
    • PackWordLittle: little endian用
  • POSIX: POSIXのシステムコール
    • Posix
  • POSIX_ERROR: POSIXのエラーの操作
    • Posix.Error
  • POSIX_FILE_SYS: POSIXによるファイル操作
    • Posix.FileSys
  • POSIX_IO: POSIXによるIO
    • Posix.IO
  • POSIX_PROC_ENV: POSIXによるプロセス環境(PID等)への操作
    • Posix.ProcEnv
  • POSIX_PROCESS: POSIXによるプロセス操作
    • Posix.Process
  • POSIX_SIGNAL: POSIXによるシグナル操作
    • Posix.Signal
  • POSIX_SYS_DB: POSIによる/etc/password等の操作
    • Posix.SysDB
  • POSIX_TTY: POSIXによるTTY操作
    • Posix.TTY
  • SOCKET: SOCKET操作
    • Socket
  • UNIX: Unixのプロセス・パイプ操作
    • Unix
  • UNIX_SOCK: UnixXソケット
    • UnixSock
  • WINDOWS: Windowsの各種操作
    • Windows

ほしい

  • JSONパーサ
  • HTTP/HTTPSクライアント
  • コマンドラインパーサ
  • ファイルパスユーティリティ(~を展開したりするやつ)
  • PCRE
  • logger
  • Set
  • Map(ハッシュテーブル or 二分木)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment