Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Org hygiene #43

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 13 additions & 8 deletions ferret.org
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,7 @@ takes the Ferret code and converts it to a Intermediate
representation by taking the Ferret form and running it [[Compilation][through some
transformations]]. This IR is then run through [[Code Generation]] module to
create C++ code. [[*Runtime][Runtime]] contains the C++ runtime needed to support
Ferret such as [[Object System]], [[Memory Pool][Memory Pooling]], [[Reference Counting][Garbage Collection]]. It
Ferret such as [[Object System]], [[Memory Management][Memory Pooling]], [[Reference Counting][Garbage Collection]]. It
is written in a mixture of C++ and Ferret DSL. [[*Core][Core]] is the standard
library of Ferret, provides a ton of general-purpose functionality for
writing robust, maintainable embedded applications.
Expand Down Expand Up @@ -474,7 +474,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Ferret has a similar architecture to other modern compilers,

#+CAPTION: Ferret Compiler Architecture
#+NAME: fig:compiler_architecture
#+NAME: fig_compiler_architecture
[[./ferret-styles/graphs/compiler_arch.png]]

First, an input file containing Ferret code is loaded from the
Expand Down Expand Up @@ -2466,15 +2466,15 @@ Common I/O operations.

* Runtime

Runtime needed to support [[*Core][Core]]. [[Object System][Object system]], [[*Memory%20Management][Memory Management]] etc.
Runtime needed to support [[*Core][Core]]. [[Object System][Object system]], [[*Memory Management][Memory Management]] etc.

** Object System
*** Base

All our types are derived from the base Object type. Which is a
=typedef= of =obj::base<FERRET_RC_POLICY,FERRET_ALLOCATOR>=. See
[[Reference Counting]] for available reference counting policies and
[[Memory Allocation]] for available allocation policies.
[[Allocators][Memory Allocation]] for available allocation policies.

#+begin_src c++ :tangle no :noweb-ref runtime-native-object
template<typename>
Expand Down Expand Up @@ -2856,7 +2856,7 @@ typedef value<matrix> matrix_t;
The number type represents real (double-precision floating-point)
numbers. Ferret has no integer type. On systems without hardware
support for floating point Ferret programs can be configured to use
fixed point numbers. (See [[Numeric%20Tower][Numeric Tower]] runtime.)
fixed point numbers. (See [[Numeric Tower]] runtime.)

#+begin_src clojure :tangle no :noweb-ref runtime-clojure-objects
(defobject number "number_o.h")
Expand Down Expand Up @@ -4551,7 +4551,7 @@ libgc.{a,so}.

**** System

[[Object]]s are allocated from system implementation. (Default memory
[[Objects]] are allocated from system implementation. (Default memory
allocator used.)

#+begin_src c++ :tangle no :noweb-ref runtime-native-allocators
Expand Down Expand Up @@ -6659,7 +6659,7 @@ over first.
** Sequential
*** list

Creates a new list. See also [[Special%20Forms][Spacial Forms]].
Creates a new list. See also [[Special Forms]].

#+begin_src clojure :tangle no :noweb-ref ferret-unit-test-sequence
(deftest list-test
Expand Down Expand Up @@ -10751,10 +10751,15 @@ Valgrind options,
* Files :noexport:

#+name: ferret-version
#+begin_src sh :exports results noweb: yes
#+begin_src sh :exports both :results replace :noweb yes
echo "`git describe --abbrev=0 --tags`-`git rev-parse --short HEAD`"
#+end_src

#+RESULTS: ferret-version
: 0.4.0-171a575



** project.clj

#+begin_src clojure :mkdirp yes :noweb yes :tangle project.clj
Expand Down