Permalink
Browse files

Updated doc release: dev

  • Loading branch information...
1 parent 2d644db commit 6a83f00eccd8bd59c80c18909839bca17dc9fd2b @markflorisson markflorisson committed Apr 4, 2013
Showing with 14,631 additions and 390 deletions.
  1. +1 −1 dev/.buildinfo
  2. BIN dev/_images/graphviz-02a2ea5e3c5f6cefcd2d060c3e96f167f24d27a0.png
  3. +0 −2 dev/_images/graphviz-02a2ea5e3c5f6cefcd2d060c3e96f167f24d27a0.png.map
  4. BIN dev/_images/graphviz-0e8f7d768b728a5033c53a56164f75f2ba6504c7.png
  5. +0 −2 dev/_images/graphviz-0e8f7d768b728a5033c53a56164f75f2ba6504c7.png.map
  6. BIN dev/_images/graphviz-1c56defc810fcb565f03c2009b1744566e51e56b.png
  7. +0 −2 dev/_images/graphviz-1c56defc810fcb565f03c2009b1744566e51e56b.png.map
  8. BIN dev/_images/graphviz-2adcab96fd2bc8e5d21f8e5849edd806e45433e5.png
  9. +0 −2 dev/_images/graphviz-2adcab96fd2bc8e5d21f8e5849edd806e45433e5.png.map
  10. BIN dev/_images/graphviz-2ba28ee1d9a1495adf393ac20ee1649691069623.png
  11. +0 −2 dev/_images/graphviz-2ba28ee1d9a1495adf393ac20ee1649691069623.png.map
  12. BIN dev/_images/graphviz-2c7782b0649eec9d8762cbc7d2b6b9af212a2049.png
  13. +0 −2 dev/_images/graphviz-2c7782b0649eec9d8762cbc7d2b6b9af212a2049.png.map
  14. BIN dev/_images/graphviz-2e9cc3bbf4a759d7fba2f0ef8ff704908a8afdf2.png
  15. +0 −2 dev/_images/graphviz-2e9cc3bbf4a759d7fba2f0ef8ff704908a8afdf2.png.map
  16. BIN dev/_images/graphviz-77d6c117622c4c26de16e722d9c3eb98f0252859.png
  17. +0 −2 dev/_images/graphviz-77d6c117622c4c26de16e722d9c3eb98f0252859.png.map
  18. BIN dev/_images/graphviz-a2f89a1e27e8a5a6ccdc09867df3a08e6d115302.png
  19. +0 −2 dev/_images/graphviz-a2f89a1e27e8a5a6ccdc09867df3a08e6d115302.png.map
  20. BIN dev/_images/graphviz-b1266b3553e38a8d25c62d27e8da36d882cc52d6.png
  21. +0 −2 dev/_images/graphviz-b1266b3553e38a8d25c62d27e8da36d882cc52d6.png.map
  22. BIN dev/_images/graphviz-e3aed030318cc519477b77b17070442b6894cb9f.png
  23. +0 −2 dev/_images/graphviz-e3aed030318cc519477b77b17070442b6894cb9f.png.map
  24. BIN dev/_images/graphviz-e9ecdea6025883f077889277b7f0a878951851f1.png
  25. +0 −2 dev/_images/graphviz-e9ecdea6025883f077889277b7f0a878951851f1.png.map
  26. BIN dev/_images/graphviz-f76fcf888695b9dff3d09333462f63c4364b4b27.png
  27. +0 −2 dev/_images/graphviz-f76fcf888695b9dff3d09333462f63c4364b4b27.png.map
  28. BIN dev/_images/graphviz-f9214be6f03b495a929af5e7ee0ea329c4dc2435.png
  29. +0 −2 dev/_images/graphviz-f9214be6f03b495a929af5e7ee0ea329c4dc2435.png.map
  30. +187 −0 dev/_sources/architecture.txt
  31. +216 −0 dev/_sources/arrays.txt
  32. +12 −10 dev/_sources/doc/examples.txt
  33. +23 −0 dev/_sources/doctest.txt
  34. +84 −0 dev/_sources/examples.txt
  35. +14 −14 dev/_sources/index.txt
  36. +205 −0 dev/_sources/interface_c.txt
  37. +763 −0 dev/_sources/ir.txt
  38. +6 −0 dev/_sources/modules/ast_constant_folding.txt
  39. +6 −0 dev/_sources/modules/ast_translate.txt
  40. +6 −0 dev/_sources/modules/ast_type_inference.txt
  41. +6 −0 dev/_sources/modules/cfg.txt
  42. +6 −0 dev/_sources/modules/closure.txt
  43. +6 −0 dev/_sources/modules/decorators.txt
  44. +6 −0 dev/_sources/modules/functions.txt
  45. +6 −0 dev/_sources/modules/llvm_types.txt
  46. +6 −0 dev/_sources/modules/minivect.txt
  47. +6 −0 dev/_sources/modules/multiarray_api.txt
  48. +6 −0 dev/_sources/modules/naming.txt
  49. +6 −0 dev/_sources/modules/ndarray_helpers.txt
  50. +6 −0 dev/_sources/modules/nodes.txt
  51. +6 −0 dev/_sources/modules/numba.txt
  52. +6 −0 dev/_sources/modules/pipeline.txt
  53. +6 −0 dev/_sources/modules/pycc.txt
  54. +6 −0 dev/_sources/modules/stdio_util.txt
  55. +6 −0 dev/_sources/modules/symtab.txt
  56. +6 −0 dev/_sources/modules/transforms.txt
  57. +6 −0 dev/_sources/modules/translate.txt
  58. +6 −0 dev/_sources/modules/utils.txt
  59. +6 −0 dev/_sources/modules/visitors.txt
  60. +29 −0 dev/_sources/pycc.txt
  61. +213 −0 dev/_sources/pythonstuff.txt
  62. +32 −0 dev/_sources/reference.txt
  63. +74 −0 dev/_sources/releases.txt
  64. +287 −0 dev/_sources/roadmap.txt
  65. +157 −0 dev/_sources/type_inference.txt
  66. +294 −0 dev/_sources/types.txt
  67. +94 −0 dev/_sources/userguide.txt
  68. +441 −0 dev/architecture.html
  69. +445 −0 dev/arrays.html
  70. +5 −5 dev/doc/architecture.html
  71. +5 −5 dev/doc/arrays.html
  72. +5 −5 dev/doc/doctest.html
  73. +7 −7 dev/doc/examples.html
  74. +5 −5 dev/doc/interface_c.html
  75. +5 −5 dev/doc/ir.html
  76. +5 −5 dev/doc/modules/ast_constant_folding.html
  77. +5 −5 dev/doc/modules/ast_translate.html
  78. +5 −5 dev/doc/modules/ast_type_inference.html
  79. +5 −5 dev/doc/modules/cfg.html
  80. +5 −5 dev/doc/modules/closure.html
  81. +5 −5 dev/doc/modules/decorators.html
  82. +5 −5 dev/doc/modules/functions.html
  83. +5 −5 dev/doc/modules/llvm_types.html
  84. +5 −5 dev/doc/modules/minivect.html
  85. +5 −5 dev/doc/modules/multiarray_api.html
  86. +5 −5 dev/doc/modules/naming.html
  87. +5 −5 dev/doc/modules/ndarray_helpers.html
  88. +5 −5 dev/doc/modules/nodes.html
  89. +5 −5 dev/doc/modules/numba.html
  90. +5 −5 dev/doc/modules/pipeline.html
  91. +5 −5 dev/doc/modules/pycc.html
  92. +5 −5 dev/doc/modules/stdio_util.html
  93. +5 −5 dev/doc/modules/symtab.html
  94. +5 −5 dev/doc/modules/transforms.html
  95. +5 −5 dev/doc/modules/translate.html
  96. +5 −5 dev/doc/modules/utils.html
  97. +5 −5 dev/doc/modules/visitors.html
  98. +5 −5 dev/doc/pycc.html
  99. +5 −5 dev/doc/pythonstuff.html
  100. +5 −5 dev/doc/reference.html
  101. +5 −5 dev/doc/releases.html
  102. +5 −5 dev/doc/roadmap.html
  103. +5 −5 dev/doc/type_inference.html
  104. +5 −5 dev/doc/types.html
  105. +11 −11 dev/doc/userguide.html
  106. +215 −0 dev/doctest.html
  107. +584 −0 dev/examples.html
  108. +89 −89 dev/genindex.html
  109. +32 −32 dev/index.html
  110. +527 −0 dev/interface_c.html
  111. +1,075 −0 dev/ir.html
  112. +254 −0 dev/modules/ast_constant_folding.html
  113. +226 −0 dev/modules/ast_translate.html
  114. +226 −0 dev/modules/ast_type_inference.html
  115. +226 −0 dev/modules/cfg.html
  116. +226 −0 dev/modules/closure.html
  117. +245 −0 dev/modules/decorators.html
  118. +241 −0 dev/modules/functions.html
  119. +201 −0 dev/modules/llvm_types.html
  120. +199 −0 dev/modules/minivect.html
  121. +202 −0 dev/modules/multiarray_api.html
  122. +199 −0 dev/modules/naming.html
  123. +214 −0 dev/modules/ndarray_helpers.html
  124. +217 −0 dev/modules/nodes.html
  125. +298 −0 dev/modules/numba.html
  126. +250 −0 dev/modules/pipeline.html
  127. +199 −0 dev/modules/pycc.html
  128. +206 −0 dev/modules/stdio_util.html
  129. +232 −0 dev/modules/symtab.html
  130. +284 −0 dev/modules/transforms.html
  131. +226 −0 dev/modules/translate.html
  132. +246 −0 dev/modules/utils.html
  133. +228 −0 dev/modules/visitors.html
  134. BIN dev/objects.inv
  135. +22 −22 dev/py-modindex.html
  136. +224 −0 dev/pycc.html
  137. +465 −0 dev/pythonstuff.html
  138. +248 −0 dev/reference.html
  139. +336 −0 dev/releases.html
  140. +605 −0 dev/roadmap.html
  141. +5 −5 dev/search.html
  142. +1 −1 dev/searchindex.js
  143. +370 −0 dev/type_inference.html
  144. +534 −0 dev/types.html
  145. +363 −0 dev/userguide.html
