āĻ°ā§āĻŦāĻŋ 3.1.0 āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻāĻāĻāĻŋ āĻāĻ¤āĻŋāĻļā§āĻ˛ āĻŦāĻ¸ā§āĻ¤ā§-āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻŋāĻ āĻāĻžāĻˇāĻž āĻ¯āĻž āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻĄā§āĻā§āĻ˛āĻĒāĻŽā§āĻ¨ā§āĻā§ āĻ āĻ¤ā§āĻ¯āĻ¨ā§āĻ¤ āĻĻāĻā§āĻˇ āĻāĻŦāĻ āĻĒāĻžāĻ°ā§āĻ˛, āĻāĻžāĻāĻž, āĻĒāĻžāĻāĻĨāĻ¨, āĻ¸ā§āĻŽāĻ˛āĻāĻ, āĻāĻāĻĢā§āĻ˛, āĻ ā§āĻ¯āĻžāĻĄāĻž āĻāĻŦāĻ āĻ˛āĻŋāĻ¸ā§āĻĒā§āĻ° āĻ¸ā§āĻ°āĻž āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋāĻā§ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°ā§āĨ¤ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒ āĻā§āĻĄ āĻŦāĻŋāĻāĻ¸āĻĄāĻŋ ("2-āĻā§āĻ˛āĻ BSDL") āĻāĻŦāĻ "āĻ°ā§āĻŦāĻŋ" āĻ˛āĻžāĻāĻ¸ā§āĻ¨ā§āĻ¸ā§āĻ° āĻ āĻ§ā§āĻ¨ā§ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻž GPL āĻ˛āĻžāĻāĻ¸ā§āĻ¨ā§āĻ¸ā§āĻ° āĻ¸āĻ°ā§āĻŦāĻļā§āĻˇ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§ āĻāĻŦāĻ GPLv3 āĻāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ¸āĻžāĻŽāĻā§āĻāĻ¸ā§āĻ¯āĻĒā§āĻ°ā§āĻŖāĨ¤
āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻāĻ¨ā§āĻ¨āĻ¤āĻŋ:
- āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻŽā§āĻ˛āĻ āĻāĻ¨-āĻĒā§āĻ°āĻ¸ā§āĻ¸ JIT āĻāĻŽā§āĻĒāĻžāĻāĻ˛āĻžāĻ°, YJIT āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¯āĻž āĻļāĻĒāĻŋāĻĢāĻžāĻ āĻ-āĻāĻŽāĻžāĻ°ā§āĻ¸ āĻĒā§āĻ˛ā§āĻ¯āĻžāĻāĻĢāĻ°ā§āĻŽā§āĻ° āĻĄā§āĻā§āĻ˛āĻĒāĻžāĻ°āĻĻā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻāĻāĻāĻŋ āĻāĻĻā§āĻ¯ā§āĻā§āĻ° āĻ āĻāĻļ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ°ā§āĻŦāĻŋ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻā§āĻ˛āĻŋāĻ° āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻāĻ¨ā§āĻ¨āĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¯ā§āĻā§āĻ˛āĻŋ āĻ°ā§āĻ˛ āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻŦāĻ āĻ āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§ āĻāĻ˛ āĻāĻ°ā§ā§ˇ āĻĒā§āĻ°ā§āĻŦā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ MJIT JIT āĻāĻŽā§āĻĒāĻžāĻāĻ˛āĻžāĻ° āĻĨā§āĻā§ āĻŽā§āĻ˛ āĻĒāĻžāĻ°ā§āĻĨāĻā§āĻ¯, āĻ¯āĻž āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ°āĻŖā§āĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ āĻāĻŦāĻ C āĻāĻžāĻˇāĻžāĻ¯āĻŧ āĻāĻāĻāĻŋ āĻŦāĻžāĻšā§āĻ¯āĻŋāĻ āĻāĻŽā§āĻĒāĻžāĻāĻ˛āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§, YJIT Lazy Basic Block Versioning (LBBV) āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻ¤ā§ āĻāĻāĻāĻŋ āĻ¸āĻŽāĻ¨ā§āĻŦāĻŋāĻ¤ JIT āĻāĻŽā§āĻĒāĻžāĻāĻ˛āĻžāĻ° āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ LBBV āĻāĻ° āĻ¸āĻžāĻĨā§, JIT āĻĒā§āĻ°āĻĨāĻŽā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻļā§āĻ°ā§āĻ¤ā§ āĻāĻŽā§āĻĒāĻžāĻāĻ˛ āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻŋāĻā§ āĻ¸āĻŽāĻ¯āĻŧ āĻĒāĻ°ā§ āĻŦāĻžāĻāĻŋāĻāĻž āĻāĻŽā§āĻĒāĻžāĻāĻ˛ āĻāĻ°ā§, āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻļāĻ¨ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻāĻŦāĻ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻā§āĻ° āĻ§āĻ°āĻ¨ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§āĨ¤ YJIT āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻ°ā§āĻ˛āĻŦā§āĻā§āĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĒāĻžāĻ°āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¸ā§ 22% āĻŦā§āĻĻā§āĻ§āĻŋ āĻāĻŦāĻ āĻ¤āĻ°āĻ˛-āĻ°ā§āĻ¨ā§āĻĄāĻžāĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ¯āĻŧ 39% āĻŦā§āĻĻā§āĻ§āĻŋ āĻ°ā§āĻāĻ°ā§āĻĄ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤ YJIT āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§ x86-64 āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ° āĻ¸āĻš āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻāĻāĻ¨āĻŋāĻā§āĻ¸-āĻ¸āĻĻā§āĻļ OS-āĻāĻ° āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ā§ āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§ āĻāĻŦāĻ āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§ āĻ¨āĻŋāĻˇā§āĻā§āĻ°āĻŋāĻ¯āĻŧ (āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻ¤ā§, āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ˛āĻžāĻāĻ¨ā§ â--yjitâ āĻĒāĻ¤āĻžāĻāĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°ā§āĻ¨)āĨ¤
- āĻĒā§āĻ°āĻžāĻ¨ā§ MJIT JIT āĻāĻŽā§āĻĒāĻžāĻāĻ˛āĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¨āĻ¤ āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻžāĨ¤ āĻ°ā§āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻĒā§āĻ°āĻāĻ˛ā§āĻĒāĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯, āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻ¸āĻ°ā§āĻŦā§āĻā§āĻ āĻā§āĻ¯āĻžāĻļā§ āĻāĻāĻžāĻ° (-jit-max-cache) 100 āĻĨā§āĻā§ 10000 āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻžāĻŦāĻ˛ā§āĻ¤ā§ āĻŦā§āĻĻā§āĻ§āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ 1000 āĻāĻŋāĻ°āĻ āĻŦā§āĻļāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻ¸āĻš āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻāĻ¨ā§āĻ¯ JIT āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻŦāĻ¨ā§āĻ§ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ā§ˇ āĻ°ā§āĻ˛ā§āĻ° Zeitwerk āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻā§āĻ˛āĻžāĻ¸ āĻāĻā§āĻ¨ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ°ā§āĻ¸āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻ¸āĻā§āĻˇāĻŽ āĻšāĻ˛ā§ JIT āĻā§āĻĄ āĻāĻ° āĻŦāĻžāĻ¤āĻŋāĻ˛ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻžāĨ¤
- āĻāĻāĻŋāĻ¤ā§ āĻāĻāĻāĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻĒā§āĻ¨āĻāĻ˛āĻŋāĻāĻŋāĻ¤ debug.gem āĻĄāĻŋāĻŦāĻžāĻāĻžāĻ° āĻ°āĻ¯āĻŧā§āĻā§, āĻ¯āĻž āĻĻā§āĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻĄāĻŋāĻŦāĻžāĻāĻŋāĻ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°ā§, āĻĄāĻŋāĻŦāĻžāĻ āĻāĻ°āĻž āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻā§ āĻ§ā§āĻ° āĻāĻ°ā§ āĻ¨āĻž, āĻāĻ¨ā§āĻ¨āĻ¤ āĻĄāĻŋāĻŦāĻžāĻāĻŋāĻ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ā§āĻ° (VSCode āĻāĻŦāĻ Chrome) āĻ¸āĻžāĻĨā§ āĻāĻ¨ā§āĻāĻŋāĻā§āĻ°ā§āĻļāĻ¨ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°ā§, āĻŽāĻžāĻ˛ā§āĻāĻŋ-āĻĨā§āĻ°ā§āĻĄā§āĻĄ āĻāĻŦāĻ āĻŽāĻžāĻ˛ā§āĻāĻŋ-āĻĒā§āĻ°āĻ¸ā§āĻ¸ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻā§āĻ˛āĻŋ āĻĄāĻŋāĻŦāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ āĻāĻāĻāĻŋ REPL āĻā§āĻĄ āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻļāĻ¨ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸, āĻāĻ¨ā§āĻ¨āĻ¤ āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻā§āĻˇāĻŽāĻ¤āĻž āĻ
āĻĢāĻžāĻ° āĻāĻ°ā§, āĻā§āĻĄ āĻ¸ā§āĻ¨āĻŋāĻĒā§āĻ āĻ°ā§āĻāĻ°ā§āĻĄ āĻāĻŦāĻ āĻ°āĻŋāĻĒā§āĻ˛ā§ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻĒā§āĻ°ā§āĻŦā§ āĻĻā§āĻāĻ¯āĻŧāĻž āĻĄāĻŋāĻŦāĻžāĻāĻžāĻ° lib/debug.rb āĻŦā§āĻ¸ āĻĄāĻŋāĻ¸ā§āĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻļāĻ¨ āĻĨā§āĻā§ āĻ¸āĻ°āĻžāĻ¨ā§ āĻšāĻ¯āĻŧā§āĻā§āĨ¤
- āĻāĻ˛ āĻŦā§āĻ¯āĻžāĻ āĻā§āĻ°ā§āĻ¸ āĻ°āĻŋāĻĒā§āĻ°ā§āĻā§ āĻ¤ā§āĻ°ā§āĻāĻŋāĻ° āĻāĻžāĻā§āĻˇā§āĻˇ āĻšāĻžāĻāĻ˛āĻžāĻāĻāĻŋāĻ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻŋāĻ¤āĨ¤ āĻŦāĻŋāĻ˛ā§āĻ-āĻāĻ¨ āĻāĻŦāĻ āĻĄāĻŋāĻĢāĻ˛ā§āĻ-āĻ¸āĻā§āĻˇāĻŽ āĻā§āĻŽ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻ¤ā§āĻ°ā§āĻāĻŋ_āĻšāĻžāĻāĻ˛āĻžāĻāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻĢā§āĻ˛ā§āĻ¯āĻžāĻāĻŋāĻ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻĢā§āĻ˛ā§āĻ¯āĻžāĻāĻŋāĻ āĻ āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§, āĻāĻĒāĻ¨āĻŋ "--āĻ āĻā§āĻˇāĻŽ-āĻ¤ā§āĻ°ā§āĻāĻŋ_āĻšāĻžāĻāĻ˛āĻžāĻāĻ" āĻ¸ā§āĻāĻŋāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ $ ruby ââtest.rb test.rb:1:in " ": āĻ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ "āĻ¸āĻŽāĻ¯āĻŧ" 1 āĻāĻ° āĻāĻ¨ā§āĻ¯: āĻĒā§āĻ°ā§āĻŖāĻ¸āĻāĻā§āĻ¯āĻž (āĻā§āĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻ¤ā§āĻ°ā§āĻāĻŋ) 1.āĻ¸āĻŽāĻ¯āĻŧ {} ^^^^^ āĻāĻĒāĻ¨āĻŋ āĻāĻŋ āĻŦāĻ˛āĻ¤ā§ āĻāĻžāĻ¨? āĻŦāĻžāĻ°
- āĻāĻ¨ā§āĻāĻžāĻ°ā§āĻā§āĻāĻŋāĻ āĻāĻŖāĻ¨āĻžāĻ° āĻļā§āĻ˛ āĻāĻāĻāĻ°āĻŦāĻŋ (āĻāĻ°āĻāĻĒāĻŋāĻāĻ˛, āĻ°āĻŋāĻĄ-āĻāĻāĻžāĻ˛-āĻĒā§āĻ°āĻŋāĻ¨ā§āĻ-āĻ˛ā§āĻĒ) āĻĒā§āĻ°āĻŦā§āĻļ āĻāĻ°āĻžāĻ¨ā§ āĻā§āĻĄā§āĻ° āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧ āĻ¸āĻŽāĻžāĻĒā§āĻ¤āĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°ā§ (āĻ¯āĻāĻ¨ āĻāĻĒāĻ¨āĻŋ āĻāĻžāĻāĻĒ āĻāĻ°ā§āĻ¨, āĻāĻ¨āĻĒā§āĻ āĻāĻžāĻ˛āĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻžāĻ° āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻāĻā§āĻāĻŋāĻ¤ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧ, āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻĒāĻ¨āĻŋ āĻā§āĻ¯āĻžāĻŦ āĻŦāĻž āĻļāĻŋāĻĢāĻ+ āĻĻāĻŋāĻ¯āĻŧā§ āĻ¸āĻ°āĻžāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻā§āĻ¯āĻžāĻŦ āĻā§)āĨ¤ āĻ§āĻžāĻ°āĻžāĻŦāĻžāĻšāĻŋāĻāĻ¤āĻž āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§, āĻāĻžāĻāĻžāĻāĻžāĻāĻŋ āĻāĻāĻāĻŋ āĻĄāĻžāĻ¯āĻŧāĻžāĻ˛āĻ āĻŦāĻžāĻā§āĻ¸ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻ¯āĻž āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻŋāĻ¤ āĻāĻāĻā§āĻŽā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°ā§āĨ¤ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻ
ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻ¤ā§ āĻā§āĻŦā§āĻ°ā§āĻĄ āĻļāĻ°ā§āĻāĻāĻžāĻ Alt+d āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
- āĻāĻžāĻˇāĻž āĻ¸āĻŋāĻ¨āĻā§āĻ¯āĻžāĻā§āĻ¸ āĻāĻāĻ¨ āĻšā§āĻ¯āĻžāĻļ āĻ˛āĻŋāĻāĻžāĻ°āĻžāĻ˛ āĻāĻŦāĻ āĻā§āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻā§āĻ° āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋāĻā§ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻ˛ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻĄāĻŧāĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧāĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, "{x: x, y: y}" āĻ āĻāĻŋāĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻŋāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻ¨ "{x:, y:}" āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻāĻŦāĻ "foo(x: x, y: y)" - foo( x:, y:)"āĨ¤
- āĻāĻāĻ-āĻ˛āĻžāĻāĻ¨ āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨ āĻŽā§āĻ¯āĻžāĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻļā§āĻ˛ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ (ary => [x, y, z]), āĻ¯āĻž āĻāĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻŽā§āĻ˛āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĒāĻ¤āĻžāĻāĻžāĻā§āĻāĻŋāĻ¤ āĻ¨āĻ¯āĻŧāĨ¤
- āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨ āĻŽā§āĻ¯āĻžāĻā§āĻ° "^" āĻ āĻĒāĻžāĻ°ā§āĻāĻ°āĻāĻŋāĻ¤ā§ āĻāĻāĻ¨ āĻ¨āĻŋāĻ°ā§āĻŦāĻŋāĻāĻžāĻ°ā§ āĻ āĻāĻŋāĻŦā§āĻ¯āĻā§āĻ¤āĻŋ āĻĨāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ: Prime.each_cons(2).lazy.find_all{_1 in [n, ^(n + 2)]}.take(3).to_a #= >? [[ā§Š, ā§Ģ], [ā§Ģ, ā§], [ā§§ā§§, ā§§ā§Š]]
- āĻāĻāĻ-āĻ˛āĻžāĻāĻ¨ āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨ āĻŽā§āĻ¯āĻžāĻāĻā§āĻ˛āĻŋāĻ¤ā§, āĻāĻĒāĻ¨āĻŋ āĻŦāĻ¨ā§āĻ§āĻ¨ā§ āĻŦāĻžāĻĻ āĻĻāĻŋāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨: [0, 1] => _, x {y: 2} => y: x #=> 1 y #=> 2
- āĻāĻ°āĻŦāĻŋāĻāĻ¸ āĻāĻžāĻāĻĒ āĻā§āĻāĻž āĻāĻžāĻˇāĻž, āĻ¯āĻž āĻāĻĒāĻ¨āĻžāĻā§ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽā§āĻ° āĻāĻžāĻ āĻžāĻŽā§ āĻāĻŦāĻ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻĒā§āĻ°āĻāĻžāĻ°āĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧ, "<" āĻāĻŋāĻšā§āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻžāĻāĻĒ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°ā§āĻ° āĻāĻĒāĻ°ā§āĻ° āĻ¸ā§āĻŽāĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§āĻ āĻāĻ°ā§āĻā§, āĻā§āĻ¨ā§āĻ°āĻŋāĻ āĻ§āĻ°āĻŖā§āĻ° āĻāĻĒāĻ¨āĻžāĻŽā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§āĻ āĻāĻ°ā§āĻā§, āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°ā§āĻā§ āĻ°āĻ¤ā§āĻ¨ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻāĻā§āĻ°āĻš, āĻāĻ¨ā§āĻ¨āĻ¤ āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻāĻŦāĻ āĻŦāĻŋāĻ˛ā§āĻ-āĻāĻ¨ āĻāĻŦāĻ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻ¨ā§āĻ āĻ¨āĻ¤ā§āĻ¨ āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
- TypePro āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻāĻžāĻāĻĒ āĻ ā§āĻ¯āĻžāĻ¨āĻžāĻ˛āĻžāĻāĻāĻžāĻ°ā§ āĻ¸āĻŽāĻ¨ā§āĻŦāĻŋāĻ¤ āĻāĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ āĻĒāĻ°āĻŋāĻŦā§āĻļā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻŽā§āĻ˛āĻ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¯āĻž āĻ¸ā§āĻĒāĻˇā§āĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻ¤āĻĨā§āĻ¯ āĻāĻžāĻĄāĻŧāĻžāĻ āĻā§āĻĄ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖā§āĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ RBS āĻā§āĻāĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§ (āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, VSCode āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻā§āĻ° āĻ¸āĻžāĻĨā§ TypePro āĻ¸āĻāĻšāĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻĄ-āĻ āĻ¨ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§)āĨ¤
- āĻāĻāĻžāĻ§āĻŋāĻ āĻ ā§āĻ¯āĻžāĻ¸āĻžāĻāĻ¨āĻŽā§āĻ¨ā§āĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ°āĻŖā§āĻ° āĻā§āĻ°āĻŽ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻā§ "foo[0], bar[0] = baz, qux" āĻ āĻāĻŋāĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻŋāĻ° āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋ baz, qux, foo, bar āĻā§āĻ°āĻŽā§ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻ¨ foo, bar, baz, quxāĨ¤
- VWA (āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛ āĻĒā§āĻ°āĻ¸ā§āĻĨ āĻŦāĻ°āĻžāĻĻā§āĻĻāĻāĻ°āĻŖ) āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸ā§āĻā§āĻ°āĻŋāĻāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŽā§āĻŽāĻ°āĻŋ āĻŦāĻ°āĻžāĻĻā§āĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻŽā§āĻ˛āĻ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
- āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻ°āĻ¤ā§āĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻāĻĒāĻĄā§āĻ āĻāĻ°āĻž āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻāĻŦāĻ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻ¤ā§ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤āĨ¤ āĻ¨ā§āĻ-āĻāĻĢāĻāĻŋāĻĒāĻŋ, āĻ¨ā§āĻ-āĻāĻŽā§āĻ¯āĻžāĻĒ, āĻ¨ā§āĻ-āĻĒāĻĒ, āĻ¨ā§āĻ-āĻāĻ¸āĻāĻŽāĻāĻŋāĻĒāĻŋ, āĻŽā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻ¸, āĻĒā§āĻ°āĻžāĻāĻŽ āĻāĻŦāĻ āĻĄāĻŋāĻŦāĻžāĻ āĻĒā§āĻ¯āĻžāĻā§āĻāĻā§āĻ˛āĻŋ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤āĨ¤
āĻāĻ¤ā§āĻ¸: opennet.ru