pike.git
/
CHANGES
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/CHANGES:189:
It's now possible to set custom attributes on types. This is currently used to improve the argument checking for sprintf() and related functions, and for marking symbols as deprecated. eg: __deprecated__ mixed obsolete_function(); __deprecated__(mixed) obsolete_return_value(); mixed fun(__deprecated__(mixed) obsolete_arg); __deprecated__(mixed) obsolete_variable;
+
The deprecated type flag using __deprecated__ is a convenience
+
syntax to use instead of e.g.
-
__attribute__(deprecated)
-
FIXME: syntax for __attribute__
+
void f(void|
__attribute__(
"
deprecated
",int
)
timeout)
-
+
Other uses of __attribute__ in type declarations can be seen in e.g.
+
the type for werror():
+
+
> typeof(werror);
+
(1) Result: scope(0,function(string : int) |
+
function(__attribute__("sprintf_format", string),
+
__attribute__("sprintf_args", mixed) ... : int) |
+
function(array(string), mixed ... : int))
+
o __func__ The symbol __func__ now evaluates to the name of the current function. Note that this name currently can differ from the declared name in case of local functions (ie lambdas). Note also that __func__ behaves like a litteral string, so implicit string concatenation is supported. eg: error("Error in " __func__ ".\n");
pike.git/CHANGES:229:
o Compatibility name spaces Older versions of a function can be reached through its version name space. For example the 7.4 version of the hash function can be called through 7.4::hash(). o Iterator API The iterator API method Iterator->next() is no longer optional.
-
FIXME: Compatibility implications?
+
Extensions and New Functions ---------------------------- o exit() Exit now takes optional arguments to act as a werror in addition to exiting the process.
pike.git/CHANGES:276:
(1) Result: "\0\5Hello" - The new formatting directive %q can be used to format a atring as a quoted string, quoting all control character and non-8-bit characters as well as quote characters. Like %O but always on one line. > sprintf("%q", "abc \x00 \" \' \12345"); (1) Result: "\"abc \\0 \\\" ' \\u14e5\""
+
- Ranges in sscanf sets can now start with ^, even at the beginning
+
of the set specifier. Example: %[^-^] matches a set with only ^ in
+
it. To negate a set with - in it, the - character must now be the
+
last character in the set specifier.
+
o encode/decode value and programs --with-portable-bytecode is now the default. Pike programs that have been dumped on one architecture now can be decoded on another.
-
o sscanf %[^-X] (!= %[^X-]) %[X-X] FIXME
-
+
o gethrtime, gethrvtime, gauge Added support for POSIX style timers using clock_gettime(3). Notably this fixes nice high resolution thread local cpu time and monotonic real time on reasonably modern Linux systems. There are new constants CPU_TIME_* and REAL_TIME_* in the System module to allow pike code to query various properties of the CPU and real time clocks in use.