Content deleted Content added
→Integrated Language Extensibility and Macros: heading caps and misuse of bold |
GreenC bot (talk | contribs) Rescued 3 archive links. Wayback Medic 2.5 |
||
Line 73:
===Version history===
The first generation of PLT Scheme revisions introduced features for [[programming in the large and programming in the small#Programming in the large|programming in the large]] with both [[modular programming|modules]] and [[class (computer programming)|classes]]. Version 42 introduced units – a first-class module system – to complement classes for large scale development.<ref name="release-notes">{{cite web |title=Racket Core Release Notes |url=http://docs.racket-lang.org/release-notes/racket/HISTORY.txt |access-date=2012-04-15 |url-status=dead |archive-url=https://
The next major revision was named Version 200, which introduced a new default module system that cooperates with macros.<ref name="release-notes" /> In particular, the module system ensures that run-time and [[compile-time]] computation are separated to support a "tower of languages".<ref>{{cite conference |title=Composable and Compilable Macros |last=Flatt |first=M. |book-title=International Conference on Functional Programming |year=2002}}</ref> Unlike units, these modules are not [[first-class object]]s.
Line 79:
Version 300 introduced [[Unicode]] support, [[foreign function interface|foreign library]] support, and refinements to the class system.<ref name="release-notes" /> Later on, the 300 series improved the [[computer performance|performance]] of the language runtime with an addition of a JIT compiler and a switch to a default [[generational garbage collection]].
By the next major release, the project had switched to a more conventional [[software versioning#Sequence-based identifiers|sequence-based]] version numbering. Version 4.0 introduced the <code>#lang</code> shorthand to specify the language that a module is written in. Further, the revision introduced [[immutable object|immutable]] pairs and lists, support for fine-grained [[parallel computing|parallelism]], and a [[Static typing|statically-typed]] dialect.<ref name="4.0">{{cite web |url=http://blog.racket-lang.org/2008/06/plt-scheme-version-4.html |title=PLT Scheme version 4.0 |date=2008-06-12 |access-date=2012-08-07 |url-status=dead |archive-url=https://
On 7 June 2010, PLT Scheme was renamed Racket.<ref>{{cite web |url=http://racket-lang.org/new-name.html |title=From PLT Scheme to Racket |publisher=Racket-lang.org |access-date=2011-08-17}}</ref> The renaming coincided with the release of Version 5.0. Subsequently, the [[graphical user interface]] (GUI) backend was rewritten in Racket from [[C++]] in Version 5.1 using native [[widget toolkit|UI toolkits]] on all platforms.<ref name="gui-rebuild" /> Version 5.2 included a background [[Static code analysis|syntax checking]] tool, a new plotting library, a database library, and a new extended REPL.<ref name="5.2">{{cite web |url=http://blog.racket-lang.org/2011/11/racket-v52.html |title=Racket 5.2|publisher=PLT, Inc|date=2011-11-09 |access-date=2012-06-16}}</ref> Version 5.3 included a new submodule feature for optionally loaded modules,<ref name="submodules">{{cite web |url=http://blog.racket-lang.org/2012/06/submodules.html |title=Submodules|date=2012-06-03 |access-date=2012-08-07}}</ref> new [[Program optimization|optimization]] tools, a [[JSON]] library, and other features.<ref name="5.3">{{cite web |url=http://blog.racket-lang.org/2012/08/racket-v53.html |title=Racket 5.3|publisher=PLT, Inc|date=2012-08-07 |access-date=2012-08-07}}</ref> Version 5.3.1 introduced major improvements to DrRacket: the background syntax checker was turned on by default and a new documentation preview tool was added.<ref name="5.3.1">{{cite web |url=http://blog.racket-lang.org/2012/11/racket-v531.html |title=Racket 5.3.1|publisher=PLT, Inc|date=2012-11-07 |access-date=2012-11-07}}</ref>
Line 85:
In version 6.0, Racket released its second-generation package management system. As part of this development, the principal DrRacket and Racket repository was reorganized and split into a large set of small packages, making it possible to install a ''minimal racket'' and to install only those packages needed.<ref name="6.0">{{cite web |url=http://blog.racket-lang.org/2014/02/racket-v60.html |title=Racket 6.0|publisher=PLT, Inc |date=2014-02-26 |access-date=2016-02-23}}</ref>
Version 7 of Racket was released with a new macro expander written in Racket as part the preparations for supporting moving to the [[Chez Scheme]] runtime system and supporting multiple runtime systems.<ref>{{cite web |url=https://blog.racket-lang.org/2018/01/racket-on-chez-status.html |title=Racket-on-Chez Status: January 2018|date=2018-01-05 |access-date=2018-04-13 |archive-url=https://
<ref>{{cite web |url=https://www.cs.utah.edu/plt/publications/icfp19-rddkmstz.pdf |title=building Racket on Chez Scheme (Experience Report)|date=2019-08-01 |access-date=2019-07-25}}</ref> On 19 November 2019, Racket 7.5 was released. The license of Racket 7.5 was less restrictive. They use now either the Apache 2.0 license or the MIT license.<ref>{{Cite web|url=https://hub.packtpub.com/racket-7-5-releases-with-relicensing-to-apache-mit-standard-json-mime-dark-mode-interface-and-more/|title=Racket 7.5 release|website=Packt Hub|access-date=2019-11-28}}</ref><ref>{{Cite web|url=https://blog.racket-lang.org/2019/11/racket-v7-5.html|title=Racket v7.5|website=Racket {{!}} Blog|access-date=2019-11-28}}</ref>
|