Pharo

Pharo
Pharo logo with lighthouse
Paradigmobject-oriented
FamilySmalltalk: Squeak
DeveloperPharo community
First appearedMarch 2008; 16 years ago (2008-03)
Stable release
12.0[1] Edit this on Wikidata / 26 April 2024; 8 months ago (26 April 2024)
Typing disciplinedynamic
Implementation languageSmalltalk
PlatformARM, IA-32, x86-64
OSWindows, Linux, macOS, others
LicenseMIT, partly Apache 2.0[2]
Websitepharo.org
Influenced by
Smalltalk (Squeak)

Pharo is a cross-platform implementation of the classic Smalltalk-80 programming language and runtime system.[3] It is based on the OpenSmalltalk virtual machine (VM) named Cog,[4][5][6][7]: 16  which evaluates a dynamic, reflective, and object-oriented programming language with a syntax closely resembling Smalltalk-80. It is free and open-source software, released under a mix of MIT, and Apache 2 licenses.

Pharo is shipped with source code compiled into a system image that contains all software needed to run Pharo.[7]: 16  Like the original Smalltalk-80, Pharo provides several live programming features such as immediate object manipulation, live updates, and just-in-time compilation (JIT). The system image includes an integrated development environment (IDE) to modify its components.

Pharo was forked from Squeak v3.9 in March of 2008.[8][3][7][7]: 10 [9]

Overview

Pharo is a pure object-oriented, dynamically typed, and reflective language. The stated project goal is to revisit Smalltalk design and enhance it.

The name Pharo comes from the French word "phare" (French pronunciation: [faʁ]) which means lighthouse. This is why the Pharo logo shows a drawing of a lighthouse inside the final letter O of the name.

Key features

Virtual machine

  • Multiplatform virtual machine with just-in-time compilation (JIT), combined generational garbage collector, ephemerons, forwarders
  • Fast object enumeration
  • Easy call stack manipulation
  • AST metalinks
  • Relatively low memory consumption
  • Customizable compiler
  • Optional complete object memory persistence
  • Resumable exceptions
  • Fast object serialization

Built-in software

Language features

  • Simple syntax
  • Object-oriented programming
  • Immediate object identity swapping
  • Dynamic inheritance
  • Objects as methods
  • Optional Green threads
  • Customizable metaclasses
  • Easy to use proxy objects

Relation to Smalltalk

Pharo is based on general concepts of Smalltalk but seeks to improve on them, so does not limit itself to them. The basic syntax of the language has a close resemblance to Smalltalk. However, the way classes are defined in Pharo differs from other Smalltalk dialects.[how?]

Language syntax

Pharo syntax postcard

The Pharo syntax is based on Smalltalk-80 language syntax with several extensions. Some of these are common among modern Smalltalk dialects.

  • literals for dynamic arrays. The expressions that specify the array content are evaluated during program execution
{1. 2. 1+2}
  • literals for byte arrays that can be composed only of integer numbers in the range from 0 to 255
#[1 2 3 4]
  • literals for scaled decimals, a representation of fixed point decimal numbers able to accurately represent decimal fractions
3.14s2
  • pragmas. In Smalltalk-80 the pragmas are used only for primitive methods. In Pharo they are fully capable method annotations
<gtInspectorPresentationOrder: 30>
  • two double quotes inside a comment are interpreted as one double quote character that is part of the content of the comment

The Pharo language syntax is supposed to be very simple and minimalist. The basic language elements are often presented on one postcard as a showcase for the language's brevity. The grammar is classified as LL(1).

The language grammar does not specify directly how the code should be stored in files. Pharo uses Tonel as the preferred code serializing format.

History

Pharo emerged as a fork of Squeak, an open-source Smalltalk environment created by the original Smalltalk-80 team (Dan Ingalls and Alan Kay). Pharo was created by S. Ducasse [1] and M. Denker in March 2008. It focuses on modern software engineering and development techniques.[citation needed] Pharo is supported by the Pharo consortium (for legal entities) [2] and the Pharo association for physical persons [3].

