~ubuntu-branches/debian/experimental/nuitka/experimental

« back to all changes in this revision

Viewing changes to Developer_Manual.rst

  • Committer: Package Import Robot
  • Author(s): Kay Hayen
  • Date: 2013-08-18 09:06:29 UTC
  • mto: This revision was merged to the branch mainline in revision 22.
  • Revision ID: package-import@ubuntu.com-20130818090629-lz12hlck5ruvjbq4
Tags: upstream-0.4.5+ds
ImportĀ upstreamĀ versionĀ 0.4.5+ds

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
Nuitka Developer Manual
 
2
~~~~~~~~~~~~~~~~~~~~~~~
1
3
 
2
 
Developer Manual
3
 
~~~~~~~~~~~~~~~~
 
4
.. image:: images/Nuitka-Logo-Symbol.png
4
5
 
5
6
.. contents::
6
7
 
7
8
.. raw:: pdf
8
9
 
9
 
   PageBreak
 
10
   PageBreak oneColumn
 
11
   SetPageCounter 1
10
12
 
11
13
The purpose of this developer manual is to present the current design of Nuitka,
12
14
the coding rules, and the intentions of choices made. It is intended to be a
20
22
It grows out of discussions and presentations made at conferences as well as
21
23
private conversations or discussions on the mailing list or bug tracker.
22
24
 
23
 
 
24
25
Milestones
25
26
==========
26
27
 
484
485
_`1`:: C++11 is not fully supported from any compiler
485
486
(temporary problem)
486
487
 
487
 
_`2`:: Not a whole lot of people have C++11 knowledge. My *only* C++11 Code was
 
488
_`2`:: Not a whole lot of people have C++11 knowledge. My *only* C++11 code was
488
489
that in Nuitka.
489
490
 
490
491
_`3`:: The Python C-API for Ada would have to be created by us, possible just
1319
1320
 
1320
1321
.. code-block:: python
1321
1322
 
1322
 
   expr2() if ( _tmp = expr1() ) else expr1()
 
1323
   expr2() if ( _tmp = expr1() ) else _tmp
1323
1324
 
1324
1325
In this form, the differences between these two operators becomes very apparent,
1325
1326
the operands are simply switching sides.
1976
1977
.. note::
1977
1978
 
1978
1979
   The removal of statements following "aborting" statements is implemented, and
1979
 
   so is the discovery of abortative conditional statements. It's not yet done
1980
 
   for loops, temp blocks, etc. though.
 
1980
   so is the discovery of abortive conditional statements. It's not yet done for
 
1981
   loops, temp blocks, etc. though.
1981
1982
 
1982
1983
So, ``return`` statements are easy for local optimization. In the general
1983
1984
picture, it would be sweet to collect all return statements, and analyze the
2807
2808
  If the "caller" or the "called" can declare that it cannot be called by
2808
2809
  itself, we could leave it out.
2809
2810
 
2810
 
.. header::
2811
 
 
2812
 
   Nuitka - Developer Manual
2813
 
 
2814
 
.. footer::
2815
 
 
2816
 
   |copy| Kay Hayen, 2013 | Page ###Page### of ###Total### | Section ###Section###
2817
 
 
2818
 
.. |copy|   unicode:: U+000A9
2819
2811
 
2820
2812
.. raw:: pdf
2821
2813