3 पॉइंट द्वारा GN⁺ 2025-11-24 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Racket 9.0 एक प्रमुख रिलीज़ है, जिसमें Parallel Threads पेश किए गए हैं; यह मौजूदा green threads, futures और places सपोर्ट का विस्तार है
  • नए threads को #:pool argument के साथ बनाया जा सकता है, और #:keep 'results सेट करने पर thread-wait से बाद में परिणाम देखे जा सकते हैं
  • black-box wrapper ऑप्टिमाइज़िंग compiler को कुछ operations हटाने से रोकता है, जिससे benchmark की सटीकता बेहतर होती है
  • decompile-linklet function linklet को फिर से S-expression में बदल सकता है, और processor-count अब parallelism की संख्या लौटाता है
  • AArch64 के लिए “natipkg” package, Weibull distribution जोड़ी गई, और documentation improvements सहित कई अपडेट शामिल हैं

Racket 9.0 के प्रमुख बदलाव

  • इस रिलीज़ में Parallel Threads फीचर नया जोड़ा गया है

    • Racket पहले से green threads, futures, और places को सपोर्ट करता था, लेकिन Parallel Threads एक प्रमुख विस्तार के रूप में जोड़े गए हैं
    • Parallel Threads को #:pool argument के जरिए बनाया जा सकता है, और #:keep 'results सेट होने पर thread-wait के जरिए बाद में परिणाम प्राप्त किए जा सकते हैं
  • black-box wrapper ऑप्टिमाइज़िंग compiler को कुछ गणनाओं को पूरी तरह हटाने से रोकता है

    • benchmark चलाते समय सटीक performance measurement सुनिश्चित करने में यह उपयोगी है
  • decompile-linklet function linklet को फिर से S-expression में मैप कर सकता है

    • code analysis और debugging के दौरान internal representation को पुनर्स्थापित करने की सुविधा देता है
  • BC Racket में processor-count function को इस तरह बदला गया है कि वह हमेशा parallel processors की संख्या लौटाए

    • parallel execution environment में processor count को एकसमान तरीके से जांचा जा सकता है
  • AArch64 के लिए “natipkg” package नया जारी किया गया है, जिसे package build और test infrastructure में उपयोग किया जा सकता है

अतिरिक्त सुधार

  • Check Syntax फीचर अब syntax objects के “origin” field के भीतर और गहराई में nested identifiers को ट्रैक कर सकता है
  • math library में Weibull distribution जोड़ी गई है
  • कई bug fixes और documentation improvements शामिल हैं

कम्युनिटी और भागीदारी

  • इस रिलीज़ में Alexander Shopov, Bogdan Popa, Matthew Flatt, Matthias Felleisen सहित कई developers ने योगदान दिया
  • Racket एक community-driven open source project है, और नए contributors का स्वागत करता है
    • भाग लेने का तरीका racket/README.md में देखा जा सकता है

फ़ीडबैक और प्रचार अनुरोध

  • सवाल और चर्चा Racket Discourse या Discord कम्युनिटी में की जा सकती है
  • उपयोगकर्ताओं और platform-specific package managers के साथ रिलीज़ की खबर साझा करने के लिए प्रोत्साहित किया गया है

