« July 2010 | Main | September 2010 »

August 31, 2010

��������ɾ��һ��Ԫ��

ȥ����ܹ�������Ŀ��ʵ�ֵ�һ����̬����ģ��Ľӿ���

ʵ���ϣ���Ϊ���ṩ�Ľӿ�Ҫ����һЩ������ɾ��һ��Ԫ�ء�

  void array_erase(struct array *, seqi iter);

ԭ�����������ɾ�� iter ���õ�Ԫ�ء�����������һ�����⣺ɾ����iter �Ƿ�Ӧ�ñ�����Ч��

��������˵��iter Ӧ���ڵ�����Ϻ���һ����Ч���á���ʵ��Ӧ���У�������Ҫ�ڵ��� array �Ĺ����У�ɾ������������Ԫ�ء��õ�����ʧЧ���������������ܲ����㡣

��Ϊ array ��ʵ����һ��˫����е���ʽʵ�֡���ǰ��ȡ��һ���ɣ�ɾ���������ʵ�����ǰѵ�ǰλ�õ�Ԫ�غ� array ͷ����Ԫ�ؽ�����Ȼ�� array ͷ pop ��ȥ��

������iter ����ָ��ԭ�أ�ֻ��ָ���ֵ���Ѿ���������Ԫ�ء�������ѭ������Լ�����ȥ��

���췢��һ�����⣬��� iter һ��ʼ��ָ��ͷ������ô���� pop ������iter ���DZ����ó���Ч�ˡ��ⲻ��һ�� bug ������ʵ��Ч���dz����ᡣ˼����һ�£������޸� array_erase �Ķ��塣

array_erase �µ���Ϊ������ɣ�ɾ�� iter ���õ�Ԫ�أ����� iter ����ƶ���������Ѿ���β�������ɿ����ã�

btw, C++ �ڴ����������ʱ�� remove �㷨������ɾ�����������ǰѷ���������Ԫ�ؽ���������β�����ٵ��� erase ��������ɾ����Ҳ��Ϊ�˻ر��������⡣�����Ҳ�̫ϲ�� remove/remove_if �����÷����ں���ʽ�����У��Ǻ���Ȼ�����Ժ���ʽ���֧�ֲ���� C++ �У�ʹ�����ŵ� template �������Ͳ�̫����ϲ���ˡ�

����Ϸ�����в�����Ƶ

����ͬѧ�����ǵ���Ϸ���˶�Ƭͷ��Ƶ����Ҫ�ӵ���Ʒ��ȥʱ���ŷ������ǵ������Ȼû���ṩ��Ƶ���ŵĹ��ܡ��������������Դ��һ��ѣ���������������С��һ������û�뵽����������һ����Ÿ㶨��

��һ�����ǿ��� License ������õ�������� ffmpeg �� GPL �ģ����ʺ���������ҵӦ�á���Ȼ��һ���ֹ��ܿ����� LGPL �ķ�ʽʹ�ã�������������Ҳ���鷳һ���������һ�»������ա��ҿɲ���ѧ����Ӱ���� QQ Player �������������

���տ���������Ȼû̫���ѡ�񡣻��� google �� vp8 ��á�License ��Ϊ���ɣ����Ծ�ȥ������һ�� libvpx �����°����á�

README �е��Ͼɣ�����˵�� Windows �±������ cygwin ���Һ��������� cygwin �� build ��һ�ݳ������������Ǹ� libvpx.a �����㸴�Ƶ� Mingw ��ȥ�á����� Mingw ������ȴ�������⣬ȱ�� pthread �⡣mingw32 �Dz��������ģ���Ȼ����������һ�� pthread-win32 �����ǿ��˼��ۣ�����һ���� dll �����ˣ���ԥ��һ�»���û�������ԡ�

���»�ͷ�о���һ�� libvpx �� source ������������һ��Ҫʹ�� pthread �� api ��ò���� windows �»�����ʹ�� win32 ԭ�� api ����������Ϊ vs ����׼���ġ��ҹ����� mingw Ҳ�ܸ㶨������װ�˷� msys ����һ�£���Ȼ ok��

