Tinygo 0.7.0 ಬಿಡುಗಡೆ, LLVM-ಆಧಾರಿತ Go ಕಂಪೈಲರ್

ಲಭ್ಯವಿದೆ ಯೋಜನೆಯ ಬಿಡುಗಡೆ ಟೈನಿಗೊ 0.7.0, ಇದು ಮೈಕ್ರೋಕಂಟ್ರೋಲರ್‌ಗಳು ಮತ್ತು ಕಾಂಪ್ಯಾಕ್ಟ್ ಸಿಂಗಲ್-ಪ್ರೊಸೆಸರ್ ಸಿಸ್ಟಮ್‌ಗಳಂತಹ ಫಲಿತಾಂಶದ ಕೋಡ್‌ನ ಕಾಂಪ್ಯಾಕ್ಟ್ ಪ್ರಾತಿನಿಧ್ಯ ಮತ್ತು ಕಡಿಮೆ ಸಂಪನ್ಮೂಲ ಬಳಕೆಯ ಅಗತ್ಯವಿರುವ ಪ್ರದೇಶಗಳಿಗೆ Go ಭಾಷಾ ಕಂಪೈಲರ್ ಅನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುತ್ತಿದೆ. ಕೋಡ್ ವಿತರಿಸುವವರು BSD ಪರವಾನಗಿ ಅಡಿಯಲ್ಲಿ.

ವಿವಿಧ ಟಾರ್ಗೆಟ್ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಳಿಗಾಗಿ ಸಂಕಲನವನ್ನು LLVM ಬಳಸಿಕೊಂಡು ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಗೋ ಪ್ರಾಜೆಕ್ಟ್‌ನಿಂದ ಮುಖ್ಯ ಟೂಲ್‌ಕಿಟ್‌ನಲ್ಲಿ ಬಳಸಲಾದ ಲೈಬ್ರರಿಗಳನ್ನು ಭಾಷೆಯನ್ನು ಬೆಂಬಲಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ. ಕಂಪೈಲ್ ಮಾಡಲಾದ ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಮೈಕ್ರೋಕಂಟ್ರೋಲರ್‌ಗಳಲ್ಲಿ ನೇರವಾಗಿ ಚಲಾಯಿಸಬಹುದು, ಸ್ವಯಂಚಾಲಿತ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳನ್ನು ಬರೆಯಲು Go ಅನ್ನು ಭಾಷೆಯಾಗಿ ಬಳಸಲು ಅನುಮತಿಸುತ್ತದೆ.

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

ಅದರ ಪ್ರಸ್ತುತ ರೂಪದಲ್ಲಿ, Adafruit, Arduino, BBC ಮೈಕ್ರೋ: ಬಿಟ್, ST ಮೈಕ್ರೋ, ಡಿಜಿಸ್ಪಾರ್ಕ್, ನಾರ್ಡಿಕ್ ಸೆಮಿಕಂಡಕ್ಟರ್, ಮೇಕರ್ಡಿಯರಿ ಮತ್ತು ಫೈಟೆಕ್‌ನ ವಿವಿಧ ಬೋರ್ಡ್‌ಗಳನ್ನು ಒಳಗೊಂಡಂತೆ 15 ಮೈಕ್ರೋಕಂಟ್ರೋಲರ್ ಮಾದರಿಗಳನ್ನು ಬೆಂಬಲಿಸಲಾಗುತ್ತದೆ. ವೆಬ್‌ಅಸೆಂಬ್ಲಿ ಫಾರ್ಮ್ಯಾಟ್‌ನಲ್ಲಿ ಬ್ರೌಸರ್‌ನಲ್ಲಿ ರನ್ ಮಾಡಲು ಮತ್ತು ಲಿನಕ್ಸ್‌ಗಾಗಿ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್‌ಗಳಾಗಿ ಪ್ರೋಗ್ರಾಂಗಳನ್ನು ಕಂಪೈಲ್ ಮಾಡಬಹುದು. ESP8266/ESP32 ನಿಯಂತ್ರಕಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ ಇನ್ನು ಇಲ್ಲ, ಆದರೆ LLVM ನಲ್ಲಿ Xtensa ಚಿಪ್‌ಗೆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲು ಪ್ರತ್ಯೇಕ ಯೋಜನೆಯನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲಾಗುತ್ತಿದೆ, ಇದನ್ನು ಇನ್ನೂ ಅಸ್ಥಿರವೆಂದು ಗುರುತಿಸಲಾಗಿದೆ ಮತ್ತು TinyGo ನೊಂದಿಗೆ ಏಕೀಕರಣಕ್ಕೆ ಸಿದ್ಧವಾಗಿಲ್ಲ.

