Developer(s) | Lazarus and Free Pascal Team (volunteers) |
---|---|
Stable release | 3.6.0[1]
/ 30 September 2024 |
Repository | |
Written in | Object Pascal |
Operating system | cross-platform: Windows, macOS, Linux[2] |
Platform | IA-32, x86-64, ARM (Raspberry Pi)[2] |
Available in | 14 languages |
List of languages Chinese (simplified), Dutch, English, Finnish, French, German, Indonesian, Italian, Japanese, Polish, Portuguese (Brazilian), Russian, Spanish, Ukrainian | |
Type | Integrated development environment |
License | GNU General Public License and modified GNU Lesser General Public License (with static linking exception) |
Website | www |
Lazarus is a cross-platform, integrated development environment (IDE) for rapid application development (RAD) using the Free Pascal compiler. Its goal is to provide an easy-to-use development environment for developing with the Object Pascal language, which is as close as possible to Delphi. It is free and open-source software with different parts released under different software licenses.
Lazarus is often used to create native-code console and graphical user interface (GUI) applications for desktop computers, mobile devices, web applications, web services, visual components, and function libraries for several different operating system platforms, including macOS, Linux, and Windows.[2]
A project created by using Lazarus on one platform can be compiled on any other one which Free Pascal compiler supports. For desktop applications, one source code can target macOS, Linux, and Windows, with little or no modification. For example, the Lazarus IDE is created from one code base and available on all major platforms including Raspberry Pi.
Lazarus provides a What You See Is What You Get (WYSIWYG) development environment for creating rich user interfaces, application logic, and other supporting code artifacts, similar to Delphi. Along with project management features, the Lazarus IDE also provides:
Lazarus uses Free Pascal as its back-end compiler. As Free Pascal supports cross-compiling, Lazarus applications can be cross-compiled from Windows, Linux, or macOS to any of the supported Free Pascal compilation targets. Applications for embedded devices (smartphones, PDAs, routers, game consoles) can be cross-compiled from any desktop platform.
Lazarus provides a cross-platform application framework called the Lazarus Component Library (LCL), which provides a single, unified interface for programmers, with different platform-specific implementations. Using LCL, it is possible to create applications in a write once, compile anywhere manner, unless system-dependent features are used explicitly. LCL was originally modeled after the Visual Component Library (VCL) in Delphi 6, but is not restricted to Windows. This is done by separating the definition of common widget classes and their widgetset-specific implementation. Each widget set is supported by providing an interface which interacts directly with the set.[3]
Developers can install packages that allow Lazarus to support several database management systems (DBMSes). Programs can interact with a DBMS through code or by components dropped on a form.
The following DBMSes are supported out of the box:
Lazarus resembles Delphi in many ways. It supports Component Object Model (COM) since version 2.2.0, and offers most of Delphi's networking functions. However, there are limits to the performance and feature set.
Lazarus does not support the following, which Delphi does:
LCL is not fully compatible with VCL. This makes the extensive repository of available VCL widgets inaccessible without conversion. The conversion effort mostly involves some editing, although there are a few fundamental differences. When porting, missing units in the libraries are a considerably bigger problem than incompatibilities between LCL and VCL. Components for Delphi can be converted to work in Lazarus. This can be complex, though less so than for Lazarus versions older than 0.9.30, based on FP 2.4.x.
On Windows, the default size of an executable file is larger than the Delphi 6 or 7 equivalent, as Lazarus stores debug information within the executable, rather than as separate files. Starting with version 0.9.30, Lazarus supports external debug symbols via compiler options. Thus, program file sizes can be significantly reduced. Alternatively, debug info can be stripped from EXEs (e.g. using a port of the UNIX strip
command).
Like Free Pascal, Lazarus is free software. Different portions are distributed under different free software licenses, including GPL, LGPL, MPL, and a modified version of LGPL.[6] LCL, which is statically built into the produced executables, is licensed under a modified version of the LGPL, granting extra permissions to allow it to be statically built into the produced software, including proprietary ones.
Installing a design time package is equivalent to linking to the IDE, so that distributing the Lazarus IDE with a GPL-incompatible design-time package such as the JEDI packages licensed under the Mozilla Public License, pre-installed would cause a license violation. This does not prohibit proprietary packages from being developed with Lazarus.
The first attempt to develop an IDE for Free Pascal dates back to 1998, under the "Megido" project. After the project failed, some of its developers started a new project based on a more flexible foundation. The name "Lazarus" alludes to the revival of the Megido concept. It is inspired by Lazarus of Bethany, who, according to the Gospel of John, was restored to life by Jesus four days after his death.
The first preliminary LCL version was ready for release in 2001. In 2003, the first beta version of Lazarus (0.9.0.3) was hosted at SourceForge. Lazarus version 1.0 was released in 2012. A significantly enhanced Lazarus 1.2 with was released in 2014. More than four million downloads had been made from SourceForge as of March 2014.
Version number | Release date | Platform | Comments |
---|---|---|---|
0.0.5 | January 2001 | Windows | First release of component library |
0.1 | January 2001 | Windows | Redesign of component library to support platform-sensitive development for Linux and Windows using GTK+ and other widgetsets |
0.5 | January 30, 2001 | Windows, Linux | Bug fixes and new features supporting cross-platform development and project skeletons |
0.8 | October 9, 2001 | Windows, Linux | Codetools implemented, bug fixes |
0.8.2 | January 17, 2002 | Windows, Linux | Expanded find functions |
0.8.4 | August 19, 2002 | Windows, Linux | Improved graphics and font support, support for Delphi 6 syntax. Binary DFMs are now automatically converted to LFMs |
0.8.5 | October 26, 2002 | Windows, Linux | LCL decoupled from interfaces |
0.9.0.3 | September 4, 2003 | Linux | First release on SourceForge |
0.9.1 | February 27, 2004 | Windows, Linux | Support for packages, numerous added and enhanced properties |
0.9.4 | January 3, 2005 | Windows | Threading support improved, oldest public version hosted at SourceForge |
0.9.6 | February 25, 2005 | Windows | |
0.9.8 | July 19, 2005 | Windows | |
0.9.10 | October 3, 2005 | Windows, Mac OS X (PPC) | Bug fixes, extensibility of IDE improved, document editor for FPDoc files; includes Free Pascal 2.0.1 |
0.9.12 | February 7, 2006 | Windows | New packages for database support, CGI applications and printing |
0.9.14 | April 2, 2006 | Windows, Mac OS X (PPC), Linux | Bugfixes, more controls in WinCE and Qt4 interface |
0.9.16 | May 28, 2006 | Windows, Mac OS X (PPC), Linux | Bug fixes, online help for IDE windows and for LCL applications, improvements to Qt widgetset interface; includes Free Pascal 2.0.2 |
0.9.18 | September 23, 2006 | Windows, Mac OS X (PPC), Linux | Bugfixes, procedure list implemented, new command-line tool "lazbuild" |
0.9.20 | November 5, 2006 | Windows, Mac OS X (PPC), Linux | Bufixes, code folding implemented, Qt widgetset improved |
0.9.22 | March 26, 2007 | Windows, Mac OS X (PPC), Linux | New components to write Windows services and Linux daemons, support for custom mouse cursors; includes Free Pascal 2.0.4 |
0.9.24 | November 15, 2007 | Windows, Mac OS X, Linux | First stable release for Win64, WinCE, and Intel-based Mac OS X. Improvements in Qt, Carbon, and Gtk2 widgetset interfaces. Customizable toolbar; includes Free Pascal 2.2.0 |
0.9.26 | October 5, 2008 | Windows, Mac OS X, Linux | Internal graphic system was rewritten. LCL now uses Unicode strings encoded as UTF-8 on all platforms. FPDoc help in tooltips. First version to run natively using the Carbon widgetset on Mac OS X |
0.9.26.2 | March 13, 2009 | Windows, Mac OS X, Linux | Bug fixes, improved icon support; includes Free Pascal 2.2.2 |
0.9.28 | September 29, 2009 | Windows, Mac OS X, Linux | Improvements of editor and debugger including support for double-byte fonts such as Eastern, Japanese, Chinese, and Arabic, smaller file sizes of generated applications; includes Free Pascal 2.2.4 |
0.9.28.2 | October 25, 2009 | Windows, Mac OS X, Linux | Mainly bug fixes |
0.9.30 | March 22, 2011 | Windows, Mac OS X, Linux | Large number of new features, including docking and multiple source-code windows. Based on Free Pascal 2.4.2 |
0.9.30.2RC1 | September 30, 2011 | Windows, Mac OS X, Linux | Includes Free Pascal 2.4.4. Release candidate for Lazarus 0.9.30.2 |
0.9.30.2RC2 | October 26, 2011 | Windows, Mac OS X, Linux | Release candidate for Lazarus 0.9.30.2 |
0.9.30.2 | November 5, 2011 | Windows, Mac OS X, Linux | Bug fixes |
0.9.30.4RC1 | March 3, 2012 | Windows, Mac OS X, Linux | Bug fixes, includes Free Pascal 2.6.0. Release candidate for Lazarus 0.9.30.4 |
0.9.30.4RC2 | March 7, 2012 | Windows, Mac OS X, Linux | Release candidate for Lazarus 0.9.30.4 |
0.9.30.4RC3 | March 11, 2012 | Windows, Mac OS X, Linux | Release candidate for Lazarus 0.9.30.4 |
0.9.30.4 | March 14, 2012 | Windows, Mac OS X, Linux | Bug fixes |
1.0RC1 | July 29, 2012 | Windows, Mac OS X (Intel), Linux | Release candidate for Lazarus 1.0 |
1.0RC2 | August 21, 2012 | Windows, Mac OS X, Linux | Release candidate for Lazarus 1.0 |
1.0 | August 28, 2012 | Windows, Mac OS X, Linux | First final version. This stable release includes Free Pascal 2.6.0. Multiple corrections and improvements of the IDE, including a macro function, expanded code-folding and new debugger functions |
1.0.2 | October 10, 2012 | Windows, Mac OS X, Linux | Bug fixes, minor additions to LCL and widgetsets |
1.0.4 | December 2, 2012 | Windows, Mac OS X, Linux | Bug fixes, minor additions to IDE, LCL and widgetsets as well as LazReport and TAChart |
1.0.6 | February 3, 2013 | Windows, Mac OS X, Linux | Bug fixes, minor additions to IDE, LCL and widgetsets as well as LazReport and TAChart |
1.0.8 | March 19, 2013 | Windows, Mac OS X, Linux | Bug fix release; includes Free Pascal 2.6.2 |
1.0.10 | June 12, 2013 | Windows, Mac OS X, Linux | Bug fixes |
1.0.12 | August 24, 2013 | Windows, Mac OS X, Linux | Bug fixes |
1.0.14 | November 16, 2013 | Windows, Mac OS X, Linux | Bug fixes |
1.1.99 | September 16, 2013 | Windows, Mac OS X, Linux | Alpha version for Lazarus 1.2 |
1.2RC1 | November 3, 2013 | Windows, Mac OS X, Linux | Release candidate for Lazarus 1.2 |
1.2RC2 | January 13, 2014 | Windows, Mac OS X, Linux | Release candidate for Lazarus 1.2 |
1.2 | March 4, 2014 | Windows, Mac OS X, Linux | Multiple new features, including a macro recorder, support for layered graphs and Pascal Script. Based on Free Pascal 2.6.2 |
1.2.2 | April 23, 2014 | Windows, Mac OS X, BSD, Solaris, Linux | Bug fix release. Based on Free Pascal 2.6.4 |
1.2.4 | June 16, 2014 | Windows, Mac OS X, BSD, Solaris, Linux | Bug fix release |
1.2.6 | October 12, 2014 | Windows, Mac OS X, BSD, Solaris, Linux | Bug fix release |
1.4.0 | April 19, 2015 | Windows, Mac OS X, BSD, Solaris, Linux | Improvements of editor, resource handling and additional new features. Based on Free Pascal 2.6.4 |
1.4.2 | July 14, 2015 | Windows, Mac OS X, BSD, Solaris, Linux | Bug fix release |
1.4.4 | October 4, 2015 | Windows, Mac OS X, BSD, Solaris, Linux | Bug fix release |
1.6 | February 18, 2016 | Windows, Mac OS X, Linux | Multiple new features, including docking, project groups and improved editor. Based on Free Pascal 3.0.0.[7] |
1.6.2 | November 13, 2016 | Windows, Mac OS X, Linux | Bug fix release |
1.6.4 | February 26, 2017 | Windows, macOS, Linux | Bug fix release. Based on Free Pascal 3.0.2 |
1.8.0 | December 6, 2017 | Windows, macOS, BSD, Linux | Major release with many new features including an online package manager. Based on Free Pascal 3.0.4 |
1.8.2 | February 28, 2018. | Bug fix release | |
1.8.4 | May 22, 2018 | Windows, macOS, BSD, Linux | Bug fix release.[8] |
2.0.0 | January 5, 2019 | Windows, macOS, BSD, Linux | Multiple new features including Cocoa support and the introduction of a Pascal to JavaScript transpiler |
2.0.2 | April 16, 2019 | Windows, macOS, BSD, Linux | Bug fix release |
2.0.4 | August 6, 2019 | Windows, macOS, BSD, Linux | Bug fix release |
2.0.6 | November 1, 2019 | Windows, macOS, BSD, Linux | Bug fix release |
2.0.8 | April 16, 2020 | Windows, macOS, BSD, Linux | Bug fix release, improved Cocoa widgetset |
2.0.10 | July 11, 2020 | Windows, macOS, BSD, Linux | Bug fix release, minor additions, first version based on Free Pascal 3.2.0 |
2.0.12 | February 21, 2021 | Windows, macOS, BSD, Linux | Based on Free Pascal 3.2.0. List of fixes available.[9] |
2.2.0 | January 5, 2022 | Windows, macOS, BSD, Linux | Based on Free Pascal 3.2.2. Multiple improvements, among others in the IDE, the LCL and widgetsets.[10] |
2.2.2 | May 19, 2022 | Windows, macOS, BSD, Linux | Bug fix release |
2.2.4 | September 28, 2022 | Windows, macOS, BSD, Linux | Bug fix release |
2.2.6 | March 6, 2023 | Windows, macOS, BSD, Linux | Bug fix release |
3.0 | December 21, 2023 | Windows, macOS, BSD, Linux | Multiple improvements, among others in the IDE, the LCL, widgetsets and the debugger.[11] |
3.2 | February 28, 2024 | Windows, macOS, BSD, Linux | Bug fixes and minor improvements.[12] |
3.4 | May 29, 2024 | Windows, macOS, BSD, Linux | Bug fixes and minor improvements.[12] |
3.6 | September 30, 2024 | Windows, macOS, BSD, Linux | Bug fixes and minor improvements.[12] |
{{cite web}}
: Missing or empty |title=
(help)