1 टिप्पणियां

 
GN⁺ 2025-11-24
Hacker News की राय
  • इस खबर का मुख्य बिंदु यह है कि Racket अब parallel threads को support करता है
    पहले भी places जैसी parallelization methods थीं, लेकिन यह तरीका कहीं ज़्यादा हल्का और परिचित लगता है
    मुझे Racket में चीज़ें बनाना पसंद है, इसलिए इससे Racket के उपयोग का दायरा बढ़ेगा, यह देखकर खुशी होती है

    • release notes पढ़ते समय मैं भी चौंक गया था। आखिरकार इस तरह की multithreading आ गई, यह अच्छा लगा
      places ज़्यादा flexible नहीं थे। lambda को आसानी से pass नहीं किया जा सकता था, और serializable-lambda का व्यवहार इतना contagious था कि runtime पर function नहीं बल्कि सिर्फ data भेजा जा सकता था
      इसलिए कई place में काम बाँटने वाली संरचना बनाना मुश्किल था
      उम्मीद है कि इस नई concurrency feature से यह संभव हो जाएगा
      अब तक मैं इसी वजह से Racket की जगह GNU Guile इस्तेमाल करता रहा हूँ। Guile में futures या fibers के जरिए multicore उपयोग कहीं ज़्यादा भरोसेमंद था
      मैंने भी futures का इस्तेमाल करके parallel decision-tree model बनाया था और लगभग linear speedup मिला था
    • जानना चाहूँगा कि आप Racket में किस तरह के project बनाते हैं
      मैं Clojure developer हूँ, इसलिए Lisp परिवार की भाषाएँ पसंद हैं। Racket में लोग क्या बनाते हैं, यह जानने की जिज्ञासा है
    • version 9 में जाकर parallel threads का जुड़ना, homepage पर Racket को “mature and polished language” कहकर पेश करने से थोड़ा विरोधाभासी लगता है
  • इस वीडियो से लगता है कि Racket, अगर यह आपकी पहली भाषा नहीं है, तो कठिन महसूस हो सकती है, लेकिन बच्चों के सीखने लायक आसान भी है

    • वाकई शानदार वीडियो है
  • मुझे Racket सचमुच बहुत पसंद है
    मज़े के लिए मैंने Racket पर एक किताब लिखी थी, जिसे ऑनलाइन मुफ्त में पढ़ा जा सकता है
    Scheme परिवार की भाषाओं में मैं Racket और Gerbil की सिफारिश करूँगा
    Racket beginners के लिए अच्छा है क्योंकि इसका IDE अच्छा है और standard तथा third-party libraries भरपूर हैं, जबकि Gerbil system programming या network utilities के लिए अच्छा है

  • Racket वाकई एक शानदार भाषा है
    यह सीखने के लिए अच्छी Lisp family की भाषा है, और DrRacket IDE में assignments करने की यादें आज भी हैं

  • मैंने 80 के दशक के मध्य में पहली बार Lisp के साथ प्रयोग किया था, और उसके बाद भी नई सोच और programming techniques सीखने के लिए बीच-बीच में लौटता रहा हूँ
    मैंने Racket भी कई बार आज़माई, लेकिन किसी न किसी तरह यह software मुझसे मेल नहीं खाता था
    हो सकता है लगातार इस्तेमाल करने पर यह ठीक लगे, लेकिन बड़े project को Racket में लिखना अभी भी मेरी कल्पना से बाहर है

    • पहले मुझे यह पसंद थी, लेकिन code इतना slow और भारी था कि मैंने छोड़ दिया
      यह Python से भी धीमी थी; Chez Scheme में rewrite होने के बाद शायद सुधार हुआ हो, लेकिन अभी मैं तेज़ और हल्की Common Lisp इस्तेमाल करता हूँ
    • जब आप “software” कहते हैं, तो क्या आपका मतलब भाषा से है, या tooling से?
  • मुझे Racket के बारे में तब पता चला जब देखा कि John Carmack ने 10 साल पहले Oculus से जुड़ा काम Racket में किया था
    संबंधित वीडियो

    • वैसे HN Arc में लिखा गया है, और Arc, Racket पर बना है
      Arc wiki article
  • Lisp अपने आप में एक meta-language है, और Racket उससे भी ज़्यादा meta है
    इसे लगभग एक language creation kit कहा जा सकता है

    • यह बात मैं अक्सर सुनता हूँ, लेकिन वास्तव में Racket से भाषा बनाने वाले PL developers बहुत ज़्यादा नहीं दिखते
      जब मैंने PL class पढ़ाते समय Racket इस्तेमाल किया, तो छात्र Java या Python के अभ्यस्त थे, इसलिए उन्हें Lisp syntax में दिक्कत हुई
      इस वजह से मुझे ठीक-ठीक समझ नहीं आता कि Racket आखिर किसके लिए बनी भाषा है
  • Bogdan Popa के ब्लॉग(defn.io) पर Racket के बारे में काफी दिलचस्प जानकारी है
    नई threading feature को खुद आज़माने का इंतज़ार है

  • मैंने Racket कुछ बार आज़माई, लेकिन उसका IDE बहुत non-intuitive और awkward लगा
    पता नहीं यह जानबूझकर ऐसा design है, या बस इसलिए कि इससे बेहतर विकल्प नहीं था

    • IDE, भाषा खुद नहीं होती
      Racket को VSCode(Magic Racket, Langserver), Emacs(Racket Mode), Vim आदि में भी अच्छा support मिलता है
      official docs और Langserver repository देख सकते हैं
      DrRacket में macro stepper जैसी ऐसी features हैं जो दूसरी IDEs में नहीं मिलतीं, इसलिए वह अब भी उपयोगी है
    • racket-mode.com पर शानदार Emacs integration देखा जा सकता है
  • Racket एक मज़ेदार भाषा है
    हमारे विश्वविद्यालय में first-year CS class में Racket का educational version इस्तेमाल होता है
    कुछ छात्रों को यह नापसंद है, लेकिन कुछ लोग चुपचाप इसे पसंद भी करते हैं

    • जानना चाहूँगा कि उस class का नाम क्या था
    • लेकिन ज़्यादातर लोग कहते हैं कि graduation के बाद वे फिर कभी Racket नहीं इस्तेमाल करेंगे, और यह बात अपने-आप में काफी अर्थपूर्ण है