- OxCaml OCaml में performance-oriented extensions जोड़ने वाला तेजी से बदलता extension set है; यह Jane Street का production compiler और OCaml सुधारों पर प्रयोग करने की जगह है
- इसका design लक्ष्य performance को प्रभावित करने वाले program behavior को सुरक्षित, सुविधाजनक और predictable तरीके से control करना है, जबकि complexity का बोझ केवल उस code पर डाला जाए जहाँ इसकी जरूरत हो
- हर valid OCaml program OxCaml में भी valid है, इसलिए इसका लक्ष्य नई भाषा की बजाय OCaml के evolved रूप जैसा महसूस होना है
- Extensions को data races को statically रोकने वाली concurrency, memory layout और SIMD access, allocation control, और polymorphic parameters·include functor·labeled tuples·immutable arrays जैसी convenience सुविधाओं में बांटा गया है
- यह open source है, लेकिन extensions की stability या backward compatibility का वादा नहीं करता; dune·opam compatible package management और LSP, formatter, documentation generator सहित modified OCaml toolset प्रदान करता है
OxCaml के लक्ष्य और design principles
- OxCaml OCaml programming language के लिए तेजी से बदलता extension set है
- इसका उपयोग Jane Street के production compiler के रूप में होता है
- यह performance-oriented programming के लिए OCaml को बेहतर बनाने की experimental जगह भी है
- समय के साथ कुछ extensions को upstream OCaml में contribute करने की उम्मीद है
- Performance के लिए अहम program behavior को सुरक्षित, सुविधाजनक और predictable तरीके से control करना इसका मुख्य design लक्ष्य है
- Safety को programmer productivity और सही code deploy करने के लिए महत्वपूर्ण feature माना जाता है
- Convenience का focus अत्यधिक annotations के बिना control देना है
- Extended type system में भी OCaml की type inference को बनाए रखने की कोशिश की जाती है
- Predictability का लक्ष्य OCaml code देखकर performance characteristics को समझना आसान बनाए रखने और सुधारने पर है
- Core performance details को type level पर explicitly दिखाने की दिशा अपनाई जाती है
- pay-as-you-go तरीके से यह optimization capability अधिक देता है, लेकिन जो code उन capabilities का उपयोग नहीं करता उस पर अतिरिक्त complexity नहीं थोपता
- हर valid OCaml program OxCaml में भी valid है
- OxCaml का लक्ष्य नई भाषा की बजाय ऐसा महसूस होना है जैसे OCaml बेहतर version में evolve हुआ हो
- यह OCaml की मूल design sensibility, safety, ease और productivity को सुरक्षित रखने की कोशिश करता है
Extension areas और उपयोग की शर्तें
- OxCaml extensions performance control और language convenience के आसपास कुछ क्षेत्रों में बंटे हैं
- Fearless concurrency: type system additions के जरिए data races को statically रोकता है
- Layouts: programmer data का memory layout specify कर सकता है और SIMD processor extensions तक native access पा सकता है
- Control over allocation: allocation को control कर GC pressure घटाने और programs को cache-efficient व deterministic बनाने के tools देता है
- Quality of life: रोजमर्रा के कामों में उपयोगी रहे extensions भी शामिल हैं
- Polymorphic parameters
- Include functor
- Labeled tuples
- Immutable arrays
- OxCaml open source है और experimental users के लिए खुला है
- खास तौर पर researchers और experimenters से उम्मीद है कि वे system इस्तेमाल करके feedback देंगे
- OxCaml extensions बहुत experimental nature के हैं, इसलिए stability या backward compatibility का वादा नहीं है
- हालांकि OCaml के साथ backward compatibility बनाए रखी जाती है
- उपयोग में आसानी के लिए modified standard OCaml toolset प्रदान किया जाता है
- dune और opam के साथ compatible package management
- LSP server के जरिए editor integration
- Source code formatting
- Documentation generation
- Jane Street की open source libraries और tools दो रूपों में release होते हैं
- upstream OCaml के लिए version में OxCaml extensions हटाए गए होते हैं
- OxCaml के लिए version extensions का सक्रिय रूप से उपयोग करता है
- सभी extensions हटाए जा सकें ऐसा नहीं है, इसलिए कुछ libraries केवल OxCaml-only रूप में उपलब्ध होती हैं
- जरूरी extensions upstream में integrate होने पर उस library का OCaml-compatible version जारी किया जाएगा
अभी कोई टिप्पणी नहीं है.