����д����߲���������Ҫһ���� vp8 ��ʽѹ���������ļ�������һ�£� libvpx ����� ivfenc �������� yuv ��ʽ������� ivf ��ʽ���� libvpx ��ҳ��û���� api �ĵ���ֻ��ȥ�����Դ��� simple decode �Ĵ��롣����һ�۷��ֺܺ����⣬���������Ǻܼ򵥵ġ�ֻ����������õ� ivf �ļ���ô��������ͷʹ��

yuv ��ʽ�ƺ���һ�ֲ�ѹ���� YUV ɫ�ʿռ��λͼ���С�ffmpeg �������ɡ�������һ�� ffmpeg �������������������������Ƶ������� .yuv �ļ���Ȼ������ ivfenc ת������ .ivf ��

�����벥��һ��ת���ijɹ������ȡ�google ��һ�£�û��ʲô�ֳɵ��������Բ���֮������֮�£�ֻ����ͷ��д���ų���д��������ô�����ԣ��dz����ơ�

��ʼ�����Dz��� .ivf ѹ�����ˡ������������й� jpeg �ı���뾭�飬������е�о����²⵽������ yuv �ļ����ԡ�����һ�£�ԭ�� .yuv �ļ�Ӧ��ֻ��һ�������������������û���κθ�ʽ��Ϣ��������Ƶ��֡�ʣ���Ƶ�ijߴ�ȵȡ��������Ϻ����ҵ���ν .yuv �IJ����������� ivfenc ��ѹ��ʱҲ������������ָ����Ƶ�Ĵ�С����Ϊ .yuv ���������������û�����Ϣ��һ��ʼ���뵱Ȼ����Ϊ ivfenc �����������ָ���ߴ������Դ�����ţ������ֹ�������һ����ƵӦ���е�֡����ʵ��ѹ����֡�����ز������ŷ������⡣

ͬ����.ivf Ҳ������һͼ��ѹ������������������Ƶ�ļ�������Ҳû����ν ivf �� codec �ˡ���������Ƶ�ļ���ʽ����Ҫ�����������Ϣ�Լ���Ƶ�����ݵȡ�

��������Щ��֪������ô���ˡ��� ffmpeg ���� .yuv ����ʱ�����Լ��� -f yuv4mpegpipe ����ָ���� yuv ��Ϣ������ָ�� -pix_fmts Ϊ yuv420p ������� ivfenc �ϵ� yuv ��ʽ����yuv �ж�����Ϸ�ʽ���� jpeg ��ѹ����Ҳ����ˣ���֮��ʹ�� ivfenc ʱָ����ȷ�Ŀ��ߣ�����������Ч�� ivf �ļ��ˡ�


������Ƶ��ʱ��ͨ����Ҫ���������ݴ� YUV ת�� RGB �����������ʮ��ǰ�� MMX �Ż����������ٷ��������ü��ɡ�C ���Ż��汾Ҳ���պϡ����컹 google ��һƪ paper ר��̸����Ż��ġ�����Ȥ��ͬѧ���Բο�һ�¡�

������ 3d engine �ﻹ�и��õķ������������� GPU ��ֻ��ҪΪ YUV ������һ�ŵ�ͨ����ͼ��Ȼ���� ps ����ת�����ɡ�֮���Բ���һ����ͨ����ͼ�����£�����ΪĬ�ϵ� ivf չ�������ݣ�YUV �� 4:1:1 ����ġ�

��Ȼ����������Ƶ�Ļ���Ҳ������ YUV ��ʽ�ĸ��DZ����������� DirectX ������ʵ�֣��һ������ OpenGL �����ô�ɡ�


����һ��ʼ��ͬѧ������Ƕһ��ý�岥�������� Flash player �Ŀؼ��� Engine �С��Һܲ�Ը�⿼�����ַ������������ˡ���ʵ�ÿ�Դ��ķ�����ʵ�����ĵ�����Ҳû��Ԥ��Ĵ�

August 28, 2010

��һ�� Bug

������ĩ�����ε���ȴû���ˣ������绰ԤԼ������û���������Ҿͱ����칫�Ҳ�������д�Ĵ��롣

���ܵĹ�����Ҫ�������һ���µİ���ʽ��Ȼ��������ǰ��ʱ��ʵ�ֵ������ļ�ϵͳ�С�

���������ǰ��ʵ�ֵ� zipfs ������֮��������������Ҳ�ܿ졣����ǰ��û��ϸ���ԡ�����Ƚ��У�������˼��鸴�ӵIJ������ݣ��о������˸��ֱ߽������һ���Թ�Ȼ������ Bug ��

