pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/devel/MoarVM Update MoarVM to 2017.06. Bump API_DEPEND...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/a3abdafc8b1e
branches:  trunk
changeset: 364055:a3abdafc8b1e
user:      bsiegert <bsiegert%pkgsrc.org@localhost>
date:      Tue Jun 20 19:06:42 2017 +0000

description:
Update MoarVM to 2017.06. Bump API_DEPENDS too, as functions have been
removed.

2017.06

- Make coerce_s_n work more like the Perl 6 Str.Num method
- Eliminate socket string I/O
- Re-implement synchronous sockets without using libuv, enabling them to
  be passed between threads
- Add ability to get port from already bind-ed socket
- Add cpucores op to get the number of CPU cores
- Fix inconsistency in decode stream take bytes API, so it returns null
  if that number of bytes is not available
- Fix memory leak in syncpipe
- Removed unsed header file in threads.c
- Remove unused args to bind_stdio_handle
- Remove char-level I/O ops and the functions they called
- Remove char-level I/O from synchronous I/O vtables
- Remove unused encoding option in dir handle
- Re-implement print/say debug output ops to encode and then use binary
  I/O
- Eliminate use of libuv in synchronous file handles
- Switch standard handles to use the new synchronous file handle code,
  which means they can now be safely used from multiple threads also
- Remove unused ->filename slot of syncfile
- Debugging aid for introspecting P6opaque objects
- Support merge_bytes in async proc ops, for reading STDOUT and STDERR
  together
- Support binding handles to file descriptors in async procs
- Fix off-by-one in profiler node GC
- Add string eqat/index ignorecase+ignoremark functions
- Add new eqaticim_s and indexicim_s ops ignorecase+ignoremark
- Use norm instead of n for the normalizer variable
- Add improved support for GCB=Prepend
- Improve Regional Indicators support during normalization
- Serialize a Decoder REPR object into null, so incidental file handle
  serialization in Perl 6 does not blow up
- Improve named argument optimization, so we can specialize and throw
  out instructions in more cases
- JIT decodertakeline
- Fix missed opportunity to run JITted code
- Have inline log note what couldn't inline also
- Remove successor when optional named argument is passed, so default
  code can be eliminated
- Flag writers that die when a basic block is eliminated, and disregard
  them in PHI node analysis, provide more precise type information
- Make a basic block elimination pre-pass before the main optimization
  work
- Set dead writer when deleting instructions also, to further aid PHI
  merges
- Track which basic blocks are part of a jump list
- Delete pointless goto instructions (those at the end of a basic block
  that simply go to the next block)
- Remove bad Windows quoting option async proc code
- Actually log inlines to stderr as the comment up top claims
- Make find_separator only look at the last chars, which is far cheaper
- Add help text for environment variables to Configure
- Move NFG initialization into nfg.c
- Cache CRLF grapheme value
- Cache maximum separator length, to save recomputing it for every line
  that is read
- Cache a list of final separator graphemes, for faster stopper
  detection in streaming decoders
- Introduce a max final grapheme codepoint filter, for faster stopper
  detection in streaming decoders
- Add a UTF-8 decoding fast-path that doesn't need to go through the
  full normalizer
- Keep last freed chars buffer handy for re-use in streaming decoder
- Make a smarter guess at decode result buffer size in streaming decoder
- Don't copy when we can steal decoder output, saving a memory copy in
  most line reading operations
- Various micro-optimizations to UTF-8 decoding fast path
- Fix newline translation in various encoding's streaming decoder


2017.05

- Mark profiler call graphs iteratively instead of recursively
- Keep around line number annotations in spesh, for more accurate source
  position information for coverage data in specialized code
- Introduce "telemeh", a high-precision-time low-impact logger
- Fix error reporting in chdir
- Fix memory leak on error in chdir
- Travis: readlink doesn't have `-f` on MacOS so make our own solution
- Fix bug in index ignorecase and equal at ignorecase
- Fix all known remaining bugs in indexic and eqatic
- Zero slot when popping a VMArray, to avoid junk reads if it grows
  again later
- Add can_fit_into_8bit funct, put logic used many places into one
  function
- Use -1 instead of 0 when long right-shifting negative smallints
- Remove workaround for tommath issue #56, which is now fixed upstream
- Don't crash on reading a closed dir handle
- Remove deprecated async string I/O ops

2017.04

- Shorten the nursery when creating large bigints, to bring GC forward
  and resolve excessive memory use
- Use correct format for repeat/concat errors
- Fix bug in indexic_s if expanding codepoint is the last codepoint
- Special case "\r\n" in MVM_nfg_is_concat_stable for performance
  reasons
