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

ಪರಿಚಯಿಸಿದರು ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯ ಬಿಡುಗಡೆ 1.14 ಗೆ ಹೋಗಿ, ಕಂಪೈಲ್ ಮಾಡಲಾದ ಭಾಷೆಗಳ ಉನ್ನತ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಸ್ಕ್ರಿಪ್ಟಿಂಗ್ ಭಾಷೆಗಳ ಅನುಕೂಲಗಳಾದ ಬರವಣಿಗೆಯ ಸುಲಭ, ಅಭಿವೃದ್ಧಿಯ ವೇಗ ಮತ್ತು ದೋಷ ರಕ್ಷಣೆಯಂತಹ ಹೈಬ್ರಿಡ್ ಪರಿಹಾರವಾಗಿ ಸಮುದಾಯದ ಭಾಗವಹಿಸುವಿಕೆಯೊಂದಿಗೆ Google ಅಭಿವೃದ್ಧಿಪಡಿಸುತ್ತಿದೆ. ಪ್ರಾಜೆಕ್ಟ್ ಕೋಡ್ ವಿತರಿಸುವವರು BSD ಪರವಾನಗಿ ಅಡಿಯಲ್ಲಿ.

ಗೋ ಸಿಂಟ್ಯಾಕ್ಸ್ ಪೈಥಾನ್ ಭಾಷೆಯಿಂದ ಕೆಲವು ಎರವಲುಗಳೊಂದಿಗೆ ಸಿ ಭಾಷೆಯ ಪರಿಚಿತ ಅಂಶಗಳನ್ನು ಆಧರಿಸಿದೆ. ಭಾಷೆ ಸಾಕಷ್ಟು ಸಂಕ್ಷಿಪ್ತವಾಗಿದೆ, ಆದರೆ ಕೋಡ್ ಅನ್ನು ಓದಲು ಮತ್ತು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಸುಲಭವಾಗಿದೆ. ಗೋ ಕೋಡ್ ಅನ್ನು ಸ್ಟ್ಯಾಂಡ್-ಅಲೋನ್ ಬೈನರಿ ಎಕ್ಸಿಕ್ಯೂಟಬಲ್‌ಗಳಾಗಿ ಸಂಕಲಿಸಲಾಗಿದೆ, ಅದು ವರ್ಚುವಲ್ ಯಂತ್ರವನ್ನು ಬಳಸದೆಯೇ ಸ್ಥಳೀಯವಾಗಿ ಚಲಿಸುತ್ತದೆ (ಪ್ರೊಫೈಲಿಂಗ್, ಡೀಬಗ್ ಮಾಡುವಿಕೆ ಮತ್ತು ಇತರ ರನ್‌ಟೈಮ್ ಸಮಸ್ಯೆ ಪತ್ತೆ ಉಪವ್ಯವಸ್ಥೆಗಳನ್ನು ಹೀಗೆ ಸಂಯೋಜಿಸಲಾಗಿದೆ ರನ್ಟೈಮ್ ಘಟಕಗಳು), ಇದು ಸಿ ಪ್ರೋಗ್ರಾಂಗಳಿಗೆ ಹೋಲಿಸಬಹುದಾದ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಸಾಧಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.