Pharo version Release date Major features
March 16, 2008[10] Fork of Squeak environment
1.0 April 15, 2010 real closures, EToys and MVC removed
1.1 July 26, 2010 Cog JIT VM, Settings framework
1.2 March 29, 2011 new Finder, Recent changes tool, improved Help, better themes
1.3 August 2011 Zinc, headless images
1.4 April 2012[11] Ring metamodel, better code simulator
2.0 March 18, 2013[12] browser improvements, QA tools, Fuel serializer, better files API
3.0 April 2014[13] new modular compiler (Opal) and debugger, continuations
4.0 April 2015[14] GTools, slots
5.0 May 2016[15] Spur VM, UFFI, improved reflectivity
6.0 6 June, 2017[16] 64-bit and Git support
6.1 24 July, 2017[17] improved Git support
7.0 22 January, 2019[18] bootstrapping, new code browser (Calypso), stateful traits
8.0 20 January, 2020[19] improved support of Git, testing, refactoring and Windows
9.0 15 July, 2021[20] GTK3 support, object-centric debugger and inspector, refactorings, official ARM VMs
10.0 5 April, 2022[21] Cleanups, modularization, many rewritten and improved tools
11.0 11 May, 2023[22] Ephemerons, SIMD, more efficient closures, improved tools
Current stable version: 12.0 26 May, 2024[23] New debug points system, new class definitions, permanent space

Use of Pharo

Companies and consultants

Some companies use Pharo for their development projects.[24] In particular, they use:

The Pharo consortium[29] was created for companies wishing to support the Pharo project. The Pharo association[30] was created in 2011[31] for users wishing to support the project.

Performance and virtual machine (VM)

Pharo relies on a virtual machine that is written almost entirely in Smalltalk. Beginning in 2008, a new virtual machine (Cog) for Squeak, Pharo and Newspeak has been developed that performs nearly as well as the fastest Smalltalk virtual machine.[32] In 2014/2015 the VM community is working on Spur, a new Memory Manager for Cog that should again increase performance and provide better 64-bit VM support.[33]

See also

