ರೂಬಿ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯ ಬಿಡುಗಡೆ 3.1

ರೂಬಿ 3.1.0 ಅನ್ನು ಬಿಡುಗಡೆ ಮಾಡಲಾಗಿದೆ, ಇದು ಕ್ರಿಯಾತ್ಮಕ ವಸ್ತು-ಆಧಾರಿತ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯಾಗಿದ್ದು ಅದು ಪ್ರೋಗ್ರಾಂ ಅಭಿವೃದ್ಧಿಯಲ್ಲಿ ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿಯಾಗಿದೆ ಮತ್ತು ಪರ್ಲ್, ಜಾವಾ, ಪೈಥಾನ್, ಸ್ಮಾಲ್‌ಟಾಕ್, ಐಫೆಲ್, ಅಡಾ ಮತ್ತು ಲಿಸ್ಪ್‌ನ ಅತ್ಯುತ್ತಮ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಸಂಯೋಜಿಸುತ್ತದೆ. ಪ್ರಾಜೆಕ್ಟ್ ಕೋಡ್ ಅನ್ನು BSD ("2-ಕ್ಲಾಸ್ BSDL") ಮತ್ತು "ರೂಬಿ" ಪರವಾನಗಿಗಳ ಅಡಿಯಲ್ಲಿ ವಿತರಿಸಲಾಗಿದೆ, ಇದು GPL ಪರವಾನಗಿಯ ಇತ್ತೀಚಿನ ಆವೃತ್ತಿಯನ್ನು ಉಲ್ಲೇಖಿಸುತ್ತದೆ ಮತ್ತು GPLv3 ನೊಂದಿಗೆ ಸಂಪೂರ್ಣವಾಗಿ ಹೊಂದಿಕೊಳ್ಳುತ್ತದೆ.

