taken by brewbooks under CC BY-SA
PyPy Advent Calender�̑���ڂ̃o�g��������ė��܂����B�����͎��Ԃ��Ȃ��̂ŁA������ƁB
RPython�p�̃��C�u�����Arlib��T��`������2
rlib��T�����Ă݂�G���g���[�̑��e�ł��B�A�h�x���g�J�����_�[�̒��ł́Ashomah4a����clibffi�Ƃ������W���[�����g���āAC�ŏ����ꂽ���C�u�����̊����Ăяo���Ă��܂����B
���߂Ă̕������邩������Ȃ��̂ŁA�y���֘A���������炢���Ă݂܂��傤
- PyPy�́APython�ŏ����ꂽPython�C���^�v���^�ł���B
- Python�ŏ����ꂽ�Ƃ����Ă��ACPython�̏�Ŏ��s�����킯�ł͂Ȃ��ARPython Toolchain�Ƃ����c�[�����g����C��llvm�AJava�A.net�ɖ|��ăo�C�i���������B
- ���̃o�C�i�������p�ɋ@�\�𐧌�����Python��RPython�ł���B
- RPython�ŏ����ꂽ�v���O������translate.py�ŕϊ����邩�APython��Ŏ��s�ł���
- RPython��C�ɕϊ�����ƁA40�{���炢�����Ȃ���������肷��B
- RPython�̐���͂��Ȃ茵�����A�}�]���q�w���v���O���~���O����(MOPL)�ł���B
�ڂ����́A�A�h�x���g�J�����_�[�̑��̃G���g���[������Ɨǂ��Ǝv���܂��B
rlib�ɂ͉����܂܂��́H
rlib�ɂ��ẮAPyPy�̃h�L�������g���Q�l�ɂȂ�܂��B���O���牽������Ă���̂���������̂�����A�킩��ɂ����̂�����܂��B�l���܂����ׂĎ������킯�ł͂Ȃ��̂ŁE�E�E���Ȃ݂ɁApypy/pypy/rlib�ȉ��ɂ��郂�W���[����s�p�ӂ�import����ƁA�r���h�ł��Ȃ����W���[��������܂��̂ŗv���ӁB�����ǂ��Ȃ��Ă���̂��悭������Ȃ��̂ł����E�E�E
- listsort
- nonconst
- objectmodel
- rarithmetic
- rbigint
- rrandom
- rsocket
- streamio
- unroll
- parsing
RSocket���g���Ă݂�
�����rlib�̒�����Arsocket���g���āAecho�T�[�o�������Ă݂悤�Ǝv���܂��B
�͂��A�ł��܂���(3���N�b�L���O�̉��y��ϑz�ŕ⊮���Ă�������)�B
Python��socket�̈Ⴂ
�傫�ȏ����̗���Ɋւ��Ă͈Ⴂ�͂���܂���B
- gethostbyname()�̕Ԃ�l��rsocket.INETAddress�^�B
- RSocket.bind()��rsocket.INETAddress�^���t����BCPython�̂悤�Ƀ^�v���͎���Ă���Ȃ��B
- gethostbyname()�Ăяo�����͈�x��rsocket.INETAddress�̃I�u�W�F�N�g�Ɉ�x�Ƀ|�[�g�ԍ���IP�A�h���X���w��ł��Ȃ�
���ƁA�ׂ���PyPy�̖��Ƃ��āAwhile True:�ƃG���[�ɂȂ����̂ŁA�\���ɑ傫�ȃ��[�v�ɂ��Ă���܂��B
�V��ł݂�
�V��ł݂܂����B�N������ƃ|�[�g5000�ŗ����オ��̂ŁATelnet�łȂ��œ��͂���ƁA���͂����������Ԃ��Ă��܂��B
$ telnet localhost 5000 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. server : connection start hello world hello world
�����炪�T�[�o���̃��O�ł��B�n���ł��ˁB���݂܂���B
$ ./server_rsocket-c waiting for connection... connection start 'cv: 'hello world
�{���́A�������̃x���`�}�[�N��}�낤�Ǝv�����̂ł����A�����G���[�ɂȂ�̂ŁA�����Ă܂���B
CPython�ƌ݊������Ȃ��̂́A������Ǝg���ɂ����ȁA�Ǝv���̂ŁACPython�ƂȂ�ׂ������C���^�t�F�[�X�ɂȂ�悤�ɂ������C�u�����ł���肽���Ȃ��A�Ǝv���܂��B�����thread���W���[���Ɋւ��Ă��F�X�g���C���Ă����̂ł����A�܂�������Ɠ����Ƃ���܂łł��Ȃ������̂ŁA�����socket�����ł��B
���͒N���ȁH