wiki:Dev

Version 45 (modified by mitty, 11 years ago) (diff)

--

  • sockets: AF_PACKET versus PF_PACKET

    Yes. AF_foo means address family foo, and PF_foo means protocol family foo. In Linux, they are always been the same values, I believe. Traditionally, the PF_foo constants were used for socket(), but AF_foo in the struct sockaddr structure.

    Thus, today, there really should be no difference between AF_foo and PF_foo.

  • PF_PACKETの仕組み - めもめも

    Socketをオープンする際のお作法(呪文?)は次のとおりで、通常は、第一引数に「PF_INET」(もしくはAF_INET)を指定します。

    sock = socket(PF_INET, SOCK_STREAM, htons(ETH_P_IP));
    

    ここに「PF_PACKET」を指定することで、受信直後の生パケットをユーザ空間のアプリケーションで受け取ることができるようになります。これは、パケットのコピーを受け取っているだけなので、このパケットを受け取るべき本来のアプリケーションにもちゃんと同じパケットは届きます。

  • TCP socketではwriteの後すぐにcloseしてはいけない - Togetter

    TCP socketではwriteの後すぐにcloseしてはいけない。 相手側に全てのデータが届いてからcloseする必要がある。 shutdown で書き込み側だけハーフクローズするとよい。 相手側がcloseしてから、こちらをcloseする。相手側がcloseしたことは、readを呼んでブロックさせておくと、読み込みバイト数==0 つまりEOFになったことでわかる。

C/C++

build 32bit object on x64

Malbolge

Grass

Python

OCaml

  • Module Pervasives OCaml

    The initially opened module.

    This module provides the basic operations over the built-in types (numbers, booleans, strings, exceptions, references, lists, arrays, input-output channels, ...).

    This module is automatically opened at the beginning of each compilation. All components of this module can therefore be referred by their short name, without prefixing them by Pervasives.

  • OCaml プログラミング入門 (インストール)

    ledit

    OCaml の対話的環境を提供するコマンド: ocaml は ライセンス上の問題から、 C-a で行頭に戻ったりする事や、ヒストリ機能、 などと言った GNU の readline ライブラリを使った便利な機能がありません。 emacs から対話的環境を使うのが一つには考えられます が、どうしてもターミナルから実行したい人は、 ledit と言うコマンドを使えば大丈夫です。 ledit ocaml と起動するだけです。

Makefile

Fail Safe C

  • Ubuntu 12.04 LTS x86_64
  • mitty@precise:~$ sudo aptitude install ocaml-nox ocaml-native-compilers ocaml-findlib libextlib-ocaml-dev camlp4 libgc-dev libgdbm-dev
    The following NEW packages will be installed:
      camlp4 ledit{a} libextlib-ocaml{a} libextlib-ocaml-dev
      libfindlib-ocaml{a} libfindlib-ocaml-dev{a} libgc-dev libgc1c2{a}
      libgdbm-dev ocaml-base-nox{a} ocaml-findlib ocaml-interp{a}
      ocaml-native-compilers ocaml-nox
    0 packages upgraded, 14 newly installed, 0 to remove and 0 not upgraded.
    Need to get 31.6 MB of archives. After unpacking 106 MB will be used.
    
  • mitty@precise:~$ svn co https://svn.rcis.jp/FailSafeC/pub/trunk FailSafeC-trunk
    Checked out revision 2255.
    

fix version getter script

  • mitty@precise:~/FailSafeC-trunk$ vim tools/disthelpers/svn-get-revision.pl
    • tools/disthelpers/svn-get-revision.pl

       
      99while (<F>) { 
      1010# 123456 1234567890 12345678 123456789012  
      1111# A  +            -     1723 yutaka       local-packaging/debian-dir 
      12     /(^[AMDR\+ \?]{6}) ([ \-\d]{10}) ([ \-\d\?]{8}) .{12} (..*)$/ or die "cannot parse svn output: \"$_\"\n "; 
       12    /(^[AMDR\+ \?]{7}) ([ \-\d]{10}) ([ \-\d\?]{8}) .{12} (..*)$/ or die "cannot parse svn output: \"$_\"\n "; 
      1313    $fname = $4; 
      1414    $frev = $3 + 0; 
      1515#    print $_; 
  • mitty@precise:~/FailSafeC-trunk$ ./tools/disthelpers/svn-get-revision.pl
    2255+20120602T162127Z
    
  • mitty@precise:~/FailSafeC-trunk$ ./configure
  • mitty@precise:~/FailSafeC-trunk$ make
  • mitty@precise:~/FailSafeC-trunk$ sudo make install