ಮುಖ್ಯ ಸುಧಾರಣೆಗಳು:

  • ಹೊಸ ಪ್ರಾಯೋಗಿಕ ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿರುವ JIT ಕಂಪೈಲರ್, YJIT, ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ, ಇದನ್ನು Shopify ಇ-ಕಾಮರ್ಸ್ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ನ ಡೆವಲಪರ್‌ಗಳು ರೈಲ್ಸ್ ಫ್ರೇಮ್‌ವರ್ಕ್ ಅನ್ನು ಬಳಸುವ ರೂಬಿ ಪ್ರೋಗ್ರಾಂಗಳ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಸುಧಾರಿಸುವ ಉಪಕ್ರಮದ ಭಾಗವಾಗಿ ರಚಿಸಿದ್ದಾರೆ ಮತ್ತು ಹಲವಾರು ವಿಧಾನಗಳನ್ನು ಕರೆಯುತ್ತಾರೆ. ಈ ಹಿಂದೆ ಬಳಸಿದ MJIT JIT ಕಂಪೈಲರ್‌ನಿಂದ ಪ್ರಮುಖ ವ್ಯತ್ಯಾಸವೆಂದರೆ, ಸಂಪೂರ್ಣ ವಿಧಾನಗಳನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುವುದರ ಮೇಲೆ ಆಧಾರಿತವಾಗಿದೆ ಮತ್ತು C ಭಾಷೆಯಲ್ಲಿ ಬಾಹ್ಯ ಕಂಪೈಲರ್ ಅನ್ನು ಬಳಸುತ್ತದೆ, YJIT ಲೇಜಿ ಬೇಸಿಕ್ ಬ್ಲಾಕ್ ಆವೃತ್ತಿಯನ್ನು (LBBV) ಬಳಸುತ್ತದೆ ಮತ್ತು ಸಂಯೋಜಿತ JIT ಕಂಪೈಲರ್ ಅನ್ನು ಹೊಂದಿದೆ. LBBV ಯೊಂದಿಗೆ, JIT ಮೊದಲು ವಿಧಾನದ ಪ್ರಾರಂಭವನ್ನು ಮಾತ್ರ ಕಂಪೈಲ್ ಮಾಡುತ್ತದೆ ಮತ್ತು ಕೆಲವು ಸಮಯದ ನಂತರ ಉಳಿದವುಗಳನ್ನು ಕಂಪೈಲ್ ಮಾಡುತ್ತದೆ, ಮರಣದಂಡನೆಯ ಸಮಯದಲ್ಲಿ ಬಳಸಿದ ಅಸ್ಥಿರ ಮತ್ತು ವಾದಗಳ ಪ್ರಕಾರಗಳನ್ನು ನಿರ್ಧರಿಸಿದ ನಂತರ. YJIT ಅನ್ನು ಬಳಸುವಾಗ, ರೈಲ್ಸ್‌ಬೆಂಚ್ ಪರೀಕ್ಷೆಯನ್ನು ನಡೆಸುವಾಗ ಕಾರ್ಯಕ್ಷಮತೆಯಲ್ಲಿ 22% ಹೆಚ್ಚಳವನ್ನು ದಾಖಲಿಸಲಾಗಿದೆ ಮತ್ತು ದ್ರವ-ರೆಂಡರ್ ಪರೀಕ್ಷೆಯಲ್ಲಿ 39% ಹೆಚ್ಚಳವಾಗಿದೆ. YJIT ಪ್ರಸ್ತುತ x86-64 ಆರ್ಕಿಟೆಕ್ಚರ್ ಹೊಂದಿರುವ ಸಿಸ್ಟಮ್‌ಗಳಲ್ಲಿ unix-ರೀತಿಯ OS ಗಳಿಗೆ ಬೆಂಬಲವನ್ನು ಸೀಮಿತಗೊಳಿಸಲಾಗಿದೆ ಮತ್ತು ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ (ಸಕ್ರಿಯಗೊಳಿಸಲು, ಆಜ್ಞಾ ಸಾಲಿನಲ್ಲಿ “--yjit” ಫ್ಲ್ಯಾಗ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿ).
  • ಹಳೆಯ MJIT JIT ಕಂಪೈಲರ್‌ನ ಸುಧಾರಿತ ಕಾರ್ಯಕ್ಷಮತೆ. ರೈಲ್‌ಗಳನ್ನು ಬಳಸುವ ಯೋಜನೆಗಳಿಗೆ, ಡೀಫಾಲ್ಟ್ ಗರಿಷ್ಠ ಸಂಗ್ರಹ ಗಾತ್ರವನ್ನು (--jit-max-cache) 100 ರಿಂದ 10000 ಸೂಚನೆಗಳಿಗೆ ಹೆಚ್ಚಿಸಲಾಗಿದೆ. 1000 ಕ್ಕಿಂತ ಹೆಚ್ಚು ಸೂಚನೆಗಳನ್ನು ಹೊಂದಿರುವ ವಿಧಾನಗಳಿಗಾಗಿ JIT ಬಳಸುವುದನ್ನು ನಿಲ್ಲಿಸಲಾಗಿದೆ. Zeitwerk ಆಫ್ ರೈಲ್ಸ್ ಅನ್ನು ಬೆಂಬಲಿಸಲು, ವರ್ಗ ಈವೆಂಟ್‌ಗಳಿಗೆ TracePoint ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದಾಗ JIT ಕೋಡ್ ಅನ್ನು ಇನ್ನು ಮುಂದೆ ತ್ಯಜಿಸಲಾಗುವುದಿಲ್ಲ.
  • ಇದು ಸಂಪೂರ್ಣವಾಗಿ ಪುನಃ ಬರೆಯಲಾದ debug.gem ಡೀಬಗ್ಗರ್ ಅನ್ನು ಒಳಗೊಂಡಿದೆ, ಇದು ರಿಮೋಟ್ ಡೀಬಗ್ ಮಾಡುವಿಕೆಯನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ, ಡೀಬಗ್ ಮಾಡಲಾದ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ನಿಧಾನಗೊಳಿಸುವುದಿಲ್ಲ, ಸುಧಾರಿತ ಡೀಬಗ್ ಮಾಡುವ ಇಂಟರ್ಫೇಸ್‌ಗಳೊಂದಿಗೆ ಏಕೀಕರಣವನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ (VSCode ಮತ್ತು Chrome), ಬಹು-ಥ್ರೆಡ್ ಮತ್ತು ಬಹು-ಪ್ರಕ್ರಿಯೆ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಡೀಬಗ್ ಮಾಡಲು ಬಳಸಬಹುದು, ಒದಗಿಸುತ್ತದೆ ಒಂದು REPL ಕೋಡ್ ಎಕ್ಸಿಕ್ಯೂಶನ್ ಇಂಟರ್ಫೇಸ್, ಸುಧಾರಿತ ಟ್ರೇಸಿಂಗ್ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ನೀಡುತ್ತದೆ, ಕೋಡ್ ತುಣುಕುಗಳನ್ನು ರೆಕಾರ್ಡ್ ಮಾಡಬಹುದು ಮತ್ತು ರಿಪ್ಲೇ ಮಾಡಬಹುದು. ಹಿಂದೆ ನೀಡಲಾದ ಡೀಬಗರ್ lib/debug.rb ಅನ್ನು ಮೂಲ ವಿತರಣೆಯಿಂದ ತೆಗೆದುಹಾಕಲಾಗಿದೆ.
    ರೂಬಿ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯ ಬಿಡುಗಡೆ 3.1
  • ಕಾಲ್ ಬ್ಯಾಕ್ ಟ್ರೇಸ್ ವರದಿಗಳಲ್ಲಿನ ದೋಷಗಳ ದೃಶ್ಯ ಹೈಲೈಟ್ ಅನ್ನು ಅಳವಡಿಸಲಾಗಿದೆ. ಅಂತರ್ನಿರ್ಮಿತ ಮತ್ತು ಡೀಫಾಲ್ಟ್-ಸಕ್ರಿಯಗೊಳಿಸಿದ ಜೆಮ್ ಪ್ಯಾಕೇಜ್ ದೋಷ_ಹೈಲೈಟ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ದೋಷ ಫ್ಲ್ಯಾಗ್ ಮಾಡುವಿಕೆಯನ್ನು ಒದಗಿಸಲಾಗಿದೆ. ದೋಷ ಫ್ಲ್ಯಾಗ್ ಮಾಡುವಿಕೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು, ನೀವು "--disable-error_highlight" ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಬಳಸಬಹುದು. $ ruby ​​test.rb test.rb:1:"" ನಲ್ಲಿ: 1 ಗಾಗಿ ವ್ಯಾಖ್ಯಾನಿಸದ ವಿಧಾನ "ಸಮಯ": ಪೂರ್ಣಾಂಕ (NoMethodError) 1.time {} ^^^^^ ನೀವು ಅರ್ಥಮಾಡಿಕೊಂಡಿದ್ದೀರಾ? ಬಾರಿ
  • ಸಂವಾದಾತ್ಮಕ ಲೆಕ್ಕಾಚಾರಗಳ ಶೆಲ್ IRB (REPL, ರೀಡ್-ಇವಾಲ್-ಪ್ರಿಂಟ್-ಲೂಪ್) ನಮೂದಿಸಿದ ಕೋಡ್‌ನ ಸ್ವಯಂಚಾಲಿತ ಪೂರ್ಣಗೊಳಿಸುವಿಕೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ (ನೀವು ಟೈಪ್ ಮಾಡಿದಂತೆ, ಇನ್‌ಪುಟ್ ಅನ್ನು ಮುಂದುವರಿಸುವ ಆಯ್ಕೆಗಳೊಂದಿಗೆ ಸುಳಿವು ಪ್ರದರ್ಶಿಸಲಾಗುತ್ತದೆ, ಅದರ ನಡುವೆ ನೀವು ಟ್ಯಾಬ್ ಅಥವಾ Shift+ ನೊಂದಿಗೆ ಚಲಿಸಬಹುದು ಟ್ಯಾಬ್ ಕೀ). ಮುಂದುವರಿಕೆ ಆಯ್ಕೆಯನ್ನು ಆರಿಸಿದ ನಂತರ, ಆಯ್ದ ಐಟಂಗೆ ಸಂಬಂಧಿಸಿದ ದಸ್ತಾವೇಜನ್ನು ಪ್ರದರ್ಶಿಸುವ ಸಂವಾದ ಪೆಟ್ಟಿಗೆಯನ್ನು ಸಮೀಪದಲ್ಲಿ ಪ್ರದರ್ಶಿಸಲಾಗುತ್ತದೆ. ಪೂರ್ಣ ದಸ್ತಾವೇಜನ್ನು ಪ್ರವೇಶಿಸಲು ಕೀಬೋರ್ಡ್ ಶಾರ್ಟ್‌ಕಟ್ Alt+d ಅನ್ನು ಬಳಸಬಹುದು.
    ರೂಬಿ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯ ಬಿಡುಗಡೆ 3.1
  • ಭಾಷೆಯ ಸಿಂಟ್ಯಾಕ್ಸ್ ಈಗ ಹ್ಯಾಶ್ ಲಿಟರಲ್ಸ್ ಮತ್ತು ಕೀವರ್ಡ್ ಆರ್ಗ್ಯುಮೆಂಟ್‌ಗಳಲ್ಲಿನ ಮೌಲ್ಯಗಳನ್ನು ಕಾರ್ಯಗಳನ್ನು ಕರೆಯುವಾಗ ಬಿಟ್ಟುಬಿಡಲು ಅನುಮತಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, “{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 #= > ? [[3, 5], [5, 7], [11, 13]]
  • ಏಕ-ಸಾಲಿನ ಮಾದರಿ ಹೊಂದಾಣಿಕೆಗಳಲ್ಲಿ, ನೀವು ಆವರಣಗಳನ್ನು ಬಿಟ್ಟುಬಿಡಬಹುದು: [0, 1] => _, x {y: 2} => y: x #=> 1 y #=> 2
  • ಪ್ರೋಗ್ರಾಂನ ರಚನೆ ಮತ್ತು ಬಳಸಿದ ಪ್ರಕಾರಗಳನ್ನು ನಿರ್ಧರಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುವ RBS ಪ್ರಕಾರದ ಟಿಪ್ಪಣಿ ಭಾಷೆ, "<" ಚಿಹ್ನೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಟೈಪ್ ಪ್ಯಾರಾಮೀಟರ್‌ಗಳ ಮೇಲಿನ ಮಿತಿಯನ್ನು ಸೂಚಿಸಲು ಬೆಂಬಲವನ್ನು ಸೇರಿಸಿದೆ, ಜೆನೆರಿಕ್ ಪ್ರಕಾರಗಳ ಅಲಿಯಾಸ್‌ಗಳಿಗೆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ, ಇದಕ್ಕಾಗಿ ಬೆಂಬಲವನ್ನು ಅಳವಡಿಸಲಾಗಿದೆ ರತ್ನಗಳ ನಿರ್ವಹಣೆಗಾಗಿ ಸಂಗ್ರಹಣೆಗಳು, ಸುಧಾರಿತ ಕಾರ್ಯಕ್ಷಮತೆ ಮತ್ತು ಅಂತರ್ನಿರ್ಮಿತ ಮತ್ತು ಪ್ರಮಾಣಿತ ಗ್ರಂಥಾಲಯಗಳಿಗಾಗಿ ಅನೇಕ ಹೊಸ ಸಹಿಗಳನ್ನು ಅಳವಡಿಸಲಾಗಿದೆ.
  • ಸಮಗ್ರ ಅಭಿವೃದ್ಧಿ ಪರಿಸರಗಳಿಗೆ ಪ್ರಾಯೋಗಿಕ ಬೆಂಬಲವನ್ನು TypePro ಸ್ಥಿರ ಪ್ರಕಾರದ ವಿಶ್ಲೇಷಕಕ್ಕೆ ಸೇರಿಸಲಾಗಿದೆ, ಇದು ಸ್ಪಷ್ಟ ಪ್ರಕಾರದ ಮಾಹಿತಿಯಿಲ್ಲದೆ ಕೋಡ್ ವಿಶ್ಲೇಷಣೆಯ ಆಧಾರದ ಮೇಲೆ RBS ಟಿಪ್ಪಣಿಗಳನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ (ಉದಾಹರಣೆಗೆ, VSCode ಸಂಪಾದಕದೊಂದಿಗೆ TypePro ಅನ್ನು ಸಂಯೋಜಿಸಲು ಆಡ್-ಆನ್ ಅನ್ನು ಸಿದ್ಧಪಡಿಸಲಾಗಿದೆ).
  • ಬಹು ಕಾರ್ಯಯೋಜನೆಗಳನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುವ ಕ್ರಮವನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ. ಉದಾಹರಣೆಗೆ, ಹಿಂದೆ "foo[0], bar[0] = baz, qux" ಎಂಬ ಅಭಿವ್ಯಕ್ತಿಯ ಘಟಕಗಳನ್ನು baz, qux, foo, bar ಕ್ರಮದಲ್ಲಿ ಸಂಸ್ಕರಿಸಲಾಗುತ್ತಿತ್ತು, ಆದರೆ ಈಗ foo, bar, baz, qux.
  • VWA (ವೇರಿಯಬಲ್ ಅಗಲ ಹಂಚಿಕೆ) ಕಾರ್ಯವಿಧಾನವನ್ನು ಬಳಸಿಕೊಂಡು ಸ್ಟ್ರಿಂಗ್‌ಗಳಿಗಾಗಿ ಮೆಮೊರಿ ಹಂಚಿಕೆಗೆ ಪ್ರಾಯೋಗಿಕ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • ಅಂತರ್ನಿರ್ಮಿತ ಜೆಮ್ ಮಾಡ್ಯೂಲ್‌ಗಳ ನವೀಕರಿಸಿದ ಆವೃತ್ತಿಗಳು ಮತ್ತು ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಲೈಬ್ರರಿಯಲ್ಲಿ ಸೇರಿಸಲಾದವುಗಳು. net-ftp, net-imap, net-pop, net-smtp, ಮ್ಯಾಟ್ರಿಕ್ಸ್, ಪ್ರೈಮ್ ಮತ್ತು ಡೀಬಗ್ ಪ್ಯಾಕೇಜ್‌ಗಳು ಅಂತರ್ನಿರ್ಮಿತವಾಗಿವೆ.

ಮೂಲ: opennet.ru

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