'10幎代ã®Rubyã³ã¢çšèªé
ãŒã幎代ã®ãã€ã¯ããšããŒãºè²ã®æ¬ã«æžããŠãããã
IRC (ããããŒãããŒ) ãæé€ãã£ã³ãã«ããšããè¡åŠãã£ã³ãã«ããšãåŒã°ãããã»ãšãã©ã®ã¿ã€ãã³ã°ã§æ¥æ¬å²ãäžæ¬§å²ã仿å²ãè±èªå²ã®è©±ãããŠãããããŸã«Rubyã®è©±é¡ã«ãªããšéã«éåæãâŠ
ISeq (ãããã) RubyVM::InstructionSequence ã®ããšãé·ãã®ã§èª°ãæ£åŒåç§°ã§åŒãŒããšããªãã
rubyã¹ã¯ãªããã®ããã€ããã衚çŸåã®äžã§ãã£ãšãäœã¬ãã«ãªè¡šçŸãçŸåšãrubyã¹ã¯ãªããããISeqãçæããæ©èœã¯å
¬éãããŠãããããã®ããã«ããŠçæããISeqãå®è¡ããæ©èœã¯ã»ãã¥ãªãã£äžã®æžå¿µãã(äœãããŠã¯ããã)å°å°ãããŠãããâ AST
ID (ããã§ããŒ) åãrubyã¬ãã«ã§ããSymbolã«ã»ãŒçžåœãããã®(ã¡ãã£ãšã ãéã)ãobjcããã°ã©ããŒã¯ãããèŠãŠVALUEãšæ··ä¹±ããªãããã«ã
assn (ãããã) IRCã§åœŒããã¢ãµã·ã³ãšåŒãã§ãããã®ã¯ææ®ºè
ã®ããšã§ã¯ãªãã¢ãœã·ãšãŒã·ã§ã³ã®ç¥ãªã®ã§ãã³ã£ããããªãããšãããŸã«ãžã£ãŒãŽã³ã§ããããšãå¿ããŠIRCã®å€ã§ã䜿ã£ãŠããŸããéããªããŠæ¥ãããã
Qundef (ããã§ãµ) Qã¯é»åãå®è£
äžã¯Qtrue, Qfalse, QnilãšäžŠã¶ruby第4ã®å³å€å®æ°ã ããå®è£
詳现ãšããŠé ãªã«è¡šèå°ã«åºãŠããããšãæãã§ãããããrubyã¹ã¯ãªããããèŠãããããšã¯éåžžã«ãŸãã§ãããèŠããããšãã«ã¯ã»ãŒééããªããã°ãªã®ã§ããã°å ±åãããã
Emacs (ããŒãŸãã) éå»ã®ããæç¹ã«ãããŠrubyã¯Emacs Lispã§ã©ããŸã§å€æ
ãªææ³ãåŠçã§ãããã®ææŠãšããŠäœããããšããäºå®ããã[1]ãçŸåšã§ãEmacsäžã§ã¯æ£ããã·ã³ã¿ãã¯ã¹ãã€ã©ã€ãããããä»ã®ãšãã£ã¿ãŒã§ã¯ãããªãããšããã±ãŒã¹ã¯ãŸãŸèŠåãããã(ç¹ã«ãã¹ããããã¢ããã¥ã¡ã³ãã鬌é)ãrubyã®ãžããªææ³ã¯ãããŠãEmacsã®ãããšæã£ãŠããã
1.8 (ãã£ãŠãã¯ã¡) èŒãããå
é§è
ã«ããŠçŸåšãŸã§èœãšã圱ã倧ããããªãçŸåšã®rubyã«å¯Ÿãã1.8ã«çžåœããããžã·ã§ã³ãšããŠã1.8ã«ã¯Perlãšããååšããã£ãã
iter (ããŠããŒããŒ) rubyãåºãã°ããã®ãããããªæ©èœãããèšèªã¯ããªããã€ããŒãªãã®ã«éãããŠããããä»ãšãªã£ãŠã¯C++ã§ããã©ã ããªãã©ã«æ§æããããrubyã®ãããªã€ãã¬ãŒã¿ãŒãšããã¢ã€ãã£ã¢ã¯ååã«æ¥çã«æµžéãããšãããã ãããå¿
ãããrubyã ãã®å瞟ã§ã¯ãªããšã¯æããããŸã£ããrubyãšç¡é¢ä¿ã£ãŠããšããªãã¯ãã ã
Windows (ãããã©ãã) ãŠãå®ã®ãšããWindowså°çšã¢ããªã§ããªãã«ãé¢ãããããã»ã©åãå
¥ããŠWindows察å¿ããªãããŠãããã®ã£ãŠããªããªãèŠãªãããæ¬åœã«ãé ãäžãããŸãããã ããŠãŒã¶ãŒå®çŸ©ããã©ã€ãã©ãªãšãã§å¯Ÿå¿ãæ®å¿µãªäºããã£ãŠããã®ããçµå±ç·äœãšããŠã¯æ®å¿µãªããšã«ãªã£ãŠããŸãã£ãŠå Žåã¯ãŸãŸèŠåããããã®ã§ããã®ç¹æ®å¿µã
è±èª (ããã) ãããã®å
±éèªã
Encoding (ããããŒã§ããã) æœè±¡æŠå¿µãæåãã®æœè±¡çãªãåãã§ãããæååããå
·è±¡ãšããŠããããã¿ãŒã³ã«èœãšã蟌ãããã®ç¬Šå·åæ¹åŒãã«rubyãååãã€ãããã®ãrubyã§ã¯ãã®ãããªç¬Šå·åãäžæã«å®ãããæååããšã«ããããå¥ã®ç¬Šå·åã§ããããšã蚱容ããŠãããããããã®ãCSIãšããããã ã
ãªãASCIIãšãã笊å·åæ¹åŒãšã®éã«ããçš®ã®äºææ§ããªããããªç¬Šå·åã¯rubyã§ã¯äºçŽåžæ°ãšããŠå·®å¥ãããŠããã
configure.in (ããŒãšãããµ) ãããç§»æ€æ§ã確èªããããã°ã©ã (C)ããçæããããã°ã©ã (sh)ããçæããããã°ã©ã (M4)ããšãããå°ã
åžžè»ãéžããå¶ã¿ããããã¯ç©¢ããäžèº«ã«åŒãåããŠãããžã§ã¯ãã®ä»ã®éšåãæž
ãä¿ã£ãŠãããŠãããšãèšããã
Makefile.am (ããŒãšããŒã) rubyã«ã¯ãªããçç±ã¯automakeãçæããMakefileãgmakeäŸåã ãããéã«ãããšãrubyã®Makefile.inã¯é©ãã¹ãããšã«ãgmakeã«ãbmakeã«ãnmakeã«ãæå¹ãªãšãŠãããŒã¿ãã«ãªãã®ã§ããã
PoLS (ãã©ããããããããããã) Principle of Least Surprise, é©ãæå°ã®ååãäžææããèšèšæ¹éãšããŠèšåãããŠããããããŸãã«èª°ã圌ãã宿ã«äœ¿ã£ãŠããŸã£ãã®ã§çŸåšã¯å«ãããŠãããå°ãªããšãã誰ã«ãšã£ãŠã®é©ãã?ããšããéšåã®ææ§ããææãããŠããã
objspace (ãã¶ããããšããºãŒã) â heap
æ¡åŒµã©ã€ãã©ãªãŒ (ããã¡ãã -) ãªãã ããã ã§rubyã®èšèšè
ã¯Cããã°ã©ããŒã ã£ããšããããšã§ãããçŸåšã®rubyã¯Cã§æ¡åŒµã©ã€ãã©ãªãŒãæžãããšã容æã«ãªãããšãäž»çŒãšããŠèšèšãããŠãããäž»çŒãã§ãããCãã諊ããã°ããããããšããããéšåãããéãããããã¯ããã·ã³ãã«ã«ãåèšèšã§ããããããããã¯ãªã£ãŠããªããå°ã
ã®é床ããããCã§æ¡åŒµã©ã€ãã©ãªãŒãæžãããšãã®ã»ããåªå
ããŠããããã ã
å (ãã) rubyã§ã¯å€æ°ã«ã¯åããªããå€ã«åããããäžæ¹ãCã§ã¯å€æ°ã«åããããå€ã«ã¯åããªããJavaã§ã¯å€æ°ã«ãåããããå€ã«ãåããã(ãããäžèŽãããšã¯éããªã)ããã®ããã«èšèªã«ãã£ãŠåã®æ§è³ªãç°ãªããããäžè¬çã«èšã£ãŠåãšã¯äœãããšããã®ã¯çªãè©°ãããšé£ããåé¡ãåãã§ãããrubyã«ãããŠã¯ãå€ãåãæã€ããšãããšãããŸã§ã¯ã ãããåæãåããŠãããããå
·äœçã«ããã¯äœã? ãšããã®ã¯è°è«ãåããããã¡ãžã£ãŒãªæèŠãšããŠã¯ãããã¯ã¯ã©ã¹ã ããšãããã®ãšããããã¯ããã¯ã¿ã€ãã ããšãããã®ãããã
å®å
šèšèªã®æ¢æ± (ããããããã - ãããã
ã) å¿
èªæžãâ ããã«17
äŒæ¥ (ãããã) ã³ããã¿ãŒæ°ã§ã¯NaCl (matz shugo gotoyuzo nari takaokouji)ããã³ãããæ°ã§ã¯Heroku (matz nobu ko1 ayumin)ããä»ããé äžã€æãåºãŠããã
Git (ãã£ãš) æ£çŽã
Subversionã§å°ã£ãŠãªã
Windows察å¿ãã²ã©ã
åºæ¬ããã㯠(ãã»ã -) éäžã§åå²ããªããããªäžé£ã®ããã°ã©ã çŽ çãéäžã§ããšããã®ã¯ãæåãšæåŸã«ãã£ãŠããããšããæå³ã§ãããéåžžã¯åºæ¬ãããã¯ãšããã°æåã«ä»ã®åºæ¬ãããã¯ããã®æ¡ä»¶åå²ã§å
¥ã£ãŠããŠãäžæ¬éã§ããã€ãåŠçãããŠãæåŸã«æ¡ä»¶åå²ãreturnã§ä»ã®åºæ¬ãããã¯ãžãšæããŠãããããªæ§é ã§ããã倧ããªããã°ã©ã ãè€æ°ã®åºæ¬ãããã¯ã«åå²ããŠãããããå士ã®é¢ä¿ãæåã°ã©ããšããŠåŠçããã®ãããã°ã©ãã³ã°èšèªåŠçã®åžžå¥ææ®µã ã
ãšãããrubyã§ã¯äºæ
ãç°ãªããäŸå€ãããããã ãã€ãŸãäŸå€ãèµ·ãããããªä»»æã®å Žæã¯åºæ¬ãããã¯ã®éäžã«ã¯åºçŸã§ããªãããã®å¶éã¯æãã®ã»ã匷ããã¡ãœããåŒã³åºããªã©ã»ãšãã©ã®æäœã¯äŸå€ãçºçãããã®ã§ãrubyã«ãããŠã¯åºæ¬ãããã¯ãšããã®ã¯ãããŠãåäžã®æäœããå«ãŸãªãããã«ããã§ããªãã
ã¯ãºãã€ã³ã (ãããœãããš) ã³ããã¿ãŒã«ä»ããã€ã³ããèšç®æ¹æ³ã¯ãã°ç®¡çäžãäœä»¶ã®ãã°ããã®äººã«ã¢ãµã€ã³ãããŠããããå€ãæ¹ããã(ãã®äººã®è²¬ä»»ã衚ã)ãšããæèŠãšå°ãªãæ¹ããã(ãã®äººã®å åž³é¢ãã衚ã)ãšããæèŠãããã
Quine (ãããã) èªå·±è€è£œããã°ã©ã ãã€ãŸãèªåèªèº«ãåºåããããã°ã©ã ãããçš®ã®ããºã«ãšããŠGolfãªã©ãšäŒŒãèŠçŽ ããããããrubyã®Quineã¯çãæžãããšæããšãããçããã€ã§ãæžããŠããŸãã®ã§ãããŸãé¢çœããªããã©ã¡ãããšãããšåé¢ã®é¢çœããªã©ãçãæ¹ãããèŠãããã
èšç®é (ããããããã) Rubyistãªãããšãããã°ã©ããŒã§ããã°ããã°ã©ã ã®æžãæ¹ãšãããå
ã«æäœéçè§£ããŠããã¹ããã®ãæãäœã«èšãã°ãã¹ã±ãŒã©ããªãã£ãŒãããããããåŠè¡çã«å³å¯ã«ãããããªæŠå¿µã§ãããå³å¯ãªéšåãããŠãããšããã°(ããªãã»ããããã)ãæŠè«ã远ãã®ã¯æ¬åœã«å®¹æã ãã«ããããããä»å¹Žãå€ãã®ããã°ã©ããŒãèšç®éãçè§£ããªããŸãŸå®è·µã«æå
¥ãããŠãããåããããéãã§ããã
èšèª (ããã) èªç¶èšèªãšã人工èšèªãšãããããåé¡ãè¶ãããšããã«èšèªã®é¢çœãã¯ããããšæãã
ã³ããã¿ãŒã«å¿
èŠãªãã® (- ã²ã€ãã -) rubyã³ããã¿ãŒãªããŠ
ç¥èããŒãçåžãã·ã£ã«ã«ããŒãã¥ãããã©ã³ãIIäžãŸã§é ã«ãããããããšãã§ããªããŠããªããã
ãã€ã ã¹ã¯ãªã³ã°ã©ãããªãŠã«ããèªãã ããšããªããŠããªããã
EsperantoãfrançaisãKiswahiliãÎοιΜᜎãLatinaãLogibanãæèšæãà€žà€à€žà¥à€à¥à€€à€®à¥ãèªããªããŠããªããã
amd64ãia64ãmips64ãppc64ãsparc64ã®ã¢ã»ã³ãã©ãŒãèªããªããŠããªããã
pthread_cond_timedwait(3posix)ã®RATIONALEãèªãã§ãªããŠããªããã
LALR(1)ããŒã¶ãŒãææžãã§ããªããŠããªããã
application/x-www-form-urlencodedãç®ã§èŠãŠãã³ãŒãåŸã®ãšã³ã³ãŒãã£ã³ã°ãæšå®ã§ããªããŠããªããã
ãªãã ãç°¡åãããã
ããå°ãçé¢ç®ã«èšããšãrubyã³ããã¿ãŒã«ãªãã«ã¯ãããããæã£ãŠãã»ããããã¹ãã«ã¯ãããããããã©ãæäœéå¿
èŠãªã®ã¯ã
rubyã³ããã¿ãŒã«ãªãçç±
ããã ãã§ãããããžã§ã
Golf (ãããµ) ã³ãŒããŽã«ããšããå°ãªãæéµæ°ã§ããã°ã©ã ãæžãããºã«ãæå¥œå®¶ã¯ãŽã«ãã¡ãŒãšåŒã°ãããrubyã«ã¯ãŽã«ãçšrubyå®è£
gorubyãã€ããŠããããã«ããŽã«ããšã®èŠªåæ§ã¯é«ãã§ããã
3PI (ããŒã©ã±ãŒãŠããŒããã
ãŒ) 3PIãšæžããŠãã£ãŠã3ÃÏã§9.5ãããã?ãšæããšå
šç¶é¢ä¿ãªããŠã3rd Party's Issue == ã ããä»ã®äººãæªãããããšããããšããããã¯ã©ã€ãã©ãªãŒã®ãŠãŒã¶ãŒããã®ãã°å ±åã«å¯ŸããŠãããŸãã©ã€ãã©ãªãŒäœè
ã«ã©ã€ãã©ãªãŒãæªããã©ãããåãåããŠããã£ãŠãã ããããšãã£ããã¥ã¢ã³ã¹ã®ããšã«çºå¹ãããå Žåãããã
ãµãã¢ã»ãŠã©ãŒãã®ä»®èª¬ (- ããã€) 人éã¯ãã®ãèããæã«äœ¿ã£ãŠãèšèªã«ã²ã£ã±ãããŠèãèªäœãå€ãã£ãŠããŸããã ã(倧æ)ããšãã仮説ã仮説ãšãããããã ããäœã蚌æããããã®ã§ã¯ãªãããSFã®äžçã§ã¯ãã¯ãç説ãéãè¶ããŠå®èª¬ã«è¿ãããã®èª¬ãæ¡çšããäŸã¯ãªãŒãŠã§ã«ã1984ããåç¢ãšããŠããã£ã¬ã€ããŒãããã«17ãããã£ã³ãããªãã®äººçã®ç©èªããäŒè€ãèæ®ºåšå®ããªã©ææã«ããšãŸããªãã
ãã¡ããrubyã«é¢ä¿ãã人ç©ã¯ãããªããã®ä»®èª¬ã節ãä¿¡å¥ããŠããã
GC (ããŒããŒ) Garbage Collection. ãŸã仿ããã®ãæ®éãrubyã®ãã®ã¯écompactionécopyingéexactégenerationaléparallelåãšåé¡ã§ããGCã§ããã®éââãšããéšåãåé¿ã§ããã°åè
ããã ãçŸåšã®ã¢ã«ãŽãªãºã ã¯ãããªãã®çµç·¯ã§ãã®ãã§ã€ã¹ã«ãªã£ãŠããããã§ãããç°¡åã«å€ããããããã§ã¯ãªãã
.gdbinit (ããŒã§ããŒã³ãŒãã«ã£ãš) rubyã®ãœãŒã¹ã³ãŒãã«ä»ããŠããã䜿ããšrubyã®ãããã°ããããããªãã
GVL (ããŒã¶ããã) GILãšããGlobal VM Lockãå«ãããã®ãã ãããã©ãŒãã³ã¹ãç ç²ã«ãã€ã€ãã¿ããªã[BUG]ããå®ã£ãŠãããŠããã ãããã£ãšæè¬ãã¹ãã ã
signal (ãããªã) ã©ãããããã£ãŠãããªã«ãããã ãåé¡ã¯ã©ããããã§ã¯ãªããã©ãã«ããããšããã€ãããã ãã·ã°ãã«ã¯ãã®2ç¹ã«é¢ããŠéåžžã«å°ã£ãç¹åŸŽãåããŠããããŸããããã¯èããªãã«èšèšããããå°ã£ãã®ã§ã¯ãªããŠãã©ã¡ãããšãããšäººé¡ã®æºæ
§ã§ã¯çŸç¶ãéçããšãã£ãè¶£ãã
ãªãrubyã«ãããå®è£
æ¹éã¯åèã«ãªããšæãããã®ã§è§£èª¬ããŠãããsignalã«ã¯ä»éããhandlerãšmaskãšããè³æºãããããã³ãã©ã¯ããã»ã¹åºæã§ãã¹ã¯ã¯ã¹ã¬ããåºæã ãããã§rubyã§ã¯ã»ãŒãã¹ãŠã®ã¹ã¬ããã¯ãã¹ãŠã®ã·ã°ãã«ããã¹ã¯ããŠãããã·ã°ãã«ãåãä»ããã¹ã¬ãããåæã«ããã ãäžã€ã«å¶éããŠããããã®ã¹ã¬ããã®ããšãã·ã°ãã«ã¹ã¬ãããšåŒã³ãå°çšã¹ã¬ããã ã£ãææãããã°ã¡ã€ã³ã¹ã¬ãããå
ŒåããŠããææããããããã«ãã³ãã©ã¯ã¿ã€ãã³ã°ã®åé¡ãããã®ã§ãæ¥ãããšãèšé²ããã ãã®ãšãŠãç°¡çŽ ãªãã®ã«ãªã£ãŠãããã·ã°ãã«åºæã®è€éãªåŠçã¯ããšã§ãã£ããè¡ããããããã¯ã«ãŒãã«ã«ãããå²ã蟌ã¿ã®åŠç(upper half/bottom half)ãªã©ãšäŒŒãŠãããšãèšããã
仿§ (ããã) 仿§ãšã¯äœã? è¿å¹Žrubyã¯ISOåã®çµç·¯ãã仿§ã«å¯Ÿããçè§£ãé²ãã ã
ãŸã de jeur standard ãšããŠã®ä»æ§ããããISO30170 / JISX3017 ã該åœããã
次㫠de facto standard ãšããŠã®ä»æ§ããããããã¯çŸåšã§ããã° rubyspec ãªã©ããããrubyã®å®éã®å®è£
ãããã«å«ãã
ãããŠæåŸã«ãã¿ããªã®å¿ã®äžã«ããããããªã£ãŠãããããªãŒãã®ç·äœãšããŠã®rubyã®ããã¹ãå§¿ããšã§ãããã¹ããã®ãããããããæŒ ç¶ãšä»æ§ãšåŒã¶ããšãããã
1ãš3ãåããªãããã£ãã®ãããããªãããçŸå®ã«ã¯ç°ãªãã®ã§ãåŸäœã®ç¥ããªã3ããŒã¹ã§äŒè©±ãé²ãããšããããæ°ãæããªããããã3ããªããš2ã®ãã°ãçºèŠã§ããªãã®ã§ãŸã£ãããªããã®ãç¡çã§ããã
çåœ (ããã) äœããã£ãŠçãšãããã¯å€§å¥ããŠ
çã®å€trueãšåœã®å€falseãããããã以å€ã¯ãã®ã©ã¡ããã«å€æããŠããçåœå€å®ãã
åœã®å€falseãããããã以å€ã¯å
šéšç
ãšãããã¿ãŒã³ãå€ãããrubyã¯ãã®ã©ã¡ãã§ããªããå°ã
çããå€å®æ¹åŒã§ããã
Symbol (ãããŒã) æååã®ãããªèŠãç®ãããŠããã宿
ã¯ã©ã¡ãããšãããšæŽæ°ã§ããããããã1.6ããããŸã§Symbolã¯ã©ã¹ã¯ååšããªãã£ãããSymbolãæååã£ãœãããããšããéå»ã®è©Šã¿ã¯å€±æã«çµãã£ããSymbolãšããæŠå¿µãLispããç±æ¥ããŠããããšã«çãã®äœå°ã¯ãªããããããLispã®Symbolã¯äœãç±æ¥ãªã®ããšããã®ã¯ãrubyistãã¡ã®éã§ã¯ãã§ã«å€±äŒããŠããŸã£ãŠããããããããªãã人工ç¥èœã ããã·ããã£ã¢ã³ãšãã·ããã£ãšãšããã®ãžããšé¢ä¿ããã®ããªãŒããšæŒ ç¶ãšæãã
人çŒBBS (ããããã³ãŒã³ãŒãã) 説åŸã²ãŒã ãä»ã®äººçŒç³»ã²ãŒã ãšéã£ãŠããŒã«ãã¬ã€ã¯çšã
ã§ã¿ããªã¬ãåå©ãç®æããŠããç¹ãç¹ç°ã§ãããrubyçéã«çµéšè
å€ããrubyã«ãããSFãšäžŠã¶äºå€§åºç€æé€ãšæãããã
人çŒBBSã¯æ¥æ¬èªå°çšãªã®ã§åœç¶æµ·å€ã§ã¯ãã®ãã®ã¯è¡ãããªãããããã§ãæµ·å€rubyistã«ãããŠã人çŒç³»ã²ãŒã ç±ã¯ç±ããRubyConfãªã©ã§å€äžã«éãŸã£ãŠè»åº§ã§ãªãã©ã€ã³äººçŒãããéå£ãç®æãããŠããã
ZSUPER (ããŒã±ãŒ) ã»ãšãã©ãã¹ãŠã®å±é¢ã§rubyã«ãããæ¬åŒ§ã¯æŒç®ååªå
é äœãªã©ã®çµ±èªè«ã«ã¯åœ±é¿ãããæå³è«ã«ã¯åœ±é¿ãäžããªãããšãããå¯äžãsuperã«ãããŠã¯ã super() ãš (super) ã§ã¯æå³ãç°ãªãããã®ãããªäŸã¯ä»ã«ã¯ãªãããã®ãåŸè
ã®superã®çšæ³ããåºæ¥äžãã£ãŠããæå³è«ã®ããšãZSUPERãšåŒã¶ã
ã¹ã¿ã㯠(-) æ®éã®èšèªãšéã£ãŠrubyã¯å®è¡æã³ã³ãã¯ã¹ãã«ãããã¹ã¿ãã¯ãäžæ¬ã§ã¯ãªããRHGã§ã¯äžæ¬ããªã¹ãã¢ãããããŠããããã®åŸå®è£
ã®å€é·ã«ãšããªãæ¬æ°ã¯äžäžããŠããããšãããèª°ãææ¡ããŠããªãã
æ£èŠè¡šçŸ (ãããã²ãããã) rubyã®æ£èŠè¡šçŸãšã³ãžã³ã¯çŸåšã®ãã®ã«ãªããããåãããã£ãšNFAãšãã°ããçš®é¡ã®ãã®ã§ããããã®ã¯ã©ã¹ã®ãšã³ãžã³ã¯æ£èŠè¡šçŸã®æžãæ¹ã«ãã£ãŠã¯ææ°æéèšç®éã§èµ°ãããã®ããæ£èŠè¡šçŸã(人éãçããŠãéã«ã¯)æ¢ãŸããªãããšããçŸè±¡ãèµ·ããããããããã¯æ£èŠè¡šçŸã®æžãæ¹ãæªãã®ã§ãããã¡ãªã¿ã«rubyã®å Žåã®ãããªããã¯ãã©ãã¯ãããNFAãšã³ãžã³ã¯NPå®å
šãªã®ã§ãèšç®éãæ¬è³ªçã«äžããæ¹çã¯ãªãããšå€ãã®å°éå®¶ãä¿¡ããŠãããããšãæ£èŠè¡šçŸãå®è¡ããåã«ãããæ£èŠè¡šçŸãã©ãããã§ãã¯ããã°ãããããªããããšããçºæ³ã¯ããã¥ãŒãªã³ã°ãã·ãŒã³åæ¢åé¡ãªã®ã§ã茪ããããŠé£ãããçŒåã«ãããããã°ãããªãã
select (ããããš) ã·ã¹ãã ã³ãŒã«ãããŸãã«äœ¿ãæ¹ãé£ããããLinuxã§ã¯ select(2) ã®ããã¥ã¢ã«èªèº«ã«å ã㊠select_tut(2) ãšãããã¥ãŒããªã¢ã«ãå¥éçšæãããŠããã»ã©ã§ããããªãPerlã®selectã¯ã·ã¹ãã ã³ãŒã«ã®selectã®æ©èœã®ä»ã«åºåãéžã¶æ©èœãã€ããŠããŠèŒªããããŠã€ããã
Rubyã«ãããŠã¯ãã¡ã€ã«ãã£ã¹ã¯ãªãã¿ã¯ãèªã¿èŸŒããããã«ãªããŸã§èªã¿èŸŒãŸãªãããæžã蟌ããããã«ãªããŸã§æžã蟌ãŸãªãããšããæ¹éã§ããããªãã§ããšãããšèªã¿èŸŒããªãã®ã«èªã¿èŸŒãããšãããšãããã¯ããããã ããããŠãããã¯ããŠã»ãããªãããã®ãããèªã¿èŸŒããããæžã蟌ãããã®ç¢ºèªã®ããã«(UNIXã«ãããŠã¯)selectã䜿ãããŠããã
å³å€ (ããã¡) ããŸãã¡å®çŸ©ãæªãããªãã©ã«ã«æ¯ã¹ãŠãå³å€ã«é¢ããŠã¯ããããVALUEåã蟌ã¿ãªããžã§ã¯ããããªãã¡ TrueClass FalseClass NilClass Fixnum Symbol ã®ã€ã³ã¹ã¿ã³ã¹ãšããããšã§ããããè¡ç®ãäžèŽããŠããã
倧ã¯ã©ã¹äž»çŸ© (ã ã - ãã
ã) rubyã®ã¯ã©ã¹éå±€ã«é¢ããŠãã°ãã°ãã®ããã«åœ¢å®¹ããããããšãã°ããŒã¿æ§é ã®ã¹ã¿ãã¯ãšãã¥ãŒãšé
åã¯ãããããå¥ãšããããšã«ããããªãã®åŠ¥åœæ§ããããå®éã«C++ãªã©ãã®ããã«åãããŠããããrubyã§ã¯å
šéšã²ãšãŸãšãã«ããŠArrayã¯ã©ã¹ã ã
ã¿ã€ããŒã¹ã¬ãã (-) rubyã«ã¯GVLããããã§ã¯ãã®ããã¯ã¯ãã€éæŸããã®ãããšãããšãã¿ã€ããŒã§å®æçã«éæŸããããšããããšã«ãªãããã®ããã®ã¿ã€ããŒãåããŠããã¹ã¬ãããã¿ã€ããŒã¹ã¬ãããOSã¬ãã«ã®ã¹ã¬ããã§ãããrubyã¹ã¯ãªããããã¯èŠ³æž¬ããããšãã§ããªããã¯ããªã®ã ãããšãã©ã圱é¿ãåºãããšããããããšãã°ã¡ãã£ãšåã®NetBSDã§forkã§ããªãã£ãããšããããã€ã®ããã
tagged pointer (ããã©ãœããããŒ) ãã€ã³ã¿ãŒãšåããµã€ãºã§ããã€ããã®ã¡ã³ããŒãã¡ã®å°ãªããšãäžçš®é¡ã¯ãã€ã³ã¿ãŒåã§ãããããªå
±çšäœã®ããšãäžèº«ããã€ã³ã¿ãŒãã©ãããå€å®ããã®ã«ã¿ã°ãšãã°ãããããã䜿ãããšãããã®ååããããrubyã®å Žå( â VALUE)ãLSBãã¿ã°ã§ããããããç«ã£ãŠãããã®ã¯ãã€ã³ã¿ãŒã§ã¯ãªãã
å€èšèª (ãããã) é£ãããã®ã®ä»£è¡šãé£ããããç¯äººã¯ããããã¢äººã
ä»èšèª (ãããã) Rubyistã¯æå€ã«ä»èšèªã«ã€ããŠè©³ãããåã«ããããã®å¥œããªäººéã ãããšããã®ãããã ãããããã¯ãä»å±±ã®ç³ãšããŠä»èšèªã«ãããã°rubyã«ããªãããšãä»èšèªã®æ°æ©èœãrubyã«ãé©çšã§ããªãããšãç ç©¶ãã¹ãéšåãå€ããšããããšãšãããããã°ä»èšèªã«ãŠrubyãå®è£
ã§ããªãããšèèŠçã
ãšäŒºã£ãŠããããã§ãããããã ãæåŸã®æå³ã§ã¯JVMç³»ã®èšèªã¯ãã§ã«JRubyããããããããŸãèå³ãåŒããªãããã ã
å·çæç¹ã§ã¯ç¹ã«Dèšèªããã³GHCã«ããrubyåŠçç³»ã«æåŸ
ãé«ãŸãã
å€å€ (ãã¡) æ§ã
ãªã¢ãã«ãæå±ããããçµå±ã©ããªã£ããã ããã
deoptimization (ã ã€ãããŠãã) ããã°ã©ã ãæé©åããéã«ãæé©åãããã䟿å©ãªå€¢(ããšãã°ããã°ã©ã ã®éäžã§ã¡ãœããã®åå®çŸ©ã¯èµ·ããªãããšã)ãèŠãªããæé©åããããšãæé©åãããã倢ãªãã ããåœç¶æé©åãå¹ããã§ããã®å€¢ããéãããããªäºæ
ãçºçããæã«ããããæ£æ°ã«æ»ã£ãŠçé¢ç®ã«åèšç®ããªããã°ããã®åèšç®ã¯ããã«ãã£ãšããŠãããšãããã倢ãèŠã€ã¥ããããŠããéã¯å¹žããªããããªãã®ããšããæŠç¥ããããã¯ãæŠãã®ããã°ã©ã ã¯å€¢ããéãããããªå€ãªäºã¯ããªãããã ããã幞ããªãã ãã©ãäžãäžãããããªããšãã«ãäžå¿é
ããªãããã¡ãããšåããŸããããšãèšããããã®ãé
ããªãããã¡ãããšåããŸããã®ããšãè±æé©åãšããã
Akrã®^Cåå (ããªãããã®ãã
ã¿) ãŠãŒã¶ãŒãCtrlããŒãšCããŒãåææŒãããç¬éã«ãã©ã¢ã°ã©ãŠã³ããªããã»ã¹ã¯å¯åçéããã«æ»ã(倧æ)ããšããã«ãŒã«ããããéæãããããrubyã§ã¯ãã¹ãŠã®æäœã¯^Cã«é¢ä¿ãªãå¯åçéããã«åŠçãçµäºããããããã§ãªããã°^Cã§äžæå¯èœã§ããããã«èšèšãããŠããã
ãããããã¯ããªãå³ããæ¡ä»¶ã§ãããããšãã°rubyã®å ŽåMutexããããã¯ããŠããã®ã§ãã£ãŠã^Cã§äžæã§ãããã€ãŸããMutexãlockããããšããéã«lockã®åŒã³åºããæ»ã£ãŠããŠããå¿
ãããããã¯ãåããŠãããšã¯éããªããšããããšã§ãããããã¯åŒ·çããããªç¹æ§ã®Mutexã¯ä»ã®èšèªã«ã¯ãªãã
AST (ã¡ã
ããããããã¶ãã) Abstract Syntax Tree, æœè±¡æ§ææšã rubyã¹ã¯ãªãããæå³ãä¿ã¡ã€ã€ãæ§é äœãè€æ°é£ãªã£ã圢åŒã«å€æãããã®ãæ§ææšãšãããããã ããæšã®åœ¢ãããŠããã1.8ãŸã§ã¯ãããçŽã«è§£éããŠãããçŸåšã¯ASTããããã«ISeqãžãšå€æããã
宿° (ãŠããã) rubyã«ã¯å®æ°ãšåŒã°ãããã®ã¯ããããå°ã
èŠåãåºãçšåºŠã§äœäºããªãå代å
¥ã§ããã®ã§ããããŸã£ãã宿°ãšããŠã®è²¬åãæããããšããŠããªãããããéã«æ®éã®ããŒã«ã«å€æ°ã®ãããªèŠãç®ãããŠããã®ã«ã©ãé 匵ã£ãŠãå代å
¥ã§ããªã倿°ããªã©ãšãããã®ãrubyã«ã¯ååšãããrubyã¯ãããããã ããšã¿ãªããããããªã®ã§ãããã£ãœãéçšã§ããŠããããã人éã®æ¹ããããããã ããšã¿ãªããã
ç¬èª (ã©ãã€ã) Eigenclassãªã©ã®çšèªããrubyã³ããã¿ãŒã¯ã¿ããªç¬èªãèªãããã®ãããªé¯èŠãåããããå®ã¯ããã§ããªãããã ç¬èªåå
ããç¡æŽ»çšç¬èªãšã§ããããããªããããªè¬ã®è±æ(çŸå°ã§ã¯ããããã®ã Denglisch ãšåŒã¶ãããã)ã§ãã°ã¬ããŒããæ¥ãããšã¯ããŸããŒã«ããã
ç¹ç°ã¯ã©ã¹ (ãšãã -) rubyã§ã¯ãããããã¹ãŠã®ãªããžã§ã¯ãã¯éåžžã®æå³ã®ã¯ã©ã¹ã®ä»ã«ããã®ãªããžã§ã¯ãã ããã€ã³ã¹ã¿ã³ã¹ãšãããããªã¯ã©ã¹ãæã¡åŸãŠããããç¹ç°ã¯ã©ã¹ãšåŒã¶ããšããã§rubyã§ã¯ã¯ã©ã¹ããªããžã§ã¯ãã§ãããã ããç¹ç°ã¯ã©ã¹ããªããžã§ã¯ãã ãããªãã¡ç¹ç°ã¯ã©ã¹ã«ãã¯ã©ã¹ãããããŸãç¹ç°ã¯ã©ã¹ã®ç¹ç°ã¯ã©ã¹ããããç¹ç°ã¯ã©ã¹ã®ç¹ç°ã¯ã©ã¹ãã¯ã©ã¹ã ããã以äžç¡éã«ç¶ãã
TravisCI (ãšãã³ãããŒãã) æè¿ãrubyã§ã䜿ã£ãŠãCIããŒã«ãgithubãšé£æºããŠãããã®ã§äŸ¿å©ã
åå (ãªãŸã) ååéèŠãšããã€ã€rubyã®å Žåã¯å®ã¯å®è£
äžããŒã«ã«å€æ°ã¯é
åã§ç®¡çãããŠããã®ã§ããŸããããã(æ°åäžåãšã)ååããããšå€æ°ã®æ€çŽ¢ã«æéããšãããŠããã©ãŒãã³ã¹ãæªåããããªã«ããšãããããã¯ãããªãã
native thread (ãã€ãã£ãã¹ã¬ãã) ãµã€ãã®ã¹ã¬ãããnativeãšããããèšãããã«ã¯non-nativeãªã¹ã¬ãããåœç¶ååšãããããã®ããšãgreen threadãšåŒãã ãããã
NODE (ã®ãŒã©) ããŒã¿æ§é ãASTã®ã¡ã¢ãªäžã®è¡šçŸã§ããããªããžã§ã¯ã (â RVALUE) ãšåããµã€ãºã§ããã1.9ã®éäžã®ã¿ã€ãã³ã°ãŸã§ã¯RVALUEãšäžç·ã«æ··åšããŠã(â heap)ããªã®ã§ããããã¿ãŒã³ã«ããçš®ã®äºææ§ããããrubyã®GCã¯ä»ã§ãNODEãçè§£ãããããããªããNODEã¯äžåºŠäœã£ããæ»
å€ã«æžããªããšããç¹åŸŽããã(ASTãªããããé »ç¹ã«æžãæããªã)ããããæ¯åGCãã¹ãã£ã³ãããšããã®ã¯ã³ã¹ããã ãã¶ç¡é§ã§ããããšããçç±ã«ããçŸåšã¯heapããã¯éé¢ãããŠããã
parser (ã±ãŒããŒ) éçªãruby 1.0ãåºãããã®ruby 2.0ã®ç®æšãšããŠããŒã¶ãŒãšè©äŸ¡åšã®å·æ°ãããã£ãã¯ãã ããè©äŸ¡åšã¯YARVãå
¥ã£ããã®ã®ãparse.yã«é¢ããŠã¯ã€ãã«ç§äŒã®ã¿ã¬ãç¶ãè¶³ãã€ã¥ããŠ20幎ã ãåºã®ã»ãã§ã©ããªè«ãç¹æ®ããŠããåãã£ããããããªãããŸããçè§£ããŠãã人éãå°ãªãã®ã§æ°äººæ¬ ãããšãã°ããåŸç¶è
ã®é€æã¯æ¥åãšãããããããªãã
[BUG] (ã°ã) rubyåŠçç³»ããªãããã®çç±ã§ããä»¥äžæ£åžžåäœãã€ã¥ããããšãã§ããªããªã£ãæã«ãææ«éãšããŠåºåããå
容ã«å«ãŸããŠããç¹åŸŽçãªæååã転ããŠãrubyåŠçç³»ããã®ãããªç¶æ³ã«è³ãããšãã[BUG]ã£ãããªã©ã
RHG (ã¯ã£ãããããã©) ãRubyãœãŒã¹ã³ãŒãå®å
šè§£èª¬ããšããååã§åºçããããçãããã³ã°ã¬ã€ããšåŒã¶ãUNIXã«ãããLions' Commentaryã®ãããªãã®ã§ãããããæ¬ãä»ãšãªã£ãŠã¯æ
å ±ãå€ãã®ãé£ç¹ããŸãããããããšèšã£ãŠå£²ããããã§ããªãããããšããã®ãæ²ãããçŸåšå€æžãšããŠãã¬ãã¢ãã€ããŠããã
patch (ã±ã£ã¡) ã¢ã³ã¹ã¿ãŒããæã«å
¥ãããã®ã
ããã«17 (- ãã¶ããŠããŒã) å¿
èªæžã â å®å
šèšèªã®æ¢æ±
VALUE (ã°ãã
ãŒ) åãCã¬ãã«ã«ãããrubyã®å€ã®è¡šçŸãã ããããã€ã³ã¿ãŒã ãæã
éããâ tagged pointer â å³å€
RVALUE (ã°ãã
ãŒ) ããŒã¿æ§é ãVALUEããã€ã³ã¿ãŒã§ããå Žåã¯(ã¶ã£ããããŠãªããã°)ãã®æããã€ã³ã¿ãŒã®å
ã¯RVALUEã ããããŠRVALUEã®ãã¢ãžãã¢ã¹ãªé
åãheapã ãRVALUEã¯äŒçµ±çã«æ§é äœã§ããããã€ã³ã¿ãŒ5åã¶ãã®ãµã€ãºã§ãå
é ãããã€ã³ã¿ãŒã²ãšã€ã¶ãã®é åã管çé åããã®æ¬¡ãã¯ã©ã¹ãžã®ãã€ã³ã¿ãŒãæ®ããã¯ã©ã¹åºæã®ããŒã¿ã§ããããã®ä»çµã¿ã¯æ£çŽã«ãã£ãŠå€ããçŸä»£ã®ããã»ããµã»ã¢ãŒããã¯ãã£ããèŠãã°ãããŠãªãããã£ãã·ã¥ã©ã€ã³ã®å¹
ã§å²ãåããªãããã ãå
žåçãªã±ãŒã¹ã§ããamd64ã¢ãŒããã¯ãã£ã§LLP64ã®å ŽåãRVALUEã¯40byteãšãªããã1wordæžãããŠ32byteãšãããã3wordå¢ãããŠ64byteãšããã®ãçŸä»£çã«ã¯åŠ¥åœãšãããã
heap (ã²ãŒã·) rubyã³ã¢çšèªãšããŠã¯heapãšã¯rubyãªããžã§ã¯ãããŒã«ã®ããšã§ããããã®çšæ³ã¯ç¹æ®ãªã®ã§ruby以å€ã§ã¯éããªããå®è£
äžã¯rubyãªããžã§ã¯ãã¯heapãšãã°ããåäœã§OSãã確ä¿ããããããå°ããã€åã売ãããŠããããªããªã£ããGCãèµ°ããGCã®çµæheapäžã®ãã¹ãŠã®ãªããžã§ã¯ããååãããå ŽåãOSã«è¿ãããšãããããã®ãããªç®¡çæ©æ§ã¯objspaceãšåŒã°ããrubyã¹ã¯ãªããããã¯å®æ°ObjectSpaceãšããŠèŠããã
bigzero (ã³ã£ããã) Bignumã®ã€ã³ã¹ã¿ã³ã¹ã§å€ã0ã®ãã®ããšãããšãã¿ããªæåã¯ããã£ããšããé¡ãããã®ã ããã©ãBignumãšFixnumãšããã®ã¯å®ã¯äºãã«çŽ ã§ã¯ãªãããšãããBignumã¯Fixnumã®çã®supersetã§ããããšãã«0ä»è¿ã®ã0, 1, -1 ãšãã£ã代衚çãªå€ã¯ãFixnum, Bignum, Float, BigDecimal, Complexã®ãããã§ã衚çŸå¯èœãšãããã
Fixnum (ãµããããªã) VALUEåã蟌ã¿ãªããžã§ã¯ããããã€ãã®ç¹ã§ãã®ä»ã®rubyãªããžã§ã¯ããšãããããã¯Javaãªã©ã®ããªããã£ãåãªã©ãšãç°ãªã£ãæ¯ãèããããã
Fixnumã®å¹
ã¯å¿
ãããintptr_tãšåãã§ã¯ãªããåãã§ã¯ãªãäŸãšããŠWin64ãæããããããããã£ãŠå€ã«Fixnumã®å¹
ãä»®å®ããããã°ã©ã ãæžããšå€ãªããšãèµ·ããããã®ãããªããã°ã©ã ã¯rubyã¹ã¯ãªãããšããŠã¯çšã ããæ¡åŒµã©ã€ãã©ãªãŒãšããŠã¯ããããã
fairness (ãµãããã) åã«fairnessãšèšã£ãå Žåã¯å€§æµãã¹ã¬ããéã®ã³ã³ããã¹ãã¹ã€ããã®å
¬å¹³ãã«é¢ããŠèšã£ãŠããããããæ¬åœã«å
¬å¹³ã«ãã€ã€ã¡ãããšç©çã³ã¢æ°ã«å¯ŸããŠãªãã¢ã«ã¹ã±ãŒã«ãããã®ã¯ããžã ãºãããããã
ä»èª (ãµãããã) ä»èªè©±è
ã®äººã¯ç¬èªè©±è
ã®äººãã¡ã«æ¯ã¹ãŠçµæ§éåæã®ãªãè±æã§ãã°å ±åããŠããæ°ããããªãããªãã§ã ããã
flip-flop (ãµãã£ã·ãµãã£ã·) rubyã§äžãäºãäºããžããªæ©èœ(ããäžå㯠â once)ãæå³çã«ããã°ã©ã ãé£èªåããç®çããã¯ã³ã©ã€ããŒã§äœ¿ãããããrubyããåãããæ©èœããšãã話é¡ã§æ¯åå¿
ãææ¡ããã(èªããªããã)ããflip-flopã§å®çŸã§ãããã®ãflip-flopãªãã§æžãã®ãã²ãããã«é¢åãªã®ã§ãæ¯åºŠåŽäžãããŠããã
ãšããã§ãŸã£ããåããã®ãPerlã«ãããã®ã ããPerlã§flip-flopãç¹å¥ãžããªæ©èœãšããèªèã®äººã¯å°ãªãæ°ãããããªã«ããã®å·®ãçãã§ããã®ãã
flonum (ãµããªã) VALUEåã蟌ã¿ãªããžã§ã¯ããæè¿å°å
¥ãããã64bitãã·ã³ã«ãããŠæŽæ°ãšæµ®åå°æ°ç¹æ°ãšãã€ã³ã¿ãŒã¯ãã·ã³ã¬ãã«ã§å
šéšå¹
ãäžç·ã ãã ããããããå
±çšäœãšããŠäžç·ã«æ±ãããšããã®ã¯ããçšåºŠåŠ¥åœãªçºæ³ã§ã¯ããããã æµ®åå°æ°ç¹æ°ã«ã¯äœã£ãŠãããããšãã¯(åžžã«ã¯)ãªãã®ã§ããã64bitã®ãªã«ããæŽæ°ãæµ®åå°æ°ç¹æ°ãã®å€å®ãã©ãããããè¥å¹²ããªãããŒã§ã¯ãããrubyã®flonumã®æ¹åŒã¯ããã ãããäžæ¬è«æãæžããçšåºŠã«ã¯æ°èŠæ§ã®ããæ¹åŒã
BASERUBY (ã¹ãŒããã³ãŒ) rubyã®ãœãŒã¹ã³ãŒãã¯äžéšãåç¶ããããã¬ã·ããã¡ã€ã«ã®ãããªãã®ããæ©æ¢°çã«çæãããŠãããããã®çææ©æ§ãrubyã§æžãããŠããã®ã§ãåçæããããšæãã°å®ååã®rubyãå¿
èŠã«ãªãããã®ãšãã«äœ¿ãrubyã®ããšãBASERUBYãšåŒã¶ãæ®éã«çããŠããéãã¯ãã»ã©ã®ããšããªããããåçæã¯äžèŠã§ããããã£ãŠæ®æ®µã¯åé¡ã«ã¯ãªããªããæ®éã§ã¯ãªããåçæãé »ç¹ã«å¿
èŠãªã¿ã€ãã®äººéã¯ãæ®æ®µããåæã«äœãrubyãã€ããªãŒã«å²ãŸããŠæ®ãããŠãããããªäººçš®ã§ããããããåé¡ã«ãªããªãã
Concurrentãšparallel (ãžããã€ãšãžããã) ãªãããããããããšããããšã ãã¯ç¢ºãã ã
æ¯è¡£å° (ã»ãããã) æŸæ±åžç«æ¯è¡£å°åŠæ ¡ããããšãã£ãŠäœã®å€å²ããªããã ã®å°åŠæ ¡ã ããNaClæ¬ç€Ÿããã®æ ¡åºã«å«ããšããç¹ãå°ã
ç¹æ®ã§ãããã¡ãªã¿ã«äžã¯äºäžâæ±é«ã
æ¬å± (ã»ãã) rubyistãã¡ãæ¬æ°ãåºããšãžã¥ã³ã¯å æžåºæ± è¢æ¬åºã®ç·å売äžã©ã³ãã³ã°ãæªãããã売ãããããã¯ãã ã®æžåºãšãããããã»ãšãã©å
µç«ã
matzruby (ãŸã£ã€ãã³ãŒ) æãããããã©ã³ãããã£ããä»ã¯ããæŸæ£ãããŠããã
micro benchmark (ãã€ã¯ããã³ãããŒã¯) ãããã¬ã³ã以äžã®æå³ã¯ãªãããšã¯ãããããã¬ã³ãã ãããããªããŠãããšãããã®ã§ããªãã
MVM (ãŸãã¡ã¶ããã) æãã£ããã©ã³ãã®ã²ãšã€ãäžã€ã®rubyããã»ã¹ã®äžã§è€æ°ã®åŠçç³»ãèµ°ãããããšã§ãããã»ã¹ããã现ç²åºŠã ãã¹ã¬ããããã¯ç²ç²åºŠãªäžŠè¡å®è¡ãå®çŸããããšããŠãããäžå¿è«ŠããŠãªãããšã«ãªã£ãŠãããã ãã¶æŸæ£ãã¿ã
M17N (ãŸãã¡ãããããããŒããã) æãã£ããã©ã³ãã®ã²ãšã€ãååã®ãšããå€èšèªåãç®çãšããŠãããçŸåšã¯æŸæ£æžã¿ã§ãå®çŸããããšããŠããæ©èœã¯ããåã蟌ãŸããŠãããâ å€èšèª
malloc (ãŸãã£ã) mallocã«äžå®¶èšæã€äººã¯å€ããæ®å¿µãªããrubyã§ã¯mallocãå°ã
éããªã£ããšããã§ãããŠæå³ã¯ãªããGCãããããã«GVLããããããmallocãäžè¬çã«æ³å®ããŠãããã«ãã¹ã¬ããã¢ããªã±ãŒã·ã§ã³ã®ã¡ã¢ãªç¢ºä¿æŠç¥ãšã¯ãŸãã§éãã®ã ã
miniruby (ã¿ã«ãã³ãŒ) rubyãã³ã³ãã€ã«ããããã«rubyãå¿
èŠãªã®ã§ãrubyã®ã³ã³ãã€ã«ã§ã¯å段ãšããŠãŸãã¯ããŒãã¹ãã©ããã®ããã«æäœéã®æ©èœã ãããã£ãrubyã®ãµãã»ãããäœæããããããminirubyãåçãªã³ã¯ã¢ãžã¥ãŒã«æ©èœãæ¬ ããããããããå¿
èŠãªæ©èœãåäžãã€ããªãŒã«è©°ã蟌ãŸããŠããããã®ããå®ã¯æçµçã«ã§ããããrubyããã§ããããªãminirubyãäœæããã«ãrubyãå¿
èŠã§ãããã¯BASERUBYãšåŒã°ããã
ã¡ãœããæ¢çŽ¢ (- ãããã) rubyã§äžçªãäºçªç®ã«éãåŠçãä»ã®ããã«ããã¯(ãã¡ã€ã«IOãšã)ãã©ãã©ãæ¹åããŠãããšæåŸã«ãããæ®ãããšãå€ãã
rubyã®ã¡ãœããæ¢çŽ¢ã¯åçãã€ãŸãã¡ãœããåãåŒæ°ããã©ã®ã¡ãœããå®äœãåŒã¶ãã³ã³ãã€ã«æã«ã¯æ±ºããããªãããããå®è¡æã«äžå決ãŸãã°ããšã¯åãããšãããšãããã§ããªããŠãåŒã³åºãã¡ãœããå®äœãã©ãã©ãå€ãã£ãŠããããšãããããããã¡ãããå€ãããªãããšã®æ¹ãå
šäœãšããŠã¯ããããã®ã§ãäžåã§ãæ¢çŽ¢ããã¡ãœããå®äœã¯ãã£ãã·ã¥ãããŠãããããã©ãã©ãå€ãããããªãã€ããããšãã£ãã·ã¥ãã©ãã©ãããŒãžãããŠãã£ãŠãããçãäžãããããã©ãŒãã³ã¹ãæªåãããã¡ãœãããã£ãã·ã¥ã®invalidateã¢ã«ãŽãªãºã ãæ¬æ¥æ®ã£ãŠãŠããããã£ãã·ã¥ãšã³ããªãŸã§æ¶ããŠããŸã£ãŠããããšã¯ããææããããããããã©ããæ¬æ¥æ®ã£ãŠãŠãããã®ãããšããã®ãå€å®ããã®ã¯ãã容æã§ã¯ãªããåŸããæ€èšŒãããäžèŠãªæäœã§ãããããšããã®ãšãæäœãè¡ãåã«ãããäžèŠãã©ãããå€å®ãããšããã®ã§ã¯ãé£ãããå
šç¶éãã
ã¡ãœããåŒåºã (- ãã³ã ã) rubyã§äžçªãäºçªç®ã«éã(äžç¥)ãããæ®ãããšãå€ãã
rubyã®ã¡ãœããåŒåºãã¯åçã(äžç¥)å€ãã£ãŠããããšãããããããšããããšã¯ã€ãŸããã¡ãœããåŒã³åºãã®ã€ã³ã©ã€ã³å±éãã§ããªããšããããšã§ãããrubyã«ãããŠã¯ 1+2 ã®ãããªåžžèçã«èã㊠3 ã ãããã¯ãã¿ãããªç¶æ³ã§ãåŸåã«ã¡ãœãããåŒã³åºãããã®ãªãŒããŒããããç©ã¿éãªã£ãŠç¡èŠã§ããªãããã«ãã£ã«ãªãã®ã ã
vm_exec_core() (ãããããŒã·) rubyã®ã¡ã€ã³ã«ãŒãã¯äžåã§ã¯ãªãããšããã®ããC颿°ãšå
¥ãä¹±ããäºãããããã ããªãããã®rubyã®ã³ãŒããã¡ãœãããåŒã³åºãããšãã«ãããC颿°ã«åž°çããããšãè¯ããããããããã®C颿°ã®äžãã(yieldãããããŠ)ãŸãrubyã®ã³ãŒããå®è¡ããããšããã®ãããããŸãããããããã®ãšãã«rubyã§ã¯ãCã¹ã¿ãã¯ãå·»ãæ»ããŠã¡ã€ã³ã«ãŒãã«æ»ããããªããšã¯ããã«ãã¡ã€ã³ã«ãŒãã®äžãã䌞ã³ãCã¹ã¿ãã¯ã®äžã«ããã«æ°ããã¡ã€ã³ã«ãŒããéå§ãããé¢åãªããšãããŠãããšæããããããªããå®éé¢åã ããããšã®ã¡ã€ã³ã«ãŒãã«æ»ãã®ããã¯ãŸã ç°¡åãªã®ã ããã®ãããªããšãç©ã¿éãªã£ãŠãããç¬éã®rubyã«ã¯ã¡ã€ã³ã«ãŒããäœåãããããšã«ãªãã
YARV (ãããã) ãšããã³ãŒãããŒã ããã£ãã®ããäžææèšããªãã£ããã©æè¿ãŸãYARVèšãããã«ãªã£ãŠããã®ã¯ãªãã ãããã
yield (以ãŒãã©) ãã¿ã¥ããã«å®è©ãããã
çŸ
èª (ããŠãã) rubyã³ããã¿ãŒã¯ã¿ããªçŸ
èªãèªãããã®ãããªé¯èŠãåããããå®ã¯ããã§ããªãããšãããããããçŸ
èªã®ãã¬ãŒãºã¯èªããŠããçŸ
èªã®äœæãã§ãã人ã¯ããªããšæãããã
LSP (ããããµã®ã¡ããããã) Liskov's Substitution Principle, ãªã¹ã³ãã®çœ®æåçããµãã¯ã©ã¹ã«é¢ããèšèšæéãšããŠæåã ããrubyã§ã¯ãŠãŒã¶ãŒã¯ã©ã¹ã«ãããŠå¿
ãããLSPã匷å¶ããªããrubyã§ã¯å€æ°ã«åããªãã®ã§ã倿°ãžã®ä»£å
¥ã«ããããŠã³ãã£ã¹ãã»ã¢ãããã£ã¹ããè¡ãããªãããã ãrubyã«ãããŠã¯ãã£ã¹ãã®ãããªæäœã¯åžžã«ãªããžã§ã¯ãã®ã³ããŒãçæãããbitcastãreinterpret_castãšãã°ãããã®ã¯ãªãããããã£ãŠãæé»ã®ãã¡ã«ãããªããžã§ã¯ããå¥ã®ã¯ã©ã¹ãšã¿ãªããããšããããšããªãããã®ãããLSPã¯ãäŸç¶ãšããŠãšãŠãæå¹ãªèšèšæéã§ã¯ãããã®ã®ãããªããããèšèªåŽã§åŒ·å¶ããå¿
èŠããªããªã£ãŠããã
ãªãã©ã« (-) ã³ã³ãã€ã«åèšèªãšéã£ãŠrubyã«ãããŠã¯ãªãã©ã«ãšããæŠå¿µã¯ææ§ã ãããšãã°å€ãã®ã³ã³ãã€ã«åèšèªã§ã¯æååã¯ãªãã©ã«ã®ä»£è¡šçãªãã®ã ããrubyã ãš "string#{rand()}" ã®ãããªäŸã¯ãããã§ãäœããã
äŸå€ (ãããã) 1.8ãŸã§ã¯äŸå€ã¯beginã§ã³ã¹ãããããrescueã§ã¯ã»ãšãã©ããŒã³ã¹ãã ã£ããã1.9ç§»è¡ã§é転ããçŸåšã¯beginã¯ã»ãšãã©ããŒã³ã¹ãã ãrescueãéããã€ãŸãrescueç¯ã«å®éã«å
¥ã£ãŠããªããã°ãbeginãrescueãæžããŠãã£ããšããŠããããŠããã«ãã£ãŒã«ãªããªããšããããšã§ãããæå€ã«æè¿ã§ã1.8ã®ãããåŒããã£ãã¹ã¿ã€ã«ãèŠããããæ°ãã€ãããã
Rails (ãããã) ã¹ã€ã«railså«ããããªãã§ããã奜ãã§ããªããã©ã
Railsã®äººãã¡ã«ãšã£ãŠrubyããªããšrailsãæç«ããªããã©ãrubyã«ãšã£ãŠrailsãªããŠãã¹ã€ã«rubyã¯æç«ããããšããé察称ããããrailsåŽããèŠããšrubyã®éçºã¯å·æ·¡ã«èŠããã®ããªãããšã¯æãããããããrubyã®åŽããèŠãã°ã¹ã€ã«railsã ããç¹å¥ã©ãããæã£ãŠãããšããããã§ã¯ãªãã
Redmine (ãã£ã©ãŸãã) rubyã®IRCã§redmineãšèšã£ããããã¯ãããã¯ãã®ããšã§ã¯ãªããŠredmineã䜿ã£ãŠåããŠãã bugs.ruby-lang.org (æ§ã¢ãã¬ã¹ redmine.ruby-lang.org)ã®ããšã§ããã
long (ããã) Cã®æŽæ°ã®äžçš®ãæããrubyã®ããŸããŸãªç®æã§longãæªçšããŠæŽæ°ãããªãæå³ã§äœ¿ã£ãŠãéšåãããã1.9ã®æéãéããŠããããã¯åŸã
ã« intptr_t ã st_data_t ã«çœ®ãæããããŠãã£ãããã ãæã
ãŸã æ®ã£ãŠãããã®ãããœãŒã¹ã³ãŒãã§longãåºçŸããç®æããããéã«ã¯ããçš®ã®ç·åŒµæãããã
once (ããã) rubyã§äžãäºãäºããžããªæ©èœ(ããäžå㯠â flip-flop)ãrubyã®æ£èŠè¡šçŸã«ã¯ãäžåã ãè©äŸ¡ããšããã¢ãŒãããããããã®æ©èœãå®çŸããããã ãã«ã¹ã¬ããéã§ãããã¯ããããšãããããšãããã©ãããŠãããªã£ãæããæ®ããªãæ©èœã§ããã