coNCePTuaL Changelog

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").