diff --git a/LICENSE.txt b/LICENSE.txt index e7a34645..93c4d816 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,4 +1,4 @@ -Copyright (c) 2010-2013, Intel Corporation +Copyright (c) 2010-2014, Intel Corporation All rights reserved. Redistribution and use in source and binary forms, with or without @@ -77,7 +77,7 @@ covered by the following license: University of Illinois/NCSA Open Source License -Copyright (c) 2003-2013 University of Illinois at Urbana-Champaign. +Copyright (c) 2003-2014 University of Illinois at Urbana-Champaign. All rights reserved. Developed by: diff --git a/docs/ReleaseNotes.txt b/docs/ReleaseNotes.txt index b7d0bb17..ef8cf6f8 100644 --- a/docs/ReleaseNotes.txt +++ b/docs/ReleaseNotes.txt @@ -1,3 +1,47 @@ +=== v1.7.0 === (18 April 2014) + +A major new version of ISPC with several language and library extensions and +fixes in debug info support. Binaries for all platforms are based on patched +version on LLVM 3.4. There also performance improvements beyond switchover to +LLVM 3.4. + +The list of language and library changes: + +* Support for varying types in exported functions was added. See documentation + for more details. + +* get_programCount() function was moved from stdlib.ispc to + examples/util/util.isph, which needs to be included somewhere in your + project, if you want to use it. + +* Library functions for saturated arithmetic were added. add/sub/mul/div + operations are supported for signed and unsigned 8/16/32/64 integer types + (both uniform and varying). + +* The algorithm for selecting overloaded function was extended to cover more + types of overloading. Handling of reference types in overloaded functions was + fixed. The rules for selecting the best match were changed to match C++, + which requires the function to be the best match for all parameters. In + ambiguous cases, a warning is issued, but it will be converted to an error + in the next release. + +* Explicit typecasts between any two reference types were allowed. + +* Implicit cast of pointer to const type to void* was disallowed. + +The list of other notable changes is: + +* Number of fixes for better debug info support. + +* Memory corruption bug was fixed, which caused rare but not reproducible + compile time fails. + +* Alias analysis was enabled (more aggressive optimizations are expected). + +* A bug involving inaccurate handling of "const" qualifier was fixed. As a + result, more "const" qualifiers may appear in .h files, which may cause + compilation errors. + === v1.6.0 === (19 December 2013) A major new version of ISPC with major improvements in performance and diff --git a/docs/ispc.rst b/docs/ispc.rst index e9d248f4..a2cf2a95 100644 --- a/docs/ispc.rst +++ b/docs/ispc.rst @@ -50,6 +50,7 @@ Contents: + `Updating ISPC Programs For Changes In ISPC 1.3`_ + `Updating ISPC Programs For Changes In ISPC 1.5.0`_ + `Updating ISPC Programs For Changes In ISPC 1.6.0`_ + + `Updating ISPC Programs For Changes In ISPC 1.7.0`_ * `Getting Started with ISPC`_ @@ -292,6 +293,32 @@ becomes a keyword and it potentially creates a conflict with existing user function. Also a new library function packed_store_active2() was introduced, which also may create a conflict with existing user functions. +Updating ISPC Programs For Changes In ISPC 1.7.0 +------------------------------------------------ + +This release contains several changes that may affect compatibility with +older versions: + +* The algorithm for selecting overloaded functions was extended to cover more + types of overloading, and handling of reference types was fixed. At the same + time the old scheme, which blindly used the function with "the best score" + summed for all arguments, was switched to the C++ approach, which requires + "the best score" for each argument. If the best function doesn't exist, a + warning is issued in this version. It will be turned into an error in the + next version. A simple example: Suppose we have two functions: max(int, int) + and max(unsigned int, unsigned int). The new rules lead to an error when + calling max(int, unsigned int), as the best choice is ambiguous. + +* Implicit cast of pointer to const type to void* was disallowed. Use explicit + cast if needed. + +* A bug which prevented "const" qualifiers from appearing in emitted .h files + was fixed. Consequently, "const" qualifiers now properly appearing in emitted + .h files may cause compile errors in pre-existing codes. + +* get_ProgramCount() was moved from stdlib to examples/util/util.isph file. You + need to include this file to be able to use this function. + Getting Started with ISPC ========================= diff --git a/docs/news.rst b/docs/news.rst index 6a805e48..80c3e8b3 100644 --- a/docs/news.rst +++ b/docs/news.rst @@ -2,6 +2,14 @@ ispc News ========= +ispc 1.7.0 is Released +---------------------- + +A major new version of ISPC with several language and library extensions and +fixes in debug info support. Binaries for all platforms are based on patched +version on LLVM 3.4. There also performance improvements beyond switchover to +LLVM 3.4. + ispc 1.6.0 is Released ---------------------- @@ -11,7 +19,6 @@ a number of language and library extensions. Released binaries are based on patched LLVM 3.3 on Linux and MacOS and LLVM 3.4rc3 on Windows. Please refer to Release Notes for complete set of changes. - ispc 1.5.0 is Released ---------------------- diff --git a/doxygen.cfg b/doxygen.cfg index 9a8f88e5..5a396ddd 100644 --- a/doxygen.cfg +++ b/doxygen.cfg @@ -31,7 +31,7 @@ PROJECT_NAME = "Intel SPMD Program Compiler" # This could be handy for archiving the generated documentation or # if some version control system is used. -PROJECT_NUMBER = 1.6.1dev +PROJECT_NUMBER = 1.7.0 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. diff --git a/ispc.h b/ispc.h index 111524ce..1f07b6ae 100644 --- a/ispc.h +++ b/ispc.h @@ -38,7 +38,7 @@ #ifndef ISPC_H #define ISPC_H -#define ISPC_VERSION "1.6.1dev" +#define ISPC_VERSION "1.7.0" #if !defined(LLVM_3_1) && !defined(LLVM_3_2) && !defined(LLVM_3_3) && !defined(LLVM_3_4) && !defined(LLVM_3_5) #error "Only LLVM 3.1, 3.2, 3.3, 3.4 and the 3.5 development branch are supported"