Skip to content

Releases: ponylang/ponyc

0.11.0

11 Mar 14:54
Compare
Choose a tag to compare

[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 and st_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
  • 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 a language_features boolean parameter indicating whether the Pony-specific runtime features (e.g. network or serialisation) should be initialised

0.10.0

13 Dec 03:04
Compare
Choose a tag to compare

[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

  • Behaviour calls return None instead of their receiver (RFC 28) (PR #1460)
  • Update from_array to prevent a copy (issue #1097) (PR #1423)

0.9.0

11 Nov 23:01
Compare
Choose a tag to compare

[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 to llvm-config-3.9 (#1379)
  • LLVM 3.9 support

Changed

  • Changed lambda literal syntax to be more concise (issue #1391) (PR #1400)

0.8.0

27 Oct 23:00
Compare
Choose a tag to compare

[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, as min_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

22 Oct 12:15
Compare
Choose a tag to compare

[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 the else branch of a loop instead of being an implicit break None.
  • The for loop will now break out of the loop instead of continuing with the following iterations if Iterator.next errors.

0.6.0

20 Oct 04:19
Compare
Choose a tag to compare

[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) while cpointer() (also available on
    Array objects) returns a pointer to the underlying array as-is
    (issue #1309).

0.5.1

16 Oct 02:58
Compare
Choose a tag to compare

[0.5.1] - 2016-10-15

Fixed

  • SSLConnection ignoring the sent notifier method (issue #1268)
  • Runtime crash in the runtime scheduler queues (issue #1319)

0.5.0

09 Oct 22:31
Compare
Choose a tag to compare

[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 missing sentv notify method (issue #1282)

Added

  • Iter class (issue #1267)
  • read_until method on buffered.Reader (RFC 0013)
  • format package (issue #1285)

Changed

  • Stringable interface no longer involves formatting (issue #1285)
  • Remove unused error types from ProcessError (issue #1293)
  • HTML documentation for expanded union types now adds line breaks to improve readability (issue #1263)

0.4.0

26 Sep 22:23
Compare
Choose a tag to compare

[0.4.0] - 2016-09-26

Fixed

  • Unexpected message ordering in ProcessManager (issue #1265)

Added

  • TCP writev performance improvement by avoiding throwing errors

0.3.3

23 Sep 22:27
Compare
Choose a tag to compare

[0.3.3] - 2016-09-23

Fixed

  • Incorrect build number generated on Windows when building from non-git directory.
  • Stop generating llvm.invariant.load for fields of val references.
  • Embedded fields construction through tuples.

Added

  • Improved error handling for files package.
  • ProcessMonitor.expect
  • ProcessNotify.created
  • ProcessNotify.expect

Changed

  • On Linux and FreeBSD, ponyc now uses $CC as the linker if the environment variable is defined.