気付いたら朝だったという。
ACM に入っていなかったので入ってみた。SIGPLAN の Print Membership に入る方法がわからんかった。論文 PDF だけだったら、大学で契約しているサービスで見れるからなぁ。
第40回情報科学若手の会 の締切がもうすぐです。興味ある方はぜひご参加ください。
Thunderbird がよく固まる。ssh ごしに imap 使ってるからかなぁ。
恥ずかしながら、SECDマシンという言葉を初めて知る。
closure を陽に扱う命令がないのが、YARV の特徴といえば特徴だろうか。
あ、SWoPP 懇親会にもうしこむのを忘れていた。 まだ間に合うのかなあ。
「締め切りました」っと書いてあった。残念。おとなしく仕事でもしていろ、ってことかな。
やっと飛行機をとった。
ご搭乗日・便名 : 2007/07/31・JAL1113 出発地/到着地 : 羽田 14:35 → 旭川 16:10 ご搭乗日・便名 : 2007/08/03・JAL1116 出発地/到着地 : 旭川 20:20 → 羽田 22:00
もう一便早く帰りたかったかも。でも、OS研はちゃんと聞いていかないとまずいかなぁ。
ホテルも、ネットでは全然見つからなくて焦った。
なんというか、RubyKaigi 2007 で燃え尽き症候群に。なるというほど、仕事してないんだけど。
なんというか、最近いろいろと気分が下向きにすごい修正がかかっていて、何もできなかった。体調もあわせて下方修正が。こういうときに、薬とかを服用するといいんだろうか。とにかく、いろいろと迷惑をかけてしまってすみません。
QuickML はサーバを動かさないといけないので大仰かな、と思い、.forward / .qmail で動かすことが出来ないか考える。
が、ただ一点 recipient を正確に知ることができないという問題点が。
virtual domain で、@ml.example.com へ来たメールを mlsystem@mail.example.com へ転送するとする。ありがち。で、~mlsystem/.forward に、m2n.rb を動かしてやればいいや、と思ってたんだけど、ml.example.com の情報が落ちてるので使えない。
転送しなければ、環境変数 RECIPIENT で見ることが出来るんだけど。環境変数 RECIPIENT を転送元のアドレスにしたまま、ローカル配送する方法はないんだろうか。
ここだけなんとかなればいいんだけどなぁ。こういうことが出来ないから、alias を使ったりするんだろうなぁ。なんとかならないものか。
postfix なら virtual に /(.+)@ml.example.com/ mlsystem+$1@mail.example.com と指定してあげれば、$1 の部分に ML 名が入ってくれるので情報が伝達できる。でも、qmail じゃ無理そうだしなぁ。しょうがないと思ってあきらめるしかないのか。
そういえば http://lists.samba.org/archive/samba/2007-March/130102.html を見て、SMB over SSH が使えるようになった。が、他の共有サーバにはつながらないのがな。
rhg
すみません。体調が悪いので休みました。
利便性を多少犠牲にすれば、.forwardでもQuickMLは実装できますよ。ただ、ちょっとめんどくさい。あとエラーメールによる自動削除が使えないかな。で、qmailだと無理はそれはそうでしょう。いまどき何故qmailを使うのか…。
postfix なら virtual に /(.+)@ml.example.com/ mlsystem+$1@mail.example.com と指 定してあげれば、$1 の部分に ML 名が入ってくれるので情報が伝達できる。でも、qmail じゃ無理そうだしなぁ。
いやいやいやw
フツーにvirtualdomainsに
ml.example.com:mlsystem
と書けば、user@ml.example.comあてのメールが mlsystem-user@mail.example.comに転送されますがな(See qmail-send(8))。 それを ~mlsystem/.qmail-default で受け取ればいいんでは?
.qmail-defaultから起動されるコマンドには、環境変数$EXTにuserが入って渡される(qmail-command(8))。
ひょっとして mail.example.com が別ホストなら、~mlsystem/.qmail-defaultで
| forward mlsystem-$EXT@mail.example.com
でOK。
また、MLごとにいろんなホスト名を受け取りたいなら virtualdomains に
.ml.example.com:mlsystem
としておけばよい。mlの前のドメイン(たとえばfoo.ml.example.comのfoo) は環境変数$HOST4で取り出せる。
なんかもう色々駄目なので、しょうがないので m2n.rb を更新した。
Maildir base で何かするなら、色々とやりやすいように作ったツール。駄目駄目な前作を、だいぶ作り直したつもり。
まぁ、誰も使ってないだろうけど、デフォルトのディレクトリとして ~/.m2n を使って色々やるようになった。
ML のサンプルでも作ってみようかなぁ。
spam filter をどうやって挟むか思案。とりあえず spam assassin でも使うか。
しかし、普通の人は procmail 使うものなのかな。俺には出来ない。
本郷に行くと本を買ってしまうから困る。
帰りに書泉で
をかった。数学少女を数ページ読んだけど、kneg?
rm -rf ~ の話にちょっと反響があったのを知った。悪いんだけど、実はまだ本運用してないサーバだったから、あんまり痛くなかったんだよね。気づくの遅れてたら、デバッグ中のプログラムが飛んでた可能性はあったんだが。
atdot.net が飛んだら、と思うとぞっとする。
手違いで、~ というディレクトリを作ってしまったので、つい rm -rf ~ とやってしまった orz
ダメだもう駄目だ。
ドンマイ
こんなのを作ってみた。
require 'pp' def clean str str.gsub(/\/\*.*?\*\//m, ' ').gsub(/"(\\"|[^"])*"/m, ' ') end def get_words str words = Hash.new(0) str.scan(/\w+/){|w| if /\A\d/ !~ w words[w] += 1 end } words end srcdir = ARGV.shift || './' headers = '' sources = '' # headers Dir.glob(File.join(srcdir, 'include/ruby/*.h')){|hf| headers << clean(File.read(hf)) } # sources Dir.glob(File.join(srcdir, '{win32/,missing/,}*.{c,ci,def,h,y}')){|sf| sources << clean(File.read(sf)) } header_words = get_words headers source_words = get_words sources puts puts "Unused Header Words: " puts unused_header_words = header_words.find_all{|w,| source_words[w] == 0 }.sort.map{|k,| " #{k}"} puts puts "Once words: " puts source_words.find_all{|w, n| n == 1 }.sort.map{|k,| " #{k}"}
trunk にかけてみた結果。
Unused Header Words: ATOMIC_SET ATOMIC_TEST CHR2FIX CharNextA DEPRECATED DUPSETUP Definitions EPROCLIM EXPORT EXTERN EXTLIB Exception FD_SETSIZE FL_ABLE FL_RESERVED FL_REVERSE FL_USER6 FL_USHIFT HAVE_CRYPT HAVE_DUP2 HAVE_ERF HAVE_FLOCK HAVE_HYPOT HAVE_INTRINSICS_H HAVE_ISINF HAVE_MEMMOVE HAVE_RB_DEFINE_ALLOC_FUNC HAVE_RB_IO_T HAVE_STDIO_EXT_H HAVE_STRCASECMP HAVE_STRCHR HAVE_STRERROR HAVE_STRFTIME HAVE_STRLCAT HAVE_STRLCPY HAVE_STRNCASECMP HAVE_STRSTR HAVE_STRTOUL Handling IMMEDIATE_MASK IMMEDIATE_P ISXDIGIT InterlockedDecrement InterlockedExchange InterlockedIncrement LL2NUM LONG LONG_LONG_MAX LONG_LONG_MIN Microsoft NEW_ARGS NEW_ARGSCAT NEW_ARGSPUSH NEW_BACK_REF NEW_BLOCK_ARG NEW_CONST NEW_CVASGN NEW_CVDECL NEW_DSTR NEW_DSYM NEW_DXSTR NEW_FALSE NEW_IASGN NEW_IASGN2 NEW_LASGN NEW_MATCH NEW_MATCH2 NEW_MATCH3 NEW_NTH_REF NEW_OPT_N NEW_OP_ASGN22 NEW_PREEXE NEW_SELF NEW_TRUE NEW_VCALL NODE_LAST NODE_LMASK NODE_LSHIFT NODE_TYPEMASK NODE_TYPESHIFT NORETURN_STYLE_NEW ONIGENC_IS_CODE_ALNUM ONIGENC_IS_CODE_ALPHA ONIGENC_IS_CODE_BLANK ONIGENC_IS_CODE_CNTRL ONIGENC_IS_CODE_GRAPH ONIGENC_IS_CODE_LOWER ONIGENC_IS_CODE_PUNCT ONIGENC_MAX_COMP_CASE_FOLD_CODE_LEN ONIGENC_NAME ONIGURUMA ONIGURUMA_H ONIGURUMA_REGEX_H ONIGURUMA_VERSION_MAJOR ONIGURUMA_VERSION_MINOR ONIGURUMA_VERSION_TEENY ONIG_ENCODING_BIG5 ONIG_ENCODING_CP1251 ONIG_ENCODING_EUC_CN ONIG_ENCODING_EUC_KR ONIG_ENCODING_EUC_TW ONIG_ENCODING_GB18030 ONIG_ENCODING_ISO_8859_1 ONIG_ENCODING_ISO_8859_10 ONIG_ENCODING_ISO_8859_11 ONIG_ENCODING_ISO_8859_13 ONIG_ENCODING_ISO_8859_14 ONIG_ENCODING_ISO_8859_15 ONIG_ENCODING_ISO_8859_16 ONIG_ENCODING_ISO_8859_2 ONIG_ENCODING_ISO_8859_3 ONIG_ENCODING_ISO_8859_4 ONIG_ENCODING_ISO_8859_5 ONIG_ENCODING_ISO_8859_6 ONIG_ENCODING_ISO_8859_7 ONIG_ENCODING_ISO_8859_8 ONIG_ENCODING_ISO_8859_9 ONIG_ENCODING_KOI8 ONIG_ENCODING_KOI8_R ONIG_ENCODING_UNDEF ONIG_ENCODING_UTF16_BE ONIG_ENCODING_UTF16_LE ONIG_ENCODING_UTF32_BE ONIG_ENCODING_UTF32_LE ONIG_ESCAPE_REGEX_T_COLLISION ONIG_IS_CAPTURE_HISTORY_GROUP ONIG_IS_PATTERN_ERROR ONIG_NORMAL ONIG_NULL_WARN ONIG_OPTION_MAXBIT ONIG_OPTION_OFF ONIG_OPTION_ON ONIG_RUBY_M17N ONIG_STATE_SEARCHING ONIG_SYNTAX_ASIS ONIG_SYNTAX_EMACS ONIG_SYNTAX_GNU_REGEX ONIG_SYNTAX_GREP ONIG_SYNTAX_JAVA ONIG_SYNTAX_PERL ONIG_SYNTAX_PERL_NG ONIG_SYNTAX_POSIX_BASIC ONIG_SYNTAX_POSIX_EXTENDED ONIG_TRAVERSE_CALLBACK_AT_BOTH ONIG_TRAVERSE_CALLBACK_AT_FIRST ONIG_TRAVERSE_CALLBACK_AT_LAST Ok OnigCaptureTreeNodeStruct OnigCompileInfo OnigEncodingBIG5 OnigEncodingCP1251 OnigEncodingEUC_CN OnigEncodingEUC_KR OnigEncodingEUC_TW OnigEncodingGB18030 OnigEncodingISO_8859_1 OnigEncodingISO_8859_10 OnigEncodingISO_8859_11 OnigEncodingISO_8859_13 OnigEncodingISO_8859_14 OnigEncodingISO_8859_15 OnigEncodingISO_8859_16 OnigEncodingISO_8859_2 OnigEncodingISO_8859_3 OnigEncodingISO_8859_4 OnigEncodingISO_8859_5 OnigEncodingISO_8859_6 OnigEncodingISO_8859_7 OnigEncodingISO_8859_8 OnigEncodingISO_8859_9 OnigEncodingKOI8 OnigEncodingKOI8_R OnigEncodingTypeST OnigEncodingUTF16_BE OnigEncodingUTF16_LE OnigEncodingUTF32_BE OnigEncodingUTF32_LE OnigMetaCharTableType OnigRegex OnigRegexType Perl RMODULE RUBYSIG_H RUBY_EXTCONF_H RUBY_FIXNUM_FLAG RUBY_FL_EXIVAR RUBY_FL_FINALIZE RUBY_FL_FREEZE RUBY_FL_MARK RUBY_FL_RESERVED RUBY_FL_SINGLETON RUBY_FL_TAINT RUBY_FL_USER0 RUBY_FL_USER1 RUBY_FL_USER2 RUBY_FL_USER3 RUBY_FL_USER4 RUBY_FL_USER5 RUBY_FL_USER6 RUBY_FL_USER7 RUBY_FL_USHIFT RUBY_H RUBY_IMMEDIATE_MASK RUBY_INTERN_H RUBY_IO_H RUBY_METHOD_FUNC RUBY_MISSING_H RUBY_NODE_H RUBY_Qfalse RUBY_Qnil RUBY_Qtrue RUBY_Qundef RUBY_RE_H RUBY_ST_H RUBY_SYMBOL_FLAG RUBY_T_ARRAY RUBY_T_BIGNUM RUBY_T_BLOCK RUBY_T_CLASS RUBY_T_DATA RUBY_T_FALSE RUBY_T_FILE RUBY_T_FIXNUM RUBY_T_FLOAT RUBY_T_HASH RUBY_T_ICLASS RUBY_T_MASK RUBY_T_MATCH RUBY_T_MODULE RUBY_T_NIL RUBY_T_NODE RUBY_T_NONE RUBY_T_OBJECT RUBY_T_REGEXP RUBY_T_STRING RUBY_T_STRUCT RUBY_T_SYMBOL RUBY_T_TRUE RUBY_T_UNDEF RUBY_T_VALUES RUBY_UTIL_H RUBY_VM RUBY_WIN32_H R_CAST SEH SIZEOF___INT64 STR2CSTR ST_DATA_T_DEFINED SUFFIX SYMBOL_FLAG S_IRWXG S_IRWXO S_IRWXU Structured T_NONE VER_PLATFORM_WIN32_NT VER_PLATFORM_WIN32_WINDOWS WSAAPI WSAEADDRINUSE WSAEADDRNOTAVAIL WSAEAFNOSUPPORT WSAEALREADY WSAECONNABORTED WSAECONNREFUSED WSAECONNRESET WSAEDESTADDRREQ WSAEDQUOT WSAEHOSTDOWN WSAEHOSTUNREACH WSAEINPROGRESS WSAEISCONN WSAELOOP WSAEMSGSIZE WSAENETDOWN WSAENETRESET WSAENETUNREACH WSAENOBUFS WSAENOPROTOOPT WSAENOTCONN WSAENOTSOCK WSAEOPNOTSUPP WSAEPFNOSUPPORT WSAEPROCLIM WSAEPROTONOSUPPORT WSAEPROTOTYPE WSAEREMOTE WSAESHUTDOWN WSAESOCKTNOSUPPORT WSAESTALE WSAETIMEDOUT WSAETOOMANYREFS WSAEUSERS WSAEWOULDBLOCK We _I64_MAX _I64_MIN _INTPTR_T_DEFINED _S_IFIFO _UINTPTR_T_DEFINED _WIN64 __ __BIG_ENDIAN__ __arch64__ __declspec __int64 __isascii __linux__ __sparc_v9__ __sparcv9 _c _commit _copysign _creat _f _filelength _fstati64 _lseeki64 _mktemp _o _pipe _scalb _sopen _stat64 _stati64 _stream _t _tell accept acs apply_all_case_fold callback_func cfunc compiled conflict connect copysign creat decl dllexport dllimport dln_libs_to_be_linked dta editing efds err_code fgetc fgetchar filelength files finally first_to_check flush_register_windows fputchar frl fseeko fsopen ftello get_case_fold_codes_by_str get_osfhandle getchar gethostbyaddr gethostbyname gethostname getpeername getprotobyname getprotobynumber getservbyname getservbyport getsockname getsockopt hostent inplace intrinsics intrval ioctlsocket is_mbc_newline isalnum isascii isprint isxdigit listen local_cnt mark max_enc_len min_enc_len mktemp nd_modl nd_rval nd_tag nd_var normal nuke num_of_elements onig_capture_tree_traverse onig_copyright onig_new_deluxe onig_recompile_deluxe onig_version pattern_enc pr protoent putchar rb_ary_from_values rb_ary_print_on rb_big2int rb_big2uint rb_check_array_value rb_class_of rb_defout rb_dvar_asgn rb_dvar_push rb_fd_select rb_fix_new rb_int_new rb_is_junk_id rb_length_by_each rb_mutex_synchronize rb_sym_interned_p rb_thread_start_1 rb_thread_start_timer rb_thread_stop_timer rb_thread_trap_eval rb_type rb_uint_new rb_values_from_ary rb_values_new rb_values_new2 rb_w32_accept rb_w32_bind rb_w32_connect rb_w32_fdclr rb_w32_fdisset rb_w32_fdset rb_w32_fstat rb_w32_fstati64 rb_w32_getc rb_w32_getcwd rb_w32_getenv rb_w32_gethostbyaddr rb_w32_gethostbyname rb_w32_gethostname rb_w32_getpeername rb_w32_getprotobyname rb_w32_getprotobynumber rb_w32_getservbyname rb_w32_getservbyport rb_w32_getsockname rb_w32_getsockopt rb_w32_ioctlsocket rb_w32_listen rb_w32_putc rb_w32_recvfrom rb_w32_rename rb_w32_select rb_w32_sendto rb_w32_setsockopt rb_w32_shutdown rb_w32_socket rb_w32_socketpair rb_w32_stat rb_w32_strerror rb_w32_times re_pattern_buffer recvfrom regopt requires ruby_current_node ruby_exec ruby_posix_signal ruby_run ruby_set_current_source sbout scalb sendto servent sh sleep so sockaddr sopen statements stdint stdio_ext stream stricmp string_index strnicmp stubs target_enc these tl trap_immediate try using variable_in_this_stack_frame winsock2 xmalloc2 xrealloc2 Once words: AF_UNIX ALT_SEPARATOR APPEND ARGF ARY_SET_LEN Aliases AllocationBase Almost Apr Arnold Atari BBUF_GET_BYTE BBUF_INSERT BBUF_MOVE_LEFT BBUF_SIZE_INC BDIGMAX BEGIN BINARY BIND_DEFERRED BITSET_CLEAR_BIT BITSET_INVERT_BIT BIT_CTYPE_ALNUM BIT_CTYPE_ALPHA BIT_CTYPE_ASCII BIT_CTYPE_BLANK BIT_CTYPE_CNTRL BIT_CTYPE_DIGIT BIT_CTYPE_GRAPH BIT_CTYPE_LOWER BIT_CTYPE_NEWLINE BIT_CTYPE_PRINT BIT_CTYPE_PUNCT BIT_CTYPE_SPACE BIT_CTYPE_UPPER BIT_CTYPE_WORD BIT_CTYPE_XDIGIT BSD_SIGNAL BYTEWIDTH B_BAD_IMAGE_ID B_BAD_INDEX Base BitOfIsDir BitOfIsRep Boolean CA CALL CC_DIFF_WC CFragConnectionID CFragSymbolClass CLEAR_ENV CMDARG_P CMDARG_POP COMPILE_NG COND_P CREAT CREATE_SUSPENDED CSIDL_PERSONAL CW_PERFILE CYGWIN_VERSION_DLL_MAJOR CharPrev Check_SafeStr Cheers CloseChildHandle CodeFragments Constants Count Create CreateChild CreateDirectory CreateHardLinkA CreateMutex DIRENT_PER_CHAR DISPATCH_XXX DLL_PROCESS_ATTACH DVARS_INHERIT DVARS_SPECIAL_P DVARS_TOPSCOPE DYNAMIC_ENDIAN Date DeleteFile Directory DllMain ENABLE_INTS ERROR_ACCESS_DENIED ERROR_ALREADY_EXISTS ERROR_ARENA_TRASHED ERROR_AUTODATASEG_EXCEEDS_64k ERROR_BAD_COMMAND ERROR_BAD_ENVIRONMENT ERROR_BAD_EXE_FORMAT ERROR_BAD_FORMAT ERROR_BAD_LENGTH ERROR_BAD_NETPATH ERROR_BAD_NET_NAME ERROR_BAD_PATHNAME ERROR_BAD_UNIT ERROR_BROKEN_PIPE ERROR_CANNOT_MAKE ERROR_CHILD_NOT_COMPLETE ERROR_CRC ERROR_CURRENT_DIRECTORY ERROR_DIRECTORY ERROR_DIRECT_ACCESS_HANDLE ERROR_DIR_NOT_EMPTY ERROR_DISK_FULL ERROR_DRIVE_LOCKED ERROR_DYNLINK_FROM_INVALID_RING ERROR_EXE_MARKED_INVALID ERROR_FAIL_I24 ERROR_FILENAME_EXCED_RANGE ERROR_FILE_EXISTS ERROR_FILE_NOT_FOUND ERROR_GEN_FAILURE ERROR_INFLOOP_IN_RELOC_CHAIN ERROR_INVALID_ACCESS ERROR_INVALID_BLOCK ERROR_INVALID_DATA ERROR_INVALID_DRIVE ERROR_INVALID_EXE_SIGNATURE ERROR_INVALID_FUNCTION ERROR_INVALID_MINALLOCSIZE ERROR_INVALID_MODULETYPE ERROR_INVALID_PARAMETER ERROR_INVALID_SEGDPL ERROR_INVALID_STACKSEG ERROR_INVALID_STARTING_CODESEG ERROR_INVALID_TARGET_HANDLE ERROR_IOPL_NOT_ENABLED ERROR_ITERATED_DATA_EXCEEDS_64k ERROR_LOCK_FAILED ERROR_MAX_THRDS_REACHED ERROR_NEGATIVE_SEEK ERROR_NESTING_NOT_ALLOWED ERROR_NETWORK_ACCESS_DENIED ERROR_NOT_DOS_DISK ERROR_NOT_ENOUGH_MEMORY ERROR_NOT_ENOUGH_QUOTA ERROR_NOT_READY ERROR_NOT_SAME_DEVICE ERROR_NO_MORE_FILES ERROR_NO_PROC_SLOTS ERROR_OUT_OF_PAPER ERROR_PATH_NOT_FOUND ERROR_READ_FAULT ERROR_RELOC_CHAIN_XEEDS_SEGLIM ERROR_RING2SEG_MUST_BE_MOVABLE ERROR_SECTOR_NOT_FOUND ERROR_SEEK ERROR_SEEK_ON_DEVICE ERROR_SHARING_BUFFER_EXCEEDED ERROR_SHARING_VIOLATION ERROR_TOO_MANY_OPEN_FILES ERROR_WAIT_NO_CHILDREN ERROR_WRITE_FAULT ERROR_WRITE_PROTECT ERROR_WRONG_DISK EXPR_CLASS EXPR_MID EXPR_VALUE EnterCriticalSection Error FCALL FDEV FILENAME FILE_READPTR FILE_SHARE_READ FILE_SHARE_WRITE FILE_TYPE_DISK FIXME FIXNUM_MIN FL_USER0 FL_USER4 FL_USER5 FL_USER7 FMODE_SYNCWRITE FNM_ERROR FOPEN FORMAT_MESSAGE_ALLOCATE_BUFFER FP_X_DZ FP_X_INV FP_X_OFL FSMakeFSSpec FSSpec F_GETFD F_OK F_RDLCK F_SETFD F_SETLK F_SETLKW F_UNLCK F_WRLCK Filename FindChildSlot FindFirstChildSlot FindFreeChildSlot FindSymbol Fix Float FormatMessageA Free From GCDEBUG GC_GUARDED_PTR_P GENERIC_WRITE GETPGRP_VOID GET_BYTE_INC GET_CONTINUATION_FRAME_PTR GET_CURRENT_DYNAMIC GET_ENV_CTRL GET_OPERAND GET_REPEATNUM_INC GET_SP_COUNT GET_TOS Get GetBit GetCommandLine GetCurrentThreadHandle GetCurrentThreadId GetDiskFragment GetEnvironmentStrings GetFileInformationByHandle GetFileType GetHandleInformation GetLogicalDrives GetModuleFileName GetProcAddressA GetSystemTimeAsFileTime GetUserName GetVMPtr GetVersionEx HAS_KILLPG HAVE_ACOSH HAVE_ASINH HAVE_ATANH HAVE_CHROOT HAVE_COSH HAVE_DAEMON HAVE_DIRECT_H HAVE_DIRENT_H HAVE_EACCESS HAVE_FSYNC HAVE_GETCWD HAVE_GETTIMEOFDAY HAVE_GRP_H HAVE_INITGROUPS HAVE_ISNAN HAVE_ISSETUGID HAVE_LCHMOD HAVE_LCHOWN HAVE_LIMITS_H HAVE_LINK HAVE_LOCKF HAVE_LOG2 HAVE_MKTIME HAVE_NANOSLEEP HAVE_NATIVETHREAD HAVE_NDIR_H HAVE_OFF_T HAVE_READLINK HAVE_SEEKDIR HAVE_SELECT HAVE_SELECT_LARGE_FDSET HAVE_SETGROUPS HAVE_SETITIMER HAVE_SETRLIMIT HAVE_SETSID HAVE_SINH HAVE_SOCKETPAIR HAVE_ST_BLKSIZE HAVE_ST_BLOCKS HAVE_SYMLINK HAVE_SYSCALL HAVE_SYSCALL_H HAVE_SYS_DIR_H HAVE_SYS_FCNTL_H HAVE_SYS_FILE_H HAVE_SYS_IOCTL_H HAVE_SYS_MKDEV_H HAVE_SYS_NDIR_H HAVE_SYS_SYSCALL_H HAVE_SYS_TYPES_H HAVE_SYS_WAIT_H HAVE_TANH HAVE_TELLDIR HAVE_TIMEGM HAVE_UTIMES HAVE_WAIT4 HAVE__SC_CLK_TCK HAVE___LIBC_IA64_REGISTER_BACKING_STORE_BASE HMODULE HOME HUGE_ST_INO Hi How ID_INTERNAL ID_SCOPE_SHIFT IN INCL_DOS INSERT_ELEM_NEXT INSERT_ELEM_PREV INSN_ELABEL_ INSN_LABEL_ INT_MAX ISASCII ISEQ_ELEMENT_SEQ IS_CALL_NAME_REF IS_EVSTR IS_POSIXLINE Illegal Init_ID Init_test Initialization Initialize Invalid IsINF IsNANorINF Jaegermann LABEL_leave_ LABEL_putnil_ LABEL_putstring_ LABEL_send_ LIST_SIZE LPCRITICAL_SECTION LPITEMIDLIST LPMALLOC LPSTR LPTSTR L_CURR L_ERROR_ALIGN L_ERROR_ERRNO L_ERROR_FORMAT L_ERROR_MEMBER L_ERROR_NOLIB L_ERROR_RLDBAD L_ERROR_SYSTEM L_ERROR_TOOMANY L_ERROR_TYPE L_ERROR_UNDEF L_INCR L_XTND LeaveCriticalSection LoadLibraryA LocalFileTimeToFileTime MACOSX_DLOPEN MAJOR_VERSION MARSHAL_MAJOR MDT MINOR_VERSION MISSING_FCONVERT MISSING__DTOS18 MODENUM_MAX Marshal NAMEBUF_SIZE NAMEBUF_SIZE_1 NEED_ASSOC NEGFIXABLE NEW_ALIAS NEW_ATTRASGN NEW_ATTRSET NEW_BLOCK_PASS NEW_BMETHOD NEW_CLASS NEW_CVAR NEW_DASGN_CURR NEW_DEFN NEW_DEFS NEW_DOT2 NEW_DOT3 NEW_ENSURE NEW_ERRINFO NEW_EVSTR NEW_FOR NEW_GASGN NEW_GVAR NEW_IFUNC NEW_LVAR NEW_MODULE NEW_OPT_ARG NEW_POSTEXE NEW_PRELUDE NEW_REDO NEW_RETRY NEW_SCLASS NEW_SPECIAQL_BLOCK_ISEQVAL NEW_TO_ARY NEW_WHEN NEW_XSTR NIL_PLUS NOCTTY NOT_RUBY NSAddressOfSymbol NSCreateObjectFileImageFromFile NSIsSymbolNameDefined NSLinkModule NSLookupAndBindSymbol NSObjectFileImage NSObjectFileImageSuccess NT NTOMCZAK NUM2LL NUMBERED_CHAR_IS_NOT_CASE_AMBIG NXOpenFile NXStream NX_WRITEONLY N_ABS N_BADMAG N_BSS Now OLD_YACC OMAGIC ONIGENCERR_MEMORY ONIGENC_APPLY_ALL_CASE_FOLD ONIGENC_ASCII_CODE_TO_UPPER_CASE ONIGENC_CASE_FOLD_MIN ONIGENC_CTYPE_NEWLINE ONIGENC_ISO_8859_1_TO_LOWER_CASE ONIGENC_ISO_8859_1_TO_UPPER_CASE ONIGENC_IS_ALLOWED_REVERSE_MATCH ONIGENC_IS_ASCII_CODE ONIGENC_IS_CODE_SPACE ONIGENC_IS_CODE_UPPER ONIGENC_IS_UNDEF ONIGENC_IS_UNICODE_ISO_8859_1_BIT_CTYPE ONIGENC_PROPERTY_NAME_TO_CTYPE ONIGERR_CHAR_CLASS_VALUE_AT_START_OF_RANGE ONIGERR_END_PATTERN_AT_LEFT_BRACKET ONIGERR_NESTED_REPEAT_OPERATOR ONIGERR_NOT_SUPPORTED_ENCODING_COMBINATION ONIGERR_SPECIFIED_ENCODING_CANT_CONVERT_TO_WIDE_CHAR ONIGERR_TOO_BIG_BACKREF_NUMBER ONIG_CHECK_NULL_RETURN ONIG_CHECK_NULL_RETURN_VAL ONIG_DONT_OPTIMIZE ONIG_MAX_BACKREF_NUM ONIG_MAX_MULTI_BYTE_RANGES_NUM ONIG_META_CHAR_ANYCHAR ONIG_META_CHAR_ANYCHAR_ANYTIME ONIG_META_CHAR_ANYTIME ONIG_META_CHAR_ESCAPE ONIG_META_CHAR_ONE_OR_MORE_TIME ONIG_META_CHAR_ZERO_OR_ONE_TIME ONIG_OPTION_DEFAULT ONIG_OPTION_NEGATE_SINGLELINE ONIG_OPTION_NOTBOL ONIG_OPTION_NOTEOL ONIG_OPTION_POSIX_REGION ONIG_STATE_COMPILING ONIG_SYNTAX_DEFAULT ONIG_SYN_OP2_ATMARK_CAPTURE_HISTORY ONIG_SYN_OP_ESC_ASTERISK_ZERO_INF ONIG_SYN_OP_VARIABLE_META_CHARACTERS OPEN_MAX OPT_BASIC_OPERATIONS OPT_UNIFY_ALL_COMBINATION OSErr OUT OVERLAPPED O_SYNC O_TEXT OnigEncodingASCII OnigEncodingEUC_JP OnigEncodingSJIS OnigEncodingUTF8 OnigSyntaxASIS OnigSyntaxEmacs OnigSyntaxGnuRegex OnigSyntaxGrep OnigSyntaxJava OnigSyntaxPerl OnigSyntaxPerl_NG OnigSyntaxPosixBasic OnigSyntaxPosixExtended OnigSyntaxRuby OpCode PATHLEN PATH_SEP PATH_SEPARATOR PRINTF_ARGS PRIO_PGRP PRIO_PROCESS PRIO_USER PTHREAD_COND_INITIALIZER PTHREAD_CREATE_DETACHED PTHREAD_INHERIT_SCHED PTHREAD_MUTEX_INITIALIZER PV_ P_OVERLAY RBasic RDONLY RDWR REGERR_INVALID_WIDE_CHAR_VALUE REG_A REG_B RELOC_DISP8 RELOC_EXTERN_P RELOC_WDISP22 REVERSE_LIST RIPPER_VERSION RNode RSTRING_EMBED_LEN_MASK RSTRING_EMBED_LEN_SHIFT RUBYSHELL RUBY_ARCHLIB RUBY_DEFINES_H RUBY_EVENT_NONE RUBY_EXPORT RUBY_INIT_STACK RUBY_RELEASE_CODE RUBY_RELEASE_DAY RUBY_RELEASE_MONTH RUBY_SITE_ARCHLIB RUBY_SITE_LIB RUBY_SITE_LIB2 RUBY_VERSION_CODE RUBY_VERSION_MAJOR RUBY_VERSION_MINOR RUBY_VERSION_TEENY RegionSize Release ResetEvent ResolveAliasFile ResumeThread SCCSid SCREG SECURITY_ATTRIBUTES SET_LFP SHGetMalloc SHGetPathFromIDList SHGetSpecialFolderLocation SHIFT_ELEMENT SHORTMASK SIZEOF_DOUBLE SIZEOF_FLOAT SIZEOF_OFF_T SIZE_OP_REPEAT_INC_NG SIZE_OP_STATE_CHECK_ANYCHAR_STAR SIZE_REPEATNUM SOCK_STREAM SOLARIS ST STACK_GET_MEM_RANGE STDC_HEADERS ST_DEFAULT_INIT_TABLE_SIZE SWAP_LIST SYNC S_IFCHR SetBit SetEvent SetFileTime SetThreadPriority Stat Str63 SystemTimeToFileTime TAG_CONTCALL TAG_THREAD TEST_STRFTIME THREAD_PRIORITY_ABOVE_NORMAL THREAD_PRIORITY_BELOW_NORMAL THREAD_PRIORITY_NORMAL TM_IN_SYS_TIME TRUNC TYPE_BIGNUM TYPE_DATA TYPE_EXTENDED TYPE_FALSE TYPE_FIXNUM TYPE_FLOAT TYPE_NIL TYPE_OBJECT TYPE_PROCEDURE TYPE_STRING TYPE_TRUE TYPE_UCLASS TYPE_UNDEFINED TYPE_USERDEF TYPE_USRMARSHAL T_UNDEF TextUtils The To UAlberta UINT_MAX ULONG_MAX UNIX USE_BROKEN_XPG4 USE_SETREGID USE_SETREUID USE_UNICODE_ALL_LINE_TERMINATORS USHORT UTF Unable Unknown UnlockFileEx VALID_CODE_LIMIT VCALL VMS VM_CALL_TAILRECURSION_BIT VM_CFP_CNT Version WAIT_ABANDONED WIN32_DEBUG WIN32_FIND_DATA WINBASEAPI WORD WRONLY WSABASEERR WSACleanup WSAEACCES WSAEBADF WSAEFAULT WSAEINTR WSAEINVAL WSAEMFILE WSAENAMETOOLONG WSAENOTEMPTY WaitForMultipleObjects WaitForSingleObject Wed When WinMain Winsock X3J11 Y YARV_AOT_COMPILED YYDEBUG YYERROR_VERBOSE YYLEX_PARAM YYPARSE_PARAM YYSTACK_USE_ALLOCA YYSTYPE ZeroMemory _ANSI_SOURCE _BBuf _IEEE _IO_fpos_t _IO_read_end _IO_read_ptr _MAX_PATH _M_AMD64 _M_AMD86 _M_IX86 _OnigStackType _SC_CLK_TCK _STDIO_USES_IOSTREAM _USE_LFN _USHORT __BOW__ __DARWIN__ __DECC __DragonFly__ __GCC__ __HIUX_MPP__ __HP_cc __INTERIX __NEXT_INSN__ __NO_ISOCEXT __OPENDIR_PRESERVE_CASE __QNXNTO__ __SAPP __SMBF __SMOD __SNPT __SOFF __SOPT __SRD __START__ __WATCOMC__ __alloca __attribute__ __cplusplus __crt0_glob_function __cygwin_perfile __dietlibc__ __dpmi_int __dpmi_regs __hp9000s300 __i386 __mc68000__ __mc68020__ __opendir_flags __osf__ __ppc__ __sparc__ _access _alloca _beginthreadex _chdir2 _cnt _control87 _dump_data _egptr _eof _execname _fdopen _fgetc _filbuf _flsbuf _fputc _fsopen _getcwd2 _gptr _lbfsize _longjmp _macruby_init _macruby_path_conv_posix_to_macos _nec_ews _nfile _open _open_osfhandle _r _set_Creg _set_invalid_parameter_handler _state _stklen _unlink _vmsruby_init a_magic abs ackermann acos actual add_len_mml align all alt_klass alt_self always anymore ar_hdr ar_name architecture area arg_add_assocs arg_add_block arg_add_optblock arg_add_star arg_new arg_prepend argf_binmode argf_close_m argf_closed argf_each_byte argf_each_line argf_eof argf_file argf_filename argf_fileno argf_lineno argf_read argf_readchar argf_readpartial argf_rewind argf_seek_m argf_set_lineno argf_set_pos argf_skip argf_tell argf_to_io argf_to_s arglist_add arglist_add_star arglist_new arglist_prepend args2mrhs arnold asctime asin assert assert_Qundef assumes atan2 atoi attempt audfax audiofax ax b64 backtrace_symbols bare_assoc_hash bat bcc32 before bigger bitset_set_all blksize blockdev blocks both bsearch bug builtins ca cached_const came ccommand change characters chardev chop chroot ci class_nest close_read close_write cmdglob code_to_mbc_first column commandline compile compiler compiles configration consider console context continuation_frame convert convex correct cos could course cygwin_internal d_ino daemon debug debug_cref debug_node deferr deferr_setter definition defout defout_setter depends dev_major dev_minor dirstr dispatch3 dispatch4 dispatch5 dlerror dln_sym do_spawn doing dosmemget dot dpmi dpv dummy_gdb_enums dvar_curr dwOSVersionInfoSize dyna_var dynamic elsif emacs embedded emory enable enable_coredump encrypt end_seen errtab escape_Qundef exceed executable executable_real feeble fixing floating floatingpoint flonum flush for_iseq fork form fpgetmask fpsetmask freopen fspace ftruncate ftype function function_call_may_return_twice_false function_call_may_return_twice_jmp_buf gc_stress getgrnam getlogin getpgrp getppid getpriority getpwnam getwd global globbing gould gr_gid grabbed grp grpowned hashmask here_document heredoc_identifier idea image image_id incomplete initgroups ino ino_t input insn_ary insn_func_ insn_operands_unification insn_pos insn_stack_increase instead instruction into intptr_t io_read_nonblock io_readpartial io_write is_attrset_id is_class_id is_const_id is_global_id is_instance_id is_junk_id is_mbc_ambiguous is_ruby_native_thread iseq_assemble_setup iseq_insn_data iseq_link_anchor issetugid kLoadCFrag kernel32 know l_len l_start l_whence last_state launch lchmod lchown ldr libraries library lineno_setter little load_add_on loadbind loadquery local_tbl locate longjmp lose lpCriticalSection lvar_defined lvtbl make meets method_arg method_optarg mind mkdev mkdir mktime mrhs_new_from_arglist mswsock multiple multithread mutex_struct n_strx names names_clone nanosleep native_cleanup_pop native_cleanup_push native_thread_cleanup nd_frml nd_opt nd_orig nd_pid nd_resq nd_rest nd_super nd_tbl nfiles nil_plus nlink node_flags nostandard notdef nothing ntomczak nulls objc_msgSend objcdummyfunction octal onig_clone onig_copy_encoding onig_copy_syntax onig_end onig_get_capture_tree onig_get_case_fold_flag onig_get_default_case_fold_flag onig_get_encoding onig_get_match_stack_limit_size onig_get_options onig_get_syntax onig_get_syntax_behavior onig_get_syntax_op onig_get_syntax_op2 onig_get_syntax_options onig_match onig_number_of_capture_histories onig_number_of_captures onig_recompile onig_region_new onig_region_set onig_set_default_case_fold_flag onig_set_default_syntax onig_set_match_stack_limit_size onig_set_meta_char onig_set_syntax_behavior onig_set_syntax_op onig_set_syntax_op2 onig_set_syntax_options onig_set_verb_warn_func onig_set_warn_func onig_t onigenc_ascii_is_mbc_ambiguous onigenc_get_left_adjust_char_head onigenc_step_back onigenc_strlen_null openpath operand opt_aset opt_i_get opt_i_set optimization or os2 own owned p2cstr parse_error parse_string parser_pragma parsing parsing_thread passwd pclose peek pieces pipe_atexit popen prep_stdio print_signal_list proc_dump_raw program prove_profile pthread_attr_destroy pthread_attr_setdetachstate pthread_attr_setinheritsched pthread_cleanup_pop pthread_cleanup_push pthread_cond_wait pthread_getschedparam pthread_join pthread_kill pthread_mutex_destroy pthread_mutex_init pthread_mutex_trylock pthread_setschedparam pure_parser push put puts quoted quotes r_index rawVALUE rb_apply rb_ary_freeze rb_ary_to_s rb_backtrace rb_blocking_function_t rb_catch rb_check_safe_str rb_check_type rb_compile_cstr rb_compile_file rb_compile_option_struct rb_const_defined_from rb_const_get_from rb_context_struct rb_cstr2inum rb_cv_get rb_cv_set rb_data_object_alloc rb_deferr rb_define_attr rb_define_class_variable rb_define_protected_method rb_each rb_errinfo rb_eval_string_wrap rb_f_lambda rb_f_test rb_fd_copy rb_file_atime rb_file_chmod rb_file_chown rb_file_ctime rb_file_flock rb_file_initialize rb_file_lstat rb_file_mtime rb_file_path rb_file_sysopen rb_file_truncate rb_fix2uint rb_fopen rb_gc_abort_threads rb_gc_mark_parser rb_gc_mark_symbols rb_generic_ivar_table rb_getc rb_gets rb_glob rb_gv_get rb_hash_freeze rb_hash_s_new rb_ia64_flushrs rb_io_addstr rb_io_bytes rb_io_close_m rb_io_close_read rb_io_close_write rb_io_each_byte rb_io_each_line rb_io_fcntl rb_io_fread rb_io_fsync rb_io_fwrite rb_io_init_copy rb_io_inspect rb_io_ioctl rb_io_isatty rb_io_lineno rb_io_lines rb_io_pid rb_io_printf rb_io_read_check rb_io_read_pending rb_io_readchar rb_io_readline rb_io_reopen rb_io_set_lineno rb_io_set_sync rb_io_stdio_file rb_io_sync rb_io_sysread rb_io_sysseek rb_io_syswrite rb_io_to_io rb_io_unbuffered rb_io_write_nonblock rb_iseq_profile_struct rb_iterator_p rb_kcode rb_load_protect rb_mark_hash rb_marshal_dump rb_marshal_load rb_mutex_new rb_need_block rb_num2ull rb_obj_infect rb_obj_method_arity rb_parser_compile_cstr rb_parser_end_seen_p rb_path2class rb_printf_sbuf rb_printf_sfile rb_prohibit_interrupt rb_read_check rb_read_pending rb_reg_mbclen2 rb_reg_nth_defined rb_remove_method rb_secure_update rb_set_errinfo rb_stat_R rb_stat_S rb_stat_W rb_stat_X rb_stat_b rb_stat_c rb_stat_cmp rb_stat_d rb_stat_dev_major rb_stat_dev_minor rb_stat_f rb_stat_ftype rb_stat_init rb_stat_init_copy rb_stat_inspect rb_stat_l rb_stat_p rb_stat_r rb_stat_rdev_major rb_stat_rdev_minor rb_stat_s rb_stat_s_alloc rb_stat_sgid rb_stat_suid rb_stat_w rb_stat_wr rb_stat_ww rb_stat_x rb_stat_z rb_str2cstr rb_str2inum rb_str_dup_frozen rb_str_freeze rb_str_ptr rb_str_split rb_string_value_cstr rb_string_value_ptr rb_struct_alloc rb_sym_all_symbols rb_symname_p rb_thread_cleanup rb_thread_create_control_thread rb_thread_current_status rb_thread_synchronize rb_thread_wait_other_threads rb_throw rb_trap_exec rb_trap_immediate rb_uint2inum rb_ull2inum rb_vm_struct rb_w32_Sleep rb_w32_aspawn rb_w32_asynchronize rb_w32_close rb_w32_cmdvector rb_w32_fclose rb_w32_fdopen rb_w32_fopen rb_w32_fsopen rb_w32_getpid rb_w32_is_socket rb_w32_isatty rb_w32_join_argv rb_w32_mkdir rb_w32_osid rb_w32_pipe_exec rb_w32_read rb_w32_recv rb_w32_rmdir rb_w32_send rb_w32_snprintf rb_w32_unlink rb_w32_utime rb_w32_vsnprintf rb_w32_write rb_yield_splat rdev_major rdev_minor reached read_nonblock readable readable_real readlink redo reentrant referred release reloc_info_sparc remove reopen reserved restore rhash ripper ripper_id2sym ripper_id_gets ripper_intern ripper_yydebug ripper_yyparse rld rld_load rld_lookup rmdir ruby__end__seen ruby_brace_glob ruby_debug_gc_check_func ruby_debug_print_v ruby_getcwd ruby_init_ext ruby_init_stack ruby_nativethread_signal ruby_node_flags ruby_scan_hex ruby_scan_oct ruby_set_stack_size ruby_setregid ruby_setreuid ruby_special_consts ruby_stack_length ruby_strtod ruby_unsetenv ruby_value_flags ruby_value_type ruby_xcalloc ruby_xrealloc2 ruby_yyparse sa_mask sc_insn_info sc_insn_next sched_get_priority_max sched_get_priority_min sched_param sched_priority sched_yield search see select_large_fdset separated setgroups setkey setpriority setproctitle setrlimit setsid setsockopt sgi sh_t shadowing share shl_load shl_t shlobj showcmd sigset sin snfprintf socketpair some spawnl spawnlp spawnv spawnvp special_consts split st_blksize st_blocks st_nlink st_retval stack_dump_th statement status_t stdaux stdcall stdprn sticky str_copy string_type strncat strtol strupr subvert sym_block sym_class sym_ensure sym_eval sym_method sym_rescue sysconf sysread sysseek syswrite tDirectory tHEREDOC_BEG tHEREDOC_END tRPAREN tSP tak tan tarai test than them this thread_dump_regs thread_dump_state throwdebug timegm tiny tm_name tm_tzadj tms_cstime tms_cutime tms_stime to_s to_str toklast toplevel_p tos trace_flag trailing tty tz_dsttime ualberta ungetc unification unlinked unterminated unused useless user utf8_code_to_mbc_first utf8_is_mbc_ambiguous utimes validate_object value_flags value_type vfprintf vtable_add vtable_alloc vtable_free vtable_included vtable_size wDay wDayOfWeek wHour wMilliseconds wMinute wMonth wSecond wYear wait4 wait_each waiter waitpid wce_FreeCommandLine weak wildcard winbase wincon winerror world_readable world_writable writable writable_real write_nonblock wrong yarv_invoke_Range_each_special_block yarv_new_iseqval yarvcore yield
なかなか面白い。なんか、バグってるような気もするんだが。
おそまきながら、日経ソフトウェアを買ってみた。
RubyKaigi は JRuby 特集だったんだなぁ。
http://journal.mycom.co.jp/news/2007/07/03/002/index.html ポケモン映画って10年もやってるんですね。
といいたいわけではなく、開始と終了時の10分間に、WiFiでの通信がシステムに殺到するんですよね。システム障害なんて起こったらきっととんでもないわけで、やっぱり凄いなぁと思ったりした。
1400行 p :ok とやってみたら、27万行のCのコードになった。もうこれはダメだろ。たった1400行なのに!
で、それを gcc に食わせたらおわんねー。というか、gcc が core 吐いて止まった。しくしく。
これは、基本戦略を変えないといけないなあ。basic blockごとに、1関数にしてあげるしかないか。
http://d.hatena.ne.jp/bobbyjam99/20070703
Rails無しのRubyをどう使えばいいのだろう.う〜む.
素晴らしい。
ruby2cext を作っている(2sexpではない)んだけれど、"p :ok" というプログラムをCへ変換し、コンパイルしたらオブジェクトファイルが 30KB になった。もうちょっと減るかと思ったんだけどなあ。
"p :ok" を100行繰り返してみたら227KB。600Bが378倍。ううん、意味あるんだろうか、これ。ちなみに、変換後のCソースファイルの行数は2万行。100行が200倍か。
こんな私の家の近くでワークショップがあるとは知りませんでした。組込みになってから興味ある分野だからMLに入ろうかな。
どもども,水島さんからお誘い受けました.8/2 はよろしくお願いします.