What's new in coNCePTuaL 1.5.1
Apr 24, 2015
- A bug-fix release. The C code generator contained an egregious bug that caused a number of examples to fail to compile. Even worse, the coNCePTuaL compiler crashed when attempting to output an error message.
- codegen_c_generic.py: Bug fixes: Corrected an if that should have been an elif and that caused the beff, hycom, red-blue-2Dmesh, stencil27, and syncpipe examples to fail; and corrected some error-handling code relating to incorrect argument counts that was crashing. Thanks to Brad Benton for the bug report.
- Makefile.am, conceptual.ebuild.in: Removed support for building a Gentoo ebuild file. This was insufficiently tested to begin with and no longer needed now that Christoph Junghans has produced a more legitimate version that automatically detects the correct coNCePTuaL version number and has made this available to Gentoo.
New in coNCePTuaL 1.5 (Aug 5, 2014)
- The C+MPI backend now uses MPI_Alltoall() instead of MPI_Alltoallv() whenever possible.
- TASKS can now be used as syntactic sugar for TASKS SUCH THAT IS IN .
- A new PERCENTILE aggregate function returns the value at the nth percentile of a list of data values.
- Timed FOR loops now support warmup times and post-warmup synchronization, for consistency with counted FOR loops.
- The run-time system better supports the newer Cray supercomputers, such as the Cray XC30. (Calibration is faster, and topology information is logged even on non-torus topologies, in particular, dragonflies.)
- New TASK_OF and PROCESSOR_OF functions query the physical-to-virtual and virtual-to-physical task mappings. This is especially useful when a program maps tasks to A RANDOM PROCESSOR.
- For convenience, when writing data to a log file, multiple aggregate functions can be applied to the same expression, as in TASK 0 LOGS THE MINIMUM AND THE MAXIMUM OF elapsed_usecs AS "Time".
- Literal strings recognize two new escapes: \r for a carriage return and \t for a tab.
- New FILE_DATA and STATIC_FILE_DATA functions give coNCePTuaL programs access to data read from an external file. These can be use to log system-specific values (e.g., the contents of some file in the /proc filesystem both before and after a block of coNCePTuaL code executes) or to help implement irregular communication patterns (e.g., by providing lists of sender/receiver pairs and message sizes in a data file instead of hard-wiring them into the program).
New in coNCePTuaL 1.4 (Jun 22, 2012)
- codegen_interpret.py: Corrected the rounding of values in ranges evaluated in floating-point context so ranges like {100, 150, 225, ..., 10000} produce the same sequence in the interpreter-based backends as they do in the C-based backends.
- configure.ac, doc/Makefile.am: Made the build process more robust to screwy timestamps (no Gimp processing if Gimp isn't installed).
- doc/Makefile.am: Improved the quality of generated PNG and JPEG images by rendering them at 10x resolution then scaling down to 1x.
- configure.ac, doc/Makefile.am, doc/tridiagonal.eps: Corrected the build process so as not to inadvertently delete files that the user lacks the tools to recreate.
- doc/conceptual.texi, configure.ac, doc/Makefile.am: Documented list comprehensions. Restructured the documentation to move range expressions to their own subsection.
- codegen_interpret.py: Bug fix: Corrected the handling of ranges such as {3, 4, 6, 10, ..., 10000} that appear to exhibit a pattern when evaluated with integer arithmetic.
- codegen_interpret.py: Bug fix: Corrected the handling of ranges with zero increment (e.g., {2, 2, ..., 2}).
- codegen_interpret.py: Bug fix: Corrected the handling of ranges in which the final value is less than the initial value (e.g., {15, 25, ..., 5}).
New in coNCePTuaL 1.2 (Aug 19, 2009)
- The BACKEND EXECUTES statement, which enables coNCePTuaL programs
- to include arbitrary backend-specific code (e.g., C code when
- using the C+MPI backend), is now complemented by a BACKEND
- DECLARES statement that enables coNCePTuaL programs to declare
- backend-specific global variables and functions.
- coNCePTuaL's automatically maintained counters (elapsed time,
- message counts, byte counts, and bit-errors counts) can now be
- stored and restored. This enables programs to include in the
- middle of an experiment some setup operations whose time and
- message tallies should be ignored.
- The language version number has been increased from 1.1 to 1.2 to
- reflect these additions.
New in coNCePTuaL 1.1 (May 13, 2009)
- Bug fix in Makefile.am: Modified the rule for creating the LICENSE
- file to create it in $(top_builddir) instead of the current
- directory (which is read-only when building with "make distcheck").