Bootstrappable builds
ಬೂಟ್ಸ್ಟ್ರ್ಯಾಪಬಲ್ ಬಿಲ್ಡ್ಸ್, ಈ ಪ್ರಕ್ರಿಯೆಯಿಂದ ಮೂಲದಿಂದ ನಿರ್ಮಿಸದ (ಕಂಪೈಲರ್) ಬೈನರಿಗಳನ್ನು ಅವಲಂಬಿಸದ ಸಾಫ್ಟ್ವೇರ್ ಅನ್ನು ಕಂಪೈಲ್ ಮಾಡುವ ಪ್ರಕ್ರಿಯೆಯಾಗಿದೆ. ಈ ಪ್ರಕ್ರಿಯೆಯು ಕಂಪೈಲರ್ ಹಿಂಬಾಗಿಲ ವಿರುದ್ಧ ರಕ್ಷಿಸುತ್ತದೆಃ ನಿರ್ಮಾಣ ಪ್ರಕ್ರಿಯೆಯು ಲೆಕ್ಕಪರಿಶೋಧನೆ ಮಾಡಲು ಕಷ್ಟಕರವಾದ ಬೈನರಿ ಕೋಡ್ ಅನ್ನು ಅವಲಂಬಿಸದಿದ್ದರೆ, ಕಂಪೈಲರ್ ಹಿಂಬಾಗಿಲನ್ನು ಇನ್ನು ಮುಂದೆ ಕಂಪೈಲರ್ ಬೈನರಿಗಳಲ್ಲಿ ಮರೆಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ವಿಧಾನಗಳು ಸಾಫ್ಟ್ವೇರ್ ವಿತರಣೆಗಳ ಸಮಸ್ಯೆಯನ್ನು ನಿಭಾಯಿಸುವ ಒಂದು ಮಾರ್ಗವೆಂದರೆ ವಿತರಣೆಯನ್ನು ಬೂಟ್ಸ್ಟ್ರ್ಯಾಪ್ ಮಾಡಲು ಬಳಸುವ ಬೈನರಿಗಳ ಗಾತ್ರವನ್ನು ಕಡಿಮೆ ಮಾಡುವುದು, ಇನ್ನು ಮುಂದೆ ಅಗತ್ಯವಿಲ್ಲದವರೆಗೂ ಅಥವಾ ಗಾತ್ರವು ಮನುಷ್ಯರಿಂದ ಸುಲಭವಾಗಿ ಪರಿಶೀಲಿಸಬಹುದಾದಷ್ಟು ಚಿಕ್ಕದಾಗಿದೆ. ವಿವಿಧ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳಿಗೆ ಅನೇಕ ಕಂಪೈಲರ್ಗಳನ್ನು ಅವರು ಗುರಿಪಡಿಸಿದ ಭಾಷೆಯಲ್ಲಿ ಬರೆಯಲಾಗುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಅಧಿಕೃತ ಗೋ ಕಂಪೈಲರ್ (ಜಿಸಿ) ಅನ್ನು ಗೋ ಭಾಷೆಯಲ್ಲಿ ಬರೆಯಲಾಗಿದೆ. ಆದ್ದರಿಂದ ಮತ್ತೊಂದು ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯಲ್ಲಿ (ಇಲ್ಲಿ ಸಿ ಮತ್ತು ಸಿ + + ನಲ್ಲಿ) ಬರೆಯಲಾದ ಜಿಸಿಸಿಯಂತಹ ಪರ್ಯಾಯ ಕಂಪೈಲರ್ಗಳಿಲ್ಲದೆಯೇ ಗೋ ಕಂಪೈಲರ್ ಅನ್ನು ನಿರ್ಮಿಸಲು ಗೋ ಕಂಪೈಲರ್ ಬೈನರಿಯ ಹಿಂದಿನ ಆವೃತ್ತಿಯ ಬೈನರಿ ಅಗತ್ಯವಿರುತ್ತದೆ. ಬೂಟ್ಸ್ಟ್ರಾಪೆಬಲ್ ಬಿಲ್ಡ್ಗಳನ್ನು ಹೊಂದಲು, ಮೂಲಗಳಿಂದ ನಿರ್ಮಿಸಬಹುದಾದ ಕಂಪೈಲರ್ನ ಹಳೆಯ ಆವೃತ್ತಿಗಳನ್ನು ಕಂಡುಹಿಡಿಯಲು ಸಾಧ್ಯವಿದೆ, ಮತ್ತು ಅದರಿಂದ, ಇತ್ತೀಚಿನ ಆವೃತ್ತಿಯನ್ನು ಹೊಂದುವವರೆಗೆ ಕಂಪೈಲರ್ಗಳ ಮುಂದಿನ ಆವೃತ್ತಿಯನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ನಿರ್ಮಿಸಲು ಕೋಡ್ ಅನ್ನು ಬರೆಯಿರಿ. ಯಾವ ಆವೃತ್ತಿಯು ಯಾವ ಆವೃತ್ತಿಗಳನ್ನು ನಿರ್ಮಿಸಬಹುದು ಎಂಬುದನ್ನು ಗುರುತಿಸುವುದು ಸಾಮಾನ್ಯವಾಗಿ ಕ್ಷುಲ್ಲಕವಲ್ಲ ಮತ್ತು ಇದು ಸಾಮಾನ್ಯವಾಗಿ ಬೂಟ್ಸ್ಟ್ರ್ಯಾಪ್ ಕಾರ್ಯವಿಧಾನಕ್ಕೆ ಬಹಳ ದೀರ್ಘ ಸಂಕಲನ ಸಮಯಗಳಿಗೆ ಕಾರಣವಾಗುತ್ತದೆ. ಕೆಲವೊಮ್ಮೆ ಇದು ಹಳೆಯ ಕಂಪೈಲರ್ ಆವೃತ್ತಿಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಮತ್ತು ಈ ಆರ್ಕಿಟೆಕ್ಚರ್ಗಳನ್ನು ಬೂಟ್ಸ್ಟ್ರ್ಯಾಪ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗುವಂತೆ ಹಳೆಯ ಕಂಪೈಲರ್ ಆವೃತ್ತಿಗಳಲ್ಲಿ ಹೊಸ ಸಿಪಿಯು ಆರ್ಕಿಟೆಕ್ಚರ್ಗಳಿಗೆ ಬೆಂಬಲವನ್ನು ಬ್ಯಾಕ್ಪೋರ್ಟ್ ಮಾಡುವ ಅಗತ್ಯವಿರುತ್ತದೆ. ಈ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಬೂಟ್ಸ್ಟ್ರ್ಯಾಪ್ ಕಂಪೈಲರ್ಗಳ ಇತರ ವಿಧಾನಗಳೊಂದಿಗೆ ಬದಲಾಯಿಸಬಹುದು ಅಥವಾ ಸಂಯೋಜಿಸಬಹುದು. ಉದಾಹರಣೆಗೆ, ಮತ್ತೊಂದು ಭಾಷೆಯಲ್ಲಿ ಬರೆಯಲಾದ ಒಂದು ಭಾಷೆಗೆ ಹೊಸ ಕಂಪೈಲರ್ ಅನ್ನು ಬರೆಯಲು ಸಹ ಸಾಧ್ಯವಿದೆ. ವಿತರಣೆಯನ್ನು ಬೂಟ್ಸ್ಟ್ರ್ಯಾಪ್ ಮಾಡಲು ಬಳಸುವ ಬೈನರಿಗಳ ಗಾತ್ರವನ್ನು ಕಡಿಮೆ ಮಾಡಲು ಈ ತಂತ್ರಗಳನ್ನು ಬಳಸಬಹುದು. ನಂತರದ ಕಂಪೈಲರ್ಗಳನ್ನು ನಿರ್ಮಿಸಬಲ್ಲ ಮೊದಲ ಕಂಪೈಲರ್ ಅನ್ನು ನಿರ್ಮಿಸಲು, ಗಾತ್ರವನ್ನು 1 ಕಿಲೋಬೈಟ್ಗಿಂತ ಕಡಿಮೆ ಇರುವ ಒಂದೇ ಬೈನರಿಗೆ ಕಡಿಮೆ ಮಾಡಲು ಸಾಧ್ಯವಿದೆ ಮತ್ತು ಅದರಿಂದ ಸಿ ಕಂಪೈಲರ್ ಅನ್ನು ನಿರ್ಮಿಸಲು ಬೂಟ್ಸ್ಟ್ರಾಪಿಂಗ್ ಕಾರ್ಯವಿಧಾನದಲ್ಲಿ ಅನೇಕ ಹಂತಗಳನ್ನು ಬಳಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ, ಮತ್ತು ಅದರಿಂದ ಇತರ ಕಂಪೈಲರ್ಗಳು ಅಥವಾ ಸಾಫ್ಟ್ವೇರ್ ಅನ್ನು ನಿರ್ಮಿಸಬಹುದು. ಇತಿಹಾಸ ಬೂಟ್ಸ್ಟ್ರ್ಯಾಪಬಲ್ ಬಿಲ್ಡ್ಗಳನ್ನು 2016 ರಲ್ಲಿ ಪುನರುತ್ಪಾದಿಸಬಹುದಾದ ಬಿಲ್ಡ್ಗಳ ಯೋಜನೆಯ ಉಪ-ಭಾಗವಾಗಿ ಪ್ರಾರಂಭಿಸಲಾಯಿತು. ರಿಪ್ರೊಡೊಸಿಬಲ್ ಬಿಲ್ಡ್ಸ್ ರೆಫೆರೆನ್ಸ್ ಬಾಹ್ಯ ಕೊಂಡಿಗಳು bootstrappable.org ಕಂಪೈಲಿಂಗ್ ಟೂಲ್ಸ್ ಅನ್ನು ಸಹ ನೋಡಿ.