Index: .gitignore
===================================================================
--- .gitignore	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ .gitignore	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -18,4 +18,5 @@
 **/Makefile
 **/Makefile.in
+**/Makefile.dist.in
 /version
 
Index: Makefile.am
===================================================================
--- Makefile.am	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ Makefile.am	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -21,4 +21,5 @@
 
 SUBDIRS = driver src . @LIBCFA_TARGET_DIRS@
+DIST_SUBDIRS = driver src . libcfa benchmark longrun_tests tests tools tools/prettyprinter
 
 @LIBCFA_TARGET_MAKEFILES@ : Makefile $(srcdir)/libcfa/configure
@@ -26,5 +27,5 @@
 	@ls $(config_file) || (echo "Missing config.data, re-run configure script again" && false)
 	@$(eval config_data = $(shell cat $(config_file)))
-	@echo "Configuring libcfa with '$(config_data)''"
+	@echo "Configuring libcfa ($(abs_top_srcdir)/libcfa/configure) with '$(config_data)' from $(shell pwd) / $(dir $@)"
 	@cd $(dir $@) && $(abs_top_srcdir)/libcfa/configure $(config_data)
 
@@ -32,4 +33,6 @@
 
 man1_MANS = doc/man/cfa.1
+
+EXTRA_DIST = LICENSE doc/man/cfa.1 libcfa/configure libcfa/Makefile.dist.am libcfa/Makefile.dist.in
 
 debug=yes
Index: benchmark/Makefile.am
===================================================================
--- benchmark/Makefile.am	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ benchmark/Makefile.am	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -66,5 +66,5 @@
 # Dummy hack tricks
 EXTRA_PROGRAMS = dummy # build but do not install
-dummy_SOURCES = dummyC.c dummyCXX.cpp
+nodist_dummy_SOURCES = dummyC.c dummyCXX.cpp
 
 dummyC.c:
@@ -80,5 +80,8 @@
 ## =========================================================================================================
 
-all : basic$(EXEEXT) ctxswitch$(EXEEXT) mutex$(EXEEXT) schedint$(EXEEXT) schedext$(EXEEXT) creation$(EXEEXT)
+# all is used by make dist so ignore it
+all:
+
+all-bench : basic$(EXEEXT) ctxswitch$(EXEEXT) mutex$(EXEEXT) schedint$(EXEEXT) schedext$(EXEEXT) creation$(EXEEXT)
 
 basic_loop_DURATION = 15000000000
@@ -476,5 +479,5 @@
 ## =========================================================================================================
 
-compile$(EXEEXT) :		\
+bcompile$(EXEEXT) :		\
 	compile-array.make	\
 	compile-attributes.make	\
Index: configure.ac
===================================================================
--- configure.ac	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ configure.ac	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -137,4 +137,7 @@
 		\'--enable-gprofiler=*) ;;
 		\'--disable-gprofiler) ;;
+
+		# skip this, it only causes problems
+		\'--srcdir=*) ;;
 
 		# append all other arguments to the sub configure arguments
@@ -202,4 +205,5 @@
 
 	LIBCFA_TARGET_DIRS="${LIBCFA_TARGET_DIRS} ${lib_dir}"
+	LIBCFA_1TARGET_DIR="${lib_dir}"
 	LIBCFA_TARGET_MAKEFILES="${LIBCFA_TARGET_MAKEFILES} ${lib_dir}/Makefile"
 
@@ -213,4 +217,5 @@
 
 AC_SUBST(LIBCFA_TARGET_DIRS)
+AC_SUBST(LIBCFA_1TARGET_DIR)
 AC_SUBST(LIBCFA_TARGET_MAKEFILES)
 
@@ -278,7 +283,8 @@
 	driver/Makefile
 	src/Makefile
-	benchmark/Makefile
+	libcfa/Makefile:libcfa/Makefile.dist.in
 	tests/Makefile
 	longrun_tests/Makefile
+	benchmark/Makefile
 	tools/Makefile
 	tools/prettyprinter/Makefile
Index: libcfa/Makefile.dist.am
===================================================================
--- libcfa/Makefile.dist.am	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
+++ libcfa/Makefile.dist.am	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -0,0 +1,27 @@
+######################## -*- Mode: Makefile-Automake -*- ######################
+##
+## Cforall Version 1.0.0 Copyright (C) 2020 University of Waterloo
+##
+## The contents of this file are covered under the licence agreement in the
+## file "LICENCE" distributed with Cforall.
+##
+## Makefile.dist.am --
+##
+## Author           : Thierry Delisle
+## Created On       : Fri Aug dd 12:53:35 2020
+## Last Modified By :
+## Last Modified On :
+## Update Count     :
+###############################################################################
+
+AUTOMAKE_OPTIONS = foreign    # do not require all the GNU file names
+ACLOCAL_AMFLAGS  = -I automake
+
+distdir:
+	@echo "Distributing libcfa from '@LIBCFA_1TARGET_DIR@'"
+	+make -C $(abs_top_builddir)/@LIBCFA_1TARGET_DIR@ distdir \
+	top_distdir=$(top_distdir) \
+	distdir=../$(distdir) \
+	am__remove_distdir=$$(am__remove_distdir) \
+	am__skip_length_check=$(am__skip_length_check) \
+	am__skip_mode_fix=$(am__skip_mode_fix)
Index: libcfa/prelude/Makefile.am
===================================================================
--- libcfa/prelude/Makefile.am	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ libcfa/prelude/Makefile.am	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -22,4 +22,6 @@
 cfalibdir = ${CFA_LIBDIR}
 cfalib_DATA = gcc-builtins.cf builtins.cf extras.cf prelude.cfa bootloader.c defines.hfa
+
+EXTRA_DIST = bootloader.cf builtins.c builtins.def extras.c extras.regx extras.regx2 prelude-gen.cc prototypes.awk prototypes.c prototypes.sed sync-builtins.cf
 
 CC = @LOCAL_CFACC@
Index: libcfa/src/Makefile.am
===================================================================
--- libcfa/src/Makefile.am	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ libcfa/src/Makefile.am	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -31,6 +31,6 @@
 # AM_CFAFLAGS for only cfa source
 # use -no-include-stdhdr to prevent rebuild cycles
-# The built sources must not depend on the installed headers
-AM_CFAFLAGS = -quiet -cfalib -I$(srcdir)/stdhdr $(if $(findstring ${gdbwaittarget}, ${@}), -XCFA --gdb) @CONFIG_CFAFLAGS@
+# The built sources must not depend on the installed inst_headers_src
+AM_CFAFLAGS = -quiet -cfalib -I$(srcdir)/stdhdr -I$(srcdir)/concurrency $(if $(findstring ${gdbwaittarget}, ${@}), -XCFA --gdb) @CONFIG_CFAFLAGS@
 AM_CFLAGS = -g -Wall -Wno-unused-function -fPIC -fexceptions -pthread @ARCH_FLAGS@ @CONFIG_CFLAGS@
 AM_CCASFLAGS = -g -Wall -Wno-unused-function @ARCH_FLAGS@ @CONFIG_CFLAGS@
@@ -39,31 +39,90 @@
 #----------------------------------------------------------------------------------------------------------------
 if BUILDLIB
-headers_nosrc = bitmanip.hfa exception.hfa math.hfa gmp.hfa time_t.hfa clock.hfa \
-		bits/align.hfa bits/containers.hfa bits/defs.hfa bits/debug.hfa bits/locks.hfa \
-		containers/list.hfa containers/stackLockFree.hfa concurrency/iofwd.hfa
+inst_headers_nosrc = \
+	bitmanip.hfa \
+	clock.hfa \
+	exception.hfa \
+	gmp.hfa \
+	math.hfa \
+	time_t.hfa \
+	bits/align.hfa \
+	bits/containers.hfa \
+	bits/debug.hfa \
+	bits/defs.hfa \
+	bits/locks.hfa \
+	concurrency/iofwd.hfa \
+	containers/list.hfa \
+	containers/stackLockFree.hfa
 
-headers = common.hfa fstream.hfa heap.hfa iostream.hfa iterator.hfa limits.hfa rational.hfa \
-		time.hfa stdlib.hfa parseargs.hfa \
-		containers/maybe.hfa containers/pair.hfa containers/result.hfa containers/vector.hfa
+inst_headers_src = \
+	common.hfa \
+	fstream.hfa \
+	heap.hfa \
+	iostream.hfa \
+	iterator.hfa \
+	limits.hfa \
+	parseargs.hfa \
+	rational.hfa \
+	stdlib.hfa \
+	time.hfa \
+	containers/maybe.hfa \
+	containers/pair.hfa \
+	containers/result.hfa \
+	containers/vector.hfa
 
-libsrc = startup.cfa interpose.cfa bits/debug.cfa assert.cfa exception.c virtual.c ${headers:.hfa=.cfa}
+libsrc = ${inst_headers_src} ${inst_headers_src:.hfa=.cfa} \
+	assert.cfa \
+	bits/algorithm.hfa \
+	bits/debug.cfa \
+	exception.c \
+	exception.h \
+	interpose.cfa \
+	lsda.h \
+	startup.cfa \
+	startup.hfa \
+	virtual.c \
+	virtual.h
 
 # not all platforms support concurrency, add option do disable it
-thread_headers_nosrc = bits/random.hfa concurrency/invoke.h concurrency/kernel/fwd.hfa
+inst_thread_headers_nosrc = \
+	bits/random.hfa \
+	concurrency/invoke.h \
+	concurrency/kernel/fwd.hfa
 
-thread_headers = concurrency/coroutine.hfa concurrency/thread.hfa concurrency/kernel.hfa \
-		concurrency/monitor.hfa concurrency/mutex.hfa concurrency/exception.hfa
+inst_thread_headers_src = \
+	concurrency/coroutine.hfa \
+	concurrency/exception.hfa \
+	concurrency/kernel.hfa \
+	concurrency/monitor.hfa \
+	concurrency/mutex.hfa \
+	concurrency/thread.hfa
 
-thread_libsrc = concurrency/CtxSwitch-@ARCHITECTURE@.S concurrency/alarm.cfa \
-		concurrency/invoke.c concurrency/io.cfa concurrency/iocall.cfa \
-		concurrency/io/setup.cfa \
-		concurrency/kernel/startup.cfa concurrency/preemption.cfa \
-		concurrency/ready_queue.cfa concurrency/stats.cfa \
-		${thread_headers:.hfa=.cfa}
+thread_libsrc = ${inst_thread_headers_src} ${inst_thread_headers_src:.hfa=.cfa} \
+	bits/signal.hfa \
+	concurrency/alarm.cfa \
+	concurrency/alarm.hfa \
+	concurrency/CtxSwitch-@ARCHITECTURE@.S \
+	concurrency/invoke.c \
+	concurrency/io.cfa \
+	concurrency/io/setup.cfa \
+	concurrency/io/types.hfa \
+	concurrency/iocall.cfa \
+	concurrency/iofwd.hfa \
+	concurrency/kernel_private.hfa \
+	concurrency/kernel/startup.cfa \
+	concurrency/preemption.cfa \
+	concurrency/preemption.hfa \
+	concurrency/ready_queue.cfa \
+	concurrency/ready_subqueue.hfa \
+	concurrency/snzi.hfa \
+	concurrency/stats.cfa \
+	concurrency/stats.hfa \
+	concurrency/stats.hfa
+
 else
-headers =
-thread_headers =
-headers_nosrc =
-thread_headers_nosrc =
+inst_headers_src =
+inst_thread_headers_src =
+inst_headers_nosrc =
+inst_thread_headers_nosrc =
 libsrc =
 endif
@@ -115,5 +174,6 @@
 
 #----------------------------------------------------------------------------------------------------------------
-libcfa_la_SOURCES = prelude.cfa ${libsrc}
+libcfa_la_SOURCES = ${libsrc}
+nodist_libcfa_la_SOURCES = prelude.cfa
 libcfa_la_LDFLAGS = -version-info @CFA_VERSION@
 
@@ -124,5 +184,6 @@
 
 cfa_includedir = $(CFA_INCDIR)
-nobase_cfa_include_HEADERS = ${stdhdr} ${headers} ${headers_nosrc} ${thread_headers} ${thread_headers_nosrc}
+nobase_cfa_include_HEADERS = ${stdhdr} ${inst_headers_src} ${inst_headers_nosrc} ${inst_thread_headers_src} ${inst_thread_headers_nosrc}
+EXTRA_DIST = stdhdr
 
 #----------------------------------------------------------------------------------------------------------------