References

  1. ^ https://pharo.org/news/2024-04-26-pharo12-released.html. {{cite web}}: Missing or empty |title= (help)
  2. ^ Pharo license information
  3. ^ a b Black, Andrew P.; Ducasse, Stéphane; Nierstrasz, Oscar; Pollet, Damien; Cassou, Damien; Denker, Marcus (October 28, 2009). Pharo by example. Kehrsatz, Switzerland. ISBN 978-3-9523341-4-0. OCLC 957555627.{{cite book}}: CS1 maint: location missing publisher (link)
  4. ^ "OpenSmalltalk". opensmalltalk.org. Retrieved November 24, 2021.
  5. ^ OpenSmalltalk/opensmalltalk-vm, OpenSmalltalk, November 23, 2021, retrieved November 24, 2021
  6. ^ "Cog Blog: About Cog". Retrieved November 24, 2021.
  7. ^ a b c d Black, Andrew P.; Ducasse, Stéphane; Nierstrasz, Oscar; Pollet, Damien (October 28, 2009). Pharo by Example. Samuel Morello. Lulu.com. ISBN 978-3-9523341-4-0.
  8. ^ "DevelopOnTheWeb". developontheweb.co.uk. Retrieved November 24, 2021.
  9. ^ "The Rise and Fall of Commercial Smalltalk". www.wirfs-brock.com. Retrieved November 24, 2021.
  10. ^ "Pharo got 10 years". Pharo-project.org. May 29, 2018. Retrieved May 31, 2018.
  11. ^ "Pharo Open Source Smalltalk — Release 1.4". Pharo-project.org. April 17, 2012. Retrieved April 5, 2013.
  12. ^ "Pharo Open Source Smalltalk — Release 2.0". Pharo-project.org. March 18, 2013. Retrieved April 5, 2013.
  13. ^ "Pharo Open Source Smalltalk — Release 3.0". pharo.org. April 30, 2014. Archived from the original on August 23, 2017. Retrieved May 1, 2014.
  14. ^ "Pharo Open Source Smalltalk — Release 4.0". pharo.org. April 15, 2015. Archived from the original on August 23, 2017. Retrieved April 16, 2015.
  15. ^ "Pharo Open Source Smalltalk — Release 5.0". pharo.org. May 12, 2016. Archived from the original on December 29, 2017. Retrieved May 13, 2016.
  16. ^ "Pharo Open Source Smalltalk - Release 6.0". pharo.org. June 6, 2017. Archived from the original on November 20, 2017. Retrieved June 6, 2017.
  17. ^ "Pharo 6.1 released". pharo.org. July 24, 2017. Archived from the original on August 20, 2017. Retrieved August 11, 2017.
  18. ^ "Pharo 7.0 released". pharo.org. January 22, 2019. Archived from the original on February 12, 2022. Retrieved January 22, 2019.
  19. ^ "Pharo 8.0 Released!". pharo.org. January 20, 2020. Archived from the original on February 12, 2022. Retrieved January 20, 2020.
  20. ^ "Pharo 9.0 Released!". pharo.org. July 15, 2021.
  21. ^ "Pharo 10.0 Released!". pharo.org. April 5, 2022.
  22. ^ "Pharo 11.0 Released!". pharo.org. May 11, 2023.
  23. ^ "Pharo 12.0 Released!". pharo.org. May 26, 2024.
  24. ^ "Pharo Open Source Smalltalk — Success stories" (Press release). Pharo-project.org. Retrieved April 5, 2013.
  25. ^ "Home". seaside.st. March 18, 2007. Retrieved April 5, 2013.
  26. ^ "Zinc HTTP Components". Zn.stfx.eu. Retrieved April 5, 2013.
  27. ^ Girba, Tudor. "Home". Moose technology. Retrieved April 5, 2013.
  28. ^ "Agile Visualization". Object Profile. Retrieved May 31, 2018.
  29. ^ "web: Pharo Consortium". Consortium.pharo.org. March 31, 2013. Retrieved April 5, 2013.
  30. ^ Ducasse, Stephane. "association: Pharo Association". Association.pharo.org. Retrieved April 5, 2013.
  31. ^ "Annonce JOAFE n°1025 de la parution n°20110013 du 26 mars 2011". Journal-officiel.gouv.fr. Retrieved May 1, 2022.
  32. ^ "Cog Blog". Mirandabanda.org. Retrieved April 5, 2013.
  33. ^ "7-point summary of the Spur memory manager". Clément Béra. February 6, 2014. Retrieved April 17, 2015.

Read other articles:

