Releases: ponylang/ponyc
Releases · ponylang/ponyc
0.11.1
0.11.0
[0.11.0] - 2017-03-11
Fixed
- Make HTTPSession type tag by default (PR #1650)
- Fix type parameters not being visible to a lambda type in a type alias (PR #1633)
- Remove the check for union types on match error (PR #1630)
- TCPListener: unsubscribe asio before socket close (PR #1626)
- Fix buffer overlow in case method docstring (PR #1615)
- Fix capability checking for gencap-constrained type parameters. (PR #1593)
- Fix error in ANTLR grammar regarding duplicate '-~'. (#1602) (PR #1604)
- Escape special characters in ANLTR strings. (#1600) (PR #1601)
- Use LLVM to detect CPU features by default if --features aren't specified. (PR #1580)
- Always call finalisers for embedded fields (PR #1586)
- Check for null terminator in String._append (PR #1582)
- Fix TCP Connection data receive race condition (PR #1578)
- Fix Linux epoll event resubscribe performance and race condition. (PR #1564)
- Correctly resubscribe TCPConnection to ASIO events after throttling (PR #1558)
- Performance fix in the runtime actor schedule (PR #1521)
- Disallow type parameter names shadowing other types. (PR #1526)
- Don't double resubscribe to asio events in TCPConnection (PR #1509)
- Improve Map.get_or_else performance (PR #1482)
- Back pressure notifications now given when encountered while sending data during
TCPConnection
pending writes - Improve efficiency of muted TCPConnection on non Windows platforms (PR #1477)
- Compiler assertion failure during type checking
- Runtime memory allocator bug
- Compiler crash on tuple sending generation (issue #1546)
- Compiler crash due to incorrect subtype assignment (issue #1474)
- Incorrect code generation when sending certain types of messages (issue #1594)
Added
- Close over free variables in lambdas and object literals (PR #1648)
- Add assert_no_error test condition to PonyTest (PR #1605)
- Expose
st_dev
andst_ino
fields of stat structure (PR #1589) - Packed structures (RFC 32) (PR #1536)
- Add
insert_if_absent
method to Map (PR #1519) - Branch prediction annotations (RFC 30) (PR #1528)
- Readline interpret C-d on empty line as EOF (PR #1504)
- AST annotations (RFC 27) (PR #1485)
- Unsafe mathematic and logic operations. Can be faster but can have undefined results for some inputs (issue #993)
- Equality comparison for NetAddress (PR #1569)
- Host address comparison for NetAddress (PR #1569)
Changed
- Rename IPAddress to NetAddress (PR #1559)
- Remove delegates (RFC 31) (PR #1534)
- Upgrade to LLVM 3.9.1 (PR #1498)
- Deprecate LLVM 3.6.2 support (PR #1511) (PR #1502) (PR ##1512)
- Ensure TCPConnection is established before writing data to it (issue #1310)
- Always allow writing to
_
(dontcare) (PR #1499) - Methods returning their receiver to allow call chaining have been changed to return either None or some useful value. Generalised method chaining implemented in version 0.9.0 should be used as a replacement. The full list of updated methods follows. No details means that the method now returns None.
- builtin.Seq
- reserve
- clear
- push
- unshift
- append
- concat
- truncate
- builtin.Array
- reserve
- compact
- undefined
- insert
- truncate
- trim_in_place
- copy_to
- remove
- clear
- push
- unshift
- append
- concat
- reverse_in_place
- builtin.String
- reserve
- compact
- recalc
- truncate
- trim_in_place
- delete
- lower_in_place
- upper_in_place
- reverse_in_place
- push
- unshift
- append
- concat
- clear
- insert_in_place
- insert_byte
- cut_in_place
- replace (returns the number of occurrences replaced)
- strip
- lstrip
- rstrip
- buffered.Reader
- clear
- append
- skip
- buffered.Writer
- reserve
- reserve_chunks
- number writing functions (e.g. u16_le)
- write
- writev
- capsicum.CapRights0
- set
- unset
- collections.Flag
- all
- clear
- set
- unset
- flip
- union
- intersect
- difference
- remove
- collections.ListNode
- prepend (returns whether the node was removed from another List)
- append (returns whether the node was removed from another List)
- remove
- collections.List
- reserve
- remove
- clear
- prepend_node
- append_node
- prepend_list
- append_list
- push
- unshift
- append
- concat
- truncate
- collections.Map
- concat
- compact
- clear
- collections.RingBuffer
- push (returns whether the collection was full)
- clear
- collections.Set
- clear
- set
- unset
- union
- intersect
- difference
- remove
- files.FileMode
- exec
- shared
- group
- private
- files.File
- seek_start
- seek_end
- seek
- flush
- sync
- time.Date
- normal
- net.http.Payload
- update (returns the old value)
- net.ssl.SSLContext
- set_cert
- set_authority
- set_ciphers
- set_client_verify
- set_server_verify
- set_verify_depth
- allow_tls_v1
- allow_tls_v1_1
- allow_tls_v1_2
- builtin.Seq
- TCP sockets on Linux now use Epoll One Shot
- Non-sendable locals and parameters are now seen as
tag
inside of recover expressions instead of being inaccessible. - TCP sockets on FreeBSD and MacOSX now use Kqueue one shot
- All arithmetic and logic operations are now fully defined for every input by default (issue #993)
- Removed compiler flag
--ieee-math
- The
pony_start
runtime function now takes alanguage_features
boolean parameter indicating whether the Pony-specific runtime features (e.g. network or serialisation) should be initialised
0.10.0
[0.10.0] - 2016-12-12
Fixed
- Don't violate reference capabilities when assigning via a field (PR #1471)
- Check errors correctly for method chaining (PR #1463)
- Fix compiler handling of type params in stacks (issue #918) (PR #1452)
- Fix String.recalc method for cases where no null terminator is found (issue #1446) (PR #1450)
- Make space() check if string is null terminated (issue #1426) (PR #1430)
- Fix is_null_terminated reading arbitrary memory (issue #1425) (PR #1429)
- Set null terminator in String.from_iso_array (issue #1435) (PR #1436)
Added
- Added String.split_by, which uses a string delimiter (issue #1399) (PR #1434)
- Extra DTrace/SystemTap probes concerning scheduling.
Changed
0.9.0
[0.9.0] - 2016-11-11
Fixed
- Stop leaking memory during serialization (issue #1413) (PR #1414)
- Fixed compiler segmentation fault when given an invalid target triple. (PR #1406)
- Fixed error message when no type arguments are given (issue #1396) (PR #1397)
- Fixed compiler assert failure when constructor is called on type intersection (issue #1398) (PR #1401)
- Fix compiler assert fail on circular type inference error (issue #1334) (PR #1339)
- Performance problem in the scheduler queue when running with many threads (issue #1404)
- Invalid name mangling in generated C headers (issue #1377)
Added
- Method chaining (RFC #25) (PR #1411)
- Iter class methods
all
,any
,collect
,count
,find
,last
,nth
,run
,skip
,skip_while
,take
,take_while
(issue #1370) - Output of
ponyc --version
shows C compiler used to build pony (issue #1245) - Makefile detects
llvmconfig39
in addition tollvm-config-3.9
(#1379) - LLVM 3.9 support
Changed
0.8.0
[0.8.0] - 2016-10-27
Fixed
- Link the correct version of
libponyrt
when compiling with--pic
on Linux (issue #1359)
Added
- Runtime function
pony_send_next
. This function can help optimise some message sending scenarios. - Floating point
min_normalised
. The function returns the smallest normalised positive number, asmin_value
used to do (issue #1351)
Changed
- Floating point
min_value
now returns the smallest negative number instead of the smallest normalised positive number (issue #1351)
0.7.0
[0.7.0] - 2016-10-22
Fixed
- Concatenate docstrings from case methods (issue #575).
Added
- TCP read and write backpressure hooks in
TCPConnection
(issue #1311) - Allow TCP notifiers to cause connections to yield while receiving (issue #1343)
Changed
break
without a value now generates its value from theelse
branch of a loop instead of being an implicitbreak None
.- The
for
loop will now break out of the loop instead of continuing with the following iterations ifIterator.next
errors.
0.6.0
[0.6.0] - 2016-10-20
Fixed
- Compiling ponyrt with Clang versions >= 3.3, < 3.6.
- Restrict mutable tuple recovery to maintain reference capability security (issue #1123)
- Crash in the runtime scheduler queues
Added
- DTrace and SystemTap support -
use=dtrace
Changed
- Replaces
use=telemetry
by DTrace/SystemTap scripts String.cstring()
now always returns a null-terminated string
(which may result in a copy) whilecpointer()
(also available on
Array
objects) returns a pointer to the underlying array as-is
(issue #1309).
0.5.1
0.5.0
[0.5.0] - 2016-10-09
Fixed
- Memory copy bounds for
String.clone
(issue #1289). - Security issues in
ProcessMonitor
(issue #1180) SSLConnection
bugs due to missingsentv
notify method (issue #1282)
Added
Iter
class (issue #1267)- read_until method on buffered.Reader (RFC 0013)
format
package (issue #1285)