DotGNU: Difference between revisions

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
imported>Citation bot
Added title. Changed bare reference to CS1/2. | Use this bot. Report bugs. | Suggested by Whoop whoop pull up | Category:.NET implementations | #UCB_Category 4/5
 
imported>Qwerfjkl
m Removed brackets from bare URL(s) with no title, to show the URL instead of a number
 
Line 32: Line 32:
[[libJIT]] is a [[just-in-time compilation]] [[Library (computing)|library]] for development of advanced just-in-time compilation in [[virtual machine]] implementations, [[dynamic programming language]]s, and [[scripting languages]]. It implements an [[intermediate representation]] based on [[three-address code]], in which variables are kept in [[static single assignment form]].
[[libJIT]] is a [[just-in-time compilation]] [[Library (computing)|library]] for development of advanced just-in-time compilation in [[virtual machine]] implementations, [[dynamic programming language]]s, and [[scripting languages]]. It implements an [[intermediate representation]] based on [[three-address code]], in which variables are kept in [[static single assignment form]].


libJIT has also seen some use in other open source projects, including [[GNU Emacs]],<ref>{{cite web | url=https://lists.gnu.org/archive/html/emacs-devel/2018-08/msg00393.html | title=Emacs Lisp JIT Compiler }}</ref><ref>{{cite web | url=http://git.savannah.gnu.org/cgit/emacs.git/log/?h=feature/libjit | title=Emacs.git - Emacs source repository }}</ref> ILDJIT<ref>[https://web.archive.org/web/20111201192347/http://sourceforge.net/apps/mediawiki/ildjit/index.php?title=Main_Page]</ref> and HornetsEye.<ref>[https://web.archive.org/web/20100328171539/http://www.wedesoft.demon.co.uk/hornetseye-api/files/HornetsEye-txt.html]</ref>
libJIT has also seen some use in other open source projects, including [[GNU Emacs]],<ref>{{cite web | url=https://lists.gnu.org/archive/html/emacs-devel/2018-08/msg00393.html | title=Emacs Lisp JIT Compiler }}</ref><ref>{{cite web | url=http://git.savannah.gnu.org/cgit/emacs.git/log/?h=feature/libjit | title=Emacs.git - Emacs source repository }}</ref> ILDJIT<ref>https://web.archive.org/web/20111201192347/http://sourceforge.net/apps/mediawiki/ildjit/index.php?title=Main_Page</ref> and HornetsEye.<ref>https://web.archive.org/web/20100328171539/http://www.wedesoft.demon.co.uk/hornetseye-api/files/HornetsEye-txt.html</ref>


==Framework architecture==
==Framework architecture==

Latest revision as of 19:10, 11 June 2025

Script error: No such module "Unsubst".

Script error: No such module "Infobox".Template:Template otherScript error: No such module "Check for unknown parameters".Template:Main other

DotGNU is a decommissioned[1] part of the GNU Project that started in January 2001 and aimed to provide a free software replacement for Microsoft's .NET Framework. The DotGNU project was run by the Free Software Foundation. Other goals of the project are better support for non-Windows platforms and support for more processors.

The main goal of the DotGNU project code base was to provide a class library that is 100% Common Language Specification (CLS) compliant.

Main development projects

Portable.NET

DotGNU Portable.NET, an implementation of the ECMA-335 Common Language Infrastructure (CLI), includes software to compile and run Visual Basic .NET, C#, and C applications that use the .NET base class libraries, XML, and Windows Forms. Portable.NET claims to support various instruction set architectures including x86, PPC, ARM, and SPARC.

DGEE

DotGNU Execution Environment (DGEE) is a web service server.

libJIT

libJIT is a just-in-time compilation library for development of advanced just-in-time compilation in virtual machine implementations, dynamic programming languages, and scripting languages. It implements an intermediate representation based on three-address code, in which variables are kept in static single assignment form.

libJIT has also seen some use in other open source projects, including GNU Emacs,[2][3] ILDJIT[4] and HornetsEye.[5]

Framework architecture

File:Mono architecture.svg
Simplified Mono architecture

The Portable .NET class library seeks to provide facilities for application development. These are primarily written in C#, but because of the Common Language Specification they can be used by any .NET language. Like .NET, the class library is structured into Namespaces and Assemblies.[6] It has additional top-level namespaces including Accessibility and DotGNU. In a typical operation, the Portable .NET compiler generates a Common Language Specification (CLS) image, as specified in chapter 6 of ECMA-335, and the Portable .NET runtime takes this image and runs it.

Free software

DotGNU points out that it is Free Software, and it sets out to ensure that all aspects of DotGNU minimize dependence on proprietary components, such as calls to Microsoft Windows' GUI code. DotGNU was one of the High Priority Free Software Projects from Template:Dts[7] till Template:Dts.[8]Template:Clarify

DotGNU and Microsoft's patents

Template:More citations neededScript error: No such module "labelled list hatnote". DotGNU's implementation of those components of the .NET stack not submitted to the ECMA for standardization has been the source of patent violation concerns for much of the life of the project. In particular, discussion has taken place about whether Microsoft could destroy the DotGNU project through patent suits.

The base technologies submitted to the ECMA may be non-problematic. The concerns primarily relate to technologies developed by Microsoft on top of the .NET Framework, such as ASP.NET, ADO.NET, and Windows Forms (see Non standardized namespaces), i.e. parts composing DotGNU's Windows compatibility stack. These technologies are today not fully implemented in DotGNU and are not required for developing DotGNU-applications.

In 2009, Microsoft released .NET Micro Framework under Apache License, Version 2.0, which includes a patent grant. However, the .NET Micro Framework is a reimplementation of the CLR and limited subset of the base class libraries meant for use on embedded devices. Additionally, the patent grant in the Apache License would have protected only contributors and users of the .NET Micro Framework—not users and developers of alternative implementations such as DotGNU or Mono.

In 2014, Microsoft released Roslyn, the next generation official Microsoft C# compiler, under the Apache License. Later that year, Microsoft announced a "reboot" of the official .NET Framework. The framework would be based on .NET Core, including the official runtime and standard libraries released under the MIT License and a patent grant explicitly protecting recipients from Microsoft-owned patents regarding .NET Core.

See also

Script error: No such module "Portal".

References

Template:Reflist

External links

Template:.NET Template:GNU Template:Common Language Infrastructure

  1. Script error: No such module "citation/CS1".
  2. Script error: No such module "citation/CS1".
  3. Script error: No such module "citation/CS1".
  4. https://web.archive.org/web/20111201192347/http://sourceforge.net/apps/mediawiki/ildjit/index.php?title=Main_Page
  5. https://web.archive.org/web/20100328171539/http://www.wedesoft.demon.co.uk/hornetseye-api/files/HornetsEye-txt.html
  6. Script error: No such module "citation/CS1".
  7. Script error: No such module "citation/CS1".
  8. Script error: No such module "citation/CS1".