ಪ್ರಾಜೆಕ್ಟ್ ಅನ್ನು ಆರಂಭದಲ್ಲಿ ಮಲ್ಟಿ-ಥ್ರೆಡ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಮತ್ತು ಮಲ್ಟಿ-ಕೋರ್ ಸಿಸ್ಟಮ್‌ಗಳಲ್ಲಿ ಸಮರ್ಥ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಗಮನದಲ್ಲಿಟ್ಟುಕೊಂಡು ಅಭಿವೃದ್ಧಿಪಡಿಸಲಾಗಿದೆ, ಸಮಾನಾಂತರ ಕಂಪ್ಯೂಟಿಂಗ್ ಅನ್ನು ಸಂಘಟಿಸಲು ಆಪರೇಟರ್-ಮಟ್ಟದ ವಿಧಾನಗಳನ್ನು ಒದಗಿಸುವುದು ಮತ್ತು ಸಮಾನಾಂತರ-ಕಾರ್ಯಗತಗೊಳಿಸಿದ ವಿಧಾನಗಳ ನಡುವೆ ಪರಸ್ಪರ ಕ್ರಿಯೆಯನ್ನು ಒದಗಿಸುವುದು ಸೇರಿದಂತೆ. ಭಾಷೆಯು ಅತಿಯಾಗಿ ಹಂಚಿಕೆ ಮಾಡಲಾದ ಮೆಮೊರಿ ಬ್ಲಾಕ್‌ಗಳ ವಿರುದ್ಧ ಅಂತರ್ನಿರ್ಮಿತ ರಕ್ಷಣೆಯನ್ನು ಒದಗಿಸುತ್ತದೆ ಮತ್ತು ಕಸ ಸಂಗ್ರಾಹಕವನ್ನು ಬಳಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಒದಗಿಸುತ್ತದೆ.