ಯೋಜನೆಯ ಪ್ರಮುಖ ಗುರಿಗಳು:

  • ಬಹಳ ಕಾಂಪ್ಯಾಕ್ಟ್ ಎಕ್ಸಿಕ್ಯೂಟಬಲ್ ಫೈಲ್‌ಗಳ ಉತ್ಪಾದನೆ;
  • ಮೈಕ್ರೋಕಂಟ್ರೋಲರ್ ಬೋರ್ಡ್‌ಗಳ ಸಾಮಾನ್ಯ ಮಾದರಿಗಳಿಗೆ ಬೆಂಬಲ;
  • ವೆಬ್‌ಗೆ ಅರ್ಜಿ ಸಲ್ಲಿಸುವ ಸಾಧ್ಯತೆ;
  • C ನಲ್ಲಿ ಕಾರ್ಯಗಳನ್ನು ಕರೆಯುವಾಗ ಕನಿಷ್ಟ ಓವರ್ಹೆಡ್ನೊಂದಿಗೆ CGo ಬೆಂಬಲ;
  • ಹೆಚ್ಚಿನ ಪ್ರಮಾಣಿತ ಪ್ಯಾಕೇಜ್‌ಗಳಿಗೆ ಬೆಂಬಲ ಮತ್ತು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಕೋಡ್ ಅನ್ನು ಬದಲಾಯಿಸದೆಯೇ ಕಂಪೈಲ್ ಮಾಡುವ ಸಾಮರ್ಥ್ಯ.

    ಬಹು-ಕೋರ್ ವ್ಯವಸ್ಥೆಗಳಿಗೆ ಬೆಂಬಲವು ಮುಖ್ಯ ಗುರಿಗಳಲ್ಲಿಲ್ಲ,
    ಬೃಹತ್ ಸಂಖ್ಯೆಯ ಕೊರೂಟಿನ್‌ಗಳ ಸಮರ್ಥ ಉಡಾವಣೆ (ಕೊರೊಟೀನ್‌ಗಳ ಉಡಾವಣೆಯು ಸಂಪೂರ್ಣವಾಗಿ ಬೆಂಬಲಿತವಾಗಿದೆ), ರೆಫರೆನ್ಸ್ ಕಂಪೈಲರ್ gc ಯ ಕಾರ್ಯಕ್ಷಮತೆಯ ಮಟ್ಟವನ್ನು ಸಾಧಿಸುವುದು (ಆಪ್ಟಿಮೈಸೇಶನ್ ಅನ್ನು LLVM ಗೆ ಬಿಡಲಾಗಿದೆ ಮತ್ತು ಕೆಲವು ಅಪ್ಲಿಕೇಶನ್‌ಗಳಲ್ಲಿ Tinygo gc ಗಿಂತ ವೇಗವಾಗಿರುತ್ತದೆ) ಮತ್ತು ಸಂಪೂರ್ಣ ಹೊಂದಾಣಿಕೆ ಎಲ್ಲಾ Go ಅಪ್ಲಿಕೇಶನ್‌ಗಳೊಂದಿಗೆ.

    ಇದೇ ಕಂಪೈಲರ್‌ನಿಂದ ಮುಖ್ಯ ವ್ಯತ್ಯಾಸ emgo ಕಸ ಸಂಗ್ರಹಣೆಯನ್ನು ಬಳಸಿಕೊಂಡು Go ನ ಮೂಲ ಮೆಮೊರಿ ನಿರ್ವಹಣೆ ಮಾದರಿಯನ್ನು ಸಂರಕ್ಷಿಸುವ ಪ್ರಯತ್ನವಾಗಿದೆ ಮತ್ತು LLVM ಅನ್ನು ಸಿ ಪ್ರಾತಿನಿಧ್ಯಕ್ಕೆ ಕಂಪೈಲ್ ಮಾಡುವ ಬದಲು ಸಮರ್ಥ ಕೋಡ್ ಅನ್ನು ಉತ್ಪಾದಿಸಲು ಬಳಸುತ್ತದೆ. Tinygo ಹೊಸ ರನ್‌ಟೈಮ್ ಲೈಬ್ರರಿಯನ್ನು ಸಹ ನೀಡುತ್ತದೆ, ಅದು ಶೆಡ್ಯೂಲರ್, ಮೆಮೊರಿ ಹಂಚಿಕೆ ವ್ಯವಸ್ಥೆ ಮತ್ತು ಕಾಂಪ್ಯಾಕ್ಟ್ ಸಿಸ್ಟಮ್‌ಗಳಿಗಾಗಿ ಆಪ್ಟಿಮೈಸ್ ಮಾಡಿದ ಸ್ಟ್ರಿಂಗ್ ಹ್ಯಾಂಡ್ಲರ್‌ಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ. ಸಿಂಕ್ ಮತ್ತು ಪ್ರತಿಫಲನದಂತಹ ಕೆಲವು ಪ್ಯಾಕೇಜ್‌ಗಳನ್ನು ಹೊಸ ರನ್‌ಟೈಮ್ ಆಧರಿಸಿ ಮರುಸೃಷ್ಟಿಸಲಾಗಿದೆ.

    ಬಿಡುಗಡೆ 0.7 ರಲ್ಲಿನ ಬದಲಾವಣೆಗಳಲ್ಲಿ "ಟಿನಿಗೊ ಟೆಸ್ಟ್" ಆಜ್ಞೆಯ ಅನುಷ್ಠಾನ, ಹೆಚ್ಚಿನ ಗುರಿ ಬೋರ್ಡ್‌ಗಳಿಗೆ ಕಸ ಸಂಗ್ರಹಣೆ ಬೆಂಬಲವನ್ನು ಒದಗಿಸುವುದು (ARM ಕಾರ್ಟೆಕ್ಸ್-ಎಂ ಆಧರಿಸಿ) ಮತ್ತು ವೆಬ್‌ಅಸೆಂಬ್ಲಿ, RISC- ಆಧಾರಿತ HiFive1 ರೆವ್ ಬಿ ಬೋರ್ಡ್‌ಗೆ ಬೆಂಬಲ. ವಿ ಆರ್ಕಿಟೆಕ್ಚರ್ ಮತ್ತು Arduino nano33 ಬೋರ್ಡ್,
    ಸುಧಾರಿತ ಭಾಷಾ ಬೆಂಬಲ (ಗೆಟ್ಟರ್‌ಗಳು ಮತ್ತು ಸೆಟ್ಟರ್‌ಗಳನ್ನು ಬಳಸುವ ಬಿಟ್ ಕ್ಷೇತ್ರಗಳಿಗೆ ಬೆಂಬಲ, ಅನಾಮಧೇಯ ರಚನೆಗಳಿಗೆ ಬೆಂಬಲ).

    ಮೂಲ: opennet.ru

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