��� Bug �е��������壬�����ڽ����֮�󣬾�����¼һ�¡�


�� zip ��ʽһ�����ҵİ���ʽ�ڲ���ƽ̹�ṹ�ģ�û�з�Ŀ¼�������ļ����DZ����������·�����ۺ���һ�𡣱����������������ļ���

bar.txt
bar/bar.txt
bar/foo.txt
foo/bar.txt
foo/foo.txt
foobar.txt

����б��Ҿ��������������ڼ�����ʱ����Կ�һ�㡣������ļ������Զ��ּ�����

�ҵ������ļ�ϵͳ�Ŀ��Ҫ��ÿ�� fs ��Ҫ�ṩ����Ŀ¼������������������������ڣ������Ҫ���� bar Ŀ¼������Ҫ���η��� bar.txt foo.txt �������Ҫ���� / ���򷵻� bar.txt bar foo foobar.txt ��

������ api ��ʽ�����õ�һ�� C ���������� enum_next �����ָ���ʱ�򣬷��ص�һ�����ǿ�ָ���ʱ�򣬷�����һ�������������һ��򷵻ؿա�

��� api ��ʵ�������ܵ�Ҫ�󲢲���̫�ߡ���Ϊ�ڿ���ڣ��Ա������ cache ����һ�� hash ���ڣ��´β�ѯ��ʱ���Dz����ٴε��õġ�

�Ҷ��������ɵĻ�ϰ�ߣ�����ֱ�����ų��ޱ��İ����Ƚϵķ������������������Ҳ���������ˣ������Dz����˶��ֲ��ң���������Ե���߼�������һ������������

������ʱ����Ҫ�����м����Ŀ¼����ļ����� enum_next ��ʱ�����Ҫ�����������������ʱ���ٴ�ʹ��һ�ζ��ֲ��ҡ����ң����������������Ҫ���ֲ��ҷ���һ�����ݣ�������һ���ġ�

���ֲ�������£��� C++ �� algorithm ģ���У����� binary_search ��������µġ����������Ҫ�ҵ�һ�����䣬����Ҫ�� lower_bound �� upper_bound ������ C ��������� bsearch ����������ʱ��̫�����û�ж�Ӧ�� lower_bound �Ⱥ������������Ĺ��ܡ�

�����ҵĻ�ϰ�ߣ������ҵ�һ��Ӧ�����Լ���д��β��Ҵ��롣�Ҷ��Լ��ı��������dz����ţ�������ȫ����������������ҾͲ���Ҫȥ��д�Ǹ��Ƚ��õĻص������ˡ��������԰��������Ӳ�������һ����ѭ�����Ч����ɡ�

