ToDo:
(00:39)
http://blog.japan.cnet.com/kenn/archives/003431.html
via http://blog.livedoor.jp/dankogai/archives/50716491.html
¤½¤¦¤¤¤¨¤Ð¥»¥ó¥»¤Ï ¥ì¥¹¥Ý¥ó¥¹¤Î®ÅÙ¤¬²¿¸Î¤¢¤ó¤Ê¤Ë®¤¤¤Î¤«¡¢ ¤Èµ¤¤Ë¤·¤Æ¤¿¤ß¤¿¤¤¤À¡£ ¥Ï¥Ã¥·¥å¤È¤«Å¾ÃÖ¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬¤Û¤²¤Û¤²¤È¤«ÀâÌÀ¤·¤¿¡£ ¤ó¤Ç¥Ú¡¼¥¸¥é¥ó¥¯¤¬¤Û¤²¤Û¤²¤È¤«¤ÏÁ´Á³¶½Ì£¤Ê¤¤¤ß¤¿¤¤¤À¤Ã¤¿¡£
(02:37)
http://lispuser.net/memo/lisp/2006-03-30-23-58.html
Á°¤â¸«¤¿¤±¤É¥á¥â¡£
³ç¸Ì¤Î̵¤¤ SRFI ¤Ã¤Æ¤¢¤Ã¤¿¤È»×¤¦¤ó¤À¤±¤É¤É¤³¤À¤Ã¤±¤Ê¤¡¡£
(04:23)
http://www.google.co.jp/search?q=%E3%81%A9%E3%81%86%E3%81%A7%E3%82%82%E3%81%84%E3%81%84&lr=lang_ja
²¼¤ÎÊý¸«¤Æ¤ß¤ë¤È¡¢
´ØÏ¢¸¡º÷: ËÜÅö¤Ï¤É¤¦¤Ç¤â¤¤¤¤ÃË ¤É¤¦¤Ç¤â¤¤¤¤»³ crazy¤µ¤æ¤É¤¦¤Ç¤â¤¤¤¤Æüµ ¤É¤¦¤Ç¤â¤¤¤¤¥Ë¥å¡¼¥¹ ¤É¤¦¤Ç¤â¤¤¤¤Ïà ¤É¤¦¤Ç¤â¤¤¤¤µ¿Ìä
郎¤½¤ó¤Ê¸¡º÷¤¹¤ë¤Í¤ó¡Ä
(05:57)
¤Á¤Ê¤ß¤Ë call »È¤ï¤Ê¤¤¤Ç¡£
typedef struct frame { struct frame *next; void **ret; } frame; void f() { frame *ebp = (frame *)__builtin_frame_address(0); printf("ebp = %p\n", ebp); void **ret = (void **)ebp->ret; printf("ret = %p\n", ret); void **rel = (void **)*(ret-1); printf("rel = %p\n", rel); printf("main = %p\n", (int)ret+(int)rel); } int main() { f(); frame *ebp = (frame *)__builtin_frame_address(0); printf("ebp = %p\n", ebp); void **ret = (void **)ebp->ret; printf("ret = %p\n", ret); void **rel = (void **)*(ret-1); printf("rel = %p\n", rel); printf("main = %p\n", (int)ret+(int)rel); return 0; }
main ¤ÎÊý¤Ï¤Ê¤ó¤«°ã¤¦¤ó¤À¤Ê¡£ ¤á¤ó¤É¤¯¤µ¤¤¤Î¤¦¡£
i@u ~/wrk/binhacks> ./a.out ebp = 0xbf828948 ret = 0x80483dd rel = 0xffffff77 main = 0x8048354 ebp = 0xbf828974 ret = 0xbf8289e8 rel = 0x80482b0 main = 0xc7870c98
(07:22)
movl 8(%ebp), %esi
¤Ç¥ª¥±¡£ ¾´Ä¶¤Ç¤â¤³¤¦¤Ê¤Ã¤Æ¤ë¤Î¤«¤·¤é¡£
¤µ¤Ã¤¤Î¤Ç¤¦¤Þ¤¯¤¤¤«¤óÍýͳ¤Ï
call *8(%ebp)
¤Ç main ¤ËÈô¤ó¤Ç¤¤Æ¤ë¤«¤é¤À¤Ã¤¿¡£
(07:51)
http://www.jeannettevejarano.com/games/tower-defence.html
via http://d.hatena.ne.jp/otsune/20061218/TowerDefence
(07:59)
http://d.hatena.ne.jp/alohakun/20061217#c1166421511
¤Ê¤ó¤«¥í¡¼¥À¤¸¤ã¤Ê¤¯¤ÆÀÅŪ¥ê¥ó¥¯¤Ã¤ÆÏäǤ¹¤è¤Í¡£ »ä¤Ï¤à¤·¤í¤Ê¤ó¤Ç¤Ç¤¤Ê¤¤¤Î¤«¤¬·ë¹½ÉԻ׵ĤÀ¤È»×¤Ã¤Æ¤Þ¤·¤¿¡£ ¥Ä¡¼¥ë¥Á¥§¡¼¥óºî¤ë»þ¤Ã¤Æ¤¿¤Ö¤ó¡¢ ¥³¥ó¥Ñ¥¤¥éºî¤ë¢ª .a Ū¤Ê .lib ¤òºî¤ì¤ë¤è¤¦¤Ë¤¹¤ë¢ª .a Ū¤Ê .lib ¤«¤é .def ¤À¤Î import ¥é¥¤¥Ö¥é¥êºî¤ì¤ë¤è¤¦¤Ë¤¹¤ë¢ª .dll ºî¤ì¤ë¤è¤¦¤Ë¤¹¤ë¢ª (¤ª¤Þ¤±¤È¤·¤Æ) .dll ¤«¤é .def ¤À¤Î .lib ¤ò¤Ò¤Ã¤³È´¤±¤ë¤è¤¦¤Ë¤¹¤ë¡¢ ¤ß¤¿¤¤¤Êή¤ì¤Çºî¤ë¤«¤é¤«¤Ê¤¡¡£
¤³¤Ã¤Á¤ÏÉáÄÌ¤Ë GNU toolchain ¤Ê¤é¤Ç¤¤ë¤ï¤±¤Ç¡Ä
i@un ~/test> cat a.c void a() { puts("Hello"); } i@un ~/test> cat b.c void a(); void main() { a(); } i@un ~/test> gcc -o a.so a.c -shared i@un ~/test> gcc b.c a.so -o b b.c: In function 'main': b.c:2: ·Ù¹ð: return type of 'main' is not 'int' i@un ~/test> LD_LIBRARY_PATH=. ./b Hello
¤Ê¤ó¤Ä¡¼¤«¤³¤Î¤Ø¤ó¤Ã¤Æ¥Ð¥Ã¥É¥Î¥¦¥Ï¥¦¤Î»³¤Ê¤ó¤À¤è¤Ê¤¡¡£ ³µÇ°Åª¤Ë¤ÏÊ̤ËÆñ¤·¤¯¤â¤Ê¤ó¤È¤â¤Ê¤¤¤Î¤Ë¡¢ ¿Í°ÙŪ¤ËÆñ¤·¤¯¤µ¤ì¤Æ¤ë´¶¤¸¡£
GNU toolchain
i@u ~> file /usr/lib/libc.so /usr/lib/libc.so: ASCII C program text
Windows °ìÈÌ
Cygwin/MinGW
OMF (Borland)
OMF (Digitalmars)
COFF (VC)
Mach-O
Áí³ç
(17:28)
ld ¤Ã¤ÆÉÔ¼«Á³¤ËÃÙ¤¤¤è¤Í¡£
¤¢¤È¤Ç»î¤¹ (2ǯ±Û¤·¤ÎÉéºÄ): http://www.issei.org/diary/?20040417#17-1
(17:42)
(17:48)
binutils ¤ÏÁ´Éô¤Î¥Ð¥¤¥Ê¥êÆɤá¤ë¤Î¤ò¥Ó¥ë¥É¤·¤Æ¤ª¤¯¤È¤Ù¤ó¤ê¡£
i@uk:/data/backup/usr/local/stow/binutils-2.16/bin$ ls -lh total 29M -rwxr-xr-x 1 root root 2.0M Oct 25 2005 addr2line -rwxr-xr-x 1 root root 2.0M Oct 25 2005 ar -rwxr-xr-x 1 root root 2.7M Oct 25 2005 as -rwxr-xr-x 1 root root 2.0M Oct 25 2005 c++filt -rwxr-xr-x 1 root root 2.3M Oct 25 2005 gprof -rwxr-xr-x 1 root root 2.7M Oct 25 2005 ld -rwxr-xr-x 1 root root 2.0M Oct 25 2005 nm -rwxr-xr-x 1 root root 2.4M Oct 25 2005 objcopy -rwxr-xr-x 1 root root 2.6M Oct 25 2005 objdump -rwxr-xr-x 1 root root 2.0M Oct 25 2005 ranlib -rwxr-xr-x 1 root root 410K Oct 25 2005 readelf -rwxr-xr-x 1 root root 1.9M Oct 25 2005 size -rwxr-xr-x 1 root root 1.9M Oct 25 2005 strings -rwxr-xr-x 1 root root 2.4M Oct 25 2005 strip
¤¿¤À¥Ç¥«¤¤¤Î¤Ï¤È¤â¤«¤¯¡¢ µ¯Æ°¤¬¤¨¤é¤¤ÃÙ¤¤¤Î¤ÇÆüÍѤˤϤʤé¤Ì¡¼
(17:52)
¥Ï¥«¡¼¤ò°é¤Æ¤Æ¤¤¤ë¤ó¤¸¤ã¤è¡£¤°¤Ë¤å¡¼¤Ï¡Ä
¤Á¤Ê¤ß¤Ë Windows ´ë¶È¤Ï IDE ¤Î¹ØÆþ¤òÂ¥¿Ê¤·¤Æ¤¤¤ë/¤¿
(17:54)
Á° | 2006ǯ 12·î |
¼¡ | ||||
Æü | ·î | ²Ð | ¿å | ÌÚ | ¶â | ÅÚ |
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Á´¤Æ¥ê¥ó¥¯¥Õ¥ê¡¼¤Ç¤¹¡£ ¥³¡¼¥ÉÊҤϼ«Í³¤Ë»ÈÍѤ·¤Æ¤¤¤¿¤À¤¤¤Æ¹½¤¤¤Þ¤»¤ó¡£ ¤½¤Î¾¤Î¤â¤Î¤ÏGPL°·¤¤¤Ç¤¢¤ì¤Ð¤¢¤é¤æ¤ë»ÈÍѤ˴ؤ·¤Æʸ¶ç¤Ï¸À¤¤¤Þ¤»¤ó¡£ ¤Ê¤Ë¤«¤¢¤ì¤Ð²¼µ¥á¡¼¥ë¥¢¥É¥ì¥¹¤Ø¡£
¡Ö¥«¥Ã¥³¤Î¤Ê¤¤Lisp¡×¤ÎSRFI¤Ï¤¤Ã¤È¤³¤ì¤Î¤³¤È¤Ç¤¹¤Í¡£
SRFI-49: Indentation-sensitive syntax
http://srfi.schemers.org/srfi-49/srfi-49.html
¤¢¤¢¤½¤ì¤Ç¤¹¤½¤ì¤Ç¤¹¡£¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤·¤¿¡£