Index: libcfa/src/bits/defs.hfa
===================================================================
--- libcfa/src/bits/defs.hfa	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ libcfa/src/bits/defs.hfa	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -10,6 +10,6 @@
 // Created On       : Thu Nov  9 13:24:10 2017
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Aug 13 22:00:23 2020
-// Update Count     : 19
+// Last Modified On : Wed Aug 26 16:22:32 2020
+// Update Count     : 20
 //
 
@@ -49,5 +49,9 @@
 
 static inline long long int rdtscl(void) {
-	#if defined( __aarch64__ )
+	#if defined( __i386 ) || defined( __x86_64 )
+	unsigned int lo, hi;
+	__asm__ __volatile__ ("rdtsc" : "=a"(lo), "=d"(hi));
+	return ( (unsigned long long)lo)|( ((unsigned long long)hi)<<32 );
+	#elif defined( __aarch64__ ) || defined( __arm__ )
 	// https://github.com/google/benchmark/blob/v1.1.0/src/cycleclock.h#L116
 	long long int virtual_timer_value;
@@ -55,7 +59,5 @@
 	return virtual_timer_value;
 	#else
-	unsigned int lo, hi;
-	__asm__ __volatile__ ("rdtsc" : "=a"(lo), "=d"(hi));
-	return ( (unsigned long long)lo)|( ((unsigned long long)hi)<<32 );
+		#error unsupported hardware architecture
 	#endif // __ARM_ARCH
 }
Index: libcfa/src/concurrency/CtxSwitch-arm64.S
===================================================================
--- libcfa/src/concurrency/CtxSwitch-arm64.S	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ libcfa/src/concurrency/CtxSwitch-arm64.S	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -2,11 +2,11 @@
 // Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo
 // 
-// CtxSwitch-arm.S -- 
+// CtxSwitch-arm64.S -- 
 // 
 // Author           : Peter A. Buhr
 // Created On       : Sun Aug 16 07:50:13 2020
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Aug 20 18:43:51 2020
-// Update Count     : 24
+// Last Modified On : Wed Aug 26 16:24:59 2020
+// Update Count     : 25
 // 
 
@@ -26,9 +26,9 @@
 #define SAVE		20 * 8
 
-	.file "CtxSwitch-arm.S"
+	.file "CtxSwitch-arm64.S"
 	.text
 	.align 2
 	.global __cfactx_switch
-	.type __cfactx_switch, @function
+	.type __cfactx_switch, %function
 __cfactx_switch:
 
@@ -91,5 +91,5 @@
 	.align 2
 	.global __cfactx_invoke_stub
-	.type __cfactx_invoke_stub, @function
+	.type __cfactx_invoke_stub, %function
 __cfactx_invoke_stub:
 	mov x0, x19							// load main as parameter 0
Index: libcfa/src/concurrency/kernel.cfa
===================================================================
--- libcfa/src/concurrency/kernel.cfa	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ libcfa/src/concurrency/kernel.cfa	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -10,6 +10,6 @@
 // Created On       : Tue Jan 17 12:27:26 2017
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Fri Aug 14 15:23:00 2020
-// Update Count     : 69
+// Last Modified On : Mon Aug 31 07:08:20 2020
+// Update Count     : 71
 //
 
@@ -74,5 +74,9 @@
 		)
 
-#elif defined( __ARM_ARCH )
+#elif defined( __arm__ )
+	#define __x87_store
+	#define __x87_load
+
+#elif defined( __aarch64__ )
 	#define __x87_store		 \
 		uint32_t __fpcntl[2];    \
@@ -93,5 +97,5 @@
 
 #else
-	#error unknown hardware architecture
+	#error unsupported hardware architecture
 #endif
 
Index: libcfa/src/concurrency/preemption.cfa
===================================================================
--- libcfa/src/concurrency/preemption.cfa	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ libcfa/src/concurrency/preemption.cfa	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -10,6 +10,6 @@
 // Created On       : Mon Jun 5 14:20:42 2017
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Fri Aug 21 13:45:32 2020
-// Update Count     : 52
+// Last Modified On : Wed Aug 26 16:46:03 2020
+// Update Count     : 53
 //
 
@@ -56,8 +56,10 @@
 #elif defined( __x86_64 )
 #define CFA_REG_IP gregs[REG_RIP]
-#elif defined( __ARM_ARCH )
+#elif defined( __arm__ )
+#define CFA_REG_IP arm_pc
+#elif defined( __aarch64__ )
 #define CFA_REG_IP pc
 #else
-#error unknown hardware architecture
+#error unsupported hardware architecture
 #endif
 
Index: libcfa/src/exception.c
===================================================================
--- libcfa/src/exception.c	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ libcfa/src/exception.c	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -10,6 +10,6 @@
 // Created On       : Mon Jun 26 15:13:00 2017
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Fri Aug 21 11:27:56 2020
-// Update Count     : 29
+// Last Modified On : Sat Aug 29 15:52:22 2020
+// Update Count     : 34
 //
 
@@ -18,12 +18,4 @@
 
 #include "exception.h"
-
-// Implementation of the secret header is hardware dependent.
-#if defined( __x86_64 ) || defined( __i386 )
-#elif defined( __ARM_ARCH )
-#warning FIX ME: check if anything needed for ARM
-#else
-#warning Exception Handling: No known architecture detected.
-#endif
 
 #include <stdlib.h>
@@ -34,5 +26,6 @@
 #include "stdhdr/assert.h"
 
-// FIX ME: temporary hack to keep ARM build working
+#if defined( __ARM_ARCH )
+#warning FIX ME: temporary hack to keep ARM build working
 #ifndef _URC_FATAL_PHASE1_ERROR
 #define _URC_FATAL_PHASE1_ERROR 3
@@ -41,4 +34,5 @@
 #define _URC_FATAL_PHASE2_ERROR 2
 #endif // ! _URC_FATAL_PHASE2_ERROR
+#endif // __ARM_ARCH
 
 #include "lsda.h"
@@ -626,3 +620,21 @@
 
 #pragma GCC pop_options
+
+#elif defined( __ARM_ARCH )
+_Unwind_Reason_Code __gcfa_personality_v0(
+		int version,
+		_Unwind_Action actions,
+		unsigned long long exception_class,
+		struct _Unwind_Exception * unwind_exception,
+		struct _Unwind_Context * unwind_context) {
+	return _URC_CONTINUE_UNWIND;
+}
+
+__attribute__((noinline))
+void __cfaehm_try_terminate(void (*try_block)(),
+		void (*catch_block)(int index, exception_t * except),
+		__attribute__((unused)) int (*match_block)(exception_t * except)) {
+}
+#else
+	#error unsupported hardware architecture
 #endif // __x86_64 || __i386
Index: src/AST/Convert.cpp
===================================================================
--- src/AST/Convert.cpp	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ src/AST/Convert.cpp	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -705,5 +705,6 @@
 			new KeywordCastExpr(
 				get<Expression>().accept1(node->arg),
-				castTarget
+				castTarget,
+				{node->concrete_target.field, node->concrete_target.getter}
 			)
 		);
@@ -2087,5 +2088,6 @@
 				old->location,
 				GET_ACCEPT_1(arg, Expr),
-				castTarget
+				castTarget,
+				{old->concrete_target.field, old->concrete_target.getter}
 			)
 		);
Index: src/AST/Expr.hpp
===================================================================
--- src/AST/Expr.hpp	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ src/AST/Expr.hpp	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -312,8 +312,20 @@
 public:
 	ptr<Expr> arg;
+	struct Concrete {
+		std::string field;
+		std::string getter;
+
+		Concrete() = default;
+		Concrete(const Concrete &) = default;
+	};
 	ast::AggregateDecl::Aggregate target;
+	Concrete concrete_target;
+
 
 	KeywordCastExpr( const CodeLocation & loc, const Expr * a, ast::AggregateDecl::Aggregate t )
 	: Expr( loc ), arg( a ), target( t ) {}
+
+	KeywordCastExpr( const CodeLocation & loc, const Expr * a, ast::AggregateDecl::Aggregate t, const Concrete & ct )
+	: Expr( loc ), arg( a ), target( t ), concrete_target( ct ) {}
 
 	/// Get a name for the target type
Index: src/AST/module.mk
===================================================================
--- src/AST/module.mk	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ src/AST/module.mk	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -17,21 +17,53 @@
 SRC_AST = \
 	AST/AssertAcyclic.cpp \
+	AST/AssertAcyclic.hpp \
 	AST/Attribute.cpp \
+	AST/Attribute.hpp \
+	AST/Bitfield.hpp \
+	AST/Chain.hpp \
 	AST/Convert.cpp \
+	AST/Convert.hpp \
+	AST/Copy.hpp \
+	AST/CVQualifiers.hpp \
 	AST/Decl.cpp \
+	AST/Decl.hpp \
 	AST/DeclReplacer.cpp \
+	AST/DeclReplacer.hpp \
+	AST/Eval.hpp \
 	AST/Expr.cpp \
+	AST/Expr.hpp \
 	AST/ForallSubstitutionTable.cpp \
+	AST/ForallSubstitutionTable.hpp \
+	AST/ForallSubstitutor.hpp \
+	AST/FunctionSpec.hpp \
+	AST/Fwd.hpp \
 	AST/GenericSubstitution.cpp \
+	AST/GenericSubstitution.hpp \
 	AST/Init.cpp \
+	AST/Init.hpp \
+	AST/Label.hpp \
 	AST/LinkageSpec.cpp \
+	AST/LinkageSpec.hpp \
 	AST/Node.cpp \
+	AST/Node.hpp \
+	AST/ParseNode.hpp \
 	AST/Pass.cpp \
+	AST/Pass.hpp \
+	AST/Pass.impl.hpp \
+	AST/Pass.proto.hpp \
 	AST/Print.cpp \
+	AST/Print.hpp \
 	AST/Stmt.cpp \
+	AST/Stmt.hpp \
+	AST/StorageClasses.hpp \
 	AST/SymbolTable.cpp \
+	AST/SymbolTable.hpp \
 	AST/Type.cpp \
+	AST/Type.hpp \
 	AST/TypeEnvironment.cpp \
-	AST/TypeSubstitution.cpp
+	AST/TypeEnvironment.hpp \
+	AST/TypeSubstitution.cpp \
+	AST/TypeSubstitution.hpp \
+	AST/Visitor.hpp
 
 SRC += $(SRC_AST)
Index: src/CodeGen/module.mk
===================================================================
--- src/CodeGen/module.mk	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ src/CodeGen/module.mk	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -20,8 +20,13 @@
 SRC_CODEGEN = \
 	CodeGen/CodeGenerator.cc \
+	CodeGen/CodeGenerator.h \
 	CodeGen/FixMain.cc \
+	CodeGen/FixMain.h \
 	CodeGen/GenType.cc \
-	CodeGen/OperatorTable.cc
+	CodeGen/GenType.h \
+	CodeGen/OperatorTable.cc \
+	CodeGen/OperatorTable.h \
+	CodeGen/Options.h
 
-SRC += $(SRC_CODEGEN) CodeGen/Generate.cc CodeGen/FixNames.cc
+SRC += $(SRC_CODEGEN) CodeGen/Generate.cc CodeGen/Generate.h CodeGen/FixNames.cc CodeGen/FixNames.h
 SRCDEMANGLE += $(SRC_CODEGEN)
Index: src/CodeTools/module.mk
===================================================================
--- src/CodeTools/module.mk	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ src/CodeTools/module.mk	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -15,5 +15,9 @@
 ###############################################################################
 
-SRC += CodeTools/DeclStats.cc \
+SRC += \
+	CodeTools/DeclStats.cc \
+	CodeTools/DeclStats.h \
 	CodeTools/ResolvProtoDump.cc \
-	CodeTools/TrackLoc.cc
+	CodeTools/ResolvProtoDump.h \
+	CodeTools/TrackLoc.cc \
+	CodeTools/TrackLoc.h
Index: src/Common/module.mk
===================================================================
--- src/Common/module.mk	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ src/Common/module.mk	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -17,12 +17,33 @@
 SRC_COMMON = \
       Common/Assert.cc \
+      Common/CodeLocation.h \
+      Common/CompilerError.h \
+      Common/Debug.h \
+      Common/ErrorObjects.h \
       Common/Eval.cc \
+      Common/FilterCombos.h \
+      Common/Indenter.h \
       Common/PassVisitor.cc \