غوت سفن   البلد كوريا الجنوبية  بداية 2014  النوع بوب كوري،  وهيب هوب  شركة الإنتاج جاي واي بي إنترتينمنت  الموقع الرسمي الموقع الرسمي،  والموقع الرسمي  تعديل مصدري - تعديل   غوت سفن (بالإنجليزية: Got7)‏ (هانغل: 갓세븐)) هي فرقة فتيان للكي بوب دولية.[1][2...

 

Police Militaire du ParanáPolícia Militar do Paraná Insigne de la PMPR Création 1854 Pays Brésil  Paraná Allégeance Gouvernement du État du Paraná Branche Force auxiliaire et réserve militaire de l'armée de terre brésilienne Type Police Militaire (Gendarmerie) Rôle Maintien de l'ordre public Effectif Approximativement 21 800 Garnison Curitiba - CapitaleCommandement Général Surnom PMPR Devise Votre sécurité est notre engagement.Sua proteção é nosso compromisso. Ma...

 

قلعة والي عيلاممعلومات عامةنوع المبنى قلعةالمكان إيلام[1][2][3] المنطقة الإدارية مقاطعة إيلام[1][4] البلد  إيرانالاستعمال anthropology museum (en) [3] (2006 – ) أبرز الأحداثالافتتاح الرسمي 1908 و 1990 الأبعادالمساحة 1٬466٫01 متر مربع[2] (بنية تحتية)1٬363٫4 متر مربع[2 ...

Venezuelan baseball player (born 1983) In this Spanish name, the first or paternal surname is Prado and the second or maternal family name is Torcate. Baseball player Martín PradoPrado with the Miami Marlins in 2016Third baseman / Second baseman / Left fielderBorn: (1983-10-27) October 27, 1983 (age 40)Maracay, VenezuelaBatted: RightThrew: RightMLB debutApril 23, 2006, for the Atlanta BravesLast MLB appearanceSeptember 29, 2019, for the Miami Marlin...

 

You can help expand this article with text translated from the corresponding article in German. (February 2017) Click [show] for important translation instructions. Machine translation, like DeepL or Google Translate, is a useful starting point for translations, but translators must revise errors as necessary and confirm that the translation is accurate, rather than simply copy-pasting machine-translated text into the English Wikipedia. Consider adding a topic to this template: there are...

 

Submarine designed to destroy other ships HMCS Windsor, an attack submarine of the Royal Canadian Navy An attack submarine or hunter-killer submarine is a submarine specifically designed for the purpose of attacking and sinking other submarines, surface combatants and merchant vessels. In the Soviet and Russian navies they were and are called multi-purpose submarines.[1] They are also used to protect friendly surface combatants and missile submarines.[2] Some attack subs are a...

Chinese-South Korean web-drama My CatmanAlso known as捡来的猫男검은 고양이GenreRomantic comedyDirected byPark Hyun-jinStarringIm Si-wanChae Soo-binKim Myung-sooCountry of originSouth Korea ChinaOriginal languageKoreanNo. of episodes10ProductionRunning time25 minsProduction companiesShanghai Ulike MediaMBCOriginal releaseNetworkQQLiveMBCReleaseAugust 17 (2017-08-17) –August 18, 2017 (2017-08-18) My Catman (Chinese: 捡来的猫男) is a Chinese-South Korean web-d...

 

This article relies largely or entirely on a single source. Relevant discussion may be found on the talk page. Please help improve this article by introducing citations to additional sources.Find sources: Cleveland Board of Education v. Loudermill – news · newspapers · books · scholar · JSTOR (September 2012) 1985 United States Supreme Court caseCleveland Board of Education v. LoudermillSupreme Court of the United StatesArgued December 3, 1984Decided M...

 

Peta lokasi Västmanland adalah sebuah län (daerah) di Svealand, Swedia. Daerah ini berbatasan dengan Södermanlands län, Örebro län, Dalarnas län dan Uppsala län. Daerah ini terletak di bagian timur Provinsi Västmanland, bagian barat Uppland, bagian Södermanland dan timur laut Närke. Kota-kota besar Arboga Fagersta Hallstahammar Köping Sala Västerås Pranala luar Länstyrelsen i Västmanlands län Diarsipkan 2006-09-10 di Wayback Machine. lbsCounty (län) di Swedia Blekinge Dalarn...

  لمعانٍ أخرى، طالع كاثرين جونسون (توضيح). كاثرين جونسون (بالإنجليزية: Katherine Johnson)‏   جونسون سنة 1983    معلومات شخصية اسم الولادة (بالإنجليزية: Creola Katherine Coleman)‏  الميلاد 26 أغسطس 1918[1][2][3]  وايت سولفور سبرينغز[4]  الوفاة 24 فبراير 2020 (101 سنة) [5&...

 

Role-playing video game series Video game seriesUltimaThe most commonly used logo in the seriesGenre(s)Role-playingDeveloper(s)Origin SystemsBlue Sky ProductionsLooking Glass StudiosElectronic ArtsBioware MythicPublisher(s)Origin SystemsElectronic ArtsCreator(s)Richard GarriottPlatform(s)Amiga, Apple II, Atari 8-bit, Atari ST, Commodore 64, Commodore 128, FM Towns, MS-DOS, MSX, Mac OS, Master System, NES, PC-98, PlayStation, SNES, VIC-20, Windows, X68000First releaseUltima I: The First A...

 

2000 British-American romance film directed by Lasse Hallström ChocolatTheatrical release posterDirected byLasse HallströmScreenplay byRobert Nelson JacobsBased onChocolatby Joanne HarrisProduced by David Brown Kit Golden Leslie Holleran Starring Juliette Binoche Judi Dench Alfred Molina Lena Olin Johnny Depp Carrie-Anne Moss Peter Stormare John Wood Leslie Caron CinematographyRoger PrattEdited byAndrew MondsheinMusic byRachel PortmanDistributed byMiramax Films (through Buena Vista Internat...

For other places with the same name, see Lebanon (disambiguation). City in Indiana, United StatesLebanon, IndianaCityBoone County Courthouse in LebanonMotto: The Friendly CityLocation of Lebanon in Boone County, Indiana.Coordinates: 40°3′8″N 86°28′18″W / 40.05222°N 86.47167°W / 40.05222; -86.47167CountryUnited StatesStateIndianaCountyBooneTownshipsCenter, PerryGovernment • MayorMatthew T. Gentry (R)[1]Area[2] • T...

 

This article does not cite any sources. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Radom Department – news · newspapers · books · scholar · JSTOR (December 2009) (Learn how and when to remove this template message) Administrative division of the Duchy of Warsaw, 1810–1815. Radom Department is yellow in the center-south. Radom Department (Polish: Departament ...

 

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Brave Frontier 2 – news · newspapers · books · scholar · JSTOR (February 2018) (Learn how and when to remove this template message) 2018 video gameBrave Frontier 2Developer(s)A-LimPublisher(s)JP: A-Lim (Mobile)DMM Games (Windows)Director(s)Eiji TakahashiProduce...

رتبة عسكريةمعلومات عامةصنف فرعي من rank (en) جانب من جوانب عسكرية تعديل - تعديل مصدري - تعديل ويكي بيانات جزء من سلسلة عليالحرب التاريخ ما قبل التاريخ الحروب القديمة ما بعد الكلاسيكية أوائل العصر الحديث أواخر العصر الحديث الصناعية الجيل الرابع ساحة المعركة الجوية الإلكترونية ...

 

US coffee company and coffeehouse chain, considered a major player in third-wave coffee Philz CoffeeOriginal Philz storefront on 24th Street in the Mission DistrictIndustryCoffee shopFounded2003FoundersPhil Jaber and Jacob JaberHeadquartersSan FranciscoNumber of locations69Area servedUnited StatesKey peoplePhil Jaber is Co-Founder Jacob Jaber is Co-Founder & ChairmanProductsCoffee, tea, mint mojito, hot chocolate, pastriesWebsitewww.philzcoffee.com Philz Coffee is an American coffee compa...

 

Malaysian politician In this Chinese name, the family name is Sim (沈). Yang Berhormat TuanSteven SimMP沈志强Deputy Minister of Finance IIIncumbentAssumed office 10 December 2022Serving with Ahmad Maslan (Deputy Minister of Finance I)MonarchAbdullahPrime MinisterAnwar IbrahimMinisterAnwar IbrahimPreceded byYamani Hafez MusaConstituencyBukit MertajamDeputy Minister of Youth and SportsIn office2 July 2018 – 24 February 2020MonarchsMuhammad V (2018–2019) Abdullah (20...

Danish cyclist Frederik RodenbergRodenberg in 2019Personal informationFull nameFrederik Rodenberg MadsenBorn (1998-01-22) 22 January 1998 (age 25)Værløse, DenmarkHeight1.87 m (6 ft 2 in)Weight73 kg (161 lb)Team informationCurrent teamTeam DSM–FirmenichDisciplinesTrackRoadRoleRiderProfessional teams2017Team Giant–Castelli2018–2019Team ColoQuick2020–2021Uno-X Norwegian Development Team[1][2]2022–Team DSM Major wins Track Team p...

 

جان بابتيست لو برون (بالفرنساوى: Jean-Baptiste Le Brun)    معلومات شخصيه الميلاد 16 فبراير 1748[1][2][3][4]  باريس  الوفاة 7 اغسطس 1813 (65 سنة)  باريس  مواطنه فرنسا[5]  الزوجة اليزابيث لويز فيج لوبرون (7 اغسطس 1775–)  الحياه العمليه اتعلم عند فرانسوا بوشيه، ...

 

Strategi Solo vs Squad di Free Fire: Cara Menang Mudah!