Commits

Pierre Surply committed 45d9fcc

Added some features in the description + dist rule

  • Participants
  • Parent commits 39f9a5e

Comments (0)

Files changed (10)

 compiler/test/
 out.dot
 website/res/img/graph/*.svg
+*.tar.gz
+mara_r*
 ## <pierre.surply@gmail.com>
 ## 
 ## Started on  Wed Oct 24 18:38:55 2012 Pierre Surply
-## Last update Tue Jan 22 18:39:05 2013 Pierre Surply
+## Last update Tue Apr 16 22:54:31 2013 Pierre Surply
 ##
 
-SUBDIRS = compiler	\
-	  samples
+VERSION		= 8
+SUBDIRS		= compiler	\
+		  samples	\
+		  term
+
+DIR_DIST	= mara_r$(VERSION)
+TAR		= tar
+
+FILES		= compiler/	\
+		  samples/	\
+		  term/		\
+		  stdlib/	\
+		  utils/	\
+		  README.md	\
+		  Makefile	\
+		  CHANGES	\
+		  COPYING
 
 all: compiler
 
 clean: COMMAND=clean
 clean: $(SUBDIRS)
+	rm -rf $(DIR_DIST) *.tar.gz
 
 $(SUBDIRS)::
 	@$(MAKE) -C $@ $(COMMAND)
 uninstall::
 	@rm -rf /usr/lib/mara/
 	@rm -f /usr/bin/marac
+
+dist: clean
+	rm -rf $(DIR_DIST)
+	mkdir $(DIR_DIST)
+	cp -R $(FILES) $(DIR_DIST)
+	$(TAR) -zcvf $(DIR_DIST).tar.gz $(DIR_DIST)
 
 *Mara* is a programming language dedicated to [8bit ATMEL AVR][4] microcontrollers with a focus on simplicity and productivity.
 
-The goal of this project is to simplify the programming of these microcontrollers for all those who do not wish to use (or learn) the *C* or *assembly language*.
+It provides to *AVR* architecture some features that high-level programming languages have introduced on 32/64 bits processors, such as classes and type inference.
 
-*Mara* is also compatible with [Arduino][5] boards based on AVR.
+Thus, the goal of this project is to simplify the programming of these microcontrollers for all those who do not wish to use (or learn) the *C* or *assembly language*.
+
+Some features of Mara :
 
-The core language is still under development. Although stable version is not available, *Mara* can be used experimentally.
+  - Simple and structured syntax
+  - Type inference
+  - Classes and objects
+  - Explicit error messages
+  - Standard library containing usual data structures
+  - Inline assembler
+  - Finite-state machines
+
+*Mara* is also compatible with [Arduino][5] boards based on AVR.
 
 ## Examples
     
 ## Dependencies
 
 * [OCaml >= 3.12][1]
+* [Menhir][6]
+* OCamllex
 * [avr-binutils][2]
 * [avr-gcc][2]
 * [avr-libc][2]
 [3]: http://savannah.nongnu.org/projects/avrdude
 [4]: http://www.atmel.com/products/microcontrollers/avr/default.aspx
 [5]: http://arduino.cc/
+[6]: http://gallium.inria.fr/~fpottier/menhir/

samples/basic/Makefile

 ## <pierre.surply@gmail.com>
 ## 
 ## Started on  Sun Jan 20 12:24:46 2013 Pierre Surply
-## Last update Tue Feb 12 13:32:07 2013 Pierre Surply
+## Last update Tue Apr 16 22:50:05 2013 Pierre Surply
 ##
 
 MCU		= 328p
 	$(AVRDUDE) $(AFLAGS) -U "flash:w:$<"
 
 clean::
-	rm -f *~
+	rm -f *~ *.hex
 	$(MARAC) -clean

samples/fsm/Makefile

 	$(MARAC) -dot $< > out.dot & dotty out.dot
 
 clean::
-	rm -f *~
+	rm -f *~ *.hex
 	$(MARAC) -clean
 ## <pierre.surply@gmail.com>
 ## 
 ## Started on  Sun Jan 20 12:24:46 2013 Pierre Surply
-## Last update Mon Apr 15 12:39:49 2013 Pierre Surply
+## Last update Tue Apr 16 22:50:14 2013 Pierre Surply
 ##
 
 MCU		= 1280
 	cu -l $(DEVCOM) -s 9600
 
 clean::
-	rm -f *~
+	rm -f *~ *.hex
 	$(MARAC) -clean

website/templates/base.html

           </ul>
           <div class='fl'>Download</div>
           <ul>
-            <li><a href="http://git.psurply.com/mara/get/8.tar.bz2">Source code</a></li>
+            <li><a href="http://git.psurply.com/mara/downloads/mara_r8.tar.gz">Source code</a></li>
             <li><a href="http://git.psurply.com/mara/">Git repository</a></li>
           </ul>
           <div class='fl'>Links</div>

website/templates/gettingstarted.html

 <h3>Dependencies</h3>
 <p>Before building the compiler, make sure that the following programs is installed in your system :</p>
 <ul> 
-  <li>OCaml</li>
-  <li>ocamlyacc</li>
+  <li><a href="http://caml.inria.fr/ocaml/index.en.html">OCaml</a></li>
+  <li><a href="http://gallium.inria.fr/~fpottier/menhir/">Menhir</a></li>
   <li>ocamllex</li>
   <li>avr-gcc</li>
-  <li>avr-libc</li>
+  <li><a href="http://www.nongnu.org/avr-libc/">avr-libc</a></li>
 </ul>
 <h3>Build the compiler</h3>
 <pre>
 <p>Mara is compatible with Arduino boards based on <em>AVR</em>. If you want to use the bootloader, the <code>.hex</code> file can be upload with the following command line :</p>
 <pre>
 <code>
-  $ avrdude -p <em>MCU</em> -c arduino -b 115200 -P <em>DEVICE</em> -U flash:w:<em>FILENAME</em>.hex
+  $ avrdude -p <em>MCU</em> -c arduino -b 57600 -P <em>DEVICE</em> -U flash:w:<em>FILENAME</em>.hex
 </code>
 </pre>
 <p>The <code>avrdude</code> <em>MCU</em> option is different from the Mara compiler <em>MCU</em> option. Refer to the following table to get the right <em>MCU</em> option in function of your Arduino board.</p>

website/templates/index.html

 <p>
 <strong>Mara</strong> is a programming language dedicated to <a href="http://www.atmel.com/products/microcontrollers/avr/default.aspx">8bit ATMEL AVR</a> microcontrollers with a focus on simplicity and productivity.
 <br/>
-The goal of this project is to simplify the programming of these microcontrollers for all those who do not wish to use (or learn) the <strong>C</strong> or <strong>assembly language</strong>.
+It provides to <strong>AVR</strong> architecture some features that high-level programming languages have introduced on 32/64 bits processors, such as classes and type inference.
 <br/>
-The core language is still under development. Although stable version is not available, <strong>Mara</strong> can be used experimentally.
+Thus, the goal of this project is to simplify the programming of these microcontrollers for all those who do not wish to use (or learn) the <strong>C</strong> or <strong>assembly language</strong>.
+</p>
+<p>
+Some features of Mara :
+<ul>
+  <li>Simple and structured syntax</li>
+  <li>Type inference</li>
+  <li>Classes and objects</li>
+  <li>Explicit error messages</li>
+  <li>Standard library containing usual data structures</li>
+  <li>Inline assembler</li>
+  <li>Finite-state machines</li>
+</ul>
 </p>
 <p>A simple Mara syntax example:</p>
 {$ fact.mr $}

website/templates/ref/asm.html

 <h3>Syntax</h3>
 <pre>
   <code>
-    asm<<em>expression</em>> "<em>assembler instructions</em>"
+    asm{<em>expression</em>} "<em>assembler instructions</em>"
   </code>
 </pre>
 <h3>Description</h3>