+      Common/PassVisitor.h \
+      Common/PassVisitor.impl.h \
+      Common/PassVisitor.proto.h \
+      Common/PersistentMap.h \
+      Common/ScopedMap.h \
       Common/SemanticError.cc \
+      Common/SemanticError.h \
+      Common/Stats.h \
+      Common/Stats/Base.h \
       Common/Stats/Counter.cc \
+      Common/Stats/Counter.h \
       Common/Stats/Heap.cc \
+      Common/Stats/Heap.h \
       Common/Stats/Stats.cc \
       Common/Stats/Time.cc \
-      Common/UniqueName.cc
+      Common/Stats/Time.h \
+      Common/UnimplementedError.h \
+      Common/UniqueName.cc \
+      Common/UniqueName.h \
+      Common/utility.h \
+      Common/VectorMap.h
 
 SRC += $(SRC_COMMON) Common/DebugMalloc.cc
Index: src/Concurrency/module.mk
===================================================================
--- src/Concurrency/module.mk	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ src/Concurrency/module.mk	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -15,5 +15,5 @@
 ###############################################################################
 
-SRC += Concurrency/Keywords.cc Concurrency/Waitfor.cc
+SRC += Concurrency/Keywords.cc Concurrency/Keywords.h Concurrency/Waitfor.cc Concurrency/Waitfor.h
 SRCDEMANGLE += Concurrency/Keywords.cc
 
Index: src/ControlStruct/module.mk
===================================================================
--- src/ControlStruct/module.mk	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ src/ControlStruct/module.mk	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -17,10 +17,15 @@
 SRC_CONTROLSTRUCT = \
 	ControlStruct/ForExprMutator.cc \
+	ControlStruct/ForExprMutator.h \
 	ControlStruct/LabelFixer.cc \
+	ControlStruct/LabelFixer.h \
 	ControlStruct/LabelGenerator.cc \
+	ControlStruct/LabelGenerator.h \
 	ControlStruct/MLEMutator.cc \
-	ControlStruct/Mutate.cc
+	ControlStruct/MLEMutator.h \
+	ControlStruct/Mutate.cc \
+	ControlStruct/Mutate.h
 
-SRC += $(SRC_CONTROLSTRUCT) ControlStruct/ExceptTranslate.cc
+SRC += $(SRC_CONTROLSTRUCT) ControlStruct/ExceptTranslate.cc ControlStruct/ExceptTranslate.h
 SRCDEMANGLE += $(SRC_CONTROLSTRUCT)
 
Index: src/GenPoly/module.mk
===================================================================
--- src/GenPoly/module.mk	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ src/GenPoly/module.mk	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -16,11 +16,20 @@
 
 SRC += GenPoly/Box.cc \
+       GenPoly/Box.h \
+       GenPoly/ErasableScopedMap.h \
+       GenPoly/FindFunction.cc \
+       GenPoly/FindFunction.h \
        GenPoly/GenPoly.cc \
+       GenPoly/GenPoly.h \
+       GenPoly/InstantiateGeneric.cc \
+       GenPoly/InstantiateGeneric.h \
+       GenPoly/Lvalue.cc \
+       GenPoly/Lvalue.h \
+       GenPoly/ScopedSet.h \
        GenPoly/ScrubTyVars.cc \
-       GenPoly/Lvalue.cc \
+       GenPoly/ScrubTyVars.h \
        GenPoly/Specialize.cc \
-       GenPoly/FindFunction.cc \
-       GenPoly/InstantiateGeneric.cc
+       GenPoly/Specialize.h
 
-SRCDEMANGLE += GenPoly/GenPoly.cc GenPoly/Lvalue.cc
+SRCDEMANGLE += GenPoly/GenPoly.cc GenPoly/GenPoly.h GenPoly/Lvalue.cc GenPoly/Lvalue.h
 
Index: src/InitTweak/module.mk
===================================================================
--- src/InitTweak/module.mk	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ src/InitTweak/module.mk	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -15,10 +15,18 @@
 ###############################################################################
 
-SRC += InitTweak/GenInit.cc \
+SRC += \
+	InitTweak/FixGlobalInit.cc \
+	InitTweak/FixGlobalInit.h \
 	InitTweak/FixInit.cc \
-	InitTweak/FixGlobalInit.cc \
-	InitTweak/InitTweak.cc
+	InitTweak/FixInit.h \
+	InitTweak/GenInit.cc \
+	InitTweak/GenInit.h \
+	InitTweak/InitTweak.cc \
+	InitTweak/InitTweak.h
 
-SRCDEMANGLE += InitTweak/GenInit.cc \
-	InitTweak/InitTweak.cc
+SRCDEMANGLE += \
+	InitTweak/GenInit.cc \
+	InitTweak/GenInit.h \
+	InitTweak/InitTweak.cc \
+	InitTweak/InitTweak.h
 
Index: src/Makefile.am
===================================================================
--- src/Makefile.am	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ src/Makefile.am	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -20,6 +20,8 @@
 
 SRC = main.cc \
+      CompilationState.cc \
+      CompilationState.h \
       MakeLibCfa.cc \
-      CompilationState.cc
+	MakeLibCfa.h
 
 SRCDEMANGLE = CompilationState.cc
@@ -66,4 +68,5 @@
 ___driver_cfa_cpp_SOURCES = $(SRC)
 ___driver_cfa_cpp_LDADD = -ldl $(LIBPROFILER) $(LIBTCMALLOC)
+EXTRA_DIST = include/cassert include/optional BasicTypes-gen.cc
 
 AM_CXXFLAGS = @HOST_FLAGS@ -Wno-deprecated -Wall -Wextra -DDEBUG_ALL -I./Parser -I$(srcdir)/Parser -I$(srcdir)/include -DYY_NO_INPUT -O3 -g -std=c++14 $(TCMALLOCFLAG)
Index: src/Parser/module.mk
===================================================================
--- src/Parser/module.mk	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ src/Parser/module.mk	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -23,11 +23,16 @@
        Parser/ExpressionNode.cc \
        Parser/InitializerNode.cc \
+       Parser/lex.ll \
        Parser/ParseNode.cc \
+       Parser/ParseNode.h \
+       Parser/parser.yy \
+       Parser/ParserTypes.h \
+       Parser/parserutility.cc \
+       Parser/parserutility.h \
        Parser/StatementNode.cc \
        Parser/TypeData.cc \
+       Parser/TypeData.h \
        Parser/TypedefTable.cc \
-       Parser/lex.ll \
-       Parser/parser.yy \
-       Parser/parserutility.cc
+       Parser/TypedefTable.h
 
 MOSTLYCLEANFILES += Parser/lex.cc Parser/parser.cc Parser/parser.hh Parser/parser.output
Index: src/ResolvExpr/CandidateFinder.cpp
===================================================================
--- src/ResolvExpr/CandidateFinder.cpp	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ src/ResolvExpr/CandidateFinder.cpp	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -1089,4 +1089,59 @@
 		}
 
+		void postvisit( const ast::KeywordCastExpr * castExpr ) {
+			const auto & loc = castExpr->location;
+			assertf( castExpr->result, "Cast target should have been set in Validate." );
+			auto ref = castExpr->result.strict_as<ast::ReferenceType>();
+			auto inst = ref->base.strict_as<ast::StructInstType>();
+			auto target = inst->base.get();
+
+			CandidateFinder finder{ symtab, tenv };
+
+			auto pick_alternatives = [target, this](CandidateList & found, bool expect_ref) {
+				for(auto & cand : found) {
+					const ast::Type * expr = cand->expr->result.get();
+					if(expect_ref) {
+						auto res = dynamic_cast<const ast::ReferenceType*>(expr);
+						if(!res) { continue; }
+						expr = res->base.get();
+					}
+
+					if(auto insttype = dynamic_cast<const ast::TypeInstType*>(expr)) {
+						auto td = cand->env.lookup(insttype->name);
+						if(!td) { continue; }
+						expr = td->bound.get();
+					}
+
+					if(auto base = dynamic_cast<const ast::StructInstType*>(expr)) {
+						if(base->base == target) {
+							candidates.push_back( std::move(cand) );
+							reason.code = NoReason;
+						}
+					}
+				}
+			};
+
+			try {
+				// Attempt 1 : turn (thread&)X into ($thread&)X.__thrd
+				// Clone is purely for memory management
+				std::unique_ptr<const ast::Expr> tech1 { new ast::UntypedMemberExpr(loc, new ast::NameExpr(loc, castExpr->concrete_target.field), castExpr->arg) };
+
+				// don't prune here, since it's guaranteed all alternatives will have the same type
+				finder.find( tech1.get(), ResolvMode::withoutPrune() );
+				pick_alternatives(finder.candidates, false);
+
+				return;
+			} catch(SemanticErrorException & ) {}
+
+			// Fallback : turn (thread&)X into ($thread&)get_thread(X)
+			std::unique_ptr<const ast::Expr> fallback { ast::UntypedExpr::createDeref(loc,  new ast::UntypedExpr(loc, new ast::NameExpr(loc, castExpr->concrete_target.getter), { castExpr->arg })) };
+			// don't prune here, since it's guaranteed all alternatives will have the same type
+			finder.find( fallback.get(), ResolvMode::withoutPrune() );
+
+			pick_alternatives(finder.candidates, true);
+
+			// Whatever happens here, we have no more fallbacks
+		}
+
 		void postvisit( const ast::UntypedMemberExpr * memberExpr ) {
 			CandidateFinder aggFinder{ symtab, tenv };
Index: src/ResolvExpr/module.mk
===================================================================
--- src/ResolvExpr/module.mk	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ src/ResolvExpr/module.mk	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -19,13 +19,23 @@
       ResolvExpr/Alternative.cc \
       ResolvExpr/AlternativeFinder.cc \
+      ResolvExpr/AlternativeFinder.h \
+      ResolvExpr/Alternative.h \
       ResolvExpr/Candidate.cpp \
       ResolvExpr/CandidateFinder.cpp \
+      ResolvExpr/CandidateFinder.hpp \
+      ResolvExpr/Candidate.hpp \
       ResolvExpr/CastCost.cc \
       ResolvExpr/CommonType.cc \
       ResolvExpr/ConversionCost.cc \
+      ResolvExpr/ConversionCost.h \
+      ResolvExpr/Cost.h \
       ResolvExpr/CurrentObject.cc \
+      ResolvExpr/CurrentObject.h \
       ResolvExpr/ExplodedActual.cc \
+      ResolvExpr/ExplodedActual.h \
       ResolvExpr/ExplodedArg.cpp \
+      ResolvExpr/ExplodedArg.hpp \
       ResolvExpr/FindOpenVars.cc \
+      ResolvExpr/FindOpenVars.h \
       ResolvExpr/Occurs.cc \
       ResolvExpr/PolyCost.cc \
@@ -33,12 +43,23 @@
       ResolvExpr/PtrsCastable.cc \
       ResolvExpr/RenameVars.cc \
+      ResolvExpr/RenameVars.h \
       ResolvExpr/ResolveAssertions.cc \
+      ResolvExpr/ResolveAssertions.h \
       ResolvExpr/Resolver.cc \
+      ResolvExpr/Resolver.h \
       ResolvExpr/ResolveTypeof.cc \
+      ResolvExpr/ResolveTypeof.h \
+      ResolvExpr/ResolvMode.h \
       ResolvExpr/SatisfyAssertions.cpp \
+      ResolvExpr/SatisfyAssertions.hpp \
       ResolvExpr/SpecCost.cc \
       ResolvExpr/TypeEnvironment.cc \
-      ResolvExpr/Unify.cc
+      ResolvExpr/TypeEnvironment.h \
+      ResolvExpr/typeops.h \
+      ResolvExpr/Unify.cc \
+      ResolvExpr/Unify.h \
+      ResolvExpr/WidenMode.h
 
-SRC += $(SRC_RESOLVEXPR) ResolvExpr/AlternativePrinter.cc
+
+SRC += $(SRC_RESOLVEXPR) ResolvExpr/AlternativePrinter.cc ResolvExpr/AlternativePrinter.h
 SRCDEMANGLE += $(SRC_RESOLVEXPR)
Index: src/SymTab/module.mk
===================================================================
--- src/SymTab/module.mk	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ src/SymTab/module.mk	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -17,9 +17,14 @@
 SRC_SYMTAB = \
       SymTab/Autogen.cc \
+      SymTab/Autogen.h \
       SymTab/FixFunction.cc \
+      SymTab/FixFunction.h \
       SymTab/Indexer.cc \
+      SymTab/Indexer.h \
       SymTab/Mangler.cc \
       SymTab/ManglerCommon.cc \
-      SymTab/Validate.cc
+      SymTab/Mangler.h \
+      SymTab/Validate.cc \
+      SymTab/Validate.h
 
 SRC += $(SRC_SYMTAB)
Index: src/SynTree/Expression.cc
===================================================================
--- src/SynTree/Expression.cc	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ src/SynTree/Expression.cc	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -302,9 +302,8 @@
 }
 
-KeywordCastExpr::KeywordCastExpr( Expression * arg, AggregateDecl::Aggregate target ) : Expression(), arg(arg), target( target ) {
-}
-
-KeywordCastExpr::KeywordCastExpr( const KeywordCastExpr & other ) : Expression( other ), arg( maybeClone( other.arg ) ), target( other.target ) {
-}
+KeywordCastExpr::KeywordCastExpr( Expression * arg, AggregateDecl::Aggregate target ) : Expression(), arg(arg), target( target ) {}
+KeywordCastExpr::KeywordCastExpr( Expression * arg, AggregateDecl::Aggregate target, const KeywordCastExpr::Concrete & concrete_target ) : Expression(), arg(arg), target( target ), concrete_target(concrete_target) {}
+
+KeywordCastExpr::KeywordCastExpr( const KeywordCastExpr & other ) : Expression( other ), arg( maybeClone( other.arg ) ), target( other.target ) {}
 
 KeywordCastExpr::~KeywordCastExpr() {
Index: src/SynTree/Expression.h
===================================================================
--- src/SynTree/Expression.h	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ src/SynTree/Expression.h	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -248,4 +248,5 @@
 
 	KeywordCastExpr( Expression * arg, AggregateDecl::Aggregate target );
+	KeywordCastExpr( Expression * arg, AggregateDecl::Aggregate target, const Concrete & concrete_target );
 	KeywordCastExpr( const KeywordCastExpr & other );
 	virtual ~KeywordCastExpr();
Index: src/SynTree/module.mk
===================================================================
--- src/SynTree/module.mk	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ src/SynTree/module.mk	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -20,19 +20,29 @@
       SynTree/ApplicationExpr.cc \
       SynTree/ArrayType.cc \
+      SynTree/Attribute.cc \
+      SynTree/Attribute.h \
       SynTree/AttrType.cc \
-      SynTree/Attribute.cc \
+      SynTree/BaseSyntaxNode.h \
       SynTree/BasicType.cc \
       SynTree/CommaExpr.cc \
       SynTree/CompoundStmt.cc \
       SynTree/Constant.cc \
+      SynTree/Constant.h \
+      SynTree/Declaration.cc \
+      SynTree/Declaration.h \
+      SynTree/DeclarationWithType.cc \
       SynTree/DeclReplacer.cc \
+      SynTree/DeclReplacer.h \
       SynTree/DeclStmt.cc \
-      SynTree/Declaration.cc \
-      SynTree/DeclarationWithType.cc \
       SynTree/Expression.cc \
+      SynTree/Expression.h \
       SynTree/FunctionDecl.cc \
       SynTree/FunctionType.cc \
       SynTree/Initializer.cc \
+      SynTree/Initializer.h \
+      SynTree/Label.h \
       SynTree/LinkageSpec.cc \
+      SynTree/LinkageSpec.h \
+      SynTree/Mutator.h \
       SynTree/NamedTypeDecl.cc \
       SynTree/ObjectDecl.cc \
@@ -41,4 +51,6 @@
       SynTree/ReferenceType.cc \
       SynTree/Statement.cc \
+      SynTree/Statement.h \
+      SynTree/SynTree.h \
       SynTree/TupleExpr.cc \
       SynTree/TupleType.cc \
@@ -46,7 +58,10 @@
       SynTree/TypeDecl.cc \
       SynTree/TypeExpr.cc \
+      SynTree/Type.h \
+      SynTree/TypeofType.cc \
       SynTree/TypeSubstitution.cc \
-      SynTree/TypeofType.cc \
+      SynTree/TypeSubstitution.h \
       SynTree/VarArgsType.cc \
+      SynTree/Visitor.h \
       SynTree/VoidType.cc \
       SynTree/ZeroOneType.cc
Index: src/Tuples/module.mk
===================================================================
--- src/Tuples/module.mk	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ src/Tuples/module.mk	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -15,6 +15,13 @@
 ###############################################################################
 
-SRC += Tuples/TupleAssignment.cc Tuples/TupleExpansion.cc Tuples/Explode.cc \
-	Tuples/Tuples.cc
-SRCDEMANGLE += Tuples/TupleAssignment.cc Tuples/TupleExpansion.cc Tuples/Explode.cc \
-	Tuples/Tuples.cc
+SRC_TUPLES = \
+	Tuples/Explode.cc \
+	Tuples/Explode.h \
+	Tuples/TupleAssignment.cc \
+	Tuples/TupleExpansion.cc \
+	Tuples/Tuples.cc \
+	Tuples/Tuples.h
+
+
+SRC += $(SRC_TUPLES)
+SRCDEMANGLE += $(SRC_TUPLES)
Index: src/Validate/module.mk
===================================================================
--- src/Validate/module.mk	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ src/Validate/module.mk	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -15,4 +15,4 @@
 ###############################################################################
 
-SRC += Validate/HandleAttributes.cc Validate/FindSpecialDecls.cc
-SRCDEMANGLE += Validate/HandleAttributes.cc Validate/FindSpecialDecls.cc
+SRC += Validate/HandleAttributes.cc Validate/HandleAttributes.h Validate/FindSpecialDecls.cc Validate/FindSpecialDecls.h
+SRCDEMANGLE += Validate/HandleAttributes.cc Validate/HandleAttributes.h Validate/FindSpecialDecls.cc Validate/FindSpecialDecls.h
Index: src/Virtual/module.mk
===================================================================
--- src/Virtual/module.mk	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ src/Virtual/module.mk	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -15,3 +15,3 @@
 ###############################################################################
 
-SRC += Virtual/ExpandCasts.cc
+SRC += Virtual/ExpandCasts.cc Virtual/ExpandCasts.h
Index: tests/.expect/abs.arm64.txt
===================================================================
--- tests/.expect/abs.arm64.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
+++ tests/.expect/abs.arm64.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -0,0 +1,10 @@
+char			-65	abs 65
+signed int		-65	abs 65
+signed long int		-65	abs 65
+signed long long int	-65	abs 65
+float			-65.	abs 65.
+double			-65.	abs 65.
+long double		-65.	abs 65.
+float _Complex		-65.-2.i	abs 65.0308
+double _Complex		-65.-2.i	abs 65.0307619515564
+long double _Complex	-65.-2.i	abs 65.0307619515564341507579207499533
Index: sts/.expect/abs.txt
===================================================================
--- tests/.expect/abs.txt	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ 	(revision )
@@ -1,10 +1,0 @@
-char			-65	abs 65
-signed int		-65	abs 65
-signed long int		-65	abs 65
-signed long long int	-65	abs 65
-float			-65.	abs 65.
-double			-65.	abs 65.
-long double		-65.	abs 65.
-float _Complex		-65.-2.i	abs 65.0308
-double _Complex		-65.-2.i	abs 65.0307619515564
-long double _Complex	-65.-2.i	abs 65.0307619515564342
Index: tests/.expect/abs.x64.txt
===================================================================
--- tests/.expect/abs.x64.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
+++ tests/.expect/abs.x64.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -0,0 +1,10 @@
+char			-65	abs 65
+signed int		-65	abs 65
+signed long int		-65	abs 65
+signed long long int	-65	abs 65
+float			-65.	abs 65.
+double			-65.	abs 65.
+long double		-65.	abs 65.
+float _Complex		-65.-2.i	abs 65.0308
+double _Complex		-65.-2.i	abs 65.0307619515564
+long double _Complex	-65.-2.i	abs 65.0307619515564342
Index: tests/.expect/abs.x86.txt
===================================================================
--- tests/.expect/abs.x86.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
+++ tests/.expect/abs.x86.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -0,0 +1,10 @@
+char			-65	abs 65
+signed int		-65	abs 65
+signed long int		-65	abs 65
+signed long long int	-65	abs 65
+float			-65.	abs 65.
+double			-65.	abs 65.
+long double		-65.	abs 65.
+float _Complex		-65.-2.i	abs 65.0308
+double _Complex		-65.-2.i	abs 65.0307619515564
+long double _Complex	-65.-2.i	abs 65.0307619515564342
Index: tests/.expect/ato.arm64.txt
===================================================================
--- tests/.expect/ato.arm64.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
+++ tests/.expect/ato.arm64.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -0,0 +1,27 @@
+-123 -123
+123 123
+-123 -123
+123 123
+-123 -123
+123 123
+-123.456 -123.456
+-123.456789012346 -123.4567890123456
+-123.45678901234567890123456789 -123.45678901234567890123456789
+-123.456-123.456i -123.456-123.456i
+-123.456789012346+123.456789012346i -123.4567890123456+123.4567890123456i
+123.45678901234567890123456789-123.45678901234567890123456789i 123.45678901234567890123456789-123.45678901234567890123456789i
+123.45678901234-123.456789i 123.45678901234-123.4567890i
+-123 -123
+123 123
+-123 -123
+123 123
+-123 -123
+123 123
+-123.456 -123.456
+-123.456789012346 -123.4567890123456
+-123.45678901234567890123456789 -123.45678901234567890123456789
+-123.456-123.456i -123.456-123.456i
+0.+0.i 2  3
+-123.456789012346+123.456789012346i -123.4567890123456+123.4567890123456i
+123.45678901234567890123456789-123.45678901234567890123456789i 123.45678901234567890123456789-123.45678901234567890123456789i
+123.45678901234-123.456789i 123.45678901234-123.4567890i
Index: sts/.expect/ato.txt
===================================================================
--- tests/.expect/ato.txt	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ 	(revision )
@@ -1,27 +1,0 @@
--123 -123
-123 123
--123 -123
-123 123
--123 -123
-123 123
--123.456 -123.456
--123.456789012346 -123.4567890123456
--123.456789012345679 -123.45678901234567890123456789
--123.456-123.456i -123.456-123.456i
--123.456789012346+123.456789012346i -123.4567890123456+123.4567890123456i
-123.456789012345679-123.456789012345679i 123.45678901234567890123456789-123.45678901234567890123456789i
-123.45678901234-123.456789i 123.45678901234-123.4567890i
--123 -123
-123 123
--123 -123
-123 123
--123 -123
-123 123
--123.456 -123.456
--123.456789012346 -123.4567890123456
--123.456789012345679 -123.45678901234567890123456789
--123.456-123.456i -123.456-123.456i
-0.+0.i 2  3
--123.456789012346+123.456789012346i -123.4567890123456+123.4567890123456i
-123.456789012345679-123.456789012345679i 123.45678901234567890123456789-123.45678901234567890123456789i
-123.45678901234-123.456789i 123.45678901234-123.4567890i
Index: tests/.expect/ato.x64.txt
===================================================================
--- tests/.expect/ato.x64.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
+++ tests/.expect/ato.x64.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -0,0 +1,27 @@
+-123 -123
+123 123
+-123 -123
+123 123
+-123 -123
+123 123
+-123.456 -123.456
+-123.456789012346 -123.4567890123456
+-123.456789012345679 -123.45678901234567890123456789
+-123.456-123.456i -123.456-123.456i
+-123.456789012346+123.456789012346i -123.4567890123456+123.4567890123456i
+123.456789012345679-123.456789012345679i 123.45678901234567890123456789-123.45678901234567890123456789i
+123.45678901234-123.456789i 123.45678901234-123.4567890i
+-123 -123
+123 123
+-123 -123
+123 123
+-123 -123
+123 123
+-123.456 -123.456
+-123.456789012346 -123.4567890123456
+-123.456789012345679 -123.45678901234567890123456789
+-123.456-123.456i -123.456-123.456i
+0.+0.i 2  3
+-123.456789012346+123.456789012346i -123.4567890123456+123.4567890123456i
+123.456789012345679-123.456789012345679i 123.45678901234567890123456789-123.45678901234567890123456789i
+123.45678901234-123.456789i 123.45678901234-123.4567890i
Index: tests/.expect/ato.x86.txt
===================================================================
--- tests/.expect/ato.x86.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
+++ tests/.expect/ato.x86.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -0,0 +1,27 @@
+-123 -123
+123 123
+-123 -123
+123 123
+-123 -123
+123 123
+-123.456 -123.456
+-123.456789012346 -123.4567890123456
+-123.456789012345679 -123.45678901234567890123456789
+-123.456-123.456i -123.456-123.456i
+-123.456789012346+123.456789012346i -123.4567890123456+123.4567890123456i
+123.456789012345679-123.456789012345679i 123.45678901234567890123456789-123.45678901234567890123456789i
+123.45678901234-123.456789i 123.45678901234-123.4567890i
+-123 -123
+123 123
+-123 -123
+123 123
+-123 -123
+123 123
+-123.456 -123.456
+-123.456789012346 -123.4567890123456
+-123.456789012345679 -123.45678901234567890123456789
+-123.456-123.456i -123.456-123.456i
+0.+0.i 2  3
+-123.456789012346+123.456789012346i -123.4567890123456+123.4567890123456i
+123.456789012345679-123.456789012345679i 123.45678901234567890123456789-123.45678901234567890123456789i
+123.45678901234-123.456789i 123.45678901234-123.4567890i
Index: tests/.expect/castError.txt
===================================================================
--- tests/.expect/castError.txt	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ tests/.expect/castError.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -3,6 +3,4 @@
   Name: f
 ... to:
-  char
-with resolved type:
   char Alternatives are:
 Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
@@ -11,12 +9,5 @@
       ... returning nothing
 
-      with resolved type:
-        pointer to function
-          accepting unspecified arguments
-        ... returning nothing
-
     ... to:
-      char
-    with resolved type:
       char
   (types:
@@ -27,9 +18,5 @@
 Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
       Variable Expression: f: double
-      with resolved type:
-        double
     ... to:
-      char
-    with resolved type:
       char
   (types:
@@ -40,9 +27,5 @@
 Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
       Variable Expression: f: signed int
-      with resolved type:
-        signed int
     ... to:
-      char
-    with resolved type:
       char
   (types:
@@ -56,23 +39,11 @@
   Comma Expression:
     constant expression (3 3: signed int)
-    with resolved type:
-      signed int
     Name: v
-... to: nothing
-with resolved type:
-  void  Alternatives are:
+... to: nothing Alternatives are:
 Cost ( 0, 0, 2, 0, 0, 0, 0 ): Generated Cast of:
       Comma Expression:
         constant expression (3 3: signed int)
-        with resolved type:
-          signed int
         Variable Expression: v: unsigned char
-        with resolved type:
-          unsigned char
-      with resolved type:
-        unsigned char
     ... to: nothing
-    with resolved type:
-      void 
   (types:
     void 
@@ -83,14 +54,6 @@
       Comma Expression:
         constant expression (3 3: signed int)
-        with resolved type:
-          signed int
         Variable Expression: v: signed short int
-        with resolved type:
-          signed short int
-      with resolved type:
-        signed short int
     ... to: nothing
-    with resolved type:
-      void 
   (types:
     void 
@@ -106,7 +69,2 @@
     char
 
-with resolved type:
-  instance of struct S with body 1
-  ... with parameters
-    char
-
Index: tests/.expect/init1.txt
===================================================================
--- tests/.expect/init1.txt	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ tests/.expect/init1.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -11,6 +11,4 @@
 ... to:
   reference to signed int
-with resolved type:
-  reference to signed int
 init1.cfa:97:1 error: No reasonable alternatives for expression Applying untyped:
   Name: ?{}
@@ -18,9 +16,5 @@
   Generated Cast of:
     Variable Expression: _retval_f_py: pointer to signed int
-    with resolved type:
-      pointer to signed int
   ... to:
-    reference to pointer to signed int
-  with resolved type:
     reference to pointer to signed int
   Name: px
@@ -30,6 +24,4 @@
 ... to:
   reference to float
-with resolved type:
-  reference to float
 init1.cfa:107:1 error: No reasonable alternatives for expression Applying untyped:
   Name: ?{}
@@ -37,9 +29,5 @@
   Generated Cast of:
     Variable Expression: _retval_f_py2: pointer to float
-    with resolved type:
-      pointer to float
   ... to:
-    reference to pointer to float
-  with resolved type:
     reference to pointer to float
   Name: cpx
@@ -49,6 +37,4 @@
 ... to:
   reference to instance of type T (not function type)
-with resolved type:
-  reference to instance of type T (not function type)
 init1.cfa:118:1 error: No reasonable alternatives for expression Applying untyped:
   Name: ?{}
@@ -56,9 +42,5 @@
   Generated Cast of:
     Variable Expression: _retval_anycvt: pointer to instance of type T (not function type)
-    with resolved type:
-      pointer to instance of type T (not function type)
   ... to:
-    reference to pointer to instance of type T (not function type)
-  with resolved type:
     reference to pointer to instance of type T (not function type)
   Name: s
Index: tests/.expect/manipulatorsOutput1.arm64.txt
===================================================================
--- tests/.expect/manipulatorsOutput1.arm64.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
+++ tests/.expect/manipulatorsOutput1.arm64.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -0,0 +1,50 @@
+signed char
+-12 -12   -12 -12   364 0364 f4 0xf4     0xf4 0x00000000f4    0X0F4 -012     -0000012
+-12 -12   -12 -12   364 0364 f4 0xf4     0xf4 0x00000000f4    0X0F4 -012     -0000012
+unsigned char
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+signed short int
+-12 -12   -12 -12   177764 0177764 fff4 0xfff4   0xfff4 0x000000fff4   0XFFF4 -012     -0000012
+-12 -12   -12 -12   177764 0177764 fff4 0xfff4   0xfff4 0x000000fff4   0XFFF4 -012     -0000012
+unsigned short int
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+signed int
+-12 -12   -12 -12   37777777764 037777777764 fffffff4 0xfffffff4 0xfffffff4 0x00fffffff4 0XFFFFFFF4 -012     -0000012
+-12 -12   -12 -12   37777777764 037777777764 fffffff4 0xfffffff4 0xfffffff4 0x00fffffff4 0XFFFFFFF4 -012     -0000012
+unsigned int
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+signed long long int
+-12 -12   -12 -12   1777777777777777777764 01777777777777777777764 fffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0XFFFFFFFFFFFFFFF4 -012     -0000012
+-12 -12   -12 -12   1777777777777777777764 01777777777777777777764 fffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0XFFFFFFFFFFFFFFF4 -012     -0000012
+unsigned long long int
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+
+binary integral
+0b0 0b1101 0B1101 1101 0b1101     0b1101 0b1101   0b001101 0b0000001101 0b001101
+
+float
+0         3  3.00000 3.537    3.537        4       4.      3.5      3.5 3        3.5      3.5      +3.5     +3.5     000003.5 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+0. 3.000000 3.000000 3.537 3.537000        4        4      3.5      3.5 3.       3.5      3.5      +3.5     +3.5     000003.5 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+double
+0  3.000000 3.537 3.537000       4.        4     3.54 3.54     +3.54    00003.54 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+0. 3.000000 3.537 3.537000        4       4.     3.54 3.54     +3.54    00003.54 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+long double
+0  3.000000 3.537 3.537000       4.        4     3.54 3.54     +3.54    00003.54 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+0. 3.000000 3.53699999999999992184029906638898 3.537000        4       4.     3.54 3.54     +3.54    00003.54 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+
+char
+a  a     a a     141 0141 61 0x61     0x61     0X61 a               a
+a  a     a a     141 0141 61 0x61     0x61     0X61 a               a
+
+string
+abcd     abcd   abcd abcd    
+abcd     abcd   abcd abcd    
+
+binary string
+0b110000 0b1100001 0b1100010 0b1100011 0b1100100 0141 0142 0143 0144 0x61 0x62 0x63 0x64
+110000 1100001 1100010 1100011 1100100 141 142 143 144 61 62 63 64
+  110000  1100001  1100010  1100011  1100100  141  142  143  144  61  62  63  64
Index: sts/.expect/manipulatorsOutput1.txt
===================================================================
--- tests/.expect/manipulatorsOutput1.txt	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ 	(revision )
@@ -1,50 +1,0 @@
-signed char
--12 -12   -12 -12   364 0364 f4 0xf4     0xf4 0x00000000f4    0X0F4 -012     -0000012
--12 -12   -12 -12   364 0364 f4 0xf4     0xf4 0x00000000f4    0X0F4 -012     -0000012
-unsigned char
-12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
-12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
-signed short int
--12 -12   -12 -12   177764 0177764 fff4 0xfff4   0xfff4 0x000000fff4   0XFFF4 -012     -0000012
--12 -12   -12 -12   177764 0177764 fff4 0xfff4   0xfff4 0x000000fff4   0XFFF4 -012     -0000012
-unsigned short int
-12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
-12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
-signed int
--12 -12   -12 -12   37777777764 037777777764 fffffff4 0xfffffff4 0xfffffff4 0x00fffffff4 0XFFFFFFF4 -012     -0000012
--12 -12   -12 -12   37777777764 037777777764 fffffff4 0xfffffff4 0xfffffff4 0x00fffffff4 0XFFFFFFF4 -012     -0000012
-unsigned int
-12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
-12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
-signed long long int
--12 -12   -12 -12   1777777777777777777764 01777777777777777777764 fffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0XFFFFFFFFFFFFFFF4 -012     -0000012
--12 -12   -12 -12   1777777777777777777764 01777777777777777777764 fffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0XFFFFFFFFFFFFFFF4 -012     -0000012
-unsigned long long int
-12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
-12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
-
-binary integral
-0b0 0b1101 0B1101 1101 0b1101     0b1101 0b1101   0b001101 0b0000001101 0b001101
-
-float
-0         3  3.00000 3.537    3.537        4       4.      3.5      3.5 3        3.5      3.5      +3.5     +3.5     000003.5 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
-0. 3.000000 3.000000 3.537 3.537000        4        4      3.5      3.5 3.       3.5      3.5      +3.5     +3.5     000003.5 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
-double
-0  3.000000 3.537 3.537000       4.        4     3.54 3.54     +3.54    00003.54 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
-0. 3.000000 3.537 3.537000        4       4.     3.54 3.54     +3.54    00003.54 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
-long double
-0  3.000000 3.537 3.537000       4.        4     3.54 3.54     +3.54    00003.54 3.54E+00 0xe.26p-2 0XE.26P-2 3.54e+00
-0. 3.000000 3.53699999999999992 3.537000        4       4.     3.54 3.54     +3.54    00003.54 3.54E+00 0xe.26p-2 0XE.26P-2 3.54e+00
-
-char
-a  a     a a     141 0141 61 0x61     0x61     0X61 a               a
-a  a     a a     141 0141 61 0x61     0x61     0X61 a               a
-
-string
-abcd     abcd   abcd abcd    
-abcd     abcd   abcd abcd    
-
-binary string
-0b110000 0b1100001 0b1100010 0b1100011 0b1100100 0141 0142 0143 0144 0x61 0x62 0x63 0x64
-110000 1100001 1100010 1100011 1100100 141 142 143 144 61 62 63 64
-  110000  1100001  1100010  1100011  1100100  141  142  143  144  61  62  63  64
Index: tests/.expect/manipulatorsOutput1.x64.txt
===================================================================
--- tests/.expect/manipulatorsOutput1.x64.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
+++ tests/.expect/manipulatorsOutput1.x64.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -0,0 +1,50 @@
+signed char
+-12 -12   -12 -12   364 0364 f4 0xf4     0xf4 0x00000000f4    0X0F4 -012     -0000012
+-12 -12   -12 -12   364 0364 f4 0xf4     0xf4 0x00000000f4    0X0F4 -012     -0000012
+unsigned char
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+signed short int
+-12 -12   -12 -12   177764 0177764 fff4 0xfff4   0xfff4 0x000000fff4   0XFFF4 -012     -0000012
+-12 -12   -12 -12   177764 0177764 fff4 0xfff4   0xfff4 0x000000fff4   0XFFF4 -012     -0000012
+unsigned short int
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+signed int
+-12 -12   -12 -12   37777777764 037777777764 fffffff4 0xfffffff4 0xfffffff4 0x00fffffff4 0XFFFFFFF4 -012     -0000012
+-12 -12   -12 -12   37777777764 037777777764 fffffff4 0xfffffff4 0xfffffff4 0x00fffffff4 0XFFFFFFF4 -012     -0000012
+unsigned int
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+signed long long int
+-12 -12   -12 -12   1777777777777777777764 01777777777777777777764 fffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0XFFFFFFFFFFFFFFF4 -012     -0000012
+-12 -12   -12 -12   1777777777777777777764 01777777777777777777764 fffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0XFFFFFFFFFFFFFFF4 -012     -0000012
+unsigned long long int
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+
+binary integral
+0b0 0b1101 0B1101 1101 0b1101     0b1101 0b1101   0b001101 0b0000001101 0b001101
+
+float
+0         3  3.00000 3.537    3.537        4       4.      3.5      3.5 3        3.5      3.5      +3.5     +3.5     000003.5 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+0. 3.000000 3.000000 3.537 3.537000        4        4      3.5      3.5 3.       3.5      3.5      +3.5     +3.5     000003.5 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+double
+0  3.000000 3.537 3.537000       4.        4     3.54 3.54     +3.54    00003.54 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+0. 3.000000 3.537 3.537000        4       4.     3.54 3.54     +3.54    00003.54 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+long double
+0  3.000000 3.537 3.537000       4.        4     3.54 3.54     +3.54    00003.54 3.54E+00 0xe.26p-2 0XE.26P-2 3.54e+00
+0. 3.000000 3.53699999999999992 3.537000        4       4.     3.54 3.54     +3.54    00003.54 3.54E+00 0xe.26p-2 0XE.26P-2 3.54e+00
+
+char
+a  a     a a     141 0141 61 0x61     0x61     0X61 a               a
+a  a     a a     141 0141 61 0x61     0x61     0X61 a               a
+
+string
+abcd     abcd   abcd abcd    
+abcd     abcd   abcd abcd    
+
+binary string
+0b110000 0b1100001 0b1100010 0b1100011 0b1100100 0141 0142 0143 0144 0x61 0x62 0x63 0x64
+110000 1100001 1100010 1100011 1100100 141 142 143 144 61 62 63 64
+  110000  1100001  1100010  1100011  1100100  141  142  143  144  61  62  63  64
Index: tests/.expect/manipulatorsOutput1.x86.txt
===================================================================
--- tests/.expect/manipulatorsOutput1.x86.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
+++ tests/.expect/manipulatorsOutput1.x86.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -0,0 +1,50 @@
+signed char
+-12 -12   -12 -12   364 0364 f4 0xf4     0xf4 0x00000000f4    0X0F4 -012     -0000012
+-12 -12   -12 -12   364 0364 f4 0xf4     0xf4 0x00000000f4    0X0F4 -012     -0000012
+unsigned char
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+signed short int
+-12 -12   -12 -12   177764 0177764 fff4 0xfff4   0xfff4 0x000000fff4   0XFFF4 -012     -0000012
+-12 -12   -12 -12   177764 0177764 fff4 0xfff4   0xfff4 0x000000fff4   0XFFF4 -012     -0000012
+unsigned short int
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+signed int
+-12 -12   -12 -12   37777777764 037777777764 fffffff4 0xfffffff4 0xfffffff4 0x00fffffff4 0XFFFFFFF4 -012     -0000012
+-12 -12   -12 -12   37777777764 037777777764 fffffff4 0xfffffff4 0xfffffff4 0x00fffffff4 0XFFFFFFF4 -012     -0000012
+unsigned int
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+signed long long int
+-12 -12   -12 -12   1777777777777777777764 01777777777777777777764 fffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0XFFFFFFFFFFFFFFF4 -012     -0000012
+-12 -12   -12 -12   1777777777777777777764 01777777777777777777764 fffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0XFFFFFFFFFFFFFFF4 -012     -0000012
+unsigned long long int
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+
+binary integral
+0b0 0b1101 0B1101 1101 0b1101     0b1101 0b1101   0b001101 0b0000001101 0b001101
+
+float
+0         3  3.00000 3.537    3.537        4       4.      3.5      3.5 3        3.5      3.5      +3.5     +3.5     000003.5 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+0. 3.000000 3.000000 3.537 3.537000        4        4      3.5      3.5 3.       3.5      3.5      +3.5     +3.5     000003.5 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+double
+0  3.000000 3.537 3.537000       4.        4     3.54 3.54     +3.54    00003.54 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+0. 3.000000 3.537 3.537000        4       4.     3.54 3.54     +3.54    00003.54 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+long double
+0  3.000000 3.537 3.537000       4.        4     3.54 3.54     +3.54    00003.54 3.54E+00 0xe.26p-2 0XE.26P-2 3.54e+00
+0. 3.000000 3.53699999999999992 3.537000        4       4.     3.54 3.54     +3.54    00003.54 3.54E+00 0xe.26p-2 0XE.26P-2 3.54e+00
+
+char
+a  a     a a     141 0141 61 0x61     0x61     0X61 a               a
+a  a     a a     141 0141 61 0x61     0x61     0X61 a               a
+
+string
+abcd     abcd   abcd abcd    
+abcd     abcd   abcd abcd    
+
+binary string
+0b110000 0b1100001 0b1100010 0b1100011 0b1100100 0141 0142 0143 0144 0x61 0x62 0x63 0x64
+110000 1100001 1100010 1100011 1100100 141 142 143 144 61 62 63 64
+  110000  1100001  1100010  1100011  1100100  141  142  143  144  61  62  63  64
Index: tests/.expect/math1.arm64.txt
===================================================================
--- tests/.expect/math1.arm64.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
+++ tests/.expect/math1.arm64.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -0,0 +1,17 @@
+fmod:1. 1. 1. 1. 1. 1.
+remainder:-1. -1. -1.
+remquo:7 0.0999999 7 0.1 7 0.1
+div:7., 0.2 7., 0.2 7., 0.2
+fma:-2. -2. -2.
+fdim:2. 2. 2.
+nan:nan nan nan
+exp:2.71828 2.71828182845905 2.71828182845904523536028747135266 1.46869+2.28736i 1.46869393991589+2.28735528717884i 1.4686939399158851571389675973266+2.2873552871788423912081719067005i
+exp2:2. 2. 2.
+expm1:1.71828 1.71828182845905 1.71828182845904523536028747135266
+pow:1. 1. 1. 0.273957+0.583701i 0.273957253830121+0.583700758758615i -0.638110484918098870780956742879583+0.705394566961838155200168314152112i
+16 \ 2 = 256
+912673 256 64 -64 0 0
+0.015625 -0.015625 18.3791736799526 0.264715-1.1922i
+0 0 18.3791736799526 0.264715-1.1922i
+16
+4 16
Index: sts/.expect/math1.txt
===================================================================
--- tests/.expect/math1.txt	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ 	(revision )
@@ -1,17 +1,0 @@
-fmod:1. 1. 1. 1. 1. 1.
-remainder:-1. -1. -1.
-remquo:7 0.0999999 7 0.1 7 0.0999999999999999999
-div:7., 0.2 7., 0.2 7., 0.2
-fma:-2. -2. -2.
-fdim:2. 2. 2.
-nan:nan nan nan
-exp:2.71828 2.71828182845905 2.71828182845904524 1.46869+2.28736i 1.46869393991589+2.28735528717884i 1.46869393991588516+2.28735528717884239i
-exp2:2. 2. 2.
-expm1:1.71828 1.71828182845905 1.71828182845904524
-pow:1. 1. 1. 0.273957+0.583701i 0.273957253830121+0.583700758758615i -0.638110484918098871+0.705394566961838155i
-16 \ 2 = 256
-912673 256 64 -64 0 0
-0.015625 -0.015625 18.3791736799526 0.264715-1.1922i
-0 0 18.3791736799526 0.264715-1.1922i
-16
-4 16
Index: tests/.expect/math1.x64.txt
===================================================================
--- tests/.expect/math1.x64.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
+++ tests/.expect/math1.x64.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -0,0 +1,17 @@
+fmod:1. 1. 1. 1. 1. 1.
+remainder:-1. -1. -1.
+remquo:7 0.0999999 7 0.1 7 0.0999999999999999999
+div:7., 0.2 7., 0.2 7., 0.2
+fma:-2. -2. -2.
+fdim:2. 2. 2.
+nan:nan nan nan
+exp:2.71828 2.71828182845905 2.71828182845904524 1.46869+2.28736i 1.46869393991589+2.28735528717884i 1.46869393991588516+2.28735528717884239i
+exp2:2. 2. 2.
+expm1:1.71828 1.71828182845905 1.71828182845904524
+pow:1. 1. 1. 0.273957+0.583701i 0.273957253830121+0.583700758758615i -0.638110484918098871+0.705394566961838155i
+16 \ 2 = 256
+912673 256 64 -64 0 0
+0.015625 -0.015625 18.3791736799526 0.264715-1.1922i
+0 0 18.3791736799526 0.264715-1.1922i
+16
+4 16
Index: tests/.expect/math1.x86.txt
===================================================================
--- tests/.expect/math1.x86.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
+++ tests/.expect/math1.x86.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -0,0 +1,17 @@
+fmod:1. 1. 1. 1. 1. 1.
+remainder:-1. -1. -1.
+remquo:7 0.0999999 7 0.1 7 0.0999999999999999999
+div:7., 0.2 7., 0.2 7., 0.2
+fma:-2. -2. -2.
+fdim:2. 2. 2.
+nan:nan nan nan
+exp:2.71828 2.71828182845905 2.71828182845904524 1.46869+2.28736i 1.46869393991589+2.28735528717884i 1.46869393991588516+2.28735528717884239i
+exp2:2. 2. 2.
+expm1:1.71828 1.71828182845905 1.71828182845904524
+pow:1. 1. 1. 0.273957+0.583701i 0.273957253830121+0.583700758758615i -0.638110484918098871+0.705394566961838155i
+16 \ 2 = 256
+912673 256 64 -64 0 0
+0.015625 -0.015625 18.3791736799526 0.264715-1.1922i
+0 0 18.3791736799526 0.264715-1.1922i
+16
+4 16
Index: tests/.expect/math2.arm64.txt
===================================================================
--- tests/.expect/math2.arm64.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
+++ tests/.expect/math2.arm64.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -0,0 +1,16 @@
+log:0. 0. 0. 0.346574+0.785398i 0.346573590279973+0.785398163397448i 0.346573590279972654708616060729088+0.785398163397448309615660845819876i
+log2:3. 3. 3.
+log10:2. 2. 2.
+log1p:0.693147 0.693147180559945 0.693147180559945309417232121458177
+ilogb:0 0 0
+logb:3. 3. 3.
+sqrt:1. 1. 1. 1.09868+0.45509i 1.09868411346781+0.455089860562227i 1.09868411346780996603980119524068+0.455089860562227341304357757822469i
+cbrt:3. 3. 3.
+hypot:1.41421 1.4142135623731 1.4142135623730950488016887242097
+sin:0.841471 0.841470984807897 0.841470984807896506652502321630299 1.29846+0.634964i 1.29845758141598+0.634963914784736i 1.29845758141597729482604236580782+0.63496391478473610825508220299151i
+cos:0.540302 0.54030230586814 0.540302305868139717400936607442977 0.83373-0.988898i 0.833730025131149-0.988897705762865i 0.833730025131149048883885394335094-0.988897705762865096382129540892686i
+tan:1.55741 1.5574077246549 1.55740772465490223050697480745836 0.271753+1.08392i 0.271752585319512+1.08392332733869i 0.271752585319511716528843722498589+1.08392332733869454347575206121197i
+asin:1.5708 1.5707963267949 1.57079632679489661923132169163975 0.666239+1.06128i 0.666239432492515+1.06127506190504i 0.666239432492515255104004895977793+1.06127506190503565203301891621357i
+acos:0. 0. 0. 0.904557-1.06128i 0.904556894302381-1.06127506190504i 0.904556894302381364127316795661959-1.06127506190503565203301891621357i
+atan:0.785398 0.785398163397448 0.785398163397448309615660845819876 1.01722+0.402359i 1.01722196789785+0.402359478108525i 1.01722196789785136772278896155048+0.402359478108525093650189833306547i
+atan2:0.785398 0.785398163397448 0.785398163397448309615660845819876 atan:0.785398 0.785398163397448 0.785398163397448309615660845819876
Index: sts/.expect/math2.txt
===================================================================
--- tests/.expect/math2.txt	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ 	(revision )
@@ -1,16 +1,0 @@
-log:0. 0. 0. 0.346574+0.785398i 0.346573590279973+0.785398163397448i 0.346573590279972655+0.78539816339744831i
-log2:3. 3. 3.
-log10:2. 2. 2.
-log1p:0.693147 0.693147180559945 0.693147180559945309
-ilogb:0 0 0
-logb:3. 3. 3.
-sqrt:1. 1. 1. 1.09868+0.45509i 1.09868411346781+0.455089860562227i 1.09868411346780997+0.455089860562227341i
-cbrt:3. 3. 3.
-hypot:1.41421 1.4142135623731 1.41421356237309505
-sin:0.841471 0.841470984807897 0.841470984807896507 1.29846+0.634964i 1.29845758141598+0.634963914784736i 1.29845758141597729+0.634963914784736108i
-cos:0.540302 0.54030230586814 0.540302305868139717 0.83373-0.988898i 0.833730025131149-0.988897705762865i 0.833730025131149049-0.988897705762865096i
-tan:1.55741 1.5574077246549 1.55740772465490223 0.271753+1.08392i 0.271752585319512+1.08392332733869i 0.271752585319511717+1.08392332733869454i
-asin:1.5708 1.5707963267949 1.57079632679489662 0.666239+1.06128i 0.666239432492515+1.06127506190504i 0.666239432492515255+1.06127506190503565i
-acos:0. 0. 0. 0.904557-1.06128i 0.904556894302381-1.06127506190504i 0.904556894302381364-1.06127506190503565i
-atan:0.785398 0.785398163397448 0.78539816339744831 1.01722+0.402359i 1.01722196789785+0.402359478108525i 1.01722196789785137+0.402359478108525094i
-atan2:0.785398 0.785398163397448 0.78539816339744831 atan:0.785398 0.785398163397448 0.78539816339744831
Index: tests/.expect/math2.x64.txt
===================================================================
--- tests/.expect/math2.x64.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
+++ tests/.expect/math2.x64.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -0,0 +1,16 @@
+log:0. 0. 0. 0.346574+0.785398i 0.346573590279973+0.785398163397448i 0.346573590279972655+0.78539816339744831i
+log2:3. 3. 3.
+log10:2. 2. 2.
+log1p:0.693147 0.693147180559945 0.693147180559945309
+ilogb:0 0 0
+logb:3. 3. 3.
+sqrt:1. 1. 1. 1.09868+0.45509i 1.09868411346781+0.455089860562227i 1.09868411346780997+0.455089860562227341i
+cbrt:3. 3. 3.
+hypot:1.41421 1.4142135623731 1.41421356237309505
+sin:0.841471 0.841470984807897 0.841470984807896507 1.29846+0.634964i 1.29845758141598+0.634963914784736i 1.29845758141597729+0.634963914784736108i
+cos:0.540302 0.54030230586814 0.540302305868139717 0.83373-0.988898i 0.833730025131149-0.988897705762865i 0.833730025131149049-0.988897705762865096i
+tan:1.55741 1.5574077246549 1.55740772465490223 0.271753+1.08392i 0.271752585319512+1.08392332733869i 0.271752585319511717+1.08392332733869454i
+asin:1.5708 1.5707963267949 1.57079632679489662 0.666239+1.06128i 0.666239432492515+1.06127506190504i 0.666239432492515255+1.06127506190503565i
+acos:0. 0. 0. 0.904557-1.06128i 0.904556894302381-1.06127506190504i 0.904556894302381364-1.06127506190503565i
+atan:0.785398 0.785398163397448 0.78539816339744831 1.01722+0.402359i 1.01722196789785+0.402359478108525i 1.01722196789785137+0.402359478108525094i
+atan2:0.785398 0.785398163397448 0.78539816339744831 atan:0.785398 0.785398163397448 0.78539816339744831
Index: tests/.expect/math2.x86.txt
===================================================================
--- tests/.expect/math2.x86.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
+++ tests/.expect/math2.x86.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -0,0 +1,16 @@
+log:0. 0. 0. 0.346574+0.785398i 0.346573590279973+0.785398163397448i 0.346573590279972655+0.78539816339744831i
+log2:3. 3. 3.
+log10:2. 2. 2.
+log1p:0.693147 0.693147180559945 0.693147180559945309
+ilogb:0 0 0
+logb:3. 3. 3.
+sqrt:1. 1. 1. 1.09868+0.45509i 1.09868411346781+0.455089860562227i 1.09868411346780997+0.455089860562227341i
+cbrt:3. 3. 3.
+hypot:1.41421 1.4142135623731 1.41421356237309505
+sin:0.841471 0.841470984807897 0.841470984807896507 1.29846+0.634964i 1.29845758141598+0.634963914784736i 1.29845758141597729+0.634963914784736108i
+cos:0.540302 0.54030230586814 0.540302305868139717 0.83373-0.988898i 0.833730025131149-0.988897705762865i 0.833730025131149049-0.988897705762865096i
+tan:1.55741 1.5574077246549 1.55740772465490223 0.271753+1.08392i 0.271752585319512+1.08392332733869i 0.271752585319511717+1.08392332733869454i
+asin:1.5708 1.5707963267949 1.57079632679489662 0.666239+1.06128i 0.666239432492515+1.06127506190504i 0.666239432492515255+1.06127506190503565i
+acos:0. 0. 0. 0.904557-1.06128i 0.904556894302381-1.06127506190504i 0.904556894302381364-1.06127506190503565i
+atan:0.785398 0.785398163397448 0.78539816339744831 1.01722+0.402359i 1.01722196789785+0.402359478108525i 1.01722196789785137+0.402359478108525094i
+atan2:0.785398 0.785398163397448 0.78539816339744831 atan:0.785398 0.785398163397448 0.78539816339744831
Index: tests/.expect/math3.arm64.txt
===================================================================
--- tests/.expect/math3.arm64.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
+++ tests/.expect/math3.arm64.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -0,0 +1,11 @@
+sinh:1.1752 1.1752011936438 1.1752011936438014568823818505956 0.634964+1.29846i 0.634963914784736+1.29845758141598i 0.63496391478473610825508220299151+1.29845758141597729482604236580782i
+cosh:1.54308 1.54308063481524 1.54308063481524377847790562075706 0.83373+0.988898i 0.833730025131149+0.988897705762865i 0.833730025131149048883885394335094+0.988897705762865096382129540892686i
+tanh:0.761594 0.761594155955765 0.761594155955764888119458282604794 1.08392+0.271753i 1.08392332733869+0.271752585319512i 1.08392332733869454347575206121197+0.271752585319511716528843722498589i
+acosh:0. 0. 0. 1.06128+0.904557i 1.06127506190504+0.904556894302381i 1.06127506190503565203301891621357+0.904556894302381364127316795661959i
+asinh:0.881374 0.881373587019543 0.881373587019543025232609324979792 1.06128+0.666239i 1.06127506190504+0.666239432492515i 1.06127506190503565203301891621357+0.666239432492515255104004895977793i
+atanh:inf inf inf 0.402359+1.01722i 0.402359478108525+1.01722196789785i 0.402359478108525093650189833306547+1.01722196789785136772278896155048i
+erf:0.842701 0.842700792949715 0.842700792949714869341220635082609
+erfc:0.157299 0.157299207050285 0.157299207050285130658779364917391
+lgamma:1.79176 1.79175946922805 1.7917594692280550008124773583807
+lgamma:1.79176 1 1.79175946922805 1 1.7917594692280550008124773583807 1
+tgamma:6. 6. 6.
Index: sts/.expect/math3.txt
===================================================================
--- tests/.expect/math3.txt	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ 	(revision )
@@ -1,11 +1,0 @@
-sinh:1.1752 1.1752011936438 1.17520119364380146 0.634964+1.29846i 0.634963914784736+1.29845758141598i 0.634963914784736108+1.29845758141597729i
-cosh:1.54308 1.54308063481524 1.54308063481524378 0.83373+0.988898i 0.833730025131149+0.988897705762865i 0.833730025131149049+0.988897705762865096i
-tanh:0.761594 0.761594155955765 0.761594155955764888 1.08392+0.271753i 1.08392332733869+0.271752585319512i 1.08392332733869454+0.271752585319511717i
-acosh:0. 0. 0. 1.06128+0.904557i 1.06127506190504+0.904556894302381i 1.06127506190503565+0.904556894302381364i
-asinh:0.881374 0.881373587019543 0.881373587019543025 1.06128+0.666239i 1.06127506190504+0.666239432492515i 1.06127506190503565+0.666239432492515255i
-atanh:inf inf inf 0.402359+1.01722i 0.402359478108525+1.01722196789785i 0.402359478108525094+1.01722196789785137i
-erf:0.842701 0.842700792949715 0.842700792949714869
-erfc:0.157299 0.157299207050285 0.157299207050285131
-lgamma:1.79176 1.79175946922805 1.791759469228055
-lgamma:1.79176 1 1.79175946922805 1 1.791759469228055 1
-tgamma:6. 6. 6.
Index: tests/.expect/math3.x64.txt
===================================================================
--- tests/.expect/math3.x64.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
+++ tests/.expect/math3.x64.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -0,0 +1,11 @@
+sinh:1.1752 1.1752011936438 1.17520119364380146 0.634964+1.29846i 0.634963914784736+1.29845758141598i 0.634963914784736108+1.29845758141597729i
+cosh:1.54308 1.54308063481524 1.54308063481524378 0.83373+0.988898i 0.833730025131149+0.988897705762865i 0.833730025131149049+0.988897705762865096i
+tanh:0.761594 0.761594155955765 0.761594155955764888 1.08392+0.271753i 1.08392332733869+0.271752585319512i 1.08392332733869454+0.271752585319511717i
+acosh:0. 0. 0. 1.06128+0.904557i 1.06127506190504+0.904556894302381i 1.06127506190503565+0.904556894302381364i
+asinh:0.881374 0.881373587019543 0.881373587019543025 1.06128+0.666239i 1.06127506190504+0.666239432492515i 1.06127506190503565+0.666239432492515255i
+atanh:inf inf inf 0.402359+1.01722i 0.402359478108525+1.01722196789785i 0.402359478108525094+1.01722196789785137i
+erf:0.842701 0.842700792949715 0.842700792949714869
+erfc:0.157299 0.157299207050285 0.157299207050285131
+lgamma:1.79176 1.79175946922805 1.791759469228055
+lgamma:1.79176 1 1.79175946922805 1 1.791759469228055 1
+tgamma:6. 6. 6.
Index: tests/.expect/math3.x86.txt
===================================================================
--- tests/.expect/math3.x86.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
+++ tests/.expect/math3.x86.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -0,0 +1,11 @@
+sinh:1.1752 1.1752011936438 1.17520119364380146 0.634964+1.29846i 0.634963914784736+1.29845758141598i 0.634963914784736108+1.29845758141597729i
+cosh:1.54308 1.54308063481524 1.54308063481524378 0.83373+0.988898i 0.833730025131149+0.988897705762865i 0.833730025131149049+0.988897705762865096i
+tanh:0.761594 0.761594155955765 0.761594155955764888 1.08392+0.271753i 1.08392332733869+0.271752585319512i 1.08392332733869454+0.271752585319511717i
+acosh:0. 0. 0. 1.06128+0.904557i 1.06127506190504+0.904556894302381i 1.06127506190503565+0.904556894302381364i
+asinh:0.881374 0.881373587019543 0.881373587019543025 1.06128+0.666239i 1.06127506190504+0.666239432492515i 1.06127506190503565+0.666239432492515255i
+atanh:inf inf inf 0.402359+1.01722i 0.402359478108525+1.01722196789785i 0.402359478108525094+1.01722196789785137i
+erf:0.842701 0.842700792949715 0.842700792949714869
+erfc:0.157299 0.157299207050285 0.157299207050285131
+lgamma:1.79176 1.79175946922805 1.791759469228055
+lgamma:1.79176 1 1.79175946922805 1 1.791759469228055 1
+tgamma:6. 6. 6.
Index: tests/.expect/random.arm64.txt
===================================================================
--- tests/.expect/random.arm64.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
+++ tests/.expect/random.arm64.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -0,0 +1,20 @@
+õ
+=
+V
+-911259971
+6
+-4
+1232105397
+0
+18
+-914096085
+1
+15
+2077092859
+1
+11
+0.677254
+0.678106775246139
+0.298107+0.951551i
+0.724141628787955+0.18815430330314i
+0.358747528448063235373410861939192+0.279138604680749580211340798996389i
Index: sts/.expect/random.txt
===================================================================
--- tests/.expect/random.txt	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ 	(revision )
@@ -1,20 +1,0 @@
-õ
-=
-V
--911259971
-6
--4
-1232105397
-0
-18
--914096085
-1
-15
-2077092859
-1
-11
-0.677254
-0.678106775246139
-0.298107+0.951551i
-0.724141628787955+0.18815430330314i
-0.358747528448063235+0.27913860468074958i
Index: tests/.expect/random.x64.txt
===================================================================
--- tests/.expect/random.x64.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
+++ tests/.expect/random.x64.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -0,0 +1,20 @@
+õ
+=
+V
+-911259971
+6
+-4
+1232105397
+0
+18
+-914096085
+1
+15
+2077092859
+1
+11
+0.677254
+0.678106775246139
+0.298107+0.951551i
+0.724141628787955+0.18815430330314i
+0.358747528448063235+0.27913860468074958i
Index: tests/.expect/random.x86.txt
===================================================================
--- tests/.expect/random.x86.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
+++ tests/.expect/random.x86.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -0,0 +1,20 @@
+õ
+=
+V
+-911259971
+6
+-4
+1232105397
+0
+18
+-914096085
+1
+15
+2077092859
+1
+11
+0.677254
+0.678106775246139
+0.298107+0.951551i
+0.724141628787955+0.18815430330314i
+0.358747528448063235+0.27913860468074958i
Index: tests/Makefile.am
===================================================================
--- tests/Makefile.am	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ tests/Makefile.am	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -67,5 +67,5 @@
 avl_test_SOURCES = avltree/avl_test.cfa avltree/avl0.cfa avltree/avl1.cfa avltree/avl2.cfa avltree/avl3.cfa avltree/avl4.cfa avltree/avl-private.cfa
 # automake doesn't know we still need C/CPP rules so pretend like we have a C program
-_dummy_hack_SOURCES = .dummy_hack.c .dummy_hackxx.cpp
+nodist__dummy_hack_SOURCES = .dummy_hack.c .dummy_hackxx.cpp
 
 #----------------------------------------------------------------------------------------------------------------
Index: tests/errors/.expect/completeType.x64.txt
===================================================================
--- tests/errors/.expect/completeType.x64.txt	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ tests/errors/.expect/completeType.x64.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -6,7 +6,5 @@
     Name: x
 
-... to: nothing
-with resolved type:
-  void  Alternatives are:
+... to: nothing Alternatives are:
 Cost ( 0, 1, 2, 0, 1, -1, 0 ): Generated Cast of:
       Application of
@@ -22,26 +20,8 @@
 
 
-        with resolved type:
-          pointer to forall
-            _90_4_DT: data type
-            function
-          ... with parameters
-            intrinsic pointer to instance of type _90_4_DT (not function type)
-          ... returning
-            _retval__operator_deref: reference to instance of type _90_4_DT (not function type)
-            ... with attributes:
-              Attribute with name: unused
-
-
       ... to arguments
         Variable Expression: x: pointer to instance of struct A with body 0
-        with resolved type:
-          pointer to instance of struct A with body 0
 
-      with resolved type:
-        reference to instance of struct A with body 0
     ... to: nothing
-    with resolved type:
-      void 
   (types:
     void 
@@ -63,26 +43,8 @@
 
 
-        with resolved type:
-          pointer to forall
-            _90_4_DT: data type
-            function
-          ... with parameters
-            intrinsic pointer to instance of type _90_4_DT (not function type)
-          ... returning
-            _retval__operator_deref: reference to instance of type _90_4_DT (not function type)
-            ... with attributes:
-              Attribute with name: unused
-
-
       ... to arguments
         Variable Expression: x: pointer to instance of struct B with body 1
-        with resolved type:
-          pointer to instance of struct B with body 1
 
-      with resolved type:
-        reference to instance of struct B with body 1
     ... to: nothing
-    with resolved type:
-      void 
   (types:
     void 
@@ -159,47 +121,7 @@
             ... returning nothing
 
-            with resolved type:
-              pointer to forall
-                _109_0_T: sized data type
-                ... with assertions
-                  ?=?: pointer to function
-                  ... with parameters
-                    reference to instance of type _109_0_T (not function type)
-                    instance of type _109_0_T (not function type)
-                  ... returning
-                    _retval__operator_assign: instance of type _109_0_T (not function type)
-                    ... with attributes:
-                      Attribute with name: unused
-
-
-                  ?{}: pointer to function
-                  ... with parameters
-                    reference to instance of type _109_0_T (not function type)
-                  ... returning nothing
-
-                  ?{}: pointer to function
-                  ... with parameters
-                    reference to instance of type _109_0_T (not function type)
-                    instance of type _109_0_T (not function type)
-                  ... returning nothing
-
-                  ^?{}: pointer to function
-                  ... with parameters
-                    reference to instance of type _109_0_T (not function type)
-                  ... returning nothing
-
-
-                function
-              ... with parameters
-                pointer to instance of type _109_0_T (not function type)
-              ... returning nothing
-
           ... to arguments
             Variable Expression: z: pointer to instance of type T (not function type)
-            with resolved type:
-              pointer to instance of type T (not function type)
 
-          with resolved type:
-            void 
         (types:
           void 
Index: tests/literals.cfa
===================================================================
--- tests/literals.cfa	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ tests/literals.cfa	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -10,6 +10,6 @@
 // Created On       : Sat Sep  9 16:34:38 2017
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Aug 20 13:51:12 2020
-// Update Count     : 225
+// Last Modified On : Sat Aug 29 10:57:56 2020
+// Update Count     : 226
 //
 
@@ -151,4 +151,5 @@
 	-0X0123456789.0123456789P-09;  -0X0123456789.0123456789P-09f;  -0X0123456789.0123456789P-09l;  -0X0123456789.0123456789P-09F;  -0X0123456789.0123456789P-09L;
 
+#if defined( __i386 ) || defined( __x86_64 )
 #if defined(__GNUC__) && __GNUC_PREREQ(7,0)				// gcc version >= 7
 // floating with length, gcc f16/f128x unsupported and no prelude code for any _FloatXXx, so they work by conversion to long double
@@ -194,4 +195,5 @@
 	/* -0x123456789.0123456789P-09F16; */  -0x123456789.0123456789P-09F32;  -0x123456789.0123456789P-09F32x;  -0x123456789.0123456789P-09F64;  -0x123456789.0123456789P-09F64x;  -0x123456789.0123456789P-09W;  -0x123456789.0123456789P-09F128;  -0x123456789.0123456789P-09q;  /* -0x123456789.0123456789P-09q; */
 #endif // __GNUC_PREREQ(7,0)
+#endif // __i386 ) || __x86_64
 
 #ifdef __CFA__
Index: tests/pybin/tools.py
===================================================================
--- tests/pybin/tools.py	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ tests/pybin/tools.py	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -238,5 +238,5 @@
 # helper function to check if a files contains only a specific string
 def file_contains_only(file, text) :
-	with open(file) as f:
+	with open(file, encoding="latin-1") as f: # use latin-1 so all chars mean something.
 		ff = f.read().strip()
 		result = ff == text.strip()
Index: tests/raii/.expect/ctor-autogen-ERR1.txt
===================================================================
--- tests/raii/.expect/ctor-autogen-ERR1.txt	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ tests/raii/.expect/ctor-autogen-ERR1.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -7,11 +7,4 @@
         x: signed int
       ... returning nothing
-
-      with resolved type:
-        function
-        ... with parameters
-          _dst: reference to instance of struct Managed with body 1
-          x: signed int
-        ... returning nothing
 
       ... deleted by: ?{}: function
@@ -33,15 +26,4 @@
 
 
-              with resolved type:
-                pointer to function
-                ... with parameters
-                  intrinsic reference to signed int
-                  intrinsic signed int
-                ... returning
-                  _retval__operator_assign: signed int
-                  ... with attributes:
-                    Attribute with name: unused
-
-
             ... to arguments
               Generated Cast of:
@@ -51,27 +33,13 @@
                   Generated Cast of:
                     Variable Expression: m: reference to instance of struct Managed with body 1
-                    with resolved type:
-                      reference to instance of struct Managed with body 1
                   ... to:
                     instance of struct Managed with body 1
-                  with resolved type:
-                    instance of struct Managed with body 1
-                with resolved type:
-                  signed int
               ... to:
-                reference to signed int
-              with resolved type:
                 reference to signed int
               Generated Cast of:
                 constant expression (0 0: zero_t)
-                with resolved type:
-                  zero_t
               ... to:
                 signed int
-              with resolved type:
-                signed int
 
-            with resolved type:
-              signed int
             ... with environment:
               Types:
@@ -82,17 +50,7 @@
     Generated Cast of:
       Variable Expression: x: instance of struct Managed with body 1
-      with resolved type:
-        instance of struct Managed with body 1
     ... to:
       reference to instance of struct Managed with body 1
-    with resolved type:
-      reference to instance of struct Managed with body 1
     constant expression (123 123: signed int)
-    with resolved type:
-      signed int
 
-  with resolved type:
-    void 
 ... to: nothing
-with resolved type:
-  void 
Index: tests/test.py
===================================================================
--- tests/test.py	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ tests/test.py	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -194,5 +194,5 @@
 		if success(retcode):
 			if settings.generating :
-				# if we are ounly generating the output we still need to check that the test actually exists
+				# if we are only generating the output we still need to check that the test actually exists
 				if no_rule(out_file, test.target()) :
 					retcode = 1
Index: tests/warnings/.expect/self-assignment.txt
===================================================================
--- tests/warnings/.expect/self-assignment.txt	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ tests/warnings/.expect/self-assignment.txt	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -1,17 +1,9 @@
 warnings/self-assignment.cfa:29:1 warning: self assignment of expression: Generated Cast of:
   Variable Expression: j: signed int
-  with resolved type:
-    signed int
 ... to:
-  reference to signed int
-with resolved type:
   reference to signed int
 warnings/self-assignment.cfa:30:1 warning: self assignment of expression: Generated Cast of:
   Variable Expression: s: instance of struct S with body 1
-  with resolved type:
-    instance of struct S with body 1
 ... to:
-  reference to instance of struct S with body 1
-with resolved type:
   reference to instance of struct S with body 1
 warnings/self-assignment.cfa:31:1 warning: self assignment of expression: Generated Cast of:
@@ -20,11 +12,5 @@
   ... from aggregate:
     Variable Expression: s: instance of struct S with body 1
-    with resolved type:
-      instance of struct S with body 1
-  with resolved type:
-    signed int
 ... to:
-  reference to signed int
-with resolved type:
   reference to signed int
 warnings/self-assignment.cfa:32:1 warning: self assignment of expression: Generated Cast of:
@@ -36,12 +22,4 @@
     ... from aggregate:
       Variable Expression: t: instance of struct T with body 1
-      with resolved type:
-        instance of struct T with body 1
-    with resolved type:
-      instance of struct S with body 1
-  with resolved type:
-    signed int
 ... to:
   reference to signed int
-with resolved type:
-  reference to signed int
Index: tools/Makefile.am
===================================================================
--- tools/Makefile.am	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ tools/Makefile.am	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -18,11 +18,12 @@
 ACLOCAL_AMFLAGS  = -I automake
 
-AM_CFLAGS = -Wall -Wextra -O2 -g
+EXTRA_DIST = build/distcc_hash build/push2dist.sh
 
 noinst_PROGRAMS = busy catchsig repeat watchdog
+AM_CFLAGS = -Wall -Wextra -O2 -g
+busy_LDFLAGS     = -pthread
 
-busy_SOURCES     = busy.c
-busy_LDFLAGS     = -pthread
-catchsig_SOURCES = catchsig.c
-repeat_SOURCES   = repeat.c
-watchdog_SOURCES = watchdog.c
+nodist_busy_SOURCES     = busy.c
+nodist_catchsig_SOURCES = catchsig.c
+nodist_repeat_SOURCES   = repeat.c
+nodist_watchdog_SOURCES = watchdog.c
Index: tools/prettyprinter/Makefile.am
===================================================================
--- tools/prettyprinter/Makefile.am	(revision 191a19015ebe9917f03b8a35a5f9e245085378e7)
+++ tools/prettyprinter/Makefile.am	(revision 49a980b02903e78c574238bd0898ebe7a3bd8281)
@@ -30,5 +30,5 @@
 tools_prettyprinter_PROGRAMS = pretty
 tools_prettyprinterdir = ../
-pretty_SOURCES = ${SRC}
+nodist_pretty_SOURCES = ${SRC}
 pretty_LDADD = ${LEXLIB} -ldl			# yywrap
 pretty_CXXFLAGS = -Wno-deprecated -Wall -DYY_NO_INPUT -O2 -g -std=c++14