��ϧ���ջ��dz��� bug �������dz��ڶ��ֲ��ҵ�ѭ���ϣ��������뵱Ȼ����Ϊ��һ��Ŀ¼�µ��ļ����������������Ŀ¼����ļ���һ������ǰ�档Ȼ����Ĭ�����ǰ���£�д��һ������롣�������ˣ���ͷ�ֻ����Լ��㷨ʵ������ǰ�����һ����Сʱ :( ����������������У�bar.txt �������� bar/bar.txt ��ǰ�档


��ʵ��� bug ����ȫ�����ڱ�д��ʱ�����ġ��ҷ������ྭ�����

  1. �����Ż������������ȶ����Ȼ�����ȵ㣬�������Ե��Ż�����Ϊ���ǿ���˳�����ġ���Ȼ��Զ����������������ʹ��ij���ض������£���������ȵ㣩

  2. û�о����ܵķֽ��㷨����������������㹻�򵥣�����Ҫ�ֵ�̫ϸ�����ܷ����˼������뾡�����ٲ���Ҫ�IJ�Σ�

  3. û��ʹ���ֳɵ��㷨�⡣��һ��� C �����ⷽ�����Ե����йء���������� C++ ��������Ҳ��ȽϷ�����Щ��Ҫ�Զ���ȽϺ������㷨ģ�塣

August 26, 2010

��Ϸ��Դ��ѹ��������벹������

9 ��ǰ���������������Ϸ����Դ���Լ������������ݸ�ʽ��

���������Ŀ���ǣ�������������ٶ�λ��Դ���ڵ��ļ���������¡�ÿ�θ��¾����ܵĽ�Լ��������Щ��������Ȼ������Ŀ���޲����ĸĽ�����Դ���ĸ�ʽ���������ϲ�û���ر����޸ġ�

һ��ʼ����ֱ�Ӱ���Ҫ������ļ��������������ļ�ĩβ�����ļ�������������Ϊ�˿��ٶ�λ�ļ������ļ������� hash ������������ hash ֱֵ�Ӷ�λ�ļ�������Դ���ﲢû�д����ļ�����Ϣ�����DZ�����һ������� index �ļ��С���� index �ļ��������ⷢ��������ֱ�Ӷ���Դ��������޷�׼ȷ��ԭ�ļ����ġ�

btw, ��ѩ�� mpq �ļ�Ҳ�������ƴ����ġ�������²���ļ���������Ҳ���Ѷ��ļ�����ԭ���������� mpq ������߶�����ض���Ϸ����һ��������ļ����б���

������������Ϸ Client �����籩ѩ�� MPQ �ļ�����ͬ�����ǵİ���ʽ���ļ����ļ�֮���������пն��ġ����ǿ��ǵ���Դ���ļ����Ƚϴ�����ô�ͳ�Ĵ�����������ķ�ʽ���Ӱ���ɾ��һ���ļ��������´�����ƶ��ڲ����ݡ�����Ҹ�����Դ��ʱ�򣬾ͻ��д������ļ� IO ���������� WOW �� SC2 �ڸ��µ�ʱ�����ظ��°���ʱ������ֻռ��������ʱ���һС���֣��󲿷�ʱ�仨�ڰѲ����������е���Դ���ϡ�

���Ƶ�����¿ͻ��ˣ������û�������к�����ĵȴ���

���Ե������ǵ�������أ�������ɾ�������ļ�ʱ�������ƶ���Դ���ڵ����ݣ����ǰѿռ�����������������ӵ��ļ���֮С�����ظ���������ռ䡣������ò��ϣ����˷���������е����ڴ�����㷨��ʱ����ˣ���Դ���ڻ���һЩ�ն�����Ҳ�ǿ��Խ��ܵġ�

ͬʱ��������һ����ʽ�����µ���Դ���Ǿ��ǽ���Ҫ���µ��ļ��������������ͬ�ļ�������׺��ͬ���������û�Ӳ���ϡ���Ϸ�����ڶ�ȡ��Դ��ʱ�������ڸ��µ���Դ���ڼ����������ʽ�� Id soft �� Quake/Doom ϵ����Ҳ�в��á�

Ϊ�˱�֤�û����������ٶȡ����ǵIJ����в����DZ������Դ���ڵ�С�ļ��������ڿ���������������ʽ���´���������ļ���ʵ��������Դ���� diff �ļ�������ǰ�������Ĵ����������� 2 ���� diff �ļ���ʵ����������С�������ijЩ�ļ��ľֲ��޸ģ���������Դ����Ӱ���С��

�ڹ�˾���к�����ͬ�����ɹ����ַ�ʽ��������Լ��ٲ�����������ò��󡣷��������������������������������ʱ�䡣����ֱ���ڲ����з�����µ�С�ļ���Ȼ�����������û�������С�ļ�Ϊ��λ�� patching ��

��ȷ��2 ���� diff ���������ޣ����ںܶ���Ŀ�����ı����ݸ�ʽ����С���޸ľͻ�Ӱ�������ļ��� diff ���������ԭʼ�����Ҳ������ʷԭ����Ϊ 10 ��ǰӲ�� I/O �ٶȺ������������������ʱ����Ҫʵ���޷���صĴ��ͼ�����Ե�ͼ�ļ��ĸ�ʽ�Ǿ����ر���Ƶġ����ַ�ʽ���ʺϵ�ͼ�ļ����޸ĺ͸��¡����⣬����δѹ����ͼƬ�ļ��ĸ���Ҳ�������塣


�ܽ��������ƺ���ϣ�����������ж���Դ����ʽ��һ���ĸĽ���

�����Ǽ������õ�ѹ����ԭ�и�ʽ��ֻ������������ѹ���ġ���������Ҫѹ�������ϲ�ģ��ȥ������ô�����������еĵ�ͼ�ļ���Ҫ��������йء�������������Ҳ�е��ϵ�������ÿ��С�ļ�ͳһ��ѹ����2 ���� diff �ͼ�����Ч�ˡ�

���ϣ�����ļ�ϵͳ�ķ�ʽ��������Դ���������Ǽ򵥵Ľ��ļ������������Ѵ��ļ��ֿ飬������ FAT ������ʽ���������ļ���ÿ��������Ե���ѡ��ѹ����ѹ������������ѹ�����ݣ��ֿ����ṩ�ļ�������ʵ����������ܹ������ʵ�����ݰ���Ƕ�ף�

����Դ����֧�����ӹ��ܡ�

�����ڣ����ǿ�����������Դ���������Ḵ�ӵ����ù�ϵ�����Ǹ����ж�����һ�ݡ�����ģ���ļ����õ���ͼ������������ģ���ļ���Ŀ¼�¡������ڿ����ںܷ��������Щ���ݡ������ʱ�����ԱȽ����������ļ�����������ͬ���ļ��޳���ֻ����һ�����ӡ�ͬʱ����Ҳ��ʶ������ù�ϵ��ͬ������Դֻ����һ�Ρ�

����������������⣬������Ա����������Ч�ʵ�ȷ��Ҫ���ǡ���ʵ�ڿ����ڣ��и������ٵ��������̣�Ҳ����ÿ�չ�������Ȼ��ԭ�з�ʽҲ�����෽���ӿ������������ٶȣ�����Ԥ�ȼ��������ļ��� md5 ֵ�����������ӿ�������������ķ����ٶȣ�����ϣ����������ʱֱ�����ɲ����ļ�����������������ÿ��С�ļ��� diff ��Ϣ������������һ�� patch ���ߣ�����������ȥ��

��� patch ���ߵĹ������̿����ǴӾɵİ��г�ȡ����Ҫ patch ��С�ļ����Ͳ����е� diff ��Ϣ�ϲ����õ�һ����Ҫ���µİ���Ȼ�󽫾ɰ�����ЩС�ļ�ɾ��������ǰѹ�����ն�������¾�����������������

ѹ���ն���������̻�ռ���û�����һЩ�ļ� IO ʱ�䡣�򲹶����ٶȻ���һЩ�������Ҿ���Ӱ�첻��̫����Ϊ�������µ��ļ��������ڷ�����Դ����ĩβ��ÿ�θ��¶���ȡ�����������ӵ�ĩβ��������ѹ���ն�ʱ��Ҫ���Ƶ������кܴ���Ტ���ࡣ

������Ʋ������ĸ�ʽ��Ҳ����ɾ�һ�㡣

August 18, 2010

�������� protobuf ��

����ϸ���������죬�� lua ��� protobuf ��������һ�¡���Ҫ����������������

  1. protobuf �����ĸ�ʽ��google ���������ġ�����Ϊ google.protobuf.descriptor �������Լ�ʵ�ֵ� parser ͼ���㣬�����Լ����м佻����ʽ��Ϊ���պ��ͨ�ã���΢�޸���һ�£����������ڹٷ���ͬ�Ľṹ�����������������½�������Ӧ�ü����Ը��á�

  2. һ��ʼʵ�ֵ� api ��Ȼ���ܷdz��á������򵥲��ԣ��� python ��� 30~40 ������ C++ �������൱��������Ϣ��ʽ���ӣ�ʵ�����������鷳�����������˵�С��װ����Ϊÿ����Ϣ����һ�Ժ�����������������ͽ����������Ϣ��ӳ�䵽 lua �� table �ṹ�ϡ�lua ���ɴ��빩�Լ����õļ����� lua �����㷺ʹ�á����� kepler ��Ŀ����ʹ�� lua �����ú̵ܶĴ���������ɺܸ��ӵĹ�������ʧ���ܡ��������װ��ֻ�� 100 �д������ң�һ��������Ϊ�˽����Ϣչ��ʱ�еݹ鶨���������������̡���message ����һЩ field ���������Լ�������һ�ֲ�������÷����� protobuf �ƺ���û�оܾ������÷���

�����ܷdz���Ҫ�ij��ϣ�ʹ��ԭʼ�� api �Լ򵥵����ݰ����������� lua-jit ��Ӧ�ÿ��Դﵽ�� C ��������ܡ�����һЩ����£���Ҫ����Ƚϸ��ӵ����ݽṹ�������л������ʱ���÷�װ���� api �ͺ��ˡ�


�����컹��Щ�뷨������һ������ rings �Ķ� state �⣬�� rings ��ͬ����ϣ�� states �佻�����ݸ�Ϊ��Ч��

������һ�� lua ��Դ���룬�Ҿ��������Ķ��Ϳ����ö�� states �乲��һ�� string table ��������states �䴫�� string ���ܴ� O(n) ��Ϊ O(1) ��

���⣬���� debug hook �� coroutine ���ƣ������� lua ��������һС��Ƭ�κ��Զ����ؿ���Ȩ�������ڲ��޸� lua ����֮ǰ��ʱ��������ô�ɡ�������Ϊ yield ��һЩ���ơ��Ƚ��ڴ� lua 5.2 �ķ������Ժ� yield �����ƻ��ٺܶࡣ

ʹ�ö� states �Գ������еķ���������dz��а��������Իر����಻������ɵ��ڴ�й¶���⡣

August 11, 2010

Proto Buffers in Lua

Google �� Jeff Dean ͬѧ˵����Ʒֲ�ʽϵͳһ��Ҫ�� Protocol Description Language��

Google Proto Buffers ���������ڣ�������һ�������� PDL ��protobuffers ��ʵ�ַ�������ô��Ҫ�ˡ�

�⼸����һֱ�ڵ��� lua �µ� proto buffers ��֧�֡�һֱ��˼���������Ľӿڲ������ʺ� lua ʹ�õġ�

����������µ� proto buffers ʵ�֣����ǽ���������ݿ�չ���ɱ������Ե����ݽṹ������ C/C++ ���������Ч����ʽ�������ڶ�̬���ԣ��Ǿ�δ���ˡ���Ȼ google Ϊ python ���� proto buffers �Ĺٷ�ʵ��Ҳ����ˣ�������Ȼ�뿼��һ�£��Ƿ��и���Ч�ķ�ʽ��������¡�

lua �����Ч�����ݴ����������������Ե�ջ����Ȼ table Ҳ�㹻�죬�����������ε� table �������׳�Ϊ���յ�����ƿ����btw, google �� js V8 ���棬�ڲ��ֳ��ϱ��ֵı� lua jit ��Ϊ��ɫ���ܴ�̶�������Ϊ������ļӿ��� table �IJ�ѯ���⼸�����Ϊ���н����Ͷ�̬���Ե������ȵ㡣���Ҳ�����������ʱ table ������� gc ��ɽϴ�ĸ�������ô���ܲ����ҵ�һ�ַ�ʽ���Իر��� lua �й��츴�����ݽṹ�������ܷ����ʹ���� proto buffers ��������Ľṹ�������أ�

�һ������������ʵ����һ�� lua proto buffers �Ŀ⣬ȫ������ C ������ɵġ������ṩ�� lua �Ľӿ�ֻ���ĸ���

  1. load �ܼ���һ�� proto buffers ��Ԫ���ݣ���Э�鱾����һ��������������һ�� C ���� (userdata) ���ص� lua state �С���� C ���������һ�� proto ������Ϣ���������е��ַ�����Ϣ�⣬ȫ��������һ���������ڴ��С���Ϊ lua �� userdata ������Ҫ�κ� gc �������������õ��ַ���ȫ����¼����� userdata �Ļ������У��� C ������ֻ��¼�ַ����������š������ʽ���Ժܴ����� lua ����ʱ���ַ����������ܡ�

  2. pattern ����Ϊij�� message ����һ��ģʽ���� (���� C ����)�����ģʽ����������������������ݡ�pattern �ĸ�����������ĺ��ĸ��������� pattern �������������ݡ�pattern ���������ɱȽ�����������ʵ��Ӧ���У�������һ���Եģ�������Ҫ��ÿ�����ݰ�����ʱ���������� pattern ����һЩС�ֽţ��Ϳ����� lua ��������һ���ļ򵥷�װ�����ַ�������ʽ�� cache ������ pattern ��

  3. unpack ���Զ�һ�����ݿ���н��������unpack �����ṩ���ݿ��Լ���Ӧ�� pattern �������ᰴ pattern ��ָʾ�ѽṹ�����ݽ⵽ջ�ϡ����ַ�ʽ�ر���ÿ�ν����������ʱ�� table ����Ȼ�����ʹ���߻���ϲ������һ�� table ���������ݿ��е����ݽṹ�Ļ�����Ȼ����ͨ������ lua ��װ�������쵽��

  4. pack ���Ը���һ�� pattern �����ݿ�����ͬ����ջ��������Դ������Ҫ������ʱ�� table ���ڴ����


�����������֮ǰ������һЩ���������� Google Proto Buffers �����Э�������ļ���������˵������Ϊ��Э�鶨�弰���������� Proto Buffers �ĺ��ģ�����ʵ���Լ������Ʊ���������Ǵ�Ҫ�Ķ�����

google �ṩ�˿�Դ���ߣ����ı�Э�������ļ������ proto buffers ������ʽ�Ľṹ�����ݡ������˺�Ư����Ҳ�����˶�Э�鱾���Ľ��������������׿������Ʊ��룬����������Э���Ծ٣����������̺;��������ʽ�޹صĻ�������Ȥ���������Լ���ʵ���ı�Э�������Ľ�����

������ lua �������������̫�ѣ�proto buffers ���������Ҳ�൱�򵥣����׽������Ҵ�Լд�� 100 ���� lua ��������ɻ����������������Ȼ������ǿ��� lpeg ������˵��PEG �Ǹ��൱ǿ��Ķ�����ǿ���Ƽ�ûѧ����ͬѧ�Ǻú�ѧϰһ�¡���˳�ֵĻ���Ϊ�Լ�����Ŀ���� DSL �������練�ơ�

����������ʵ�����й��̷dz����أ�������ֻ������һ����С�� C ���ݶ���������һ����Ȥ�ķ�����������£�������һ�� lua State �����Э��Ľ�������������� lua State �ܹ������ĵ��ڴ��������Ԥ��������̫�󣨸� proto �ļ��Ĺ�ģ�Լ����Ӷ��йأ���������Ϊ��������� State ������һ��ֻ���䲻�ͷŵ��ڴ������������ڴ�����������ڶ�����ϵͳ�ڴ�ҳ�ϣ��������һ�λ��ա�������ÿ�ν���һ��Э���ļ���ֻ��Ҫ����һЩ��ʱ�ڴ棬���ڽ�������ܹ����Ըɾ�������ۼ�����ͳ����һ��һ�����մ�Լ 70K �� C ���ݶ��󣬴������������˴�Լ 1.5M �ڴ档

���ʹ�ö�� lua State Ӧ����һ�����õ�ϰ�ߡ������ڽϴ��ģ����Ҫ�������г����У��Ѹ���ģ����䵽������ lua State �ռ������У�����ʹ������ɺ��ڴ�õ�׼ȷ�Ļ��ա�


�⼸������������������ܳ��������ԾͲ�ϸд�ˡ��ȳ�����ٿ��ǿ�Դ��

ps. �� lua ���������ЩС��ģʽ������������ݴ������ƺ���һ�������е�������lua �Դ����ַ���ƥ����ˣ�cosmo Ҳ�Ǹ���Ȥ��С���⣻lpeg Ҳ�ṩһ�� The re Module ��ģ���������ʽ���﷨���ȵ���Щ��������Ƴ���� proto buffers �� pattern ��

August 06, 2010

Windows �µ�������һ��

��������������д��һ��С����Ī������IJ������С��� gdb ����û�������쳣��ֱ���˳����� main ������û�н���ע�͵�������������ɡ��� gdb �� 6.3 ������ 6.8 ���ٵ��ԣ�������һ����֪�����쳣��

�ְѴ���ע�͸ɾ������������ˡ���ϸ������һ�£����ע�͵��Ĵ����� link �� lua �Ŀ⡣�� lua �Ŀ������� lua �Ķ�̬�⡣��������ʱ��������Ϊû���ҵ� dll ���˳���

�� lua �� dll �ӵ� path �о������ˡ�������ֵ��ǣ�ϵͳ��û�е����Ի�����ʾ����ϸ����һ�£�ԭ������û�д� explore ��������̨�������ڱ༭���������ģ������DZ༭������û��д�ã��ѱ�Ӧ��ϵͳ������ȱ�� dll �ĶԻ��������ˡ�

Soloist ͬѧ˵����Ҳ������һ�� Total Commander �Ե�ȱ�� dll �޷���������ĶԻ��򡣼�¼һ��������⣬��������������ȥ�İ�Сʱ��