Skip to content

Releases: ponylang/ponyc

0.12.3

01 Apr 17:47
Compare
Choose a tag to compare

If you aren't running Pony on Windows, you can ignore this version and stick with 0.12.2. Windows users are advised to upgrade as soon as possible if they are experiencing problems building binaries with the Pony compiler.

Prior to PR #1794, ponyc would only look for a linker from the version of Visual Studio with which it was compiled, and only looked at one registry key for install information. A recent change (44b2d56) broke support for Visual Build Tools C++ 2015.

[0.12.3] - 2017-04-01

Fixed

  • Improve Visual Studio and Microsoft C++ Build Tools detection. (PR #1794)

0.12.2

30 Mar 23:29
Compare
Choose a tag to compare

Thanks to Gordon Tisher for finding the cause of our extreme busy wait problem on Windows and issuing a fix for it. We consider that a high priority issue which means, release away. Since it's only been a day since our last release, not a lot else in this one.

Windows, Debian and RedHat packages are available via Bintray. OSX via Homebrew should be coming soon.

[0.12.2] - 2017-03-30

Fixed

  • Fix extreme CPU use in scheduler on Windows (PR #1785)
  • Fix broken ponytest "only" filter (PR #1780)

0.12.1

30 Mar 03:23
Compare
Choose a tag to compare

This is a recommended update; 0.12.0 broke ponytest. No tests will run using 0.12.0. Upgrading to 0.12.1 immediately is advised.

[0.12.1] - 2017-03-29

Fixed

  • Bug in ponytest resulted in all tests being skipped (PR #1778)

0.12.0

29 Mar 16:55
Compare
Choose a tag to compare

Pony version 0.12.0 has been released. It's available via all the usual channels. This is a recommended update as PR #1768 fixed a memory related issue that could result in nastiness.

The release also features a breaking change in the form of PR #1741 which implemented the "Array as Sequences" RFC. It changes the syntax for creating arrays from: ['a', 'b', 'c'] to: ['a'; 'b'; 'c'].

Enjoy!

[0.12.0] - 2017-03-29

Fixed

  • Don't ignore buffer length when printing (PR #1768)
  • Ifdef out ANSITerm signal handler for SIGWINCH (PR #1763)
  • Fix build error on 32 bits systems (PR #1762)
  • Fix annotation-related compiler assertion failure (issue #1751) (PR #1757)
  • Improve packaged Linux binary performance (PR #1755)
  • Fix false positive test failure on 32 bits (PR #1749)

Added

  • Support XCode 8.3 and LLVM 3.9 (PR #1765)

Changed

  • Arrays as sequences (PR #1741)

0.11.4

24 Mar 04:18
Compare
Choose a tag to compare

[0.11.4] - 2017-03-23

Fixed

  • Identity comparison of boxed values (PR #1726)
  • Reify type refs in inherited method bodies (PR #1722)
  • Fix compilation error on non-x86 systems (PR #1718)
  • Call finalisers for embedded fields when parent type has no finalizer. (PR #1629)
  • Fix compiling errors for 32-bit (PR #1709)
  • Improved persistent map api (RFC 36) (PR #1705)
  • Fix compiler assert on arrow to typeparam in constraint. (PR #1701)
  • Segmentation fault on runtime termination.

0.11.3

16 Mar 18:19
Compare
Choose a tag to compare

[0.11.3] - 2017-03-16

Fixed

  • Build Linux release binaries correctly (PR #1699)

0.11.2

16 Mar 12:16
Compare
Choose a tag to compare

[0.11.2] - 2017-03-16

Fixed

  • Fix illegal instruction errors on older cpus when using packaged Pony (PR #1686)
  • Correctly pass arch= when building docker image (PR #1681)

Changed

  • Make buffered.Reader.append accept any ByteSeq. (PR #1644)

0.11.1

14 Mar 04:14
Compare
Choose a tag to compare

[0.11.1] - 2017-03-14

Fixed

  • Fix AVX/AVX2 issues with prebuilt ponyc (PR #1663)
  • Fix linking with '--as-needed' (sensitive to linking order) (PR #1654)
  • Fix FreeBSD 11 compilation

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)