Skip to content
Snippets Groups Projects
Commit 43137cf2 authored by Jesper's avatar Jesper
Browse files

Rewrote documentation in Markdown

- all documentation is now formatted using Markdown
- build script process Markdown files before packaging
- processed HTML files are uploaded to jastadd web by release.sh
- JastAdd version is substituted by build script
- removed Google code search links from reference manual (dead links)
- release script takes new version as argument
parent 9f2fec4d
Branches
No related tags found
No related merge requests found
...@@ -2,6 +2,12 @@ ...@@ -2,6 +2,12 @@
/jastadd2.jar /jastadd2.jar
/jastadd2-bin.zip /jastadd2-bin.zip
/jastadd2-src.zip /jastadd2-src.zip
/README-binary-dist.html
*.swp *.swp
# Mac OS stuff
.DS_Store .DS_Store
# generated documentation files
/doc/index.md
/doc/*.html
/README-binary-dist.html
...@@ -104,7 +104,7 @@ ...@@ -104,7 +104,7 @@
</jar> </jar>
</target> </target>
<target name="source-zip" depends="jar"> <target name="source-zip" depends="jar,build-doc">
<zip destfile="jastadd2-src.zip"> <zip destfile="jastadd2-src.zip">
<zipfileset dir="." prefix="jastadd2-src"> <zipfileset dir="." prefix="jastadd2-src">
<include name="src/java/**/*.java"/> <include name="src/java/**/*.java"/>
...@@ -115,6 +115,7 @@ ...@@ -115,6 +115,7 @@
<include name="tinytemplate/src/**/*"/> <include name="tinytemplate/src/**/*"/>
<include name="tinytemplate/LICENSE.txt"/> <include name="tinytemplate/LICENSE.txt"/>
<include name="tinytemplate/README.md"/> <include name="tinytemplate/README.md"/>
<include name="doc/index.html"/>
<include name="doc/reference-manual.html"/> <include name="doc/reference-manual.html"/>
<include name="doc/release-notes.html"/> <include name="doc/release-notes.html"/>
<include name="LICENSE"/> <include name="LICENSE"/>
...@@ -129,9 +130,9 @@ ...@@ -129,9 +130,9 @@
</zip> </zip>
</target> </target>
<target name="bin-zip" depends="jar"> <target name="bin-zip" depends="jar,build-doc">
<exec executable="perl" output="README-binary-dist.html"> <exec executable="perl" output="README-binary-dist.html">
<arg value="tools/Markdown.pl" /> <arg value="${tools.dir}/Markdown.pl" />
<arg value="README-binary-dist.md" /> <arg value="README-binary-dist.md" />
</exec> </exec>
<zip destfile="jastadd2-bin.zip"> <zip destfile="jastadd2-bin.zip">
...@@ -139,6 +140,7 @@ ...@@ -139,6 +140,7 @@
<include name="LICENSE"/> <include name="LICENSE"/>
<include name="ChangeLog"/> <include name="ChangeLog"/>
<include name="jastadd2.jar"/> <include name="jastadd2.jar"/>
<include name="doc/index.html"/>
<include name="doc/reference-manual.html"/> <include name="doc/reference-manual.html"/>
<include name="doc/release-notes.html"/> <include name="doc/release-notes.html"/>
<include name="licenses/*" /> <include name="licenses/*" />
...@@ -175,10 +177,31 @@ ...@@ -175,10 +177,31 @@
</target> </target>
<target name="build-dist" <target name="build-dist"
depends="clean,source-zip,bin-zip"
description="build source and binary distribution files"> description="build source and binary distribution files">
<antcall target="clean"/> </target>
<antcall target="source-zip"/>
<antcall target="bin-zip"/> <target name="build-doc" depends="update-version-string"
description="process documentation Markdown files">
<echo message="Processing Markdown files"/>
<copy file="doc/index.md.in" toFile="doc/index.md" overwrite="true">
<filterset>
<filter token="VERSION" value="${version}"/>
</filterset>
</copy>
<chainedmapper id="mdmapper">
<flattenmapper/>
<globmapper from="*.md" to="doc${file.separator}*.html"/>
</chainedmapper>
<apply executable="perl" dest="doc">
<arg value="${tools.dir}/Markdown.pl"/>
<srcfile/>
<fileset dir="doc" includes="*.md"/>
<mapper refid="mdmapper"/>
<redirector>
<outputmapper refid="mdmapper"/>
</redirector>
</apply>
</target> </target>
<target name="bootstrap" depends="jar" <target name="bootstrap" depends="jar"
......
JastAdd2 Release R20130412 JastAdd2 Release @VERSION@
========================== ==========================
Please view the [ReadMe page][1] for usage and building instructions. Please view the [ReadMe page][1] for usage and building instructions.
......
<?php <?php
include("../../../web/include/functions.php"); include("../../../web/include/functions.php");
printMarkdownFile("index.md"); printHtmlFile("index.html");
?> ?>
This diff is collapsed.
This diff is collapsed.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>JastAdd2 Release Notes</title>
</head>
<body>
<h1>JastAdd2 Release Notes
</h1>
<h2>R20130412</h2>
<blockquote>
<h3>General:</h3>
<ul>
<li>Added option for indentation type in the JastAdd Ant Task</li>
<li>Moved JastAdd main class to the package <code>org.jastadd</code>
(but left a deprecated class with the same name as a working entry point
for backward compatibility)</li>
<li>Removed global static variables to allow concurrent JastAdd instances
in the same JVM</li>
<li>Added JastAdd entry points that allow custom output/error streams</li>
</ul>
<h3>Error handling:</h3>
<ul>
<li>Help text is printed to the standard out stream rather than the standard
error stream</li>
<li>Improved error handling for missing equations of synthesized attributes:
now only the minimum set of classes requiring an equation is reported</li>
</ul>
<h3>Performance:</h3>
<ul>
<li>Minimum list size now only affects <code>List</code> nodes (previously
also affected <code>Opt</code> nodes)</li>
<li>It is now possible to specify a custom minimum list size with the
<code>minListSize</code> option</li>
</ul>
</blockquote>
<h2>R20130312</h2>
<blockquote>
<h3>Incremental evaluation:</h3>
<ul>
<li>Merged Emma S&ouml;derberg's incremental evaluation features into JastAdd2</li>
<li>The new option <code>fullFlush</code> was added to enable more thorough flush behaviour (makes <code>flushCache</code> flush rewrites and NTAs)</li>
</ul>
<h3>Removed obsolete features:</h3>
<ul>
<li>Dropped doxygen support</li>
<li>Dropped J2ME code generation support</li>
<li>Dropped parent interface support (for inherited equation searching)</li>
</ul>
<h3>Internals:</h3>
<ul>
<li>Much of the JastAdd2 internals have been rewritten to improve readability</li>
</ul>
</blockquote>
<h2>R20130212</h2>
<blockquote>
<h3>Bug fixes:</h3>
<ul>
<li>Fixed bug concerning weaving interface refinements</li>
<li>Fixed various bugs</li>
<li>Fixed a code generation error in jjtree mode</li>
</ul>
<h3>Error handling:</h3>
<ul>
<li>Multiple equivalent declarations of an inherited attribute now only raise a warning, rather than an error</li>
<li>The warning for a duplicate inherited declaration includes the previous declaration location</li>
<li>Improved error messages for method/equation refinement errors</li>
<li>The path to the output directory is included in the error message for a missing output directory</li>
</ul>
<h3>API changes</h3>
<ul>
<li><code>ASTNode.copy()</code> now sets the parent pointer of the copy to <code>null</code></li>
<li>Removed the redundant static method <code>ASTNode.getChild(ASTNode,int)</code></li>
</ul>
<h3>Performance:</h3>
<ul>
<li>Removed redundant NTA child initialization</li>
<li>Increased minimum (non-empty) child array size from 1 to 4</li>
<li>The child array for non-List, non-Opt nodes is now initialized to fit all children in the node constructor (removes redundant child-array growing)</li>
</ul>
<h3>Other changes:</h3>
<ul>
<li>JastAdd2 no longer depends on AspectJ</li>
<li>The <code>--doxygen</code> option is now deprecated</li>
<li>Added the <code>--indent</code> command-line option which allows changing the indentation in generated code. Can be set to tabs or 2-, 4-, and 8 space indentation.</li>
</ul>
</blockquote>
<h2>R20121112</h2>
<blockquote>
<h3>Bugfix Release</h3>
<ul>
<li>Fixed error in fullCopy causing some non-NTA children to not be copied correctly. This bug sometimes caused NullPointerExceptions or faulty behaviour in generated code.
</ul>
</blockquote>
<h2>R20121112</h2>
<blockquote>
<h3>Bugfix Release</h3>
<ul>
<li>Fixed error in fullCopy causing some non-NTA children to not be copied correctly. This bug sometimes caused NullPointerExceptions or faulty behaviour in generated code.
</ul>
</blockquote>
<h2>R20121026</h2>
<blockquote>
<h3>Various bug fixes</h3>
<ul>
<li>Fixed bug on Windows - backslashes in file paths now work correctly.
<li>NTA children are no longer copied by fullCopy.
<li>Removed the generated method for accessing value maps of parameterized attributes.
<li>Fixed error related to two synthesized attributes with the same name but different parameters.
<li>It is now possible to use static import statements in aspect files.
<li>Added a method getNumXNoTransform to count the number of elements in a list child without triggering rewrites.
</ul>
</blockquote>
<h2>R20121011</h2>
<blockquote>
<h3>Various bug fixes</h3>
<ul>
<li>getChild now returns null if the children array is null
<li>inherited equations lacking a return statement now give compilation error
<li>improved recognition of the "refined" keyword inside Java code in equations.
<li>Synthesized NTA with parameters may now have null values
<li>fullCopy now sets the parent of the copied tree to null
<li>insertChild and removeChild now update the childIndex field correctly
<li>Fixed how debug code escapes file names, to work also for Windows OS.
<li>Fixed bug in code generation for Contributes-clauses without when-part.
<li>Circular attributes now generate Java 1.4 code when the java1.4 option is set.
</ul>
<h3>Improved output handling</h3>
<ul>
<li>Error messages, warnings, and help messages are now printed on stderr instead of on stdout.
<li>JastAdd now returns exit code zero when just printing version or help information.
</ul>
<h3>Improved option handling</h3>
<ul>
<li>The options --noComponentCheck, --lazyMaps, and --refineLegacy are now by default ON when running from the command line.
<li>The default behavior is now the same when running from the command line as when running through ANT.
<li>Command line options are no longer case sensitive.
<li>Some options are deprecated. A warning is printed if such an option is used.
<li>Warnings are printed for some other cases, like giving an option twice, giving an option without an expected argument, etc.
</ul>
</blockquote>
<h2>R20110902</h2>
<blockquote>
<h3>JavaDoc support</h3>
<p>JastAdd now generates Java files with JavaDoc comments for built-in APIs and APIs for attributes. See the upcoming RagDoll tool for more information.</p>
<h3>JDK7 compliance </h3>
<p>Code generated by older versions of JastAdd might give compile time errors when compiling using javac from JDK 7. This is because JastAdd previously generated code where private fields were accessed in an erroneous way according to the JLS. Previous javac versions accepted such code, but the bug has been fixed in JDK 7. This version of JastAdd generates code not giving this problem.</p>
</blockquote>
<h2>R20110506</h2>
</body>
</html>
JastAdd2 Release Notes
======================
R20130412
---------
### General
* Added option for indentation type in the JastAdd Ant Task
* Moved JastAdd main class to the package `org.jastadd`
(but left a deprecated class with the same name as a working entry point
for backward compatibility)
* Removed global static variables to allow concurrent JastAdd instances
in the same JVM
* Added JastAdd entry points that allow custom output/error streams
### Error handling
* Help text is printed to the standard out stream rather than the standard
error stream
* Improved error handling for missing equations of synthesized attributes:
now only the minimum set of classes requiring an equation is reported
### Performance
* Minimum list size now only affects `List` nodes (previously
also affected `Opt` nodes)
* It is now possible to specify a custom minimum list size with the
`minListSize` option
R20130312
---------
### Incremental evaluation
* Merged Emma S&ouml;derberg's incremental evaluation features into JastAdd2
* The new option `fullFlush` was added to enable more thorough flush behaviour (makes `flushCache` flush rewrites and NTAs)
### Removed obsolete features
* Dropped doxygen support
* Dropped J2ME code generation support
* Dropped parent interface support (for inherited equation searching)
### Internals
* Much of the JastAdd2 internals have been rewritten to improve readability
R20130212
---------
### Bug fixes
* Fixed bug concerning weaving interface refinements
* Fixed various bugs
* Fixed a code generation error in jjtree mode
### Error handling
* Multiple equivalent declarations of an inherited attribute now only raise a warning, rather than an error
* The warning for a duplicate inherited declaration includes the previous declaration location
* Improved error messages for method/equation refinement errors
* The path to the output directory is included in the error message for a missing output directory
### API changes
* `ASTNode.copy()` now sets the parent pointer of the copy to `null`
* Removed the redundant static method `ASTNode.getChild(ASTNode,int)`
### Performance
* Removed redundant NTA child initialization
* Increased minimum (non-empty) child array size from 1 to 4
* The child array for non-List, non-Opt nodes is now initialized to fit all children in the node constructor (removes redundant child-array growing)
### Other changes
* JastAdd2 no longer depends on AspectJ
* The `--doxygen` option is now deprecated
* Added the `--indent` command-line option which allows changing the indentation in generated code. Can be set to tabs or 2-, 4-, and 8 space indentation.
R20121112
---------
### Bugfix Release
* Fixed error in fullCopy causing some non-NTA children to not be copied correctly. This bug sometimes caused NullPointerExceptions or faulty behaviour in generated code.
R20121112
---------
### Bugfix Release
* Fixed error in fullCopy causing some non-NTA children to not be copied correctly. This bug sometimes caused NullPointerExceptions or faulty behaviour in generated code.
R20121026
---------
### Various bug fixes
* Fixed bug on Windows - backslashes in file paths now work correctly.
* NTA children are no longer copied by fullCopy.
* Removed the generated method for accessing value maps of parameterized attributes.
* Fixed error related to two synthesized attributes with the same name but different parameters.
* It is now possible to use static import statements in aspect files.
* Added a method getNumXNoTransform to count the number of elements in a list child without triggering rewrites.
R20121011
---------
### Various bug fixes
* getChild now returns null if the children array is null
* inherited equations lacking a return statement now give compilation error
* improved recognition of the "refined" keyword inside Java code in equations.
* Synthesized NTA with parameters may now have null values
* fullCopy now sets the parent of the copied tree to null
* insertChild and removeChild now update the childIndex field correctly
* Fixed how debug code escapes file names, to work also for Windows OS.
* Fixed bug in code generation for Contributes-clauses without when-part.
* Circular attributes now generate Java 1.4 code when the java1.4 option is set.
### Improved output handling
* Error messages, warnings, and help messages are now printed on stderr instead of on stdout.
* JastAdd now returns exit code zero when just printing version or help information.
### Improved option handling
* The options --noComponentCheck, --lazyMaps, and --refineLegacy are now by default ON when running from the command line.
* The default behavior is now the same when running from the command line as when running through ANT.
* Command line options are no longer case sensitive.
* Some options are deprecated. A warning is printed if such an option is used.
* Warnings are printed for some other cases, like giving an option twice, giving an option without an expected argument, etc.
R20110902
---------
### JavaDoc support
JastAdd now generates Java files with JavaDoc comments for built-in APIs and
APIs for attributes. See the upcoming RagDoll tool for more information.
### JDK7 compliance
Code generated by older versions of JastAdd might give compile time errors when
compiling using javac from JDK 7. This is because JastAdd previously generated
code where private fields were accessed in an erroneous way according to the
JLS. Previous javac versions accepted such code, but the bug has been fixed in
JDK 7. This version of JastAdd generates code not giving this problem.
#!/bin/bash #!/bin/bash
# set version string if [ $# -lt "1" ]; then
VERSION=R`date +%Y%m%d` echo "Usage: $0 VERSION"
exit 1
fi
echo "This will script will tag, build and upload JastAdd2 $VERSION" \ VERSION=$1
echo "This script will tag, build and upload JastAdd2 $VERSION" \
"to jastadd.org/releases/jastadd2/$VERSION" "to jastadd.org/releases/jastadd2/$VERSION"
echo echo
echo "IMPORTANT: Please update doc/release-notes.html before proceeding!" echo "IMPORTANT: Please update doc/release-notes.md before proceeding!"
echo echo
while true; do while true; do
read -p "Proceed? " yn read -p "Proceed? (yes/no) " yn
case $yn in case $yn in
[Yy]* ) break;; [Yy]* ) break;;
[Nn]* ) exit;; [Nn]* ) exit;;
...@@ -18,7 +22,7 @@ while true; do ...@@ -18,7 +22,7 @@ while true; do
esac esac
done done
echo "Building release..." echo "Building release $VERSION..."
ant release -Dversion=$VERSION ant release -Dversion=$VERSION
echo "Creating new directory at jastadd.org..." echo "Creating new directory at jastadd.org..."
...@@ -26,7 +30,7 @@ ssh login.cs.lth.se "mkdir /cs/jastadd/releases/jastadd2/$VERSION" ...@@ -26,7 +30,7 @@ ssh login.cs.lth.se "mkdir /cs/jastadd/releases/jastadd2/$VERSION"
echo "Uploading files to jastadd.org..." echo "Uploading files to jastadd.org..."
scp jastadd2-src.zip jastadd2-bin.zip doc/*.html doc/*.php \ scp jastadd2-src.zip jastadd2-bin.zip doc/*.html doc/*.php \
doc/*.md README.md login.cs.lth.se:/cs/jastadd/releases/jastadd2/${VERSION} README.md login.cs.lth.se:/cs/jastadd/releases/jastadd2/${VERSION}
echo "Setting group write permission for uploaded files..." echo "Setting group write permission for uploaded files..."
ssh login.cs.lth.se "chmod -R g+w /cs/jastadd/releases/jastadd2/$VERSION" ssh login.cs.lth.se "chmod -R g+w /cs/jastadd/releases/jastadd2/$VERSION"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment