1
  
2
  
3
  
4
  
5
  
6
  
7
  
8
  
9
  
10
  
11
  
12
  
13
  
14
  
15
  
16
  
17
  
18
  
19
  
20
  
21
  
22
  
23
  
24
  
25
  
26
  
27
  
28
  
29
  
30
  
31
  
32
  
33
  
34
  
35
  
36
  
37
  
38
  
39
  
40
  
41
  
42
  
43
  
44
  
45
  
46
  
47
  
48
  
49
  
50
  
51
  
52
  
53
  
54
  
55
  
56
  
57
  
58
  
59
  
60
  
61
  
62
  
63
  
64
  
65
  
66
  
67
  
68
  
69
  
70
  
71
  
72
  
73
  
74
  
75
  
76
  
77
  
78
  
79
  
80
  
81
  
82
  
83
  
84
  
85
  
Pike 8.1: Changes since Pike 8.0 (scratch area for future release notes) 
---------------------------------------------------------------------- 
 
New language features 
--------------------- 
 
o Unlimited character constant size. 
 
  There is no longer any limit to the size of character constants, 
  e.g. 'acdefghijk' creates the bignum 0x61636465666768696a6b. 
 
o 'auto' type added. 
 
  This is much like a strict typed mixed. The actual type is deduced 
  compile-time. 
 
  The main use case is as variables in foreach when looping over 
  complexly typed values, or as types in macro-defined functions and 
  such. 
 
  auto can be used as return type for a function, it will be the 
  logical or of all the types of the return statements in the 
  function. 
 
o typeof(X) can now be used as a type. 
 
  The main use case is in macros, but it might be useful for other 
  things as well (as an example in a typedef). 
 
  typedef typeof(Val.true)|typeof(Val.false) bool; 
 
  typeof, when used like this, behaves very much like the C++ 
  decltype() expression. 
 
Incompatible changes 
-------------------- 
 
o Gz.crc32 now only returns positive results. 
 
Removed features and modules 
---------------------------- 
 
o Compatibility for Pike versions before 7.8 is no longer available. 
 
o GTK1 library is deprecated, so glue code is removed. 
 
 
New modules 
----------- 
 
o ADT.Scheduler 
o ADT.TreeScheduler 
o Filesystem.Zip 
o Stdio.FakePipe 
o Parser.Markdown 
o Crypto.Checksum 
o Protocols.HTTP2 
o Bittorrent.DHT 
o MsgPack 
 
New features 
------------ 
 
o Gmp.mpf is now implemented using gmpf if the library is available. 
 
C-level API changes 
------------------- 
 
o The contract for functions is now changed so that a function is no 
  longer required to clean the stack. The topmost value of the stack 
  will be regarded as the return value and the rest of the items on 
  the stack, compared to before the function arguments were pushed, 
  will be popped and discarded. Efuns still have to clean their stack 
  as previously. 
 
Building and installing 
----------------------- 
 
o GMP 4.1 or later is now required. 
 
o C99 assumed 
 
  The configure tests will not check for functions defined in C99 
  anymore and C99 compiler support is assumed.