View
@@ -1,4 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
-config: f4a331eda80038ffc6933d7f110cfd4c
+config: 2c69655dab4fe88750b992ee8815cbf9
tags: fbb0d17656682115ca4d033fb2f83ba1
Deleted file not rendered
@@ -1,2 +0,0 @@
-<map id="cfg" name="cfg">
-</map>
Deleted file not rendered
@@ -1,2 +0,0 @@
-<map id="cfg" name="cfg">
-</map>
Deleted file not rendered
@@ -1,2 +0,0 @@
-<map id="break" name="break">
-</map>
Deleted file not rendered
@@ -1,2 +0,0 @@
-<map id="break" name="break">
-</map>
Deleted file not rendered
@@ -1,2 +0,0 @@
-<map id="typegraph" name="typegraph">
-</map>
Deleted file not rendered
@@ -1,2 +0,0 @@
-<map id="typegraph" name="typegraph">
-</map>
Deleted file not rendered
@@ -1,2 +0,0 @@
-<map id="cfg" name="cfg">
-</map>
Deleted file not rendered
@@ -1,2 +0,0 @@
-<map id="typegraph" name="typegraph">
-</map>
Deleted file not rendered
@@ -1,2 +0,0 @@
-<map id="cfg" name="cfg">
-</map>
Deleted file not rendered
@@ -1,2 +0,0 @@
-<map id="cfg" name="cfg">
-</map>
Deleted file not rendered
@@ -1,2 +0,0 @@
-<map id="cfg" name="cfg">
-</map>
Deleted file not rendered
@@ -1,2 +0,0 @@
-<map id="typegraph" name="typegraph">
-</map>
Deleted file not rendered
@@ -1,2 +0,0 @@
-<map id="cfg" name="cfg">
-</map>
Deleted file not rendered
@@ -1,2 +0,0 @@
-<map id="cfg" name="cfg">
-</map>
@@ -0,0 +1,187 @@
+==================
+Numba Architecture
+==================
+
+.. contents::
+
+Introduction
+============
+
+This document serves two purposes: to introduce other developers to
+the high-level design of Numba's internals, and as a point for
+discussion and synchronization for current Numba developers.
+
+Core Entry Points
+=================
+
+Numba has several modes of use:
+
+#. As a run-time translator of Python functions into low-level
+ functions.
+
+#. As a call-time specializer of Python functions into low-level
+ functions.
+
+#. As a run-time builder of extension types.
+
+#. As a compile-time translator of Python modules into shared object
+ libraries.
+
+#. Template instantiation.
+
+The following subsections describe the primary entry points for these
+modes of use. Each usage mode corresponds to a specific set of definitions provided in the top-level numba module.
+
+Run-time Translation
+--------------------
+
+.. |jit| replace:: :py:func:`numba.jit`
+
+Users denote run-time translation of a function using the |jit| decorator.
+
+Call-time Specialization
+------------------------
+
+.. |autojit| replace:: :py:func:`numba.autojit`
+
+Users denote call-time specialization of a function using the |autojit|
+decorator.
+
+Extension Types
+---------------
+
+Numba supports building extension types using the |jit| decorator on a class.
+
+Compile-time Translation
+------------------------
+
+.. |export| replace:: :py:func:`numba.export`
+.. |exportmany| replace:: :py:func:`numba.exportmany`
+
+Users denote compile-time translation of a function using the |export|
+and |exportmany| decorators.
+
+Translation Internals
+=====================
+
+
+Towards More Modular Pipelines
+------------------------------
+
+The end goal of building a more modular pipeline is to decouple
+stages of compilation and make a more modular way of composing
+transformations.
+
+- State threaded through the pipeline
+ 1) AST - Abstract syntax tree, possibly mutated as a
+ side-effect of a pass.
+
+ 2) Structured Environment - A dict like object which holds
+ the intermediate forms and data produced as a result of data.
+
+- Composition of Stages
+ - Sequencing
+ - Composition Operator
+ - Error handling and reporting in pass failure.
+
+- Pre/Post Condition Checking
+
+ - Stages should have attached pre / post conditions to check
+ the success criterion of the pass for the inputted or
+ resulting ast and environment. Failure to meet this
+ conditions should cause the pipeline to halt.
+
+Modularity
+~~~~~~~~~~
+
+Note: recursive definitions
+
+::
+
+ jit := parse o link o jit
+ pycc := parse o emit o link
+ autojit := cache o autojit
+ cache := pipeline o jit
+
+ blaze := mapast o jit
+
+Diagram
+~~~~~~~
+
+::
+
+ Block diagram:
+ Input
+ |
+ +----------------------+
+ | pass 1 |
+ +--------|----------|--+
+ context ast
+ | |
+ postcondition |
+ | |
+ precondition |
+ | |
+ +--------|----------|--+
+ | pass 2 |
+ +--------|----------|--+
+ context ast
+ | |
+ postcondition |
+ | |
+ precondition |
+ | |
+ +--------|----------|--+
+ | pass 3 |
+ +--------|----------|--+
+ context ast
+ | |
+ precondition |
+ | |
+ +----------+-----> Output
+
+
+*Discussion: Pipeline Composition*
+----------------------------------
+
+.. |Pipeline| replace:: :py:class:`numba.pipeline.Pipeline`
+
+We can do composition in a functional way::
+
+ def compose_stages(stage1, stage2):
+ def composition(ast, env):
+ return stage2(stage1(ast, env), env)
+ return composition
+
+ pipeline = compose_stages(...compose_stages(parse, ...), ...)
+
+Or, we can do composition using iteration::
+
+ for stage in stages:
+ ast = stage(ast, env)
+
+Whether the end result is a function or a class is also still up for
+discussion.
+
+Proposal 1: We replace the Pipeline class to use a list of stages,
+but these can either be functions or subclasses of the
+``PipelineStage`` class.
+
+
+*Discussion: Pipeline Environments*
+-----------------------------------
+
+Proposal 1: We present an ad hoc environment. This provides the most
+flexibility for developers to patch the environment as they see fit.
+
+Proposal 2: We present a well defined environment class. The class
+will have well defined properties that are documented and type-checked
+when the internal stage checking flag is set.
+
+Terms and Definitions
+=====================
+
+Appendix
+========
+
+
Oops, something went wrong.

0 comments on commit 6a83f00

Please sign in to comment.