Updating the changelog in the VERSION file, and version_sync.
[shapes.git] / VERSION
blobc335f89ee316e40097c16b020d0cba14925895e7
1 0.4.2
2 The first line of this file shall be the last tagged version string.  The version history may be filled in at any time, but when a version is tagged, the current date shall be added on the first line of the release notes for the version being tagged.
4   Version history
5 ===================
7 ====( 0.4.2 )====
8 2008-12-02
10 GPL and copyright notes have been inserted in all non-trivial files.
12 A logo has been introduced.  Do not consider it final!
14 New notation, including more ASCII fall-backs.  The change of notation for functions is not backwards compatible!
16 Introduced mutators for states.  Old, global, non-pure functions were removed -- not backwards compatible!
18 New shapes-mode for Emacs.
20 Stuff for transforms, including fields (components as well as predicates), a <chop> method, and a kind of real Schur decomposition in 3D.
22 Lots of new documentation.
24 Source code for methods of types in Shapes has been reorganized.
26 Bugfixes include:
27 -  Including FlexLexer.h in distribution.
28 -  Annoying internal errors when displaying source locations were removed.
31 ====( 0.4.1 )====
32 2008-10-16
34 (Celebrating my thirtieth birthday.)
36 Improved build process for the documentation.
38 Introducing exit codes.
40 Bugfixes include:
41 -  Building the correct index.html at the top of the HTML documentation.
42 -  Lost JPG files in the HTML documentation were found by correct handling of the percent sign in URIs.
45 ====( 0.4.0 )====
46 2008-10-05
48 The distribution contains the documentation now, making it complete.
50 Lots of new documentation.
52 Minor, but many, changes in the syntax of command line options.  Basically, all parameters but files and directories are given using the --param=val style.
54 The directory for temporary files can be created automatically, if allowed.
56 New operator, &|, that combines dynamic bindings with priority to the second argument.
58 Pages can be grouped to have equal media boxes.  At the moment, the media box will be the smallest that contains the bounding boxes of all pages in the group.  See the non-pure function setbboxgroup for more details.
60 The document can be split into one output file per page, see the --split=mode option.
62 Improvements relating to PDF versions including a separate setting for whether to use transparency in the kernel, and not marking the output file with a higher version than what is implied by the PDF features is uses.
64 Additions and improvements to some of the standard extensions.
66 Bugfixes include:
67 -  Intersection of straight line segments.
68 -  Sometimes, functions were associated with the wrong environment.
69 -  Escaping the '\' in PDF strings.
72 ====( 0.3.7 )====
73 2008-04-21
75 The previous version was broken.  This version has been verified by running "make distcheck".
78 ====( 0.3.6 )====
79 2008-04-20
81 Lots of new documentation, including substantial work on structure, crosslinks, and formatting.  So far the HTML format has been in focus.
83 Procedure application is limited to certain scoping rules to ensure that the function abstraction is not broken.
85 Improved output to help finding errors i TeX label strings, and a bug with the --tmpdir feature was remedied.
87 Changed command line syntax for boolean options changed; no more --no-someopt, instead we use --someopt=no (the "no" has some synonyms).
89 New features of all kinds, ranging from additions to the scanner to new state types and functions.
91 Also new application examples in 3D, code optimizations, and bugfixes.
94 ====( 0.3.5 )====
95 2007-12-06
97 The previous attempt to create a file for distribution failed.  This version is the second attempt.
100 ====( 0.3.4 )====
101 2007-12-03
103 Bugfixes, including one in the computation of elementary paths.  There also used to be a problem (since 0.3.2) with running pdfLaTeX in a different directory than where the Shapes source is located, since the meaning of relative file locations must be changed when source code is moved.
105 This is the first version planned for (very limited) distribution using the new build process.
108 ====( 0.3.3 )====
109 2007-11-21
111 Simple constants in the global environment were named back to their names before variables had to begin with lowercase letters.  For instance, rgb_RED changed back to RGB_RED.
114 ====( 0.3.2 )====
115 2007-11-21
117 New ways to specify files, both on the command line and through environment variables.
119 Further improved build process, and minor additions to the documentation.
122 ====( 0.3.1 )====
123 2007-11-05
125 Bugfixes required to make the project compile in the Cent environment.
127 More standardization.
130 ====( 0.3.0 )====
131 2007-11-03
133 First version with most references to old project names removed.
135 Slowly changing to a more standardized way to compile things, for better compilance with standard make tools in the future.
138 ====( 0.2.3 )====
139 2007-11-03
141 Upsampling has been added.  The interesting methods for upsampling only apply in 2D, but length-based upsampling is provided also in 3D.  Please note that there is no need to do upsample_inflections before doing upsample_bends, as this is done autimatically to ensure clear semantics.  The method upsample_balance samlpes the timewise midpoint of each segment, which I believe will make the speed equal in the incoming and outgoing side of the sample point.
143 Identifiers are again allowed to begin with uppercase letters.  Type names are prefixed with either a paragraph sign or a double slash.
145 This is planned to be the last version where anything "Drool" remains.
148 ====( 0.2.2 )====
149 2007-06-05
151 The interpreter now makes another pass of the code, checking variable bindings, function borders, and other static aspects of the code.  Type checking will hopefully fit in here in the future.  The three passes are:
152 1) Scan and parse
153 2) Analyze
154 3) Evaluate
156 The error reporting mechanism has been revised so that the errors found during static analysis are collected in a list, rather than throwing just the first we detect and then abort.
159 ====( 0.2.1 )====
160 2007-05-19
162 By now many feature examples have been compiled successfully, and the tests go through.
164 More importantly, the random number facility has been redesigned so that states are used where appropriate.  To make it easy to use states in folds, the kernel's list type has been enhanced with methods foldsl ("fold with state, left") and foldsr ("fold with state, right").  However, this was not quite necessary since the same functionality can be implemented as an extension, as was done in conssupport.drext, and used random.drool.
166 Among all bugs found lately, one was in the z-buffer.  Although it was fixed, I'm not at all convinced that transforms are handled correctly, nor that overlaps and line-surface intersections are determined correctly.
169 ====( 0.2.0 )====
170 2007-04-24
172 This version marks the point where the two feature examples states.drool and values.drool compile.  This means that the program is getting useful again.  However, the great majority of the examples have not been updated, and it is expected that many bugs will be revealed in the process of updating them.
174 In other words, this version marks the beginning of the use of states and structures, but these features should be debugged and tested on the many available examples before being considered a true alternative to using the language as of version 0.1.1.
177 ====( 0.1.2 )====
179 This version is to be used during the early phases of the transition from hot variables to temporary states.  One the program becomes useful again, the version number shall be incremented.
182 ====( 0.1.1 )====
183 2007-01-02
185 Testing has been automated.  The tests are divided into two cathegories depending on whether it is the graphical or textual program output that is to be compared against a given output.  See the Makefile's in the ./test directory and its subdirectories to learn how to run the tests or add new tests.
187 The z-buffer idea has been postponed.  Instead, a z-sorter has been implemented.  It does not handle cyclic overlaps properly.
189 There are lots of bugfixes and small enhancements over the previous version.  One of the enhancements is the "[...]"-syntax for evaluated cuts along one argument.
191 This is planned to be the the last usable version with hot variables.
194 ====( 0.1 )====
195 2006-12-12
197 First named version.
199 I'd say this is far too late for the introduction of a version number.  The reason not to make a named version has been that rather big changes in the language syntax have been expected.  However, these changes are still expected, but today I was really curious to know what binary I had installed, and this is what made me take this step.
201 To give an idea of how long this project has been running I'll mention two things.  First, the initial import of the project into subversion dates back to 2005-09-23.  Second, there's now 395 kB of zipped source code for the compiler.  In addition, there are many examples and language extension files.
203 There still not much at all of documentation.  Comments in the source are sparse, much too sparse.  A user's guide hsa been initiated, but the files have not yet entered the project repository.  There is no laguage definition either, but this is partly because the language is still expected to change substantially.
205 A few words about testing:  The testing is without structure so far.  I generate examples to test the features I'm currently working on, but I do not generate tests that can be checked automatically.  This probably says something about the quality of this version.  That I plan automatize testing soon does not make this version better.
207 The list of features that exist in this version is much too long for me to think of right now.  The first such a list I expect to create will be the user documentation, so until then the examples is as close as one gets.