ಮುಖ್ಯ ನಾವೀನ್ಯತೆಗಳುGo 1.14 ಬಿಡುಗಡೆಯಲ್ಲಿ ಪರಿಚಯಿಸಲಾಗಿದೆ:

  • "go" ಆಜ್ಞೆಯಲ್ಲಿನ ಹೊಸ ಮಾಡ್ಯೂಲ್ ವ್ಯವಸ್ಥೆಯನ್ನು ಸಾಮಾನ್ಯ ಬಳಕೆಗೆ ಸಿದ್ಧವೆಂದು ಘೋಷಿಸಲಾಗಿದೆ, ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ ಮತ್ತು GOPATH ಬದಲಿಗೆ ಅವಲಂಬನೆ ನಿರ್ವಹಣೆಗೆ ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ. ಹೊಸ ಮಾಡ್ಯೂಲ್ ವ್ಯವಸ್ಥೆಯು ಸಮಗ್ರ ಆವೃತ್ತಿಯ ಬೆಂಬಲ, ಪ್ಯಾಕೇಜ್ ವಿತರಣಾ ಸಾಮರ್ಥ್ಯಗಳು ಮತ್ತು ಸುಧಾರಿತ ಅವಲಂಬನೆ ನಿರ್ವಹಣೆಯನ್ನು ಒಳಗೊಂಡಿದೆ. ಮಾಡ್ಯೂಲ್‌ಗಳೊಂದಿಗೆ, ಡೆವಲಪರ್‌ಗಳು ಇನ್ನು ಮುಂದೆ GOPATH ಮರದೊಳಗೆ ಕೆಲಸ ಮಾಡಲು ಸಂಬಂಧಿಸಿಲ್ಲ, ಆವೃತ್ತಿಯ ಅವಲಂಬನೆಗಳನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ವ್ಯಾಖ್ಯಾನಿಸಬಹುದು ಮತ್ತು ಪುನರಾವರ್ತಿತ ನಿರ್ಮಾಣಗಳನ್ನು ರಚಿಸಬಹುದು.
  • ಸೇರಿಸಲಾಗಿದೆ ವಿಧಾನಗಳ ಅತಿಕ್ರಮಿಸುವ ಸೆಟ್‌ನೊಂದಿಗೆ ಅಂತರ್ಮುಖಿಗಳನ್ನು ಎಂಬೆಡ್ ಮಾಡಲು ಬೆಂಬಲ. ಅಂತರ್ನಿರ್ಮಿತ ಇಂಟರ್ಫೇಸ್‌ನಿಂದ ವಿಧಾನಗಳು ಈಗ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಇಂಟರ್ಫೇಸ್‌ಗಳಲ್ಲಿನ ವಿಧಾನಗಳಂತೆಯೇ ಅದೇ ಹೆಸರುಗಳು ಮತ್ತು ಸಹಿಗಳನ್ನು ಹೊಂದಬಹುದು. ಸ್ಪಷ್ಟವಾಗಿ ಘೋಷಿಸಿದ ವಿಧಾನಗಳು ಮೊದಲಿನಂತೆಯೇ ಅನನ್ಯವಾಗಿರುತ್ತವೆ.
  • "ಡಿಫರ್" ಅಭಿವ್ಯಕ್ತಿಯ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಸುಧಾರಿಸಲಾಗಿದೆ, ಇದು ಮುಂದೂಡಲ್ಪಟ್ಟ ಫಂಕ್ಷನ್ ಅನ್ನು ನೇರವಾಗಿ ಕರೆಯುವಷ್ಟು ವೇಗವಾಗಿ ಮಾಡುತ್ತದೆ, ಕಾರ್ಯಕ್ಷಮತೆ-ಸೂಕ್ಷ್ಮ ಕೋಡ್‌ನಲ್ಲಿ ಮುಂದೂಡಲ್ಪಟ್ಟ ಕಾರ್ಯವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.
  • ಕೊರೊಟೀನ್‌ಗಳ (ಗೊರೂಟಿನ್‌ಗಳು) ಅಸಮಕಾಲಿಕ ಪೂರ್ವಭಾವಿತ್ವವನ್ನು ಒದಗಿಸಲಾಗಿದೆ - ಫಂಕ್ಷನ್ ಕರೆಗಳನ್ನು ಹೊಂದಿರದ ಲೂಪ್‌ಗಳು ಈಗ ಸಂಭಾವ್ಯವಾಗಿ ಶೆಡ್ಯೂಲರ್ ಡೆಡ್‌ಲಾಕ್‌ಗೆ ಕಾರಣವಾಗಬಹುದು ಅಥವಾ ಕಸ ಸಂಗ್ರಹಣೆಯ ಪ್ರಾರಂಭವನ್ನು ವಿಳಂಬಗೊಳಿಸಬಹುದು.
  • ಮೆಮೊರಿ ಪುಟ ಹಂಚಿಕೆ ವ್ಯವಸ್ಥೆಯ ದಕ್ಷತೆಯನ್ನು ಸುಧಾರಿಸಲಾಗಿದೆ ಮತ್ತು ದೊಡ್ಡ GOMAXPROCS ಮೌಲ್ಯಗಳೊಂದಿಗೆ ಕಾನ್ಫಿಗರೇಶನ್‌ಗಳಲ್ಲಿ ಈಗ ಗಮನಾರ್ಹವಾಗಿ ಕಡಿಮೆ ಲಾಕ್ ವಿವಾದಗಳಿವೆ. ಫಲಿತಾಂಶವು ಸುಪ್ತತೆಯನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ ಮತ್ತು ಮೆಮೊರಿಯ ದೊಡ್ಡ ಬ್ಲಾಕ್‌ಗಳನ್ನು ಏಕಕಾಲದಲ್ಲಿ ತೀವ್ರವಾಗಿ ವಿತರಿಸುವಾಗ ಥ್ರೋಪುಟ್ ಅನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ.
  • ಲಾಕ್ ಮಾಡುವಿಕೆಯನ್ನು ಆಪ್ಟಿಮೈಸ್ ಮಾಡಲಾಗಿದೆ ಮತ್ತು ಟೈಮ್‌ನಲ್ಲಿ ಬಳಸಿದ ಆಂತರಿಕ ಟೈಮರ್‌ಗಳನ್ನು ಚಾಲನೆ ಮಾಡುವಾಗ ಸಂದರ್ಭ ಸ್ವಿಚ್‌ಗಳ ಸಂಖ್ಯೆಯನ್ನು ಕಡಿಮೆ ಮಾಡಲಾಗಿದೆ. ನಂತರ, time.Tick, net.Conn.SetDeadline ಕಾರ್ಯಗಳು.
  • go ಕಮಾಂಡ್‌ನಲ್ಲಿ, ರೂಟ್‌ನಲ್ಲಿ ವೆಂಡರ್ ಡೈರೆಕ್ಟರಿ ಇದ್ದರೆ “-mod=vendor” ಫ್ಲ್ಯಾಗ್ ಅನ್ನು ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಸಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತದೆ, ನಿರ್ದಿಷ್ಟ ಮಾರಾಟಗಾರರೊಂದಿಗೆ ಬಾಹ್ಯ ಅವಲಂಬನೆಗಳನ್ನು ತಲುಪಿಸಲು ಉದ್ದೇಶಿಸಲಾಗಿದೆ. "ವೆಂಡರ್" ಡೈರೆಕ್ಟರಿಯಿಂದ ಮಾಡ್ಯೂಲ್ ಸಂಗ್ರಹದಿಂದ ಮಾಡ್ಯೂಲ್‌ಗಳನ್ನು ಲೋಡ್ ಮಾಡಲು ಪ್ರತ್ಯೇಕ "-mod=mod" ಫ್ಲ್ಯಾಗ್ ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ. go.mod ಫೈಲ್ ಓದಲು-ಮಾತ್ರವಾಗಿದ್ದರೆ, ಉನ್ನತ "ವೆಂಡರ್" ಡೈರೆಕ್ಟರಿ ಇಲ್ಲದಿದ್ದರೆ "-mod=readonly" ಫ್ಲ್ಯಾಗ್ ಅನ್ನು ಡಿಫಾಲ್ಟ್ ಆಗಿ ಹೊಂದಿಸಲಾಗುತ್ತದೆ. ಮಾಡ್ಯೂಲ್‌ನ ಮೂಲ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿನ ಬದಲಿಗೆ ಪರ್ಯಾಯ go.mod ಫೈಲ್ ಅನ್ನು ಸೂಚಿಸಲು "-modfile=file" ಫ್ಲ್ಯಾಗ್ ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • GOINSECURE ಪರಿಸರ ವೇರಿಯೇಬಲ್ ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ, ಹೊಂದಿಸಿದಾಗ, go ಆಜ್ಞೆಗೆ HTTPS ಬಳಕೆಯ ಅಗತ್ಯವಿರುವುದಿಲ್ಲ ಮತ್ತು ಮಾಡ್ಯೂಲ್‌ಗಳನ್ನು ನೇರವಾಗಿ ಲೋಡ್ ಮಾಡುವಾಗ ಪ್ರಮಾಣಪತ್ರ ಪರಿಶೀಲನೆಯನ್ನು ಬಿಟ್ಟುಬಿಡುತ್ತದೆ.
  • ಅಸುರಕ್ಷಿತ.Pointer ನ ಸುರಕ್ಷಿತ ಬಳಕೆಗಾಗಿ ನಿಯಮಗಳ ಅನುಸರಣೆಗಾಗಿ ಕೋಡ್ ಅನ್ನು ಪರಿಶೀಲಿಸಲು ಕಂಪೈಲರ್ ಡೀಫಾಲ್ಟ್ ಆಗಿ ಸಕ್ರಿಯಗೊಳಿಸಲಾದ “-d=checkptr” ಫ್ಲ್ಯಾಗ್ ಅನ್ನು ಸೇರಿಸಿದೆ.
  • ವಿತರಣೆಯಲ್ಲಿ ಹೊಸ ಪ್ಯಾಕೇಜ್ ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ ಹ್ಯಾಶ್/ಮಾಫಾಶ್ ಅನಿಯಂತ್ರಿತ ಬೈಟ್ ಅನುಕ್ರಮಗಳು ಅಥವಾ ಸ್ಟ್ರಿಂಗ್‌ಗಳಿಗಾಗಿ ಹ್ಯಾಶ್ ಕೋಷ್ಟಕಗಳನ್ನು ರಚಿಸಲು ಕ್ರಿಪ್ಟೋಗ್ರಾಫಿಕ್ ಅಲ್ಲದ ಹ್ಯಾಶ್ ಕಾರ್ಯಗಳೊಂದಿಗೆ.
  • Linux ನಲ್ಲಿ 64-bit RISC-V ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗೆ ಪ್ರಾಯೋಗಿಕ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • 64-ಬಿಟ್ ARM ಸಿಸ್ಟಮ್‌ಗಳಲ್ಲಿ FreeBSD ಗೆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ.

ಮೂಲ: opennet.ru

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