- Further optimize MVM_nfg_is_concat_stable to speed up concatenation
- Do not set use rpath if installing into proper system locations
- Optimize passes_quickcheck_and_zero_ccc to be much faster
- Give this_repr constants more meaningful names to aid debugging
- Streamline MVM_bigint_radix and MVM_radix for Nd Unicode #'s
- Fix case-insensitive string compare bug when synthetics are in the
  haystack
- Improve description for "should eventually be unreachable" error
- Correctly detect and handle overflow in mp_get_int64
- Split into mp_get_int64 and mp_get_uint64
- Only allocate and normalize for cp's that require it in
  MVM_string_chr, and short-circuit Unicode property test for codepoints
below 0x300
- Provide a better error when failing to encode surrogates in UTF-8
- Add a cast to suppress a compiler warning in strings/ops.c
- Factor out code from equal_at_ignore_case for use in index_ignore_case
  also
- Use both hex and decimal for UTF8 encoding error messages
- Add parentheses in various places to suppress compiler warnings
- Use PRIu64 in fprintf's to fix compiler warning about incorrect types
- Add a check that introspection->is_tty is not NULL, avoiding a crash
- Mention debug_name in errors about uncomposed repr
- Add new --coverage option for Configure.pl
- First prototype of a per-line coverage reporter, enabled by setting
  MVM_COVERAGE_LOG
- Cope with a native type with no nativesize, but signedness
- Remove two functions in normalize.c that have been superseded
- Give collapse_strands a 5.4% speed boost under some workloads
- Add MVM_string_graphs_nocheck funct, use it in places we previously
  already checked
- Have a two-part loop in collapse strands to make loop tighter when
  possible
- Implement serialize/deserialize in VMHash REPR
- Use memmem in string index. Uses Knuth-Morris-Pratt on glibc, and adds
  the FreeBSD memmem.c for use on Windows
- Fix a join NFG bug when there was an empty string and an empty
  seperator
- Reorder MVMStaticFrameBody to save 16 bytes according to pahole;
  similarly save 16 bytes in MVMCompUnitBody, 24 bytes in MVMJitCode, 8
bytes in MVMIOSyncStreamData, SerializationRoot and SerializationReader
- Remove arbitrary and small length range check for reading bytes from a
  file
- Remove unused defines in threadcontext.h
- Greatly reduce contention in the fixed-size allocator for
  multi-threaded programs, giving up to 40% speedup in some cases
- Add continuous coverage analysis to Travis builds, along with other
  Travis improvements
- Mark thread GC blocked when doing synchronous writes
- Add missing MVMROOT when reading bytes, which could result in
  occasional data loss

2017.03

- Fix some missing variable initializations
- Set effective_handlers in context-only frame
- Streamline code in hash computation, hopefully fixing a Coverity
  warning
- Detect and throw on over-size array
- Put in a limit for codepoints in a grapheme, to avoid various
  overflows
- Fix a missing NULL check at end of profiling
- Panic when a new thread context can't create an uv_loop
- Better handling of out of memory when creating a thread
- Another attempt at silencing the pthread_yield warnings
- Missing GC block marking in event loop starting, fixing a deadlock
- Fix CArray marshalling of type objects
- Provide a way to put Decoder in nl-translate mode
- Ensure Decoder REPR never sees concurrent use
- Debug option to detect concurrent VMArray use
- Encode strings as UTF-8 in MVM_unicode_string_from_name
- Reword exception message for read() outside original thread
- Check that results of repeat/concat fit in an MVMString
- Fix div_i JIT round to negative infinity
- Ignore SIGPIPE by default
- Only start readers if a process spawned OK
- Remove deprecated char-mode async proc reading
- Signal error to stdout/stderr on spawn failure
- Do gen2 sweep before letting stolen threads go, fixing occasional
  SEGVs
- Turn libtommath dependency into a submodule, use a MoarVM fork
- Update libtommath fork to have expmod hang fix
- Change MVM_string_equal_at_ignore_case to use fc
- Fix MVM_string_equal_at_ignore_case when folding the haystack changes
  length
- Mention debug name and REPR name in "requires obj with repr X" errors
- Remove unneeded variable in MVM_string_index
- Add MVM_string_index_ignore_case function and indexic_s op
- A range of improvements to the MoarVM GDB plug-in

2017.02

- Fix format strings that warn during compile
- Implement missing cleanup of async task handles, fixing a memory leak
- Make Unicode sequence and codepoint name lookup case-insensitive
- Add Unicode sequences from NamedSequences.txt in the Unicode database
- Remove second declaration of MVM_frame_destroy
- JIT MVM_radix()
- Make radix and radix_I 50% faster with Unicode Nd
- Add East_Asian_Width prop
- Fix memory leaks in synchronous sockets
- Fix crashes in socket connect error handling
- Don't leak memory in STable repossession
- Missing MVMROOT around a lock acquisition
- Refuse to form an NFA with a zeroed to-state
- Add data section for JIT code, and use it for extop 'fake' registers
- Correct typo in NFG trie node struct name
- Fix overflow in div_i op
- Implement support for synthetic graphemes in
  MVM_unicode_string_compare
