File: FAQ.ja

package info (click to toggle)
php5 5.6.33%2Bdfsg-0%2Bdeb8u1
  • links: PTS, VCS
  • area: main
  • in suites: jessie
  • size: 157,872 kB
  • sloc: ansic: 756,065; php: 22,030; sh: 12,311; cpp: 8,771; xml: 6,179; yacc: 1,564; exp: 1,514; makefile: 1,467; pascal: 1,147; awk: 538; perl: 315; sql: 22
file content (130 lines) | stat: -rw-r--r-- 3,540 bytes parent folder | download | duplicates (6)
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_STARTTHREAD_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_STARTTHREAD_ATOMIC_END
ǰϤޤ줿ʬμ¹ˡ¾Υåɤ˼¹Ըưޤ


(B) ץꥱб

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

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

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

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

// END