2011�N12��21��

RPython���g����echo�T�[�o�����

Echo Rock and Observation Rock
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

posted by @shibukawa at 01:39 | Comment(215) | TrackBack(0) | ���L ͂ĂȃubN}[N - RPythongechoT[o
���̋L���ւ̃g���b�N�o�b�NURL
http://blog.sakura.ne.jp/tb/52187010
���u���O�I�[�i�[�����F�����g���b�N�o�b�N�̂ݕ\������܂��B

���̋L���ւ̃g���b�N�o�b�N
�����{�b�N�X

Twitter

www.flickr.com
This is a Flickr badge showing public photos and videos from shibukawa.yoshiki. Make your own badge here.
<< 2019�N02�� >>
�� �� �� �� �� �� �y
          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    
�ŋ߂̋L��
�J�e�S��
�ߋ����O
Powered by ̃uO