- Implement configurable collation_mode for MVM_unicode_string_compare
- Use LDFLAGS in ld invocations
- On Windows, create UTF-8 encoded argv upon program entry
- On Windows, populate environment hash from Unicode environment
- Some additional heuristics to cut down on cross-thread write log
  output
- Fix abs_n op for negative zeros
- Sort out semantics of closed async sockets
- Fix overflow on 32-bit systems in is_full_collection()
- Rename MVMArray file and constant to VMArray
- Remove bogus indication that MoarVM builds on `cygwin`
- Use utf8 for unicode_db files
- Fix invalid read when GC was triggered in the string repeat op
- Don't call MVM_string_graphs twice in indexing op, plus cleanup

diffstat:

 devel/MoarVM/Makefile                     |   4 ++--
 devel/MoarVM/PLIST                        |   8 ++++++--
 devel/MoarVM/buildlink3.mk                |   4 ++--
 devel/MoarVM/distinfo                     |  10 +++++-----
 devel/MoarVM/patches/patch-build_probe.pm |  24 ------------------------
 5 files changed, 15 insertions(+), 35 deletions(-)

diffs (131 lines):

diff -r 8c28e12c70e0 -r a3abdafc8b1e devel/MoarVM/Makefile
--- a/devel/MoarVM/Makefile     Tue Jun 20 18:55:03 2017 +0000
+++ b/devel/MoarVM/Makefile     Tue Jun 20 19:06:42 2017 +0000
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.3 2017/02/05 12:36:59 bsiegert Exp $
+# $NetBSD: Makefile,v 1.4 2017/06/20 19:06:42 bsiegert Exp $
 
-DISTNAME=      MoarVM-2017.01
+DISTNAME=      MoarVM-2017.06
 CATEGORIES=    devel perl6
 MASTER_SITES=  http://www.moarvm.org/releases/
 
diff -r 8c28e12c70e0 -r a3abdafc8b1e devel/MoarVM/PLIST
--- a/devel/MoarVM/PLIST        Tue Jun 20 18:55:03 2017 +0000
+++ b/devel/MoarVM/PLIST        Tue Jun 20 19:06:42 2017 +0000
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.2 2017/02/05 12:36:59 bsiegert Exp $
+@comment $NetBSD: PLIST,v 1.3 2017/06/20 19:06:42 bsiegert Exp $
 bin/moar
 include/moar/6model/6model.h
 include/moar/6model/bootstrap.h
@@ -19,7 +19,6 @@
 include/moar/6model/reprs/KnowHOWAttributeREPR.h
 include/moar/6model/reprs/KnowHOWREPR.h
 include/moar/6model/reprs/Lexotic.h
-include/moar/6model/reprs/MVMArray.h
 include/moar/6model/reprs/MVMAsyncTask.h
 include/moar/6model/reprs/MVMCFunction.h
 include/moar/6model/reprs/MVMCallCapture.h
@@ -50,6 +49,7 @@
 include/moar/6model/reprs/SCRef.h
 include/moar/6model/reprs/Semaphore.h
 include/moar/6model/reprs/Uninstantiable.h
+include/moar/6model/reprs/VMArray.h
 include/moar/6model/sc.h
 include/moar/6model/serialization.h
 include/moar/bithacks.h
@@ -95,6 +95,7 @@
 include/moar/gcc_diag.h
 include/moar/gen/config.h
 include/moar/instrument/crossthreadwrite.h
+include/moar/instrument/line_coverage.h
 include/moar/io/asyncsocket.h
 include/moar/io/asyncsocketudp.h
 include/moar/io/dirops.h
@@ -122,6 +123,7 @@
 include/moar/moar.h
 include/moar/platform/inttypes.h
 include/moar/platform/io.h
+include/moar/platform/memmem.h
 include/moar/platform/mmap.h
 include/moar/platform/setjmp.h
 include/moar/platform/stdint.h
@@ -132,6 +134,7 @@
 include/moar/profiler/instrument.h
 include/moar/profiler/log.h
 include/moar/profiler/profile.h
+include/moar/profiler/telemeh.h
 include/moar/spesh/args.h
 include/moar/spesh/candidate.h
 include/moar/spesh/codegen.h
@@ -153,6 +156,7 @@
 include/moar/strings/nfg.h
 include/moar/strings/normalize.h
 include/moar/strings/ops.h
+include/moar/strings/parse_num.h
 include/moar/strings/unicode.h
 include/moar/strings/unicode_gen.h
 include/moar/strings/unicode_ops.h
