ಯೋಜನೆಯ ಬಿಡುಗಡೆ , ಇದು ಮೈಕ್ರೋಕಂಟ್ರೋಲರ್ಗಳು ಮತ್ತು ಕಾಂಪ್ಯಾಕ್ಟ್ ಸಿಂಗಲ್-ಪ್ರೊಸೆಸರ್ ಸಿಸ್ಟಮ್ಗಳಂತಹ ಫಲಿತಾಂಶದ ಕೋಡ್ನ ಕಾಂಪ್ಯಾಕ್ಟ್ ಪ್ರಾತಿನಿಧ್ಯ ಮತ್ತು ಕಡಿಮೆ ಸಂಪನ್ಮೂಲ ಬಳಕೆಯ ಅಗತ್ಯವಿರುವ ಪ್ರದೇಶಗಳಿಗೆ Go ಭಾಷಾ ಕಂಪೈಲರ್ ಅನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುತ್ತಿದೆ. ಕೋಡ್ BSD ಪರವಾನಗಿ ಅಡಿಯಲ್ಲಿ.
ವಿವಿಧ ಟಾರ್ಗೆಟ್ ಪ್ಲಾಟ್ಫಾರ್ಮ್ಗಳಿಗಾಗಿ ಸಂಕಲನವನ್ನು LLVM ಬಳಸಿಕೊಂಡು ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಗೋ ಪ್ರಾಜೆಕ್ಟ್ನಿಂದ ಮುಖ್ಯ ಟೂಲ್ಕಿಟ್ನಲ್ಲಿ ಬಳಸಲಾದ ಲೈಬ್ರರಿಗಳನ್ನು ಭಾಷೆಯನ್ನು ಬೆಂಬಲಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ. ಕಂಪೈಲ್ ಮಾಡಲಾದ ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಮೈಕ್ರೋಕಂಟ್ರೋಲರ್ಗಳಲ್ಲಿ ನೇರವಾಗಿ ಚಲಾಯಿಸಬಹುದು, ಸ್ವಯಂಚಾಲಿತ ಸ್ಕ್ರಿಪ್ಟ್ಗಳನ್ನು ಬರೆಯಲು Go ಅನ್ನು ಭಾಷೆಯಾಗಿ ಬಳಸಲು ಅನುಮತಿಸುತ್ತದೆ.
ಹೊಸ ಯೋಜನೆಯನ್ನು ರಚಿಸುವ ಪ್ರೇರಣೆಯು ಕಾಂಪ್ಯಾಕ್ಟ್ ಸಾಧನಗಳಲ್ಲಿ ಪರಿಚಿತ ಗೋ ಭಾಷೆಯನ್ನು ಬಳಸುವ ಬಯಕೆಯಾಗಿದೆ - ಮೈಕ್ರೋಕಂಟ್ರೋಲರ್ಗಳಿಗಾಗಿ ಪೈಥಾನ್ ಆವೃತ್ತಿ ಇದ್ದರೆ, ಗೋ ಭಾಷೆಗೆ ಇದೇ ರೀತಿಯದನ್ನು ಏಕೆ ರಚಿಸಬಾರದು ಎಂದು ಡೆವಲಪರ್ಗಳು ತರ್ಕಿಸಿದ್ದಾರೆ. ಹೋಗು ರಸ್ಟ್ ಬದಲಿಗೆ ಕಲಿಯಲು ಸುಲಭವಾಗಿದೆ, ಕೊರೂಟಿನ್ ಆಧಾರಿತ ಸಮಾನಾಂತರೀಕರಣಕ್ಕೆ ಥ್ರೆಡ್-ಸ್ವತಂತ್ರ ಬೆಂಬಲವನ್ನು ಒದಗಿಸುತ್ತದೆ ಮತ್ತು ವ್ಯಾಪಕವಾದ ಪ್ರಮಾಣಿತ ಗ್ರಂಥಾಲಯವನ್ನು ನೀಡುತ್ತದೆ ("ಬ್ಯಾಟರಿಗಳನ್ನು ಒಳಗೊಂಡಿದೆ").
ಪ್ರಸ್ತುತ, 15 ಮೈಕ್ರೋಕಂಟ್ರೋಲರ್ ಮಾದರಿಗಳನ್ನು ಬೆಂಬಲಿಸಲಾಗುತ್ತದೆ, ಇದರಲ್ಲಿ ಅಡಾಫ್ರೂಟ್, ಆರ್ಡುನೊ, ಬಿಬಿಸಿ ಮೈಕ್ರೋ:ಬಿಟ್, ಎಸ್ಟಿ ಮೈಕ್ರೋ, ಡಿಜಿಸ್ಪಾರ್ಕ್, ನಾರ್ಡಿಕ್ ಸೆಮಿಕಂಡಕ್ಟರ್, ಮೇಕರ್ಡಿಯರಿ ಮತ್ತು ಫೈಟೆಕ್ನ ವಿವಿಧ ಬೋರ್ಡ್ಗಳು ಸೇರಿವೆ. ವೆಬ್ಅಸೆಂಬ್ಲಿ ಸ್ವರೂಪದಲ್ಲಿ ಬ್ರೌಸರ್ ಕಾರ್ಯಗತಗೊಳಿಸಲು ಮತ್ತು ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್ಗಳಾಗಿ ಪ್ರೋಗ್ರಾಂಗಳನ್ನು ಸಹ ಸಂಕಲಿಸಬಹುದು. LinuxESP8266/ESP32 ನಿಯಂತ್ರಕಗಳಿಗೆ ಬೆಂಬಲ , ಆದರೆ LLVM ನಲ್ಲಿ Xtensa ಚಿಪ್ಗೆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲು ಪ್ರತ್ಯೇಕ ಯೋಜನೆಯನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲಾಗುತ್ತಿದೆ, ಇದನ್ನು ಇನ್ನೂ ಅಸ್ಥಿರವೆಂದು ಗುರುತಿಸಲಾಗಿದೆ ಮತ್ತು TinyGo ನೊಂದಿಗೆ ಏಕೀಕರಣಕ್ಕೆ ಸಿದ್ಧವಾಗಿಲ್ಲ.
ಯೋಜನೆಯ ಪ್ರಮುಖ ಗುರಿಗಳು:
ಬಹು-ಕೋರ್ ವ್ಯವಸ್ಥೆಗಳಿಗೆ ಬೆಂಬಲವು ಮುಖ್ಯ ಗುರಿಗಳಲ್ಲಿಲ್ಲ,
ಬೃಹತ್ ಸಂಖ್ಯೆಯ ಕೊರೂಟಿನ್ಗಳ ಸಮರ್ಥ ಉಡಾವಣೆ (ಕೊರೊಟೀನ್ಗಳ ಉಡಾವಣೆಯು ಸಂಪೂರ್ಣವಾಗಿ ಬೆಂಬಲಿತವಾಗಿದೆ), ರೆಫರೆನ್ಸ್ ಕಂಪೈಲರ್ gc ಯ ಕಾರ್ಯಕ್ಷಮತೆಯ ಮಟ್ಟವನ್ನು ಸಾಧಿಸುವುದು (ಆಪ್ಟಿಮೈಸೇಶನ್ ಅನ್ನು LLVM ಗೆ ಬಿಡಲಾಗಿದೆ ಮತ್ತು ಕೆಲವು ಅಪ್ಲಿಕೇಶನ್ಗಳಲ್ಲಿ Tinygo gc ಗಿಂತ ವೇಗವಾಗಿರುತ್ತದೆ) ಮತ್ತು ಸಂಪೂರ್ಣ ಎಲ್ಲಾ Go ಅಪ್ಲಿಕೇಶನ್ಗಳೊಂದಿಗೆ.
ಇದೇ ಕಂಪೈಲರ್ನಿಂದ ಮುಖ್ಯ ವ್ಯತ್ಯಾಸ ಕಸ ಸಂಗ್ರಹಣೆಯನ್ನು ಬಳಸಿಕೊಂಡು Go ನ ಮೂಲ ಮೆಮೊರಿ ನಿರ್ವಹಣೆ ಮಾದರಿಯನ್ನು ಸಂರಕ್ಷಿಸುವ ಪ್ರಯತ್ನವಾಗಿದೆ ಮತ್ತು LLVM ಅನ್ನು ಸಿ ಪ್ರಾತಿನಿಧ್ಯಕ್ಕೆ ಕಂಪೈಲ್ ಮಾಡುವ ಬದಲು ಸಮರ್ಥ ಕೋಡ್ ಅನ್ನು ಉತ್ಪಾದಿಸಲು ಬಳಸುತ್ತದೆ. Tinygo ಹೊಸ ರನ್ಟೈಮ್ ಲೈಬ್ರರಿಯನ್ನು ಸಹ ನೀಡುತ್ತದೆ, ಅದು ಶೆಡ್ಯೂಲರ್, ಮೆಮೊರಿ ಹಂಚಿಕೆ ವ್ಯವಸ್ಥೆ ಮತ್ತು ಕಾಂಪ್ಯಾಕ್ಟ್ ಸಿಸ್ಟಮ್ಗಳಿಗಾಗಿ ಆಪ್ಟಿಮೈಸ್ ಮಾಡಿದ ಸ್ಟ್ರಿಂಗ್ ಹ್ಯಾಂಡ್ಲರ್ಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ. ಸಿಂಕ್ ಮತ್ತು ಪ್ರತಿಫಲನದಂತಹ ಕೆಲವು ಪ್ಯಾಕೇಜ್ಗಳನ್ನು ಹೊಸ ರನ್ಟೈಮ್ ಆಧರಿಸಿ ಮರುಸೃಷ್ಟಿಸಲಾಗಿದೆ.
ಬಿಡುಗಡೆ 0.7 ರಲ್ಲಿನ ಬದಲಾವಣೆಗಳಲ್ಲಿ "ಟಿನಿಗೊ ಟೆಸ್ಟ್" ಆಜ್ಞೆಯ ಅನುಷ್ಠಾನ, ಹೆಚ್ಚಿನ ಗುರಿ ಬೋರ್ಡ್ಗಳಿಗೆ ಕಸ ಸಂಗ್ರಹಣೆ ಬೆಂಬಲವನ್ನು ಒದಗಿಸುವುದು (ARM ಕಾರ್ಟೆಕ್ಸ್-ಎಂ ಆಧರಿಸಿ) ಮತ್ತು ವೆಬ್ಅಸೆಂಬ್ಲಿ, RISC- ಆಧಾರಿತ HiFive1 ರೆವ್ ಬಿ ಬೋರ್ಡ್ಗೆ ಬೆಂಬಲ. ವಿ ಆರ್ಕಿಟೆಕ್ಚರ್ ಮತ್ತು Arduino nano33 ಬೋರ್ಡ್,
ಸುಧಾರಿತ ಭಾಷಾ ಬೆಂಬಲ (ಗೆಟ್ಟರ್ಗಳು ಮತ್ತು ಸೆಟ್ಟರ್ಗಳನ್ನು ಬಳಸುವ ಬಿಟ್ ಕ್ಷೇತ್ರಗಳಿಗೆ ಬೆಂಬಲ, ಅನಾಮಧೇಯ ರಚನೆಗಳಿಗೆ ಬೆಂಬಲ).
ಮೂಲ: opennet.ru
