summaryrefslogtreecommitdiff
blob: b544028faf5900dd56871e8db648badb4efc4e22 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">

<pkgmetadata>
  <maintainer type="person">
    <email>xgqt@gentoo.org</email>
    <name>Maciej Barć</name>
  </maintainer>
  <longdescription>
    Nim is a statically typed compiled systems programming language.
    It combines successful concepts from mature languages like Python,
    Ada and Modula.
    Nim generates native dependency-free executables, not dependent on a
    virtual machine, which are small and allow easy redistribution.
    The Nim compiler and the generated executables support all major platforms
    like Windows, Linux, BSD and macOS.
    Nim's memory management is deterministic and customizable with destructors
    and move semantics, inspired by C++ and Rust. It is well-suited for
    embedded, hard-realtime systems.
    Modern concepts like zero-overhead iterators and compile-time evaluation of
    user-defined functions, in combination with the preference of value-based
    datatypes allocated on the stack, lead to extremely performant code.
    Support for various backends: it compiles to C, C++ or JavaScript so that
    Nim can be used for all backend and frontend needs.
    Nim is self-contained: the compiler and the standard library are
    implemented in Nim.
    Nim has a powerful macro system which allows direct manipulation of the
    AST, offering nearly unlimited opportunities.
    Macros cannot change Nim's syntax because there is no need for it  the
    syntax is flexible enough.
    Modern type system with local type inference, tuples, generics and sum
    types.
    Statements are grouped by indentation but can span multiple lines.
  </longdescription>
  <upstream>
    <bugs-to>https://github.com/nim-lang/Nim/issues/</bugs-to>
    <remote-id type="github">nim-lang/Nim</remote-id>
  </upstream>
  <use>
    <flag name="experimental">Apply experimental patches</flag>
    <flag name="test-js">Enable tests that require Node.js</flag>
  </use>
</pkgmetadata>