diff -r 8c28e12c70e0 -r a3abdafc8b1e devel/MoarVM/buildlink3.mk
--- a/devel/MoarVM/buildlink3.mk        Tue Jun 20 18:55:03 2017 +0000
+++ b/devel/MoarVM/buildlink3.mk        Tue Jun 20 19:06:42 2017 +0000
@@ -1,11 +1,11 @@
-# $NetBSD: buildlink3.mk,v 1.1 2016/04/08 20:26:46 bsiegert Exp $
+# $NetBSD: buildlink3.mk,v 1.2 2017/06/20 19:06:42 bsiegert Exp $
 
 BUILDLINK_TREE+=       MoarVM
 
 .if !defined(MOARVM_BUILDLINK3_MK)
 MOARVM_BUILDLINK3_MK:=
 
-BUILDLINK_API_DEPENDS.MoarVM+= MoarVM>=2015.12
+BUILDLINK_API_DEPENDS.MoarVM+= MoarVM>=2017.06
 BUILDLINK_PKGSRCDIR.MoarVM?=   ../../devel/MoarVM
 
 .include "../../devel/libatomic_ops/buildlink3.mk"
diff -r 8c28e12c70e0 -r a3abdafc8b1e devel/MoarVM/distinfo
--- a/devel/MoarVM/distinfo     Tue Jun 20 18:55:03 2017 +0000
+++ b/devel/MoarVM/distinfo     Tue Jun 20 19:06:42 2017 +0000
@@ -1,8 +1,8 @@
-$NetBSD: distinfo,v 1.2 2017/02/05 12:36:59 bsiegert Exp $
+$NetBSD: distinfo,v 1.3 2017/06/20 19:06:42 bsiegert Exp $
 
-SHA1 (MoarVM-2017.01.tar.gz) = 12664fa7e2e9160e36fe55fc806b7c960fe99224
-RMD160 (MoarVM-2017.01.tar.gz) = 3f0cb18b1f5d8f6da168cd15a6db6be84214a29c
-SHA512 (MoarVM-2017.01.tar.gz) = d31b292edc4468c4dd26a367944230ce02286cc601c231b175273b0c61d1fb907aced5b63c1f7426eabfd9148b17aee63dea12c74829206fb38250cd4193804f
-Size (MoarVM-2017.01.tar.gz) = 3718510 bytes
+SHA1 (MoarVM-2017.06.tar.gz) = 84bbf95d7f5c9c313881bb15689ff49381f29604
+RMD160 (MoarVM-2017.06.tar.gz) = af782c9a9f3127d7aebb4ae1e1a9cc14b84b04a8
+SHA512 (MoarVM-2017.06.tar.gz) = 32a14c5426ade7681f452dcc43a3c513cd7d73cfd4eca394005ea9e5f2c65e6651d442eaec9a27ef6656bb342f572b964fab587018e39012acecfc01b50db274
+Size (MoarVM-2017.06.tar.gz) = 4391465 bytes
 SHA1 (patch-build_probe.pm) = 9cf0bbd99ff38715c0b8b57bcd227df18d9adfb4
 SHA1 (patch-build_setup.pm) = fd53d47bd3126b2c89d4e8d82c6bc0b6db5f4fdf
diff -r 8c28e12c70e0 -r a3abdafc8b1e devel/MoarVM/patches/patch-build_probe.pm
--- a/devel/MoarVM/patches/patch-build_probe.pm Tue Jun 20 18:55:03 2017 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-$NetBSD: patch-build_probe.pm,v 1.2 2017/02/05 12:36:59 bsiegert Exp $
-
-Add LDFLAGS for Configure.pl probes so e.g. finding libffi works.
-
---- build/probe.pm.orig        2016-11-16 14:34:28.000000000 +0000
-+++ build/probe.pm
-@@ -57,7 +57,7 @@ sub compile {
-         push @objs, $obj;
-     }
- 
--    my $command = "$config->{ld} $config->{ldout}$leaf @objs $config->{ldlibs} >$devnull 2>&1";
-+    my $command = "$config->{ld} $ENV{'LDFLAGS'} $config->{ldout}$leaf @objs $config->{ldlibs} >$devnull 2>&1";
-     system $command
-         and return;
-     return 1;
-@@ -102,7 +102,7 @@ EOT
-     }
- 
-     if ($can_compile) {
--        $command = "$config->{ld} $config->{ldout}$leaf $obj $config->{ldlibs} 2>&1";
-+        $command = "$config->{ld} $ENV{'LDFLAGS'} $config->{ldout}$leaf $obj $config->{ldlibs} 2>&1";
-         $output  = `$command` || $!;
-         if ($? >> 8 == 0) {
-             $can_link = 1;



Home | Main Index | Thread Index | Old Index