summaryrefslogtreecommitdiff
path: root/doc/FAQ.ja
blob: 1d65f9fb62753668353969fd76734381ad8cd543 (plain)
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
FAQ    2007/07/23

1. ��Ĺ�ޥå�

   onig_new()����ǡ�ONIG_OPTION_FIND_LONGEST���ץ����
   ����Ѥ���к�Ĺ�ޥå��ˤʤ롣


2. ����åɥ�����

   ����åɥ����դˤ���ˤϡ��ʲ���(A)��(B)�Τɤ��餫��Ԥʤ���
   �褤��

   (A) Oniguruma Layer

       oniguruma/regint.h����ΰʲ��Υޥ�����������롣

       USE_MULTI_THREAD_SYSTEM
       THREAD_ATOMIC_START
       THREAD_ATOMIC_END
       THREAD_PASS

       ���餫�ν����/��λ������ɬ�פǤ���С��ʲ��Υޥ�����������롣
       THREAD_SYSTEM_INIT
       THREAD_SYSTEM_END


   (B) Application Layer

       Ʊ����ʣ���Υ���åɤ�������ɽ�����֥������Ȥ�������롢
       �ޤ��ϲ������롢���Ȥ�ԤʤäƤϤʤ�ʤ���
       �����Υ��֥������Ȥ������̤Τ�ΤǤ��äƤ⡣

   �⤦�����ܤ��������ϡ����Υɥ�����Ȥ����
   "����åɥ����դ˴ؤ�����­"�˽񤤤Ƥ�������


3. CR + LF

   DOS�β���(CR(0x0c) + LF(0x0a)��Ϣ³)

   regenc.h����Ρ��ʲ�����ʬ��ͭ���ˤ��롣

     /* #define USE_CRNL_AS_LINE_TERMINATOR */


4. �᡼��󥰥ꥹ��

   ���֤˴ؤ���᡼��󥰥ꥹ�Ȥ�¸�ߤ��ʤ���

//END



����åɥ����դ˴ؤ�����­

����åɥ����դˤ���ˤϡ����̤Υ��ץꥱ����������ǹԤ�����
Oniguruma�饤�֥�����ǹԤ������ɤ��餫�����֤��Ȥ��Ǥ��ޤ���
(Oniguruma����Ѥ���¦���н褹�뤫��Oniguruma���н褵���뤫
�ɤ��餫�����ǹԤ�ɬ�פ�����Ȥ������ȤǤ���)

��������ˡ�ˤĤ��ơ��ʲ�(A)��(B)���������ޤ���

�ޥ������å�API�ϡ����줾��Υץ�åȥե�����ˤ�äƤ�
�ۤʤ�ޤ��Τǡ��ʲ�����������Ƕ���Ū�˲���Ƥ֤Τ���
�񤯤��Ȥ�̵���Ǥ����ºݤ˻��Ѥ����ޥ������å�API�ǡ�
�б����뵡ǽ�Τ�Τ���ꤷ�Ƥ���������

(A) Oniguruma������������

oniguruma/regint.h����ǰʲ��Υޥ�����������ƺƥ���ѥ��뤷�Ƥ���������

USE_MULTI_THREAD_SYSTEM

  ñ��ͭ���ˤ���Ф褤�Ǥ���

THREAD_ATOMIC_START
THREAD_ATOMIC_END

  THREAD_ATOMIC_START����THREAD_ATOMIC_END�ǰϤޤ줿
  �ץ������Υ�������ʬ�򤢤륹��åɤ��¹���ˡ�¾��
  ����åɤ˼¹Ը�����ư���ʤ����Ȥ��ݾ㤹���Τ����
  ���Ƥ���������
  (̾�����̤ꡢ�Ϥޤ줿��������ʬ�򥹥�åɥ��ȥߥå���
   ����Ȥ�����̣)

THREAD_PASS

  �����¹Ԥ�������åɤ��顢¾�Υ���åɤ˼¹Ը���Ѿ�
  �����Τ�����򤷤Ƥ���������(�ƥ������塼���ƤӽФ�
  �Ȥ�����̣)
  �б����뵡ǽ�������ʤ���С�������ˤ��Ƥ���������

(������)
Ruby�ξ�����ˤ���ȡ�
Ruby�ϼ�ʬ���Ȥ��ȼ��Υ���åɵ�ǽ��������Ƥ��ޤ���
���ε�ǽ����Ѥ���ȡ��ʲ��Τ褦���������Ф褤���Ȥ�
�ʤ�ޤ���

#define USE_MULTI_THREAD_SYSTEM
#define THREAD_SYSTEM_INIT
#define THREAD_SYSTEM_END
#define THREAD_ATOMIC_START       DEFER_INTS
#define THREAD_ATOMIC_END         ENABLE_INTS
#define THREAD_PASS               rb_thread_schedule()

Ruby�ξ�硢�����޳����ߤ���Ѥ��ơ�����åɤ��ڤ��ؤ���
�ԤäƤ��ޤ���DEFER_INTS�ϳ����ߥϥ�ɥ�μ¹Ԥ���Ū��
�ߤ�뤿��Υޥ����Ǥ���ENABLE_INTS�ޥ����dz����ߥϥ�ɥ�
�μ¹Ԥ���Ĥ��ޤ���
����ˤ�äơ�THREAD_ATOMIC_START����THREAD_ATOMIC_END
�ǰϤޤ줿��ʬ�μ¹���ˡ�¾�Υ���åɤ˼¹Ը�����ư���ޤ���


(B) ���ץꥱ������������б�������

�ʲ����ݾ㤹��褦�ˡ�����åɤμ¹Ԥ����椷�Ƥ���������

Ʊ����ʣ���Υ���åɤ�������ɽ�����֥������Ȥ�������롢�ޤ��ϲ������롢���Ȥ�
�ԤʤäƤϤʤ�ʤ��������Υ��֥������Ȥ������̤Τ�ΤǤ��äƤ⡣

onig_new(), onig_new_deluxe(), onig_free()�Τɤ줫�θƤӽФ���
ʣ���Υ���åɤ�Ʊ���˼¹Ԥ��뤳�Ȥ��򤱤Ƥ���������Ʊ���Ǥʤ�����̤ˤ��ޤ��ޤ���

����ϲ���ɬ�פʤΤ��Ȥ����ȡ�����ɽ�����֥������Ȥ��������
�����ǡ������Ƕ��̤˻��Ȥ���ơ��֥뤬����ޤ���
���Υơ��֥���Ф��ƤΥǡ�����Ͽ������ʣ���Υ���åɤǾ��ͤ���
�۾�ʾ��֤ˤʤ�ʤ������ɬ�פǤ���

// END