texlive[47319] Build/source/utils/asymptote: asymptote 2.43

commits+preining at tug.org commits+preining at tug.org
Fri Apr 6 07:21:01 CEST 2018


Revision: 47319
          http://tug.org/svn/texlive?view=revision&revision=47319
Author:   preining
Date:     2018-04-06 07:21:01 +0200 (Fri, 06 Apr 2018)
Log Message:
-----------
asymptote 2.43

Modified Paths:
--------------
    trunk/Build/source/utils/asymptote/ChangeLog
    trunk/Build/source/utils/asymptote/README
    trunk/Build/source/utils/asymptote/ReleaseNotes
    trunk/Build/source/utils/asymptote/asy-keywords.el
    trunk/Build/source/utils/asymptote/asy.list
    trunk/Build/source/utils/asymptote/asymptote.spec
    trunk/Build/source/utils/asymptote/build-scripts/HOWTO-MSWindows
    trunk/Build/source/utils/asymptote/build-scripts/build-asymptote
    trunk/Build/source/utils/asymptote/build-scripts/build-asymptote.dos
    trunk/Build/source/utils/asymptote/config.guess
    trunk/Build/source/utils/asymptote/config.sub
    trunk/Build/source/utils/asymptote/configure
    trunk/Build/source/utils/asymptote/configure.ac
    trunk/Build/source/utils/asymptote/doc/asymptote.texi
    trunk/Build/source/utils/asymptote/mathop.h
    trunk/Build/source/utils/asymptote/picture.cc
    trunk/Build/source/utils/asymptote/picture.h
    trunk/Build/source/utils/asymptote/revision.cc
    trunk/Build/source/utils/asymptote/runstring.cc
    trunk/Build/source/utils/asymptote/runstring.in

Added Paths:
-----------
    trunk/Build/source/utils/asymptote/builtin.symbols.h
    trunk/Build/source/utils/asymptote/gsl.symbols.h
    trunk/Build/source/utils/asymptote/runarray.symbols.h
    trunk/Build/source/utils/asymptote/runbacktrace.symbols.h
    trunk/Build/source/utils/asymptote/runfile.symbols.h
    trunk/Build/source/utils/asymptote/runhistory.symbols.h
    trunk/Build/source/utils/asymptote/runlabel.symbols.h
    trunk/Build/source/utils/asymptote/runmath.symbols.h
    trunk/Build/source/utils/asymptote/runpair.symbols.h
    trunk/Build/source/utils/asymptote/runpath.symbols.h
    trunk/Build/source/utils/asymptote/runpath3d.symbols.h
    trunk/Build/source/utils/asymptote/runpicture.symbols.h
    trunk/Build/source/utils/asymptote/runstring.symbols.h
    trunk/Build/source/utils/asymptote/runsystem.symbols.h
    trunk/Build/source/utils/asymptote/runtime.symbols.h
    trunk/Build/source/utils/asymptote/runtriple.symbols.h
    trunk/Build/source/utils/asymptote/types.symbols.h

Removed Paths:
-------------
    trunk/Build/source/utils/asymptote/doc/CAD.pdf
    trunk/Build/source/utils/asymptote/doc/FAQ/asy-faq.info
    trunk/Build/source/utils/asymptote/doc/TeXShopAndAsymptote.pdf
    trunk/Build/source/utils/asymptote/doc/asy-latex.pdf
    trunk/Build/source/utils/asymptote/doc/asy.1
    trunk/Build/source/utils/asymptote/doc/asyRefCard.pdf
    trunk/Build/source/utils/asymptote/doc/asymptote.pdf
    trunk/Build/source/utils/asymptote/doc/png/asymptote.info

Property Changed:
----------------
    trunk/Build/source/utils/asymptote/config.guess
    trunk/Build/source/utils/asymptote/config.sub

Modified: trunk/Build/source/utils/asymptote/ChangeLog
===================================================================
--- trunk/Build/source/utils/asymptote/ChangeLog	2018-04-06 00:23:53 UTC (rev 47318)
+++ trunk/Build/source/utils/asymptote/ChangeLog	2018-04-06 05:21:01 UTC (rev 47319)
@@ -1,3 +1,87 @@
+commit f91ccd81f6f33f927f88724e23afb75988c56692
+Author: John Bowman <bowman at ualberta.ca>
+Date:   Thu Apr 5 21:21:39 2018 -0600
+
+    Replace symbolic link; update copyright.
+
+commit 69c6d33934672d86f94469325327e7e0862e4c72
+Author: John Bowman <bowman at ualberta.ca>
+Date:   Thu Apr 5 20:29:03 2018 -0600
+
+    Fix MSWindows build script.
+
+commit 1ad3fcca0a38fdf6020ba9a00d9a09a12a0dea31
+Author: John Bowman <bowman at ualberta.ca>
+Date:   Thu Apr 5 18:49:09 2018 -0600
+
+    Update build scripts.
+
+commit 66327ad373064731bcbda74a2873353a77f6eaf7
+Author: John Bowman <bowman at ualberta.ca>
+Date:   Thu Apr 5 16:48:54 2018 -0600
+
+    Fix configure.ac.
+
+commit a4331d136126548b86d84ac59617f2a1374d9cc7
+Author: John Bowman <bowman at ualberta.ca>
+Date:   Thu Apr 5 16:31:15 2018 -0600
+
+    Update build scripts.
+
+commit e1507613166785005f6f0c59ccc23df1340b9c2b
+Author: John Bowman <bowman at ualberta.ca>
+Date:   Thu Apr 5 08:55:50 2018 -0600
+
+    Update config.sub and config.guess.
+
+commit 92056e30dd6222eee72088de94c16cce22080104
+Author: John Bowman <bowman at ualberta.ca>
+Date:   Thu Apr 5 08:55:48 2018 -0600
+
+    Update config.sub and config.guess.
+
+commit 42faee86b22ba0e051aba4d3df08da670dbe02d8
+Author: John Bowman <bowman at ualberta.ca>
+Date:   Thu Apr 5 08:53:51 2018 -0600
+
+    Rename 64-bit linux binary.
+
+commit fcbfb4633bb13103fcf9cf1b399dc917c7a70763
+Author: John Bowman <bowman at ualberta.ca>
+Date:   Wed Apr 4 16:37:24 2018 -0600
+
+    Revert to Boehm GC 7.6.0 due to map compilation issues under MacOS X.
+
+commit 125fadda71d2ff4be2c5533a22a18e1f72c336a9
+Author: John Bowman <bowman at ualberta.ca>
+Date:   Wed Apr 4 09:44:07 2018 -0600
+
+    Update to latest Boehm garbage collector.
+
+commit d412f0e76cee49975f77849997707399a5719fb1
+Author: John Bowman <bowman at ualberta.ca>
+Date:   Wed Apr 4 00:59:24 2018 -0600
+
+    Support vector svg output for PDF tex engines.
+
+commit 986b329d6e3628c768646f2217fa444f4be08ed8
+Author: John Bowman <bowman at ualberta.ca>
+Date:   Tue Apr 3 21:50:48 2018 -0600
+
+    Implement temporary workaround for github Issue #29.
+
+commit ce6d0daa38fb334ff23f190b74ba10d0aa241acd
+Author: John Bowman <bowman at ualberta.ca>
+Date:   Tue Apr 3 19:47:40 2018 -0600
+
+    Fix real modulo operator.
+
+commit 3cdb10262d48640b9ce217896c3da595dd9ab805
+Author: John Bowman <bowman at ualberta.ca>
+Date:   Tue Apr 3 02:16:30 2018 -0600
+
+    Increment version to 2.43.
+
 commit 4d0f6ba1b9c6ea2609b145f42ec9a39023e60706
 Author: John Bowman <bowman at ualberta.ca>
 Date:   Tue Apr 3 00:12:12 2018 -0600

Modified: trunk/Build/source/utils/asymptote/README
===================================================================
--- trunk/Build/source/utils/asymptote/README	2018-04-06 00:23:53 UTC (rev 47318)
+++ trunk/Build/source/utils/asymptote/README	2018-04-06 05:21:01 UTC (rev 47319)
@@ -1,5 +1,5 @@
 			  ASYMPTOTE
-      Copyright 2004-17 Andy Hammerlindl, John Bowman, and Tom Prince
+      Copyright 2004-18 Andy Hammerlindl, John Bowman, and Tom Prince
 
 Asymptote is a powerful descriptive vector graphics language for technical
 drawing, inspired by MetaPost but with an improved C++-like

Modified: trunk/Build/source/utils/asymptote/ReleaseNotes
===================================================================
--- trunk/Build/source/utils/asymptote/ReleaseNotes	2018-04-06 00:23:53 UTC (rev 47318)
+++ trunk/Build/source/utils/asymptote/ReleaseNotes	2018-04-06 05:21:01 UTC (rev 47319)
@@ -1,3 +1,9 @@
+Release Notes for Version 2.43
+
+The real modulo operator was fixed. Vector SVG output is now supported for
+PDF tex engines. Compilation under MacOS X was fixed. Both 32- and 64-bit
+MSWindows binaries are now available.
+
 Release Notes for Version 2.42
 
 Bitreverse and popcount functions were added. An overflow in the modulo

Modified: trunk/Build/source/utils/asymptote/asy-keywords.el
===================================================================
--- trunk/Build/source/utils/asymptote/asy-keywords.el	2018-04-06 00:23:53 UTC (rev 47318)
+++ trunk/Build/source/utils/asymptote/asy-keywords.el	2018-04-06 05:21:01 UTC (rev 47319)
@@ -2,7 +2,7 @@
 ;; This file is automatically generated by asy-list.pl.
 ;; Changes will be overwritten.
 ;;
-(defvar asy-keywords-version "2.42")
+(defvar asy-keywords-version "2.43")
 
 (defvar asy-keyword-name '(
 and controls tension atleast curl if else while for do return break continue struct typedef new access import unravel from include quote static public private restricted this explicit true false null cycle newframe operator ))

Modified: trunk/Build/source/utils/asymptote/asy.list
===================================================================
--- trunk/Build/source/utils/asymptote/asy.list	2018-04-06 00:23:53 UTC (rev 47318)
+++ trunk/Build/source/utils/asymptote/asy.list	2018-04-06 05:21:01 UTC (rev 47319)
@@ -1977,7 +1977,6 @@
 autoscaleT operator init();
 position operator init();
 arrowhead operator init();
-sCAD operator init();
 frame NoBox(frame f);
 real animationdelay;
 animation operator init();
@@ -1994,24 +1993,24 @@
 real maxrefinements;
 real duplicateFuzz;
 path subdivide(path p);
-path[][] containmentTree(path[] paths);
 bool isDuplicate(pair a, pair b, real relSize);
 real fuzz;
 path removeDuplicates(path p);
+path[][] containmentTree(path[] paths);
 binarytree binarytree(... key[] keys);
 key nil;
 key key(int n, bool active=<default>);
 real minDistDefault;
 real nodeMarginDefault;
+key operator cast(int n);
+int operator cast(key k);
+int[] operator cast(key[] k);
 binarytreeNode binarytreeNode(int key);
-object draw(picture pic=<default>, binarytreeNode node, pair pos, int height, real minDist, real levelDist, real nodeDiameter, pen p=<default>, bool condensed=<default>);
-void draw(picture pic=<default>, binarytree tree, real minDist=<default>, real nodeMargin=<default>, pen p=<default>, bool condensed=<default>);
 binarytreeNode operator init();
 key operator init();
 binarytree operator init();
-key operator cast(int n);
-int operator cast(key k);
-int[] operator cast(key[] k);
+object draw(picture pic=<default>, binarytreeNode node, pair pos, int height, real minDist, real levelDist, real nodeDiameter, pen p=<default>, bool condensed=<default>);
+void draw(picture pic=<default>, binarytree tree, real minDist=<default>, real nodeMargin=<default>, pen p=<default>, bool condensed=<default>);
 binarytree searchtree(... int[] keys);
 real epsilon;
 void add(picture pic=<default>, face[] faces, projection P=<default>);
@@ -2024,6 +2023,16 @@
 bsp operator init();
 line intersection(face a, face b);
 splitface split(face a, face cut, projection P);
+sCAD operator init();
+vertex[][] contour3(triple[][][] v, real[][][] f, real[][][] midpoint=<default>, projection P=<default>);
+vertex[][] contour3(real[][][] f, real[][][] midpoint=<default>, triple a, triple b, projection P=<default>);
+vertex[][] contour3(real f(real, real, real), triple a, triple b, int nx=<default>, int ny=<default>, int nz=<default>, projection P=<default>);
+weighted operator init();
+bucket operator init();
+vertex operator init();
+object operator init();
+surface surface(vertex[][] g);
+real eps;
 void addseg(pair[][] gds, segment seg);
 pen[] extend(pen[] palette, pen below, pen above);
 guide[][] connect(pair[][][] points, real[] c, guide join(... guide[]));
@@ -2032,33 +2041,24 @@
 segment case1(pair p0, pair p1, int edge);
 real eps;
 segment checktriangle(pair p0, pair p1, pair p2, real v0, real v1, real v2, int edge=<default>);
+segment case2(pair p0, pair p1, pair p2, real v0, real v1, real v2, int edge);
 guide[][] contour(pair[][] z, real[][] f, real[][] midpoint=<default>, real[] c, guide join(... guide[])=<default>);
 guide[][] contour(real[][] f, real[][] midpoint=<default>, pair a, pair b, real[] c, guide join(... guide[])=<default>);
 guide[][] contour(real f(real, real), pair a, pair b, real[] c, int nx=<default>, int ny=<default>, guide join(... guide[])=<default>);
 guide[][] contour(real f(pair), pair a, pair b, real[] c, int nx=<default>, int ny=<default>, guide join(... guide[])=<default>);
 guide[][] contour(pair[] z, real[] f, real[] c, guide join(... guide[])=<default>);
-segment case2(pair p0, pair p1, pair p2, real v0, real v1, real v2, int edge);
 segment operator init();
+pen[][] interior(picture pic=<default>, guide[][] g, pen[] palette);
 void draw(picture pic=<default>, Label[] L=<default>, guide[][] g, pen[] p);
 void draw(picture pic=<default>, Label[] L=<default>, guide[][] g, pen p=<default>);
-pen[][] interior(picture pic=<default>, guide[][] g, pen[] palette);
 void fill(picture pic=<default>, guide[][] g, pen[][] palette);
-vertex[][] contour3(triple[][][] v, real[][][] f, real[][][] midpoint=<default>, projection P=<default>);
-vertex[][] contour3(real[][][] f, real[][][] midpoint=<default>, triple a, triple b, projection P=<default>);
-vertex[][] contour3(real f(real, real, real), triple a, triple b, int nx=<default>, int ny=<default>, int nz=<default>, projection P=<default>);
-weighted operator init();
-bucket operator init();
-vertex operator init();
-object operator init();
-surface surface(vertex[][] g);
-real eps;
-real treeLevelStep;
 real treeMinNodeWidth;
 real treeNodeStep;
+TreeNode operator init();
 TreeNode makeNode(TreeNode parent=<default>, frame f);
 TreeNode makeNode(TreeNode parent=<default>, Label label);
-TreeNode operator init();
 void add(TreeNode child, TreeNode parent);
+real treeLevelStep;
 void draw(TreeNode root, pair pos);
 void drawAll(TreeNode node, frame f);
 real layout(int level, TreeNode node);
@@ -2091,35 +2091,35 @@
 real gluonamplitude;
 real photonratio;
 pen gluonpen;
-pen fermionpen;
-real momarrowsize(pen p=<default>);
 void drawVertexX(picture pic=<default>, pair xy, real r=<default>, pen fgpen=<default>);
+void drawVertexO(picture pic=<default>, pair xy, real r=<default>, pen fgpen=<default>, bool erasebg=<default>, pen bgpen=<default>);
 real momarrowfactor;
-void drawVertexO(picture pic=<default>, pair xy, real r=<default>, pen fgpen=<default>, bool erasebg=<default>, pen bgpen=<default>);
-void fmdefaults();
-void texshipout(string stem, picture pic=<default>, bool xalign=<default>);
+real momarrowlength;
 void drawVertexTriangleO(picture pic=<default>, pair xy, real r=<default>, pen fgpen=<default>, bool erasebg=<default>, pen bgpen=<default>);
 path photon(path p, real amp=<default>, real width=<default>);
-real momarrowlength;
+void drawPhoton(picture pic=<default>, path p, real amp=<default>, real width=<default>, pen fgpen=<default>, bool erasebg=<default>, pen bgpen=<default>, real vertexangle=<default>, real margin=<default>);
+bool XYAlign;
 path gluon(path p, real amp=<default>, real width=<default>);
-bool XYAlign;
-bool YAlign;
+real momarrowsize(pen p=<default>);
+void fmdefaults();
+pen fermionpen;
 void drawFermion(picture pic=<default>, path p, pen fgpen=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool erasebg=<default>, pen bgpen=<default>, real vertexangle=<default>, real margin=<default>);
-void drawPhoton(picture pic=<default>, path p, real amp=<default>, real width=<default>, pen fgpen=<default>, bool erasebg=<default>, pen bgpen=<default>, real vertexangle=<default>, real margin=<default>);
 bool appendsuffix;
 pen vertexpen;
-real gluonratio;
 void drawGluon(picture pic=<default>, path p, real amp=<default>, real width=<default>, pen fgpen=<default>, bool erasebg=<default>, pen bgpen=<default>, real vertexangle=<default>, real margin=<default>);
 path momArrowPath(path p, align align, position pos, real offset=<default>, real length=<default>);
+real bigvertexsize;
+real gluonratio;
+void texshipout(string stem, picture pic=<default>, bool xalign=<default>);
 pen backgroundpen;
 pen ghostpen;
-void do_overpaint(picture pic, path p, pen bgpen, real halfwidth, real vertexangle);
 pen scalarpen;
+bool YAlign;
 void drawVertexBoxX(picture pic=<default>, pair xy, real r=<default>, pen fgpen=<default>, bool erasebg=<default>, pen bgpen=<default>);
-real bigvertexsize;
 void drawScalar(picture pic=<default>, path p, pen fgpen=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool erasebg=<default>, pen bgpen=<default>, real vertexangle=<default>, real margin=<default>);
 string includegraphicscommand;
 pen photonpen;
+void do_overpaint(picture pic, path p, pen bgpen, real halfwidth, real vertexangle);
 pen bigvertexpen;
 Dir Down;
 Dir Left;
@@ -2132,17 +2132,17 @@
 Dir Right;
 real minblockwidth;
 block circle(object body, pair center=<default>, pen fillpen=<default>, pen drawpen=<default>, real dr=<default>, real mindiameter=<default>);
+path path(pair[] point ... flowdir[] dir);
+void draw(picture pic=<default>, block block, pen p=<default>);
 block operator --(block b1, Label label);
 block operator --(block b1, Dir dir);
 block operator --(block b, bool arrowbar(picture, path, pen, marginT(path, pen)));
-block rectangle(object header, object body, pair center=<default>, pen headerpen=<default>, pen bodypen=<default>, pen drawpen=<default>, real dx=<default>, real minheaderwidth=<default>, real minheaderheight=<default>, real minbodywidth=<default>, real minbodyheight=<default>);
-block rectangle(object body, pair center=<default>, pen fillpen=<default>, pen drawpen=<default>, real dx=<default>, real minwidth=<default>, real minheight=<default>);
 flowdir operator init();
 block operator init();
 Dir operator init();
 flowdir Vertical;
-path path(pair[] point ... flowdir[] dir);
-void draw(picture pic=<default>, block block, pen p=<default>);
+block rectangle(object header, object body, pair center=<default>, pen headerpen=<default>, pen bodypen=<default>, pen drawpen=<default>, real dx=<default>, real minheaderwidth=<default>, real minheaderheight=<default>, real minbodywidth=<default>, real minbodyheight=<default>);
+block rectangle(object body, pair center=<default>, pen fillpen=<default>, pen drawpen=<default>, real dx=<default>, real minwidth=<default>, real minheight=<default>);
 block blockconnector(block, block)(picture pic, transform t, pen p=<default>, marginT margin(path, pen)=<default>);
 block parallelogram(object body, pair center=<default>, pen fillpen=<default>, pen drawpen=<default>, real dx=<default>, real slope=<default>, real minwidth=<default>, real minheight=<default>);
 flowdir Horizontal;
@@ -2183,8 +2183,6 @@
 transform projection(point A, point B, point C, point D, bool safe=<default>);
 transform projection(line l);
 transform projection(line l1, line l2, bool safe=<default>);
-real EPS;
-bqe canonical(bqe bqe);
 pair operator *(coordsys R, pair p);
 path operator *(coordsys R, path g);
 coordsys operator *(transform t, coordsys R);
@@ -2236,13 +2234,17 @@
 inversion inversion(circle c1, circle c2, real sgn=<default>);
 inversion inversion(circle c1, circle c2, circle c3);
 inversion inversion(circle c);
+segment segment(point A, point B);
+segment segment(line l);
+segment segment(explicit side side);
 path compassmark(pair O, pair A, real position, real angle=<default>);
 path square(pair z1, pair z2);
 real[] bangles(picture pic=<default>, parabola p);
 real[][] bangles(picture pic=<default>, hyperbola h);
+line vline(coordsys R=<default>);
+line vline;
 vector vector(coordsys R=<default>, pair v);
 vector vector(point M);
-void clipdraw(picture pic=<default>, Label L=<default>, path g, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool bar(picture, path, pen, marginT(path, pen))=<default>, real xmargin=<default>, real ymargin=<default>, Label legend=<default>, marker marker=<default>);
 line median(vertex V);
 line median(side side);
 real arclength(circle c);
@@ -2261,11 +2263,10 @@
 void perpendicularmark(picture pic=<default>, point z, vector align, path g, real size=<default>, pen p=<default>, marginT margin(path, pen)=<default>, filltype filltype=<default>);
 void perpendicularmark(picture pic=<default>, line l1, line l2, real size=<default>, pen p=<default>, int quarter=<default>, marginT margin(path, pen)=<default>, filltype filltype=<default>);
 void markrightangle(picture pic=<default>, point A, point O, point B, real size=<default>, pen p=<default>, marginT margin(path, pen)=<default>, filltype filltype=<default>);
+point ppoint(arc a, real x);
 line sector(int n=<default>, int p=<default>, line l1, line l2, real angle=<default>, bool sharp=<default>);
 line hline(coordsys R=<default>);
 line hline;
-circle incircle(point A, point B, point C);
-circle incircle(triangle t);
 real binomial(real n, real k);
 point point(coordsys R, pair p, real m=<default>);
 point point(explicit pair p, real m);
@@ -2312,17 +2313,27 @@
 bool operator ==(explicit point M, explicit point N);
 bool operator ==(explicit vector u, explicit vector v);
 bool operator ==(line l1, line l2);
-mass masscenter(... mass[] M);
 triangle triangleAbc(real alpha, real b, real c, real angle=<default>, point A=<default>);
-bool operator !=(explicit point M, explicit point N);
-bool operator !=(line l1, line l2);
-arc arcsubtended(point A, point B, real angle);
 vector unit(point M);
 vector unit(vector u);
 transform reflect(line l);
 transform reflect(line l1, line l2, bool safe=<default>);
+real EPS;
+bqe canonical(bqe bqe);
+point relpoint(line l, real x);
+point relpoint(explicit circle c, real x);
+point relpoint(explicit ellipse el, real x);
+point relpoint(explicit parabola p, real x);
+point relpoint(explicit hyperbola h, real x);
+point relpoint(explicit conic co, explicit real x);
+point relpoint(explicit conic co, explicit int x);
+point relpoint(arc a, real x);
+bool collinear(vector u, vector v);
+void clipdraw(picture pic=<default>, Label L=<default>, path g, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool bar(picture, path, pen, marginT(path, pen))=<default>, real xmargin=<default>, real ymargin=<default>, Label legend=<default>, marker marker=<default>);
 real sharpdegrees(line l1, line l2);
-int ellipsenodesnumberfactor;
+mass masscenter(... mass[] M);
+bool inside(ellipse el, point M);
+bool inside(parabola p, point M);
 real degrees(explicit point M, coordsys R=<default>, bool warn=<default>);
 real degrees(vector v, coordsys R=<default>, bool warn=<default>);
 real degrees(line l, coordsys R=<default>);
@@ -2332,10 +2343,11 @@
 point foot(side side);
 point excenter(point A, point B, point C);
 point excenter(side side);
-triangle incentral(triangle t);
-point origin;
-point origin(coordsys R=<default>);
-string massformat(string format=<default>, string s, mass M);
+bool operator !=(explicit point M, explicit point N);
+bool operator !=(line l1, line l2);
+arc arcsubtended(point A, point B, real angle);
+real[] intersect(path g, explicit pair p, real fuzz=<default>);
+real[] intersect(path g, explicit point P, real fuzz=<default>);
 void write(explicit line l);
 void write(explicit segment s);
 void write(trilinear tri);
@@ -2345,6 +2357,7 @@
 transform hprojection(line l, bool safe=<default>);
 point midpoint(segment s);
 point midpoint(side side);
+int ellipsenodesnumberfactor;
 pair operator cast(point P);
 pair[] operator cast(point[] P);
 point operator cast(pair p);
@@ -2396,28 +2409,7 @@
 point curpoint(explicit parabola p, real x);
 point curpoint(conic co, real x);
 point curpoint(arc a, real x);
-point relpoint(line l, real x);
-point relpoint(explicit circle c, real x);
-point relpoint(explicit ellipse el, real x);
-point relpoint(explicit parabola p, real x);
-point relpoint(explicit hyperbola h, real x);
-point relpoint(explicit conic co, explicit real x);
-point relpoint(explicit conic co, explicit int x);
-point relpoint(arc a, real x);
-bool collinear(vector u, vector v);
-bool between(point M, point O, point N);
-void draw(picture pic=<default>, Label L=<default>, line l, bool dirA=<default>, bool dirB=<default>, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, Label legend=<default>, marker marker=<default>, path pathModifier(path)=<default>);
-void draw(picture pic=<default>, Label[] L=<default>, line[] l, align align=<default>, pen[] p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, Label[] legend=<default>, marker marker=<default>, path pathModifier(path)=<default>);
-void draw(picture pic=<default>, Label[] L=<default>, line[] l, align align=<default>, pen p, bool arrow(picture, path, pen, marginT(path, pen))=<default>, Label[] legend=<default>, marker marker=<default>, path pathModifier(path)=<default>);
-void draw(picture pic=<default>, Label L=<default>, circle c, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool bar(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, Label legend=<default>, marker marker=<default>);
-void draw(picture pic=<default>, Label L=<default>, ellipse el, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool bar(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, Label legend=<default>, marker marker=<default>);
-void draw(picture pic=<default>, Label L=<default>, parabola parabola, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool bar(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, Label legend=<default>, marker marker=<default>);
-void draw(picture pic=<default>, Label L=<default>, hyperbola h, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool bar(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, Label legend=<default>, marker marker=<default>);
-void draw(picture pic=<default>, Label L=<default>, explicit conic co, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool bar(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, Label legend=<default>, marker marker=<default>);
-void draw(picture pic=<default>, Label L=<default>, arc a, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool bar(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, Label legend=<default>, marker marker=<default>);
-void draw(picture pic=<default>, triangle t, pen p=<default>, marker marker=<default>);
-void draw(picture pic=<default>, triangle[] t, pen p=<default>, marker marker=<default>);
-int parabolanodesnumber(parabola p, real angle1, real angle2);
+triangle incentral(triangle t);
 line complementary(explicit line l);
 line[] complementary(explicit segment s);
 arc complementary(arc a);
@@ -2440,7 +2432,25 @@
 triangle operator init();
 trilinear operator init();
 inversion operator init();
-triangle triangle(line l1, line l2, line l3);
+point circumcenter(point A, point B, point C);
+point circumcenter(triangle t);
+point origin;
+point origin(coordsys R=<default>);
+string massformat(string format=<default>, string s, mass M);
+transform xscale(real k, point M);
+void draw(picture pic=<default>, Label L=<default>, line l, bool dirA=<default>, bool dirB=<default>, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, Label legend=<default>, marker marker=<default>, path pathModifier(path)=<default>);
+void draw(picture pic=<default>, Label[] L=<default>, line[] l, align align=<default>, pen[] p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, Label[] legend=<default>, marker marker=<default>, path pathModifier(path)=<default>);
+void draw(picture pic=<default>, Label[] L=<default>, line[] l, align align=<default>, pen p, bool arrow(picture, path, pen, marginT(path, pen))=<default>, Label[] legend=<default>, marker marker=<default>, path pathModifier(path)=<default>);
+void draw(picture pic=<default>, Label L=<default>, circle c, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool bar(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, Label legend=<default>, marker marker=<default>);
+void draw(picture pic=<default>, Label L=<default>, ellipse el, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool bar(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, Label legend=<default>, marker marker=<default>);
+void draw(picture pic=<default>, Label L=<default>, parabola parabola, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool bar(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, Label legend=<default>, marker marker=<default>);
+void draw(picture pic=<default>, Label L=<default>, hyperbola h, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool bar(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, Label legend=<default>, marker marker=<default>);
+void draw(picture pic=<default>, Label L=<default>, explicit conic co, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool bar(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, Label legend=<default>, marker marker=<default>);
+void draw(picture pic=<default>, Label L=<default>, arc a, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool bar(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, Label legend=<default>, marker marker=<default>);
+void draw(picture pic=<default>, triangle t, pen p=<default>, marker marker=<default>);
+void draw(picture pic=<default>, triangle[] t, pen p=<default>, marker marker=<default>);
+int parabolanodesnumber(parabola p, real angle1, real angle2);
+bool between(point M, point O, point N);
 transform vprojection(line l, bool safe=<default>);
 circle circumcircle(point A, point B, point C);
 circle circumcircle(triangle t);
@@ -2448,8 +2458,6 @@
 pen addpenarc(pen p);
 line reverse(line l);
 arc reverse(arc a);
-line vline(coordsys R=<default>);
-line vline;
 pair[] intersectionpoints(pair A, pair B, real a, real b, real c, real d, real f, real g);
 pair[] intersectionpoints(pair A, pair B, real[] equation);
 point[] intersectionpoints(line l, path g);
@@ -2499,8 +2507,8 @@
 line tangent(explicit arc a, abscissa x);
 line tangent(explicit arc a, point M);
 void drawline(picture pic=<default>, triangle t, pen p=<default>);
-bool inside(ellipse el, point M);
-bool inside(parabola p, point M);
+circle incircle(point A, point B, point C);
+circle incircle(triangle t);
 side opposite(vertex V);
 vertex opposite(side side);
 line[] operator ^^(line l1, line l2);
@@ -2553,7 +2561,6 @@
 line line(coordsys R=<default>, real a, real b, real c);
 line line(circle c);
 line line(explicit side side);
-point ppoint(arc a, real x);
 arc arc(ellipse el, real angle1, real angle2, path polarconicroutine(conic co, real angle1, real angle2, int n, bool direction)=<default>, bool direction=<default>);
 arc arc(ellipse el, explicit abscissa x1, explicit abscissa x2, bool direction=<default>);
 arc arc(ellipse el, point M, point N, bool direction=<default>);
@@ -2560,31 +2567,6 @@
 arc arc(explicit arc a, abscissa x1, abscissa x2);
 arc arc(explicit arc a, point M, point N);
 path arc(explicit pair B, explicit pair A, explicit pair C, real r);
-point operator -(explicit point P);
-point operator -(explicit point P1, explicit point P2);
-point operator -(explicit point P1, explicit pair p2);
-point operator -(explicit pair p1, explicit point P2);
-point operator -(point M, explicit vector v);
-vector operator -(explicit vector v);
-point operator -(explicit pair m, explicit vector v);
-vector operator -(explicit vector v1, explicit vector v2);
-line operator -(line l, vector u);
-conic operator -(conic c, explicit point M);
-conic operator -(conic c, explicit pair m);
-conic operator -(conic c, vector v);
-circle operator -(explicit circle c, explicit point M);
-circle operator -(explicit circle c, pair m);
-circle operator -(explicit circle c, vector m);
-abscissa operator -(explicit abscissa a);
-abscissa operator -(real x, explicit abscissa a);
-abscissa operator -(explicit abscissa a, real x);
-abscissa operator -(int x, explicit abscissa a);
-arc operator -(explicit arc a, point M);
-arc operator -(explicit arc a, vector v);
-mass operator -(mass M1, mass M2);
-mass operator -(explicit mass M, real x);
-mass operator -(explicit mass M, int x);
-real[] realquarticroots(real a, real b, real c, real d, real e);
 string defaultmassformat;
 coordsys canonicalcartesiansystem(ellipse el);
 coordsys canonicalcartesiansystem(parabola p);
@@ -2605,6 +2587,7 @@
 ellipse ellipse(point C, real a, real b, real angle=<default>);
 ellipse ellipse(bqe bqe);
 ellipse ellipse(point M1, point M2, point M3, point M4, point M5);
+triangle triangle(line l1, line l2, line l3);
 path fromCenter(conic co, real angle1, real angle2, int n, bool direction);
 pen addpenline;
 pen addpenline(pen p);
@@ -2617,11 +2600,31 @@
 abscissa nodabscissa(parabola p, point M);
 abscissa nodabscissa(conic co, point M);
 abscissa nodabscissa(arc a, point M);
-transform xscale(real k, point M);
-real[] intersect(path g, explicit pair p, real fuzz=<default>);
-real[] intersect(path g, explicit point P, real fuzz=<default>);
-point circumcenter(point A, point B, point C);
-point circumcenter(triangle t);
+point operator -(explicit point P);
+point operator -(explicit point P1, explicit point P2);
+point operator -(explicit point P1, explicit pair p2);
+point operator -(explicit pair p1, explicit point P2);
+point operator -(point M, explicit vector v);
+vector operator -(explicit vector v);
+point operator -(explicit pair m, explicit vector v);
+vector operator -(explicit vector v1, explicit vector v2);
+line operator -(line l, vector u);
+conic operator -(conic c, explicit point M);
+conic operator -(conic c, explicit pair m);
+conic operator -(conic c, vector v);
+circle operator -(explicit circle c, explicit point M);
+circle operator -(explicit circle c, pair m);
+circle operator -(explicit circle c, vector m);
+abscissa operator -(explicit abscissa a);
+abscissa operator -(real x, explicit abscissa a);
+abscissa operator -(explicit abscissa a, real x);
+abscissa operator -(int x, explicit abscissa a);
+arc operator -(explicit arc a, point M);
+arc operator -(explicit arc a, vector v);
+mass operator -(mass M1, mass M2);
+mass operator -(explicit mass M, real x);
+mass operator -(explicit mass M, int x);
+real[] realquarticroots(real a, real b, real c, real d, real e);
 line Ox(coordsys R=<default>);
 line Ox;
 real abs(coordsys R, pair m);
@@ -2647,9 +2650,6 @@
 line[] tangents(ellipse el, point M);
 line[] tangents(parabola p, point M);
 line[] tangents(hyperbola h, point M);
-segment segment(point A, point B);
-segment segment(line l);
-segment segment(explicit side side);
 bool simeq(point A, point B, real fuzz=<default>);
 bool simeq(point a, real b, real fuzz=<default>);
 triangle triangleabc(real a, real b, real c, real angle=<default>, point A=<default>);
@@ -2822,6 +2822,117 @@
 line altitude(vertex V);
 line altitude(side side);
 int[] tricoef(side side);
+void labelz(picture pic=<default>, Label L=<default>, triple v, align align=<default>, string format=<default>, pen p=<default>);
+void labelx3(picture pic=<default>, Label L=<default>, real x, align align=<default>, string format=<default>, pen p=<default>);
+void ztick3(picture pic=<default>, real z, triple dir=<default>, real size=<default>, pen p=<default>);
+void ztick3(picture pic=<default>, Label L, real z, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
+void ztick(picture pic=<default>, triple v, triple dir=<default>, real size=<default>, pen p=<default>);
+void ztick(picture pic=<default>, Label L, triple v, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
+void ytick3(picture pic=<default>, real y, triple dir=<default>, real size=<default>, pen p=<default>);
+void ytick3(picture pic=<default>, Label L, real y, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
+void xaxis3(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, real xmin=<default>, real xmax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>);
+void autoscale3(picture pic=<default>, void axis(picture, axisT));
+triple defaultdir(triple X, triple Y, triple Z, bool opposite=<default>, projection P);
+real ztrans(real[][] t, real z);
+void XYZero(picture, axisT)(triple align=<default>, bool extend=<default>);
+void XYZero(picture, axisT);
+void YZZero(picture, axisT)(triple align=<default>, bool extend=<default>);
+void YZZero(picture, axisT);
+void XZEquals(picture, axisT)(real x, real z, triple align=<default>, bool extend=<default>);
+void YZEquals(picture, axisT)(real y, real z, triple align=<default>, bool extend=<default>);
+void Bounds(picture, axisT)(int type=<default>, int type2=<default>, triple align=<default>, bool extend=<default>);
+void Bounds(picture, axisT);
+void InTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, tickvalues modify(tickvalues)=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
+void InTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, real[] Ticks, real[] ticks=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
+void InTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>);
+void NoTicks3(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)();
+void NoTicks3(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>);
+void Ticks3(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(int sign, Label F=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, real[] Ticks=<default>, real[] ticks=<default>, int N=<default>, bool begin=<default>, bool end=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
+void Ticks3(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(int sign, Label F=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, tickvalues modify(tickvalues)=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
+surface bispline(real[][] z, real[][] p, real[][] q, real[][] r, real[] x, real[] y, bool[][] cond=<default>);
+void axes3(picture pic=<default>, Label xlabel=<default>, Label ylabel=<default>, Label zlabel=<default>, bool extend=<default>, triple min=<default>, triple max=<default>, pen p=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>);
+bool vperiodic(triple[][] a);
+bool uperiodic(triple[][] a);
+void zaxis3At(picture pic=<default>, Label L=<default>, void axis(picture, axisT), real zmin=<default>, real zmax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>, bool opposite=<default>, bool opposite2=<default>, bool primary=<default>);
+void yaxis3(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, real ymin=<default>, real ymax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>);
+path3[] segment(triple[] v, bool[] cond, void join(flatguide3)(... void(flatguide3)[])=<default>);
+void yaxis3At(picture pic=<default>, Label L=<default>, void axis(picture, axisT), real ymin=<default>, real ymax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>, bool opposite=<default>, bool opposite2=<default>, bool primary=<default>);
+real ScaleZ(picture pic=<default>, real z);
+triple tickMin3(picture pic);
+void axis(picture pic=<default>, Label L=<default>, path3 g, path3 g2=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>), ticklocate locate, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, int[] divisor=<default>, bool above=<default>, bool opposite=<default>);
+triple tickMax3(picture pic);
+void labely3(picture pic=<default>, Label L=<default>, real y, align align=<default>, string format=<default>, pen p=<default>);
+void(flatguide3)[][] lift(real f(real x, real y), guide[][] g, void join(flatguide3)(... void(flatguide3)[])=<default>);
+void(flatguide3)[][] lift(real f(pair z), guide[][] g, void join(flatguide3)(... void(flatguide3)[])=<default>);
+void xtick3(picture pic=<default>, real x, triple dir=<default>, real size=<default>, pen p=<default>);
+void xtick3(picture pic=<default>, Label L, real x, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
+void ytick(picture pic=<default>, triple v, triple dir=<default>, real size=<default>, pen p=<default>);
+void ytick(picture pic=<default>, Label L, triple v, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
+triple Dir(real)(triple dir);
+real xtrans(real[][] t, real x);
+real maxlength(triple f(pair z), pair a, pair b, int nu, int nv);
+real ytrans(real[][] t, real y);
+void draw(picture pic=<default>, Label[] L=<default>, void(flatguide3)[][] g, pen[] p, light light=<default>, string name=<default>, render render=<default>, interaction interaction=<default>);
+void draw(picture pic=<default>, Label[] L=<default>, void(flatguide3)[][] g, pen p=<default>, light light=<default>, string name=<default>, render render=<default>, interaction interaction=<default>);
+locateT operator init();
+void xtick(picture pic=<default>, triple v, triple dir=<default>, real size=<default>, pen p=<default>);
+void xtick(picture pic=<default>, Label L, triple v, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
+void zaxis3(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, real zmin=<default>, real zmax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>);
+picture vectorfield(path3 vector(pair v), triple f(pair z), pair a, pair b, int nu=<default>, int nv=<default>, bool truesize=<default>, real maxlength=<default>, bool cond(pair z)=<default>, pen p=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, string name=<default>, render render=<default>);
+ticklocate ticklocate(real a, real b, autoscaleT S=<default>, real tickmin=<default>, real tickmax=<default>, real time(real)=<default>, triple dir(real));
+void OutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, tickvalues modify(tickvalues)=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
+void OutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, real[] Ticks, real[] ticks=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
+void OutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>);
+void label(picture pic, Label L, triple v, real x, align align, string format, pen p);
+void XZZero(picture, axisT)(triple align=<default>, bool extend=<default>);
+void XZZero(picture, axisT);
+void Straight(flatguide3)(... void(flatguide3)[]);
+path3 Circle(triple c, real r, triple normal=<default>, int n=<default>);
+void labelaxis(picture pic, real[][] T, Label L, path3 g, ticklocate locate=<default>, int sign=<default>, bool ticklabels=<default>);
+void xaxis3At(picture pic=<default>, Label L=<default>, void axis(picture, axisT), real xmin=<default>, real xmax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>, bool opposite=<default>, bool opposite2=<default>, bool primary=<default>);
+void XYEquals(picture, axisT)(real x, real y, triple align=<default>, bool extend=<default>);
+void Spline(flatguide3)(... void(flatguide3)[]);
+void labelz3(picture pic=<default>, Label L=<default>, real z, align align=<default>, string format=<default>, pen p=<default>);
+void graph(flatguide3)(triple F(real), real, real, int)(void join(flatguide3)(... void(flatguide3)[]));
+void(flatguide3)[] graph(triple F(real), real, real, int)(void join(flatguide3)(... void(flatguide3)[]), bool3 cond(real));
+void graph(flatguide3)(picture pic=<default>, real x(real), real y(real), real z(real), real a, real b, int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
+void(flatguide3)[] graph(picture pic=<default>, real x(real), real y(real), real z(real), real a, real b, int n=<default>, bool3 cond(real), void join(flatguide3)(... void(flatguide3)[])=<default>);
+void graph(flatguide3)(picture pic=<default>, triple v(real), real a, real b, int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
+void(flatguide3)[] graph(picture pic=<default>, triple v(real), real a, real b, int n=<default>, bool3 cond(real), void join(flatguide3)(... void(flatguide3)[])=<default>);
+void graph(flatguide3)(picture pic=<default>, triple[] v, void join(flatguide3)(... void(flatguide3)[])=<default>);
+void(flatguide3)[] graph(picture pic=<default>, triple[] v, bool3[] cond, void join(flatguide3)(... void(flatguide3)[])=<default>);
+void graph(flatguide3)(picture pic=<default>, real[] x, real[] y, real[] z, void join(flatguide3)(... void(flatguide3)[])=<default>);
+void(flatguide3)[] graph(picture pic=<default>, real[] x, real[] y, real[] z, bool3[] cond, void join(flatguide3)(... void(flatguide3)[])=<default>);
+void graph(flatguide3)(triple F(path, real), path p, int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
+void graph(flatguide3)(triple F(pair), path p, int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
+void graph(flatguide3)(picture pic=<default>, real f(pair), path p, int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
+void graph(flatguide3)(real f(pair), path p, int n=<default>, real T(pair), void join(flatguide3)(... void(flatguide3)[])=<default>);
+path3 Arc(triple c, triple v1, triple v2, triple normal=<default>, bool direction=<default>, int n=<default>);
+path3 Arc(triple c, real r, real theta1, real phi1, real theta2, real phi2, triple normal=<default>, bool direction, int n=<default>);
+path3 Arc(triple c, real r, real theta1, real phi1, real theta2, real phi2, triple normal=<default>, int n=<default>);
+void labeltick(picture pic, real[][] T, path3 g, ticklocate locate, real val, int sign, real Size, string ticklabel(real), Label F, real norm=<default>);
+void labelx(picture pic=<default>, Label L=<default>, triple v, align align=<default>, string format=<default>, pen p=<default>);
+void drawtick(picture pic, real[][] T, path3 g, path3 g2, ticklocate locate, real val, real Size, int sign, pen p, bool extend);
+void labely(picture pic=<default>, Label L=<default>, triple v, align align=<default>, string format=<default>, pen p=<default>);
+void tick(picture pic=<default>, triple v, triple dir, real size=<default>, pen p=<default>);
+void tick(picture pic=<default>, Label L, real value, triple v, triple dir, string format=<default>, real size=<default>, pen p=<default>);
+void polargraph(flatguide3)(real r(real, real), real theta(real), real phi(real), int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
+triple ticklabelshift(triple align, pen p=<default>);
+triple polar(real r, real theta, real phi);
+triple Scale(picture pic=<default>, triple v);
+void limits(picture pic=<default>, triple min, triple max);
+void InOutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, tickvalues modify(tickvalues)=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
+void InOutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, real[] Ticks, real[] ticks=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
+void InOutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>);
+surface surface(triple[][] f, bool[][] cond=<default>);
+surface surface(real[][] f, real[] x, real[] y, real[] xsplinetype(real[], real[])=<default>, real[] ysplinetype(real[], real[])=<default>, bool[][] cond=<default>);
+surface surface(real[][] f, pair a, pair b, real[] xsplinetype(real[], real[]), real[] ysplinetype(real[], real[])=<default>, bool[][] cond=<default>);
+surface surface(real[][] f, pair a, pair b, bool[][] cond=<default>);
+surface surface(triple f(pair z), pair a, pair b, int nu=<default>, int nv=<default>, bool cond(pair z)=<default>);
+surface surface(triple f(pair z), pair a, pair b, int nu=<default>, int nv=<default>, real[](real[], real[])[] usplinetype, real[](real[], real[])[] vsplinetype=<default>, bool cond(pair z)=<default>);
+surface surface(real f(pair z), pair a, pair b, int nx=<default>, int ny=<default>, bool cond(pair z)=<default>);
+surface surface(real f(pair z), pair a, pair b, int nx=<default>, int ny=<default>, real[] xsplinetype(real[], real[]), real[] ysplinetype(real[], real[])=<default>, bool cond(pair z)=<default>);
+void zlimits(picture pic=<default>, real min=<default>, real max=<default>, bool crop=<default>);
 path Arc(pair c, real r, real angle1, real angle2, bool direction, int n=<default>);
 path Arc(pair c, real r, real angle1, real angle2, int n=<default>);
 path Arc(pair c, explicit pair z1, explicit pair z2, bool direction=<default>, int n=<default>);
@@ -2854,8 +2965,6 @@
 void labelx(picture pic=<default>, Label L, string format=<default>, explicit pen p=<default>);
 void tick(picture pic=<default>, pair z, pair dir, real size=<default>, pen p=<default>);
 void tick(picture pic=<default>, Label L, real value, explicit pair z, pair dir, string format=<default>, real size=<default>, pen p=<default>);
-void yaxis(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, real ymin=<default>, real ymax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>, bool autorotate=<default>);
-void xaxis(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, real xmin=<default>, real xmax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>);
 void limits(picture pic=<default>, pair min, pair max, bool crop=<default>);
 void ylimits(picture pic=<default>, real min=<default>, real max=<default>, bool crop=<default>);
 void xaxisAt(picture pic=<default>, Label L=<default>, void axis(picture, axisT), real xmin=<default>, real xmax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>, bool opposite=<default>);
@@ -2871,6 +2980,7 @@
 void RightTicks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>);
 void NoTicks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)();
 void NoTicks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>);
+tickvalues OmitTickIntervals(tickvalues)(real[] a, real[] b);
 void Ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)(int sign, Label F=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, real[] Ticks=<default>, real[] ticks=<default>, int N=<default>, bool begin=<default>, bool end=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
 void Ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)(int sign, Label F=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, tickvalues modify(tickvalues)=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
 void Ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, tickvalues modify(tickvalues)=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
@@ -2877,6 +2987,7 @@
 void Ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, real[] Ticks, real[] ticks=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
 void Ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>);
 real zerotickfuzz;
+void xaxis(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, real xmin=<default>, real xmax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>);
 void drawtick(frame f, transform T, path g, path g2, ticklocate locate, real val, real Size, int sign, pen p, bool extend);
 pair ticklabelshift(pair align, pen p=<default>);
 string DefaultFormat(real);
@@ -2886,19 +2997,20 @@
 pair labeltick(frame d, transform T, path g, ticklocate locate, real val, pair side, int sign, real Size, string ticklabel(real), Label F, real norm=<default>);
 int[] divisors(int a, int b);
 scientific scientific(real x);
+Label Break;
+tickvalues Break(tickvalues)(real, real);
 scaleT Linear;
 scaleT Linear(bool automin=<default>, bool automax=<default>, real s=<default>, real intercept=<default>);
 bool axiscoverage(int N, transform T, path g, ticklocate locate, real Step, pair side, int sign, real Size, Label F, string ticklabel(real), real norm, real limit);
-Label Break;
-tickvalues Break(tickvalues)(real, real);
 void errorbar(picture pic, pair z, pair dp, pair dm, pen p=<default>, real size=<default>);
 real linear(real)(real S(real x)=<default>, real Min, real Max);
+void yaxisAt(picture pic=<default>, Label L=<default>, void axis(picture, axisT), real ymin=<default>, real ymax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>, bool opposite=<default>);
 tickvalues None(tickvalues v);
-path[] segment(pair[] z, bool[] cond, guide join(... guide[])=<default>);
+int Value;
 int Max;
 tickvalues NoZero(tickvalues);
 autoscaleT defaultS;
-real ScaleY(picture pic=<default>, real y);
+real ScaleX(picture pic=<default>, real x);
 void yequals(picture pic=<default>, Label L=<default>, real y, bool extend=<default>, real xmin=<default>, real xmax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>);
 guide Spline(... guide[]);
 bounds autoscale(real Min, real Max, scaleT scale=<default>);
@@ -2908,6 +3020,7 @@
 void errorbars(picture pic=<default>, pair[] z, pair[] dp, pair[] dm=<default>, bool[] cond=<default>, pen p=<default>, real size=<default>);
 void errorbars(picture pic=<default>, real[] x, real[] y, real[] dpx, real[] dpy, real[] dmx=<default>, real[] dmy=<default>, bool[] cond=<default>, pen p=<default>, real size=<default>);
 void errorbars(picture pic=<default>, real[] x, real[] y, real[] dpy, bool[] cond=<default>, pen p=<default>, real size=<default>);
+scaleT Logarithmic;
 void XZero(picture, axisT)(bool extend=<default>);
 void XZero(picture, axisT);
 void LeftRight(picture, axisT)(bool extend=<default>);
@@ -2920,22 +3033,24 @@
 void BottomTop(picture, axisT)(bool extend=<default>);
 void BottomTop(picture, axisT);
 void checkconditionlength(int x, int y);
-pair zero(real);
-void label(picture pic, Label L, pair z, real x, align align, string format, pen p);
 pair tickMin(picture pic);
+tickvalues OmitTickInterval(tickvalues)(real a, real b);
 tickvalues generateticks(int sign, Label F=<default>, string ticklabel(real)=<default>, int N, int n=<default>, real Step=<default>, real step=<default>, real Size=<default>, real size=<default>, transform T, pair side, path g, real limit, pen p, ticklocate locate, int[] divisor, bool opposite);
 int Both;
 ticklocate ticklocate(real a, real b, autoscaleT S=<default>, real tickmin=<default>, real tickmax=<default>, real time(real)=<default>, pair dir(real)=<default>);
+pair zero(real);
+void label(picture pic, Label L, pair z, real x, align align, string format, pen p);
+real ScaleY(picture pic=<default>, real y);
 string NoZeroFormat(real);
 string trailingzero;
 picture vectorfield(path vector(real), path g, int n, bool truesize=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>);
 picture vectorfield(path vector(pair), pair a, pair b, int nx=<default>, int ny=<default>, bool truesize=<default>, real maxlength=<default>, bool cond(pair z)=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>);
-tickvalues OmitTick(tickvalues)(... real[] x);
 void Top(picture, axisT)(bool extend=<default>);
 void Top(picture, axisT);
-real maxlength(pair a, pair b, int nx, int ny);
-real ScaleX(picture pic=<default>, real x);
 pair tickMax(picture pic);
+tickvalues OmitTick(tickvalues)(... real[] x);
+scaleT BrokenLog(real a, real b, bool automin=<default>, bool automax=<default>);
+void yaxis(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, real ymin=<default>, real ymax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>, bool autorotate=<default>);
 scientific operator init();
 bounds operator init();
 ticklocate operator init();
@@ -2942,22 +3057,23 @@
 locateT operator init();
 tickvalues operator init();
 axisT operator init();
-scaleT Logarithmic;
+real maxlength(pair a, pair b, int nx, int ny);
 real xtrans(transform t, real x);
-void LeftTicks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, tickvalues modify(tickvalues)=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
-void LeftTicks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, real[] Ticks, real[] ticks=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
-void LeftTicks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>);
-void yaxisAt(picture pic=<default>, Label L=<default>, void axis(picture, axisT), real ymin=<default>, real ymax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>, bool opposite=<default>);
 pair Scale(picture pic=<default>, pair z);
+void ytick(picture pic=<default>, explicit pair z, pair dir=<default>, real size=<default>, pen p=<default>);
+void ytick(picture pic=<default>, real y, pair dir=<default>, real size=<default>, pen p=<default>);
+void ytick(picture pic=<default>, Label L, explicit pair z, pair dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
+void ytick(picture pic=<default>, Label L, real y, pair dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
 void xequals(picture pic=<default>, Label L=<default>, real x, bool extend=<default>, real ymin=<default>, real ymax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>);
 scaleT Log;
 scaleT Log(bool automin=<default>, bool automax=<default>);
 string signedtrailingzero;
-scaleT BrokenLog(real a, real b, bool automin=<default>, bool automax=<default>);
+void LeftTicks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, tickvalues modify(tickvalues)=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
+void LeftTicks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, real[] Ticks, real[] ticks=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
+void LeftTicks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>);
 void xlimits(picture pic=<default>, real min=<default>, real max=<default>, bool crop=<default>);
 void scale(picture pic=<default>, scaleT x, scaleT y=<default>, scaleT z=<default>);
 void scale(picture pic=<default>, bool xautoscale=<default>, bool yautoscale=<default>, bool zautoscale=<default>);
-int Value;
 void Bottom(picture, axisT)(bool extend=<default>);
 void Bottom(picture, axisT);
 void xtick(picture pic=<default>, explicit pair z, pair dir=<default>, real size=<default>, pen p=<default>);
@@ -2965,133 +3081,17 @@
 void xtick(picture pic=<default>, Label L, explicit pair z, pair dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
 void xtick(picture pic=<default>, Label L, real x, pair dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
 string autoformat(string format=<default>, real norm ... real[] a);
-void ytick(picture pic=<default>, explicit pair z, pair dir=<default>, real size=<default>, pen p=<default>);
-void ytick(picture pic=<default>, real y, pair dir=<default>, real size=<default>, pen p=<default>);
-void ytick(picture pic=<default>, Label L, explicit pair z, pair dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
-void ytick(picture pic=<default>, Label L, real y, pair dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
-string baselinetemplate;
+path[] segment(pair[] z, bool[] cond, guide join(... guide[])=<default>);
 guide Straight(... guide[]);
 scaleT Broken(real a, real b, bool automin=<default>, bool automax=<default>);
-tickvalues OmitTickIntervals(tickvalues)(real[] a, real[] b);
 axisT axis;
 void axis(picture pic=<default>, Label L=<default>, path g, path g2=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>), ticklocate locate, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, int[] divisor=<default>, bool above=<default>, bool opposite=<default>);
 string DefaultLogFormat(real)(int base);
 string DefaultLogFormat(real);
-tickvalues OmitTickInterval(tickvalues)(real a, real b);
 void crop(picture pic=<default>);
+string baselinetemplate;
 void axes(picture pic=<default>, Label xlabel=<default>, Label ylabel=<default>, bool extend=<default>, pair min=<default>, pair max=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>);
 string OmitFormat(real)(string s=<default> ... real[] x);
-void labelz(picture pic=<default>, Label L=<default>, triple v, align align=<default>, string format=<default>, pen p=<default>);
-void labelx3(picture pic=<default>, Label L=<default>, real x, align align=<default>, string format=<default>, pen p=<default>);
-void ztick3(picture pic=<default>, real z, triple dir=<default>, real size=<default>, pen p=<default>);
-void ztick3(picture pic=<default>, Label L, real z, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
-void ztick(picture pic=<default>, triple v, triple dir=<default>, real size=<default>, pen p=<default>);
-void ztick(picture pic=<default>, Label L, triple v, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
-void ytick3(picture pic=<default>, real y, triple dir=<default>, real size=<default>, pen p=<default>);
-void ytick3(picture pic=<default>, Label L, real y, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
-void yaxis3(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, real ymin=<default>, real ymax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>);
-void autoscale3(picture pic=<default>, void axis(picture, axisT));
-void zaxis3At(picture pic=<default>, Label L=<default>, void axis(picture, axisT), real zmin=<default>, real zmax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>, bool opposite=<default>, bool opposite2=<default>, bool primary=<default>);
-void yaxis3At(picture pic=<default>, Label L=<default>, void axis(picture, axisT), real ymin=<default>, real ymax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>, bool opposite=<default>, bool opposite2=<default>, bool primary=<default>);
-void xaxis3At(picture pic=<default>, Label L=<default>, void axis(picture, axisT), real xmin=<default>, real xmax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>, bool opposite=<default>, bool opposite2=<default>, bool primary=<default>);
-triple defaultdir(triple X, triple Y, triple Z, bool opposite=<default>, projection P);
-real ztrans(real[][] t, real z);
-void XYZero(picture, axisT)(triple align=<default>, bool extend=<default>);
-void XYZero(picture, axisT);
-void YZZero(picture, axisT)(triple align=<default>, bool extend=<default>);
-void YZZero(picture, axisT);
-void XZEquals(picture, axisT)(real x, real z, triple align=<default>, bool extend=<default>);
-void YZEquals(picture, axisT)(real y, real z, triple align=<default>, bool extend=<default>);
-void Bounds(picture, axisT)(int type=<default>, int type2=<default>, triple align=<default>, bool extend=<default>);
-void Bounds(picture, axisT);
-void InTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, tickvalues modify(tickvalues)=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
-void InTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, real[] Ticks, real[] ticks=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
-void InTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>);
-void NoTicks3(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)();
-void NoTicks3(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>);
-void Ticks3(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(int sign, Label F=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, real[] Ticks=<default>, real[] ticks=<default>, int N=<default>, bool begin=<default>, bool end=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
-void Ticks3(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(int sign, Label F=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, tickvalues modify(tickvalues)=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
-surface bispline(real[][] z, real[][] p, real[][] q, real[][] r, real[] x, real[] y, bool[][] cond=<default>);
-void axes3(picture pic=<default>, Label xlabel=<default>, Label ylabel=<default>, Label zlabel=<default>, bool extend=<default>, triple min=<default>, triple max=<default>, pen p=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>);
-void zlimits(picture pic=<default>, real min=<default>, real max=<default>, bool crop=<default>);
-bool vperiodic(triple[][] a);
-void xtick3(picture pic=<default>, real x, triple dir=<default>, real size=<default>, pen p=<default>);
-void xtick3(picture pic=<default>, Label L, real x, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
-bool uperiodic(triple[][] a);
-void OutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, tickvalues modify(tickvalues)=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
-void OutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, real[] Ticks, real[] ticks=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
-void OutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>);
-triple tickMin3(picture pic);
-void axis(picture pic=<default>, Label L=<default>, path3 g, path3 g2=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>), ticklocate locate, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, int[] divisor=<default>, bool above=<default>, bool opposite=<default>);
-triple tickMax3(picture pic);
-void draw(picture pic=<default>, Label[] L=<default>, void(flatguide3)[][] g, pen[] p, light light=<default>, string name=<default>, render render=<default>, interaction interaction=<default>);
-void draw(picture pic=<default>, Label[] L=<default>, void(flatguide3)[][] g, pen p=<default>, light light=<default>, string name=<default>, render render=<default>, interaction interaction=<default>);
-void labely3(picture pic=<default>, Label L=<default>, real y, align align=<default>, string format=<default>, pen p=<default>);
-void ytick(picture pic=<default>, triple v, triple dir=<default>, real size=<default>, pen p=<default>);
-void ytick(picture pic=<default>, Label L, triple v, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
-void Straight(flatguide3)(... void(flatguide3)[]);
-real xtrans(real[][] t, real x);
-void(flatguide3)[][] lift(real f(real x, real y), guide[][] g, void join(flatguide3)(... void(flatguide3)[])=<default>);
-void(flatguide3)[][] lift(real f(pair z), guide[][] g, void join(flatguide3)(... void(flatguide3)[])=<default>);
-real maxlength(triple f(pair z), pair a, pair b, int nu, int nv);
-locateT operator init();
-triple Dir(real)(triple dir);
-void xtick(picture pic=<default>, triple v, triple dir=<default>, real size=<default>, pen p=<default>);
-void xtick(picture pic=<default>, Label L, triple v, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
-picture vectorfield(path3 vector(pair v), triple f(pair z), pair a, pair b, int nu=<default>, int nv=<default>, bool truesize=<default>, real maxlength=<default>, bool cond(pair z)=<default>, pen p=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, string name=<default>, render render=<default>);
-void label(picture pic, Label L, triple v, real x, align align, string format, pen p);
-ticklocate ticklocate(real a, real b, autoscaleT S=<default>, real tickmin=<default>, real tickmax=<default>, real time(real)=<default>, triple dir(real));
-void XZZero(picture, axisT)(triple align=<default>, bool extend=<default>);
-void XZZero(picture, axisT);
-real ytrans(real[][] t, real y);
-path3 Circle(triple c, real r, triple normal=<default>, int n=<default>);
-void labelaxis(picture pic, real[][] T, Label L, path3 g, ticklocate locate=<default>, int sign=<default>, bool ticklabels=<default>);
-void XYEquals(picture, axisT)(real x, real y, triple align=<default>, bool extend=<default>);
-real ScaleZ(picture pic=<default>, real z);
-void Spline(flatguide3)(... void(flatguide3)[]);
-void labelz3(picture pic=<default>, Label L=<default>, real z, align align=<default>, string format=<default>, pen p=<default>);
-path3[] segment(triple[] v, bool[] cond, void join(flatguide3)(... void(flatguide3)[])=<default>);
-void graph(flatguide3)(triple F(real), real, real, int)(void join(flatguide3)(... void(flatguide3)[]));
-void(flatguide3)[] graph(triple F(real), real, real, int)(void join(flatguide3)(... void(flatguide3)[]), bool3 cond(real));
-void graph(flatguide3)(picture pic=<default>, real x(real), real y(real), real z(real), real a, real b, int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
-void(flatguide3)[] graph(picture pic=<default>, real x(real), real y(real), real z(real), real a, real b, int n=<default>, bool3 cond(real), void join(flatguide3)(... void(flatguide3)[])=<default>);
-void graph(flatguide3)(picture pic=<default>, triple v(real), real a, real b, int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
-void(flatguide3)[] graph(picture pic=<default>, triple v(real), real a, real b, int n=<default>, bool3 cond(real), void join(flatguide3)(... void(flatguide3)[])=<default>);
-void graph(flatguide3)(picture pic=<default>, triple[] v, void join(flatguide3)(... void(flatguide3)[])=<default>);
-void(flatguide3)[] graph(picture pic=<default>, triple[] v, bool3[] cond, void join(flatguide3)(... void(flatguide3)[])=<default>);
-void graph(flatguide3)(picture pic=<default>, real[] x, real[] y, real[] z, void join(flatguide3)(... void(flatguide3)[])=<default>);
-void(flatguide3)[] graph(picture pic=<default>, real[] x, real[] y, real[] z, bool3[] cond, void join(flatguide3)(... void(flatguide3)[])=<default>);
-void graph(flatguide3)(triple F(path, real), path p, int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
-void graph(flatguide3)(triple F(pair), path p, int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
-void graph(flatguide3)(picture pic=<default>, real f(pair), path p, int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
-void graph(flatguide3)(real f(pair), path p, int n=<default>, real T(pair), void join(flatguide3)(... void(flatguide3)[])=<default>);
-void xaxis3(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, real xmin=<default>, real xmax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>);
-path3 Arc(triple c, triple v1, triple v2, triple normal=<default>, bool direction=<default>, int n=<default>);
-path3 Arc(triple c, real r, real theta1, real phi1, real theta2, real phi2, triple normal=<default>, bool direction, int n=<default>);
-path3 Arc(triple c, real r, real theta1, real phi1, real theta2, real phi2, triple normal=<default>, int n=<default>);
-void labeltick(picture pic, real[][] T, path3 g, ticklocate locate, real val, int sign, real Size, string ticklabel(real), Label F, real norm=<default>);
-void labelx(picture pic=<default>, Label L=<default>, triple v, align align=<default>, string format=<default>, pen p=<default>);
-void labely(picture pic=<default>, Label L=<default>, triple v, align align=<default>, string format=<default>, pen p=<default>);
-void drawtick(picture pic, real[][] T, path3 g, path3 g2, ticklocate locate, real val, real Size, int sign, pen p, bool extend);
-void tick(picture pic=<default>, triple v, triple dir, real size=<default>, pen p=<default>);
-void tick(picture pic=<default>, Label L, real value, triple v, triple dir, string format=<default>, real size=<default>, pen p=<default>);
-void polargraph(flatguide3)(real r(real, real), real theta(real), real phi(real), int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
-triple ticklabelshift(triple align, pen p=<default>);
-triple polar(real r, real theta, real phi);
-triple Scale(picture pic=<default>, triple v);
-void limits(picture pic=<default>, triple min, triple max);
-void InOutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, tickvalues modify(tickvalues)=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
-void InOutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, real[] Ticks, real[] ticks=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
-void InOutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>);
-surface surface(triple[][] f, bool[][] cond=<default>);
-surface surface(real[][] f, real[] x, real[] y, real[] xsplinetype(real[], real[])=<default>, real[] ysplinetype(real[], real[])=<default>, bool[][] cond=<default>);
-surface surface(real[][] f, pair a, pair b, real[] xsplinetype(real[], real[]), real[] ysplinetype(real[], real[])=<default>, bool[][] cond=<default>);
-surface surface(real[][] f, pair a, pair b, bool[][] cond=<default>);
-surface surface(triple f(pair z), pair a, pair b, int nu=<default>, int nv=<default>, bool cond(pair z)=<default>);
-surface surface(triple f(pair z), pair a, pair b, int nu=<default>, int nv=<default>, real[](real[], real[])[] usplinetype, real[](real[], real[])[] vsplinetype=<default>, bool cond(pair z)=<default>);
-surface surface(real f(pair z), pair a, pair b, int nx=<default>, int ny=<default>, bool cond(pair z)=<default>);
-surface surface(real f(pair z), pair a, pair b, int nx=<default>, int ny=<default>, real[] xsplinetype(real[], real[]), real[] ysplinetype(real[], real[])=<default>, bool cond(pair z)=<default>);
-void zaxis3(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, real zmin=<default>, real zmax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>);
 real axiscoverage;
 real Ticksize;
 real ticksize;
@@ -3099,10 +3099,10 @@
 int nCircle;
 real epsilon;
 real ylabelwidth;
+real axislabelfactor;
+bool NoCrop;
 int ngraph;
-real axislabelfactor;
 bool Crop;
-bool NoCrop;
 guide hermite(real[] x, real[] y, real[] splinetype(real[], real[])=<default>);
 real[] monotonic(real[] x, real[] y);
 real[] clamped(real[], real[])(real slopea, real slopeb);
@@ -3113,8 +3113,8 @@
 real[](real[], real[])[] Spline;
 real[] notaknot(real[] x, real[] y);
 real[] periodic(real[] x, real[] y);
+real[] natural(real[] x, real[] y);
 void checklengths(int x, int y, string text=<default>);
-real[] natural(real[] x, real[] y);
 void checkincreasing(real[] x);
 grid3(picture pic)[] YX_YZgrid(position posa=<default>, position posb=<default>);
 grid3(picture pic)[] YX_YZgrid;
@@ -3136,16 +3136,18 @@
 grid3 YXgrid(picture pic);
 grid3 XYgrid(picture pic)(position pos=<default>);
 grid3 XYgrid(picture pic);
+void xaxis3(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, pen p=<default>, ticksgridT ticks(), bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, bool above=<default>);
 ticksgridT InTicks()(Label F=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, real Size=<default>, real size=<default>, pen pTick=<default>, pen ptick=<default>, grid3(picture pic)[][] gridroutine, pen pGrid=<default>, pen pgrid=<default>);
-void yaxis3(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, pen p=<default>, ticksgridT ticks(), bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, bool above=<default>);
-position middle;
+grid3(picture pic)[][] XYZgrid(position pos=<default>);
+grid3(picture pic)[][] XYZgrid;
 grid3(picture pic)[] YXYgrid(position pos=<default>);
 grid3(picture pic)[] YXYgrid;
 grid3(picture pic)[] ZX_ZYgrid(position posa=<default>, position posb=<default>);
 grid3(picture pic)[] ZX_ZYgrid;
-ticksgridT OutTicks()(Label F=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, real Size=<default>, real size=<default>, pen pTick=<default>, pen ptick=<default>, grid3(picture pic)[][] gridroutine, pen pGrid=<default>, pen pgrid=<default>);
+position middle;
+void grid3(picture pic=<default>, grid3(picture pic)[][] gridroutine=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, pen pGrid=<default>, pen pgrid=<default>, bool above=<default>);
+void grid3(picture pic=<default>, grid3(picture pic)[][] gridroutine, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, pen[] pGrid, pen[] pgrid, bool above=<default>);
 position top;
-triple ZX(picture pic);
 triple X(picture pic);
 grid3 operator init();
 ticksgridT operator init();
@@ -3154,21 +3156,19 @@
 grid3(picture pic)[][] operator cast(grid3(picture pic)[] gridroutine);
 grid3(picture pic)[][] operator cast(grid3 gridroutine(picture pic));
 position bottom;
-void grid3(picture pic=<default>, grid3(picture pic)[][] gridroutine=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, pen pGrid=<default>, pen pgrid=<default>, bool above=<default>);
-void grid3(picture pic=<default>, grid3(picture pic)[][] gridroutine, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, pen[] pGrid, pen[] pgrid, bool above=<default>);
+triple ZX(picture pic);
+ticksgridT OutTicks()(Label F=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, real Size=<default>, real size=<default>, pen pTick=<default>, pen ptick=<default>, grid3(picture pic)[][] gridroutine, pen pGrid=<default>, pen pgrid=<default>);
 grid3(picture pic)[] XY_XZgrid(position posa=<default>, position posb=<default>);
 grid3(picture pic)[] XY_XZgrid;
+void yaxis3(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, pen p=<default>, ticksgridT ticks(), bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, bool above=<default>);
 grid3(picture pic)[] ZYZgrid(position pos=<default>);
 grid3(picture pic)[] ZYZgrid;
 grid3(picture pic)[] XYXgrid(position pos=<default>);
 grid3(picture pic)[] XYXgrid;
-void xaxis3(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, pen p=<default>, ticksgridT ticks(), bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, bool above=<default>);
 ticksgridT InOutTicks()(Label F=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, real Size=<default>, real size=<default>, pen pTick=<default>, pen ptick=<default>, grid3(picture pic)[][] gridroutine, pen pGrid=<default>, pen pgrid=<default>);
+void zaxis3(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, pen p=<default>, ticksgridT ticks(), bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, bool above=<default>);
+triple XY(picture pic);
 triple YZ(picture pic);
-triple XY(picture pic);
-void zaxis3(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, pen p=<default>, ticksgridT ticks(), bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, bool above=<default>);
-grid3(picture pic)[][] XYZgrid(position pos=<default>);
-grid3(picture pic)[][] XYZgrid;
 triple Z(picture pic);
 real fspline(real)(real[] x, real[] y, real[] splinetype(real[], real[])=<default>);
 real fhorner(real)(horner sh);
@@ -3176,16 +3176,16 @@
 horner hdiffdiv(real[] x, real[] y, real[] dy);
 real pwhermite(real)(real[] x, real[] y, real[] dy);
 horner diffdiv(real[] x, real[] y);
+surface labelpath(string s, path3 p, real angle=<default>, triple optional=<default>);
+triple nextnormal(triple p, triple q);
+triple[] nextframe(path3 p, real reltimestart, triple[] start, real reltimeend, int subdiv=<default>);
+triple[] firstframe(path3 p, triple optional=<default>);
+real eps;
 void labelpath(frame f, Label L, path g, string justify=<default>, pen p=<default>);
 void labelpath(picture pic=<default>, Label L, path g, string justify=<default>, pen p=<default>);
 string RightJustified;
 string Centered;
 string LeftJustified;
-surface labelpath(string s, path3 p, real angle=<default>, triple optional=<default>);
-triple nextnormal(triple p, triple q);
-triple[] firstframe(path3 p, triple optional=<default>);
-triple[] nextframe(path3 p, real reltimestart, triple[] start, real reltimeend, int subdiv=<default>);
-real eps;
 FitControl defaultControl;
 void lm_lmpar(int n, real[] r, int ldr, int[] ipvt, real[] diag, real[] qtb, real delta, lm_real_type par, real[] x, real[] sdiag, real[] wa1, real[] wa2);
 void lm_qrfac(int m, int n, real[] a, bool pivot, int[] ipvt, real[] rdiag, real[] acnorm, real[] wa);
@@ -3276,31 +3276,31 @@
 real sec(real x);
 real csc(real x);
 int quadrant(real degrees);
-int[][] segment(bool[] b);
 pair exp(explicit pair z);
-string nopoint;
+real intersect(pair p, pair q, pair z);
+real intersect(triple P, triple Q, triple n, triple Z);
 real cot(real x);
 pair log(explicit pair z);
+pair unityroot(int n, int k=<default>);
 triple intersectionpoint(triple n0, triple P0, triple n1, triple P1);
 real[] zero(int n);
 real[][] zero(int n, int m);
 real findroot(real f(real), real a, real b, real tolerance=<default>, real fa=<default>, real fb=<default>);
+string nopoint;
 void drawline(picture pic=<default>, pair P, pair Q, pen p=<default>);
 rootfinder_settings operator init();
 real acot(real x);
-real intersect(pair p, pair q, pair z);
-real intersect(triple P, triple Q, triple n, triple Z);
-pair unityroot(int n, int k=<default>);
-int[][] segmentlimits(bool[] b);
 bool polygon(path p);
 bool increasing(real[] a, bool strict=<default>);
 bool square(real[][] m);
+int[][] segment(bool[] b);
+int[][] segmentlimits(bool[] b);
 path cuttings;
 path cutafter(path p, path q);
 path cutbefore(path p, path q);
 obj operator *(real[][] T, obj o);
+void draw(picture pic=<default>, obj o, light light=<default>);
 obj operator init();
-void draw(picture pic=<default>, obj o, light light=<default>);
 real[][] finiteDifferenceJacobian(real[] f(real[]), real[] t, real[] h=<default>);
 solution integrate(real y, real c=<default>, real f(real t, real y), real a, real b=<default>, real h=<default>, int n=<default>, bool dynamic=<default>, real tolmin=<default>, real tolmax=<default>, real dtmin=<default>, real dtmax=<default>, RKTableau tableau, bool verbose=<default>);
 Solution integrate(real[] y, real[] f(real t, real[] y), real a, real b=<default>, real h=<default>, int n=<default>, bool dynamic=<default>, real tolmin=<default>, real tolmax=<default>, real dtmin=<default>, real dtmax=<default>, RKTableau tableau, bool verbose=<default>);
@@ -3316,7 +3316,6 @@
 real[] Coeff;
 real stepfactor;
 real phi2(real x);
-RKTableau PC;
 RKTableau RK5DP;
 RKTableau E_PC;
 RKTableau E_RK2;
@@ -3326,14 +3325,15 @@
 RKTableau operator init();
 solution operator init();
 Solution operator init();
+RKTableau PC;
+real phi3(real x);
 void write(solution S);
 void write(Solution S);
-real phi3(real x);
 void expfactors(real x, coefficients a);
 RKTableau E_RK3BS;
-RKTableau Euler;
 real[] solveBVP(real[] f(real, real[]), real a, real b=<default>, real h=<default>, int n=<default>, bool dynamic=<default>, real tolmin=<default>, real tolmax=<default>, real dtmin=<default>, real dtmax=<default>, RKTableau tableau, bool verbose=<default>, real[] initial(real[]), real[] discrepancy(real[]), real[] guess, int iterations=<default>);
 RKTableau RK5F;
+RKTableau Euler;
 pen[] cmyk(pen[] Palette);
 pen[] BWRainbow2(int NColors=<default>);
 pen[] Wheel(int NColors=<default>);
@@ -3354,6 +3354,7 @@
 void NoTicks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)(int sign=<default>);
 pen[] Gradient(int NColors=<default> ... pen[] p);
 pen[] quantize(pen[] Palette, int n);
+pen[] Rainbow(int NColors=<default>);
 pen[] Grayscale(int NColors=<default>);
 pen[] BWRainbow(int NColors, bool two);
 pen[] BWRainbow(int NColors=<default>);
@@ -3362,7 +3363,6 @@
 void palette(picture pic=<default>, Label L=<default>, bounds bounds, pair initial, pair final, void axis(picture, axisT)=<default>, pen[] palette, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)(int sign=<default>)=<default>, bool copy=<default>, bool antialias=<default>);
 void PaletteTicks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)(int sign=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, pen pTick=<default>, pen ptick=<default>);
 void PaletteTicks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)(int sign=<default>);
-pen[] Rainbow(int NColors=<default>);
 picture crosshatch(real H=<default>, pen p=<default>);
 picture hatch(real H=<default>, pair dir=<default>, pen p=<default>);
 real hatchepsilon;
@@ -3384,24 +3384,24 @@
 int lcm(int m, int n);
 bool operator >=(rational r, rational s);
 rational operator +(rational r, rational s);
-rational operator init();
+bool operator <=(rational r, rational s);
+int gcd(int m, int n);
 rational min(rational a, rational b);
-rational operator -(rational r);
-rational operator -(rational r, rational s);
-rational max(rational a, rational b);
-rational max(rational[] a);
 rational operator cast(int p);
 rational[] operator cast(int[] a);
 rational[][] operator cast(int[][] a);
+rational operator init();
 void write(string s=<default>, rational r, void suffix(file)=<default>);
 void write(string s=<default>, rational[] a, void suffix(file)=<default>);
 void write(string s=<default>, rational[][] a, void suffix(file)=<default>);
-int gcd(int m, int n);
 bool operator ==(rational r, rational s);
 bool[] operator ==(rational[] r, rational s);
 bool operator ==(rational[] r, rational[] s);
 bool operator ==(rational[][] r, rational[][] s);
-bool operator <=(rational r, rational s);
+rational operator -(rational r);
+rational operator -(rational r, rational s);
+rational max(rational a, rational b);
+rational max(rational[] a);
 real operator ecast(rational r);
 rational operator *(rational r, rational s);
 path roundedpath(path A, real R, real S=<default>);
@@ -3459,43 +3459,43 @@
 real pageheight;
 real pagewidth;
 void indexedfigure(string prefix, int first, int last, string options=<default>, string caption=<default>, pair align=<default>, pen p=<default>, pen figuremattpen=<default>, bool step=<default>);
-void equations(string s, pen p=<default>);
 pen titlepen;
 string bulletcolor(string color);
 real minipagemargin;
 void incrementposition(pair z);
-bool allowstepping;
 void newslide(bool stepping=<default>);
 void center(string s, pen p=<default>);
 real titleskip;
 bool stepping;
-pen urlpen;
-pen steppagenumberpen;
-void currentexitfunction();
+pair currentposition;
 void step();
 pair startposition;
-pair currentposition;
 void titlepage(string title, string author, string institution=<default>, string date=<default>, string url=<default>, bool newslide=<default>);
+bool allowstepping;
 void asycode(bool center=<default>, string s, string options=<default>, string caption=<default>, string preamble=<default>, pair align=<default>, pen p=<default>, pen figuremattpen=<default>, real indent=<default>, real skip=<default>, filltype filltype=<default>, bool newslide=<default>);
 pen itempen;
 string asywrite(string s, string preamble=<default>);
 bool reverse;
 void numberpage(pen p=<default>);
+void multifigure(string[] slist, string options=<default>, string caption=<default>, pair align=<default>, pen p=<default>, pen figuremattpen=<default>, bool step=<default>);
 bool firststep;
+void normalvideo();
+real codeskip;
 bool landscape;
 real figureborder;
+pen urlpen;
 string bullet;
-void normalvideo();
-real codeskip;
-void multifigure(string[] slist, string options=<default>, string caption=<default>, pair align=<default>, pen p=<default>, pen figuremattpen=<default>, bool step=<default>);
+pen steppagenumberpen;
 bool itemstep;
 pen pagenumberpen;
-int[] lastnode;
+void currentexitfunction();
 void usersetting();
 real aboveequationskip;
 real minipagewidth;
 void bibliographystyle(string name);
+void equations(string s, pen p=<default>);
 real pagemargin;
+int[] lastnode;
 string texcolor(pen p);
 void title(string s, pair position=<default>, pair align=<default>, pen p=<default>, bool newslide=<default>);
 pen authorpen;
@@ -3513,7 +3513,6 @@
 positionedvector[][] slice(positionedvector[][] a, int start1, int end1, int start2, int end2);
 positionedvector[][][] slice(positionedvector[][][] a, int start1, int end1, int start2, int end2, int start3, int end3);
 triple nGrad(triple)(real f(triple));
-patch[] quadpatches(path3 edgecycle, positionedvector[] corners, real f(triple), triple grad(triple), triple a, triple b, bool usetriangles);
 bool checkpt(triple testpt, real f(triple), triple grad(triple), triple a, triple b);
 bool checkptincube(triple pt, triple a, triple b);
 bool check_fpt_zero(triple testpoint, real f(triple), triple grad(triple));
@@ -3531,8 +3530,13 @@
 real B23(real t);
 real B13(real t);
 real B03(real t);
+evaluatedpoint[][][] make3dgrid(triple a, triple b, int nx, int ny, int nz, real f(triple), bool allowzero=<default>);
 bool operator ==(edge a, edge b);
 real B33(real t);
+string operator cast(edge e);
+string operator cast(edge[] edges);
+string operator cast(positionedvector vv);
+triple operator cast(evaluatedpoint p);
 pathwithnormals_settings operator init();
 intset operator init();
 int_to_intset operator init();
@@ -3540,21 +3544,17 @@
 positionedvector operator init();
 evaluatedpoint operator init();
 gridwithzeros operator init();
-string operator cast(edge e);
-string operator cast(edge[] edges);
-string operator cast(positionedvector vv);
-triple operator cast(evaluatedpoint p);
 real[] projecttospan_findcoeffs(triple toproject, triple v1, triple v2, bool warn=<default>);
-int YLOW;
 int ZLOW;
 int ZHIGH;
 real angledegrees(triple a, triple b);
+int YLOW;
 path3 pathbetween(positionedvector v1, positionedvector v2);
 path3 pathbetween(path3 edgecycle, int vertex1, int vertex2);
 patch[] maketriangle(path3 external, real f(triple), triple grad(triple), bool allowsubdivide=<default>);
 path3 pathinface(positionedvector v1, positionedvector v2, triple facenorm, triple edge1normout, triple edge2normout);
 path3 pathinface(positionedvector v1, positionedvector v2, int face, int edge1face, int edge2face);
-evaluatedpoint[][][] make3dgrid(triple a, triple b, int nx, int ny, int nz, real f(triple), bool allowzero=<default>);
+patch[] quadpatches(path3 edgecycle, positionedvector[] corners, real f(triple), triple grad(triple), triple a, triple b, bool usetriangles);
 int XLOW;
 int[] makecircle(edge[] edges);
 path[] cylinder(path3 base, real h, triple axis=<default>, projection P);
@@ -3564,9 +3564,9 @@
 revolution cone(triple c=<default>, real r, real h, triple axis=<default>, int n=<default>);
 revolution operator *(real[][] t, revolution r);
 revolution sphere(triple c=<default>, real r, int n=<default>);
-void draw(picture pic=<default>, revolution r, int m=<default>, int n=<default>, pen frontpen=<default>, pen backpen=<default>, pen longitudinalpen=<default>, pen longitudinalbackpen=<default>, light light=<default>, string name=<default>, render render=<default>, projection P=<default>);
 skeleton operator init();
 revolution operator init();
+void draw(picture pic=<default>, revolution r, int m=<default>, int n=<default>, pen frontpen=<default>, pen backpen=<default>, pen longitudinalpen=<default>, pen longitudinalbackpen=<default>, light light=<default>, string name=<default>, render render=<default>, projection P=<default>);
 real[] tangent(path p, path q, bool side);
 surface surface(revolution r, int n=<default>, pen color(int i, real j)=<default>);
 linefit leastsquares(real[] x, real[] y);
@@ -3583,15 +3583,15 @@
 real variance(real[] A);
 real legendmarkersize;
 real rms(real[] A);
+int bins(real[] data, int max=<default>);
 void histogram(picture pic=<default>, real[] bins, real[] count, real low=<default>, pen fillpen=<default>, pen drawpen=<default>, bool bars=<default>, Label legend=<default>, real markersize=<default>);
 void histogram(picture pic=<default>, real[] data, real a, real b, int n, bool normalize=<default>, real low=<default>, pen fillpen=<default>, pen drawpen=<default>, bool bars=<default>, Label legend=<default>, real markersize=<default>);
 real kurtosisexcess(real[] A);
-real Gaussian(real x, real sigma);
-real Gaussian(real x);
 linefit operator init();
-int bins(real[] data, int max=<default>);
 real skewness(real[] A);
 path topbox(pair a, pair b);
+real Gaussian(real x, real sigma);
+real Gaussian(real x);
 path halfbox(pair a, pair b);
 real mean(real[] A);
 Relation r4a;
@@ -3641,7 +3641,9 @@
 pen Dandelion;
 pen Goldenrod;
 pen GreenYellow;
+pen Violet;
 pen Peach;
+pen SkyBlue;
 pen VioletRed;
 pen Cerulean;
 pen White;
@@ -3650,30 +3652,27 @@
 pen RedViolet;
 pen Red;
 pen Magenta;
+pen MidnightBlue;
+pen Orchid;
 pen Turquoise;
-pen MidnightBlue;
 pen ProcessBlue;
 pen Black;
 pen Bittersweet;
-pen SkyBlue;
-pen Aquamarine;
-pen Orchid;
+pen ForestGreen;
 pen RawSienna;
 pen Thistle;
+pen TealBlue;
 pen SpringGreen;
-pen Periwinkle;
 pen Sepia;
-pen TealBlue;
 pen LimeGreen;
 pen YellowGreen;
-pen Violet;
-pen ForestGreen;
+pen Periwinkle;
 pen Mulberry;
 pen Cyan;
 pen Blue;
 pen Orange;
+pen Emerald;
 pen CornflowerBlue;
-pen Emerald;
 pen WildStrawberry;
 pen RedOrange;
 pen RoyalBlue;
@@ -3681,10 +3680,11 @@
 pen Purple;
 pen YellowOrange;
 pen Green;
+pen Aquamarine;
 int lookup(tree t, int key);
 bool contains(tree t, int key);
+tree operator init();
 tree add(tree t, int key, int value);
-tree operator init();
 void write(file out=<default>, tree t);
 tree newtree();
 real trembleFrequency;
@@ -3694,15 +3694,15 @@
 real trembleRandom;
 real trembleAngle;
 real degrees(rmf a, rmf b);
-int coloredNodes;
+surface tube(path3 g, coloredpath section, transform T(real)=<default>, real corner=<default>, real relstep=<default>);
 path3 roundedpath(path3 A, real r);
 coloredpath operator cast(path p);
 coloredpath operator cast(guide p);
-surface tube(path3 g, coloredpath section, transform T(real)=<default>, real corner=<default>, real relstep=<default>);
+int coloredNodes;
 coloredpath operator init();
-real[] sample(path3 g, real r, real relstep=<default>);
 surface surface(rmf[] R, real[] t, coloredpath cp, transform T(real), bool cyclic);
 int coloredSegments;
+real[] sample(path3 g, real r, real relstep=<default>);
 string VERSION;
 pen Tomato;
 pen Tan;
@@ -3765,7 +3765,6 @@
 pen BlueViolet;
 pen Beige;
 pen Azure;
-pen Indigo;
 pen SlateBlue;
 pen OliveDrab;
 pen DarkKhaki;
@@ -3774,59 +3773,60 @@
 pen Lime;
 pen LightGoldenrodYellow;
 pen DarkSeaGreen;
-pen MidnightBlue;
+pen SkyBlue;
 pen White;
 pen Yellow;
 pen LightCyan;
 pen GhostWhite;
-pen Ivory;
 pen Red;
 pen Magenta;
 pen LightSeaGreen;
 pen DarkViolet;
 pen Turquoise;
-pen AntiqueWhite;
-pen WhiteSmoke;
-pen Bisque;
 pen PaleGreen;
 pen PaleGoldenrod;
 pen Black;
-pen SkyBlue;
 pen LightBlue;
+pen Bisque;
 pen ForestGreen;
 pen LightGrey;
 pen AliceBlue;
-pen Orchid;
+pen Aquamarine;
 pen SandyBrown;
 pen LavenderBlush;
 pen Thistle;
 pen MediumVioletRed;
-pen FloralWhite;
+pen SteelBlue;
+pen DarkSlateBlue;
+pen SlateGray;
+pen MediumSpringGreen;
+pen Ivory;
 pen BlanchedAlmond;
 pen Linen;
 pen Olive;
 pen SpringGreen;
+pen FloralWhite;
 pen LimeGreen;
 pen FireBrick;
 pen Gold;
+pen Orchid;
+pen AntiqueWhite;
 pen YellowGreen;
-pen MediumSpringGreen;
-pen SteelBlue;
-pen Aqua;
-pen Violet;
+pen MidnightBlue;
+pen WhiteSmoke;
 pen rgbint(int r, int g, int b);
 pen Cyan;
+pen Teal;
 pen Blue;
-pen Teal;
+pen Aqua;
+pen Violet;
 pen MediumBlue;
 pen Chartreuse;
-pen DarkSlateBlue;
-pen SlateGray;
 pen Wheat;
 pen Orange;
-pen CornflowerBlue;
 pen Seashell;
 pen DarkGray;
+pen CornflowerBlue;
 pen MediumOrchid;
 pen Chocolate;
 pen MediumPurple;
@@ -3838,6 +3838,7 @@
 pen RoyalBlue;
 pen Silver;
 pen MediumAquamarine;
+pen Indigo;
 pen Purple;
 pen MediumTurquoise;
 pen DarkTurquoise;
@@ -3844,4 +3845,3 @@
 pen LightSteelBlue;
 pen Green;
 pen Gainsboro;
-pen Aquamarine;

Modified: trunk/Build/source/utils/asymptote/asymptote.spec
===================================================================
--- trunk/Build/source/utils/asymptote/asymptote.spec	2018-04-06 00:23:53 UTC (rev 47318)
+++ trunk/Build/source/utils/asymptote/asymptote.spec	2018-04-06 05:21:01 UTC (rev 47319)
@@ -1,7 +1,7 @@
 %{!?_texmf: %global _texmf %(eval "echo `kpsewhich -expand-var '$TEXMFLOCAL'`")}
 
 Name:           asymptote
-Version:        2.42
+Version:        2.43
 Release:        1%{?dist}
 Summary:        Descriptive vector graphics language
 

Modified: trunk/Build/source/utils/asymptote/build-scripts/HOWTO-MSWindows
===================================================================
--- trunk/Build/source/utils/asymptote/build-scripts/HOWTO-MSWindows	2018-04-06 00:23:53 UTC (rev 47318)
+++ trunk/Build/source/utils/asymptote/build-scripts/HOWTO-MSWindows	2018-04-06 05:21:01 UTC (rev 47319)
@@ -6,11 +6,12 @@
 
 Install these cygwin packages:
 
+git
 wget
 make
 patch
 gcc-g++
-autoconf
+autoconf2.5
 bison
 flex
 w32api-headers
@@ -18,30 +19,21 @@
 zlib-devel
 libGLU-devel
 libtirpc-devel (SRC)
-libncurses-devel (SRC)
 libreadline-devel (SRC)
 libfftw3-devel (SRC)
 libgsl-devel (SRC)
-automake
+automake1.15
 libtool
 
-ln -s /usr/include/tirpc/rpc /usr/include/rpc
-ln -s /usr/include/tirpc/netconfig.h /usr/include/netconfig.h
-ln -s /usr/lib/libtirpc.a /usr/lib/librpc.a
-
 mv /usr/include/GL /usr/include/GL.orig
 
-Build and install from /usr/local/src:
+Build and install static libraries from /usr/local/src:
 
-gsl-devel
+gsl-devel:
 ./configure --prefix=/usr
 make install
 
-ncurses-devel
-./configure --prefix=/usr
-make install
-
-readline-devel
+readline-devel:
 ./configure --prefix=/usr --without-curses --disable-shared
 make install
 
@@ -49,12 +41,14 @@
 ./configure --prefix=/usr --enable-shared 
 make install
 
-Compile static libraries from source:
-tirpc-devel
+tirpc-devel (if rpc library is unavailable):
 ./configure --prefix=/usr --disable-gssapi
 make install
+ln -s /usr/include/tirpc/rpc /usr/include/rpc
+ln -s /usr/include/tirpc/netconfig.h /usr/include/netconfig.h
+ln -s /usr/lib/libtirpc.a /usr/lib/librpc.a
 
-termcap-1.3.1
+termcap-1.3.1:
 ./configure --prefix=/usr
 make install
 
@@ -63,24 +57,26 @@
 cd /usr/include
 patch -p0 < ~/asymptote/patches/cygwin_glu.patch
 
-cd
-~/asymptote/build-scripts/build-freeglut
 mkdir -p ~/dll/cygwin
 cp /usr/bin/cygwin1.dll ~/dll/cygwin
 
+cd
+~/asymptote/build-scripts/build-freeglut
+
 install texlive
 
 mkdir ~/CTAN
-cp -a ~/asymptote/buildscripts/README-binaries ~/CTAN
+cp -a ~/asymptote/build-scripts/README-binaries ~/CTAN
 
 GCVERSION=7.6.2
+wget http://hboehm.info/gc/gc_source/gc-$GCVERSION.tar.gz
+wget http://www.ivmaisoft.com/_bin/atomic_ops/libatomic_ops-$GCVERSION.tar.gz
 tar -zxf gc-$GCVERSION.tar.gz
 tar -zxf libatomic_ops-$GCVERSION.tar.gz
 mv libatomic_ops-$GCVERSION gc-$GCVERSION/libatomic_ops
 cd gc-$GCVERSION
-patch < ~/asymptote/patches/cygwin_gc.patch
+patch -p1 < ~/asymptote/patches/cygwin_gc.patch
 ./configure --disable-shared
 make check
 
-VERSION=2.42
-~/asymptote/build-scripts/build-asymptote.dos $VERSION
+~/asymptote/build-scripts/build-asymptote.dos 2.43

Modified: trunk/Build/source/utils/asymptote/build-scripts/build-asymptote
===================================================================
--- trunk/Build/source/utils/asymptote/build-scripts/build-asymptote	2018-04-06 00:23:53 UTC (rev 47318)
+++ trunk/Build/source/utils/asymptote/build-scripts/build-asymptote	2018-04-06 05:21:01 UTC (rev 47319)
@@ -67,8 +67,8 @@
 cp -a /usr/local/share/info/asy-faq.info $SHARED/asydoc/FAQ
 cd $BUILD
 tar cfz $SRC asymptote-$VERSION
-tar cfz asymptote-$VERSION.i386.tgz $BINDIR
+tar cfz asymptote-$VERSION.x86_64.tgz $BINDIR
 cp $SRC $SHARED
 rm -rf $BUILD/$BINDIR
-tar -zxf asymptote-$VERSION.i386.tgz
+tar -zxf asymptote-$VERSION.x86_64.tgz
 su rpmbuild -c "rpmbuild -ta --nodeps $SRC && rm -rf ~/rpms/BUILD/asymptote-$VERSION"

Modified: trunk/Build/source/utils/asymptote/build-scripts/build-asymptote.dos
===================================================================
--- trunk/Build/source/utils/asymptote/build-scripts/build-asymptote.dos	2018-04-06 00:23:53 UTC (rev 47318)
+++ trunk/Build/source/utils/asymptote/build-scripts/build-asymptote.dos	2018-04-06 05:21:01 UTC (rev 47319)
@@ -1,6 +1,12 @@
 #!/bin/sh -x
 GC=7.6.2
 
+MACHINE=`uname -m`
+if [ $MACHINE == i686 ]; then
+BINDIR=i386-windows
+else
+BINDIR=x86_64-windows
+fi
 SHARED=~/shared/asy
 MAKEFLAGS=-j8
 export MAKEFLAGS
@@ -19,7 +25,7 @@
 rm -rf CTAN/asymptote-$VERSION
 tar -zxf $SHARED/asymptote-$VERSION.src.tgz -C CTAN
 tar -zxf $SHARED/asymptote-$VERSION.src.tgz
-mkdir -p CTAN/asymptote-$VERSION/binaries/i386-win32/texlive
+mkdir -p CTAN/asymptote-$VERSION/binaries/$BINDIR/texlive
 cd asymptote-$VERSION
 fi
 BUILD=build-$VERSION
@@ -30,7 +36,7 @@
 mkdir -p $BUILD
 cp -a $HOME/dll/cygwin/*.dll $HOME/dll/*.dll $BUILD
 chmod 0644 $BUILD/*.dll
-cp -a $BUILD/*.dll ~/CTAN/asymptote-$VERSION/binaries/i386-win32/
+cp -a $BUILD/*.dll ~/CTAN/asymptote-$VERSION/binaries/$BINDIR/
 cp -a $HOME/dll/*.dll .
 make MSDOS=1 DESTDIR="$BUILD/" docdir="$BUILD/"
 test -f asy.list || make MSDOS=1 keywords DESTDIR="$BUILD/" docdir="$BUILD/"
@@ -50,9 +56,16 @@
     | awk '{ if(index($0,"/")==length($0)) print "RMDir /r $INSTDIR\\" substr($0,0,length($0)-1); else print "Delete $INSTDIR\\" $0 }' \
 	> AsymptoteUninstallList.nsi
 
+if [ $MACHINE == i686 ]; then
+sed asymptote.nsi -e 's/$PROGRAMFILES64/$PROGRAMFILES/g' > asymptote32.nsi
+/cygdrive/c/Program\ Files\ \(x86\)/NSIS/makensis.exe asymptote32.nsi
+SUFFIX=-i386
+else
 /cygdrive/c/Program\ Files\ \(x86\)/NSIS/makensis.exe asymptote.nsi
-cp -a --no-preserve=mode asymptote-$VERSION-setup.exe $SHARED
-mv asymptote-$VERSION-setup.exe ~/
+SUFFIX=
+fi
+cp -a --no-preserve=mode asymptote-$VERSION-setup.exe $SHARED/asymptote-$VERSION-setup$SUFFIX.exe
+mv asymptote-$VERSION-setup.exe ~/asymptote-$VERSION-setup$SUFFIX.exe
 
 cd ~/
 rm -rf asymptote-${VERSION}TL || exit
@@ -67,12 +80,19 @@
 make MSDOS=1 DESTDIR="$BUILD/"
 make MSDOS=1 install-asy DESTDIR="$BUILD/"
 mv $BUILD/usr/local/bin/asy.exe $BUILD
-cp $BUILD/asy.exe ~/CTAN/asymptote-$VERSION/binaries/i386-win32/texlive
+cp $BUILD/asy.exe ~/CTAN/asymptote-$VERSION/binaries/$BINDIR/texlive
 cp -a configure.ac ~/CTAN/asymptote-$VERSION/
 cp -a $SHARED/asydoc/* ~/CTAN/asymptote-$VERSION/doc
-cd ~/CTAN/asymptote-$VERSION/binaries/i386-win32
-ln -sf ../../README .
+cd ~/CTAN/asymptote-$VERSION/binaries/$BINDIR
+cp -a ../../README .
 cd ~/CTAN
-cp -a ~/asymptote/build-scripts/README-binaries asymptote-$VERSION/binaries/i386-win32/texlive/README
+cp -a ~/asymptote/build-scripts/README-binaries asymptote-$VERSION/binaries/$BINDIR/texlive/README
+SHAREDBIN=$SHARED/CTAN/asymptote-$VERSION
+if [ $MACHINE == i686 ]; then
+mkdir -p $SHAREDBIN
+cp -a asymptote-$VERSION/binaries/$BINDIR $SHAREDBIN
+else
+cp -a $SHAREDBIN/i386-windows ~/CTAN/asymptote-$VERSION/binaries
+fi
 tar cfz asymptote-$VERSION-CTAN.tgz asymptote-$VERSION
 cp -a --no-preserve=mode asymptote-$VERSION-CTAN.tgz $SHARED

Added: trunk/Build/source/utils/asymptote/builtin.symbols.h
===================================================================
--- trunk/Build/source/utils/asymptote/builtin.symbols.h	                        (rev 0)
+++ trunk/Build/source/utils/asymptote/builtin.symbols.h	2018-04-06 05:21:01 UTC (rev 47319)
@@ -0,0 +1,91 @@
+/*****
+ * This file is automatically generated by findsym.pl
+ * Changes will be overwritten.
+ *****/
+
+// If the ADDSYMBOL macro is not already defined, define it with the default
+// purpose of referring to an external pre-translated symbol, such that
+// SYM(name) also refers to that symbol.
+#ifndef ADDSYMBOL
+    #define ADDSYMBOL(name) extern sym::symbol PRETRANSLATED_SYMBOL_##name
+    #define SYM(name) PRETRANSLATED_SYMBOL_##name
+#endif
+
+ADDSYMBOL(VERSION);
+ADDSYMBOL(a);
+ADDSYMBOL(abs);
+ADDSYMBOL(acos);
+ADDSYMBOL(acosh);
+ADDSYMBOL(alias);
+ADDSYMBOL(array);
+ADDSYMBOL(asin);
+ADDSYMBOL(asinh);
+ADDSYMBOL(atan);
+ADDSYMBOL(atanh);
+ADDSYMBOL(b);
+ADDSYMBOL(cbrt);
+ADDSYMBOL(concat);
+ADDSYMBOL(conj);
+ADDSYMBOL(copy);
+ADDSYMBOL(cos);
+ADDSYMBOL(cosh);
+ADDSYMBOL(currentpen);
+ADDSYMBOL(depth);
+ADDSYMBOL(diagonal);
+ADDSYMBOL(e);
+ADDSYMBOL(exp);
+ADDSYMBOL(expm1);
+ADDSYMBOL(f);
+ADDSYMBOL(fabs);
+ADDSYMBOL(file);
+ADDSYMBOL(identity);
+ADDSYMBOL(inf);
+ADDSYMBOL(infinity);
+ADDSYMBOL(initialized);
+ADDSYMBOL(intMax);
+ADDSYMBOL(intMin);
+ADDSYMBOL(interp);
+ADDSYMBOL(key);
+ADDSYMBOL(ldexp);
+ADDSYMBOL(less);
+ADDSYMBOL(log);
+ADDSYMBOL(log10);
+ADDSYMBOL(log1p);
+ADDSYMBOL(map);
+ADDSYMBOL(max);
+ADDSYMBOL(maxbound);
+ADDSYMBOL(min);
+ADDSYMBOL(minbound);
+ADDSYMBOL(n);
+ADDSYMBOL(nan);
+ADDSYMBOL(perm);
+ADDSYMBOL(pi);
+ADDSYMBOL(pow10);
+ADDSYMBOL(printBytecode);
+ADDSYMBOL(randMax);
+ADDSYMBOL(realDigits);
+ADDSYMBOL(realEpsilon);
+ADDSYMBOL(realMax);
+ADDSYMBOL(realMin);
+ADDSYMBOL(s);
+ADDSYMBOL(search);
+ADDSYMBOL(sequence);
+ADDSYMBOL(sin);
+ADDSYMBOL(sinh);
+ADDSYMBOL(sort);
+ADDSYMBOL(sqrt);
+ADDSYMBOL(suffix);
+ADDSYMBOL(sum);
+ADDSYMBOL(t);
+ADDSYMBOL(tan);
+ADDSYMBOL(tanh);
+ADDSYMBOL(transpose);
+ADDSYMBOL(value);
+ADDSYMBOL(write);
+ADDSYMBOL(x);
+ADDSYMBOL(xx);
+ADDSYMBOL(xy);
+ADDSYMBOL(y);
+ADDSYMBOL(yx);
+ADDSYMBOL(yy);
+ADDSYMBOL(z);


Property changes on: trunk/Build/source/utils/asymptote/builtin.symbols.h
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Build/source/utils/asymptote/config.guess
===================================================================
--- trunk/Build/source/utils/asymptote/config.guess	2018-04-06 00:23:53 UTC (rev 47318)
+++ trunk/Build/source/utils/asymptote/config.guess	2018-04-06 05:21:01 UTC (rev 47319)
@@ -1,14 +1,12 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
-#   Free Software Foundation, Inc.
+#   Copyright 1992-2018 Free Software Foundation, Inc.
 
-timestamp='2008-01-23'
+timestamp='2018-03-08'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
+# the Free Software Foundation; either version 3 of the License, or
 # (at your option) any later version.
 #
 # This program is distributed in the hope that it will be useful, but
@@ -17,27 +15,23 @@
 # General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 #
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
 # configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-
-# Originally written by Per Bothner <per at bothner.com>.
-# Please send patches to <config-patches at gnu.org>.  Submit a context
-# diff and a properly formatted ChangeLog entry.
+# the same distribution terms that you use for the rest of that
+# program.  This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
 #
-# This script attempts to guess a canonical system name similar to
-# config.sub.  If it succeeds, it prints the system name on stdout, and
-# exits with 0.  Otherwise, it exits with 1.
+# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
 #
-# The plan is that this can be called by configure scripts if you
-# don't specify an explicit build system type.
+# You can get the latest version of this script from:
+# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
+#
+# Please send patches to <config-patches at gnu.org>.
 
+
 me=`echo "$0" | sed -e 's,.*/,,'`
 
 usage="\
@@ -45,7 +39,7 @@
 
 Output the configuration name of the system \`$me' is run on.
 
-Operation modes:
+Options:
   -h, --help         print this help, then exit
   -t, --time-stamp   print date of last modification, then exit
   -v, --version      print version number, then exit
@@ -56,8 +50,7 @@
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+Copyright 1992-2018 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -114,9 +107,9 @@
 dummy=$tmp/dummy ;
 tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
 case $CC_FOR_BUILD,$HOST_CC,$CC in
- ,,)    echo "int x;" > $dummy.c ;
+ ,,)    echo "int x;" > "$dummy.c" ;
 	for c in cc gcc c89 c99 ; do
-	  if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
+	  if ($c -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
 	     CC_FOR_BUILD="$c"; break ;
 	  fi ;
 	done ;
@@ -139,12 +132,40 @@
 UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
 
+case "$UNAME_SYSTEM" in
+Linux|GNU|GNU/*)
+	# If the system lacks a compiler, then just pick glibc.
+	# We could probably try harder.
+	LIBC=gnu
+
+	eval "$set_cc_for_build"
+	cat <<-EOF > "$dummy.c"
+	#include <features.h>
+	#if defined(__UCLIBC__)
+	LIBC=uclibc
+	#elif defined(__dietlibc__)
+	LIBC=dietlibc
+	#else
+	LIBC=gnu
+	#endif
+	EOF
+	eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`"
+
+	# If ldd exists, use it to detect musl libc.
+	if command -v ldd >/dev/null && \
+		ldd --version 2>&1 | grep -q ^musl
+	then
+	    LIBC=musl
+	fi
+	;;
+esac
+
 # Note: order is significant - the case branches are not exclusive.
 
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
     *:NetBSD:*:*)
 	# NetBSD (nbsd) targets should (where applicable) match one or
-	# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
+	# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
 	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
 	# switched to ELF, *-*-netbsd* would select the old
 	# object file format.  This provides both forward
@@ -154,23 +175,33 @@
 	# Note: NetBSD doesn't particularly care about the vendor
 	# portion of the name.  We always set it to "unknown".
 	sysctl="sysctl -n hw.machine_arch"
-	UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
-	    /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
-	case "${UNAME_MACHINE_ARCH}" in
+	UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
+	    "/sbin/$sysctl" 2>/dev/null || \
+	    "/usr/sbin/$sysctl" 2>/dev/null || \
+	    echo unknown)`
+	case "$UNAME_MACHINE_ARCH" in
 	    armeb) machine=armeb-unknown ;;
 	    arm*) machine=arm-unknown ;;
 	    sh3el) machine=shl-unknown ;;
 	    sh3eb) machine=sh-unknown ;;
 	    sh5el) machine=sh5le-unknown ;;
-	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+	    earmv*)
+		arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
+		endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'`
+		machine="${arch}${endian}"-unknown
+		;;
+	    *) machine="$UNAME_MACHINE_ARCH"-unknown ;;
 	esac
 	# The Operating System including object format, if it has switched
-	# to ELF recently, or will in the future.
-	case "${UNAME_MACHINE_ARCH}" in
+	# to ELF recently (or will in the future) and ABI.
+	case "$UNAME_MACHINE_ARCH" in
+	    earm*)
+		os=netbsdelf
+		;;
 	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
-		eval $set_cc_for_build
+		eval "$set_cc_for_build"
 		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
-			| grep __ELF__ >/dev/null
+			| grep -q __ELF__
 		then
 		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
 		    # Return netbsd for either.  FIX?
@@ -180,43 +211,70 @@
 		fi
 		;;
 	    *)
-	        os=netbsd
+		os=netbsd
 		;;
 	esac
+	# Determine ABI tags.
+	case "$UNAME_MACHINE_ARCH" in
+	    earm*)
+		expr='s/^earmv[0-9]/-eabi/;s/eb$//'
+		abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"`
+		;;
+	esac
 	# The OS release
 	# Debian GNU/NetBSD machines have a different userland, and
 	# thus, need a distinct triplet. However, they do not need
 	# kernel version information, so it can be replaced with a
 	# suitable tag, in the style of linux-gnu.
-	case "${UNAME_VERSION}" in
+	case "$UNAME_VERSION" in
 	    Debian*)
 		release='-gnu'
 		;;
 	    *)
-		release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+		release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2`
 		;;
 	esac
 	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
 	# contains redundant information, the shorter form:
 	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
-	echo "${machine}-${os}${release}"
+	echo "$machine-${os}${release}${abi}"
 	exit ;;
+    *:Bitrig:*:*)
+	UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
+	echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE"
+	exit ;;
     *:OpenBSD:*:*)
 	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
-	echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+	echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE"
 	exit ;;
+    *:LibertyBSD:*:*)
+	UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
+	echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE"
+	exit ;;
+    *:MidnightBSD:*:*)
+	echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE"
+	exit ;;
     *:ekkoBSD:*:*)
-	echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+	echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE"
 	exit ;;
     *:SolidBSD:*:*)
-	echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
+	echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE"
 	exit ;;
     macppc:MirBSD:*:*)
-	echo powerpc-unknown-mirbsd${UNAME_RELEASE}
+	echo powerpc-unknown-mirbsd"$UNAME_RELEASE"
 	exit ;;
     *:MirBSD:*:*)
-	echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+	echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE"
 	exit ;;
+    *:Sortix:*:*)
+	echo "$UNAME_MACHINE"-unknown-sortix
+	exit ;;
+    *:Redox:*:*)
+	echo "$UNAME_MACHINE"-unknown-redox
+	exit ;;
+    mips:OSF1:*.*)
+        echo mips-dec-osf1
+        exit ;;
     alpha:OSF1:*:*)
 	case $UNAME_RELEASE in
 	*4.0)
@@ -223,7 +281,7 @@
 		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
 		;;
 	*5.*)
-	        UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
 		;;
 	esac
 	# According to Compaq, /usr/sbin/psrinfo has been available on
@@ -233,35 +291,35 @@
 	ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
 	case "$ALPHA_CPU_TYPE" in
 	    "EV4 (21064)")
-		UNAME_MACHINE="alpha" ;;
+		UNAME_MACHINE=alpha ;;
 	    "EV4.5 (21064)")
-		UNAME_MACHINE="alpha" ;;
+		UNAME_MACHINE=alpha ;;
 	    "LCA4 (21066/21068)")
-		UNAME_MACHINE="alpha" ;;
+		UNAME_MACHINE=alpha ;;
 	    "EV5 (21164)")
-		UNAME_MACHINE="alphaev5" ;;
+		UNAME_MACHINE=alphaev5 ;;
 	    "EV5.6 (21164A)")
-		UNAME_MACHINE="alphaev56" ;;
+		UNAME_MACHINE=alphaev56 ;;
 	    "EV5.6 (21164PC)")
-		UNAME_MACHINE="alphapca56" ;;
+		UNAME_MACHINE=alphapca56 ;;
 	    "EV5.7 (21164PC)")
-		UNAME_MACHINE="alphapca57" ;;
+		UNAME_MACHINE=alphapca57 ;;
 	    "EV6 (21264)")
-		UNAME_MACHINE="alphaev6" ;;
+		UNAME_MACHINE=alphaev6 ;;
 	    "EV6.7 (21264A)")
-		UNAME_MACHINE="alphaev67" ;;
+		UNAME_MACHINE=alphaev67 ;;
 	    "EV6.8CB (21264C)")
-		UNAME_MACHINE="alphaev68" ;;
+		UNAME_MACHINE=alphaev68 ;;
 	    "EV6.8AL (21264B)")
-		UNAME_MACHINE="alphaev68" ;;
+		UNAME_MACHINE=alphaev68 ;;
 	    "EV6.8CX (21264D)")
-		UNAME_MACHINE="alphaev68" ;;
+		UNAME_MACHINE=alphaev68 ;;
 	    "EV6.9A (21264/EV69A)")
-		UNAME_MACHINE="alphaev69" ;;
+		UNAME_MACHINE=alphaev69 ;;
 	    "EV7 (21364)")
-		UNAME_MACHINE="alphaev7" ;;
+		UNAME_MACHINE=alphaev7 ;;
 	    "EV7.9 (21364A)")
-		UNAME_MACHINE="alphaev79" ;;
+		UNAME_MACHINE=alphaev79 ;;
 	esac
 	# A Pn.n version is a patched version.
 	# A Vn.n version is a released version.
@@ -268,25 +326,19 @@
 	# A Tn.n version is a released field test version.
 	# A Xn.n version is an unreleased experimental baselevel.
 	# 1.2 uses "1.2" for uname -r.
-	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-	exit ;;
-    Alpha\ *:Windows_NT*:*)
-	# How do we know it's Interix rather than the generic POSIX subsystem?
-	# Should we change UNAME_MACHINE based on the output of uname instead
-	# of the specific Alpha model?
-	echo alpha-pc-interix
-	exit ;;
-    21064:Windows_NT:50:3)
-	echo alpha-dec-winnt3.5
-	exit ;;
+	echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`"
+	# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
+	exitcode=$?
+	trap '' 0
+	exit $exitcode ;;
     Amiga*:UNIX_System_V:4.0:*)
 	echo m68k-unknown-sysv4
 	exit ;;
     *:[Aa]miga[Oo][Ss]:*:*)
-	echo ${UNAME_MACHINE}-unknown-amigaos
+	echo "$UNAME_MACHINE"-unknown-amigaos
 	exit ;;
     *:[Mm]orph[Oo][Ss]:*:*)
-	echo ${UNAME_MACHINE}-unknown-morphos
+	echo "$UNAME_MACHINE"-unknown-morphos
 	exit ;;
     *:OS/390:*:*)
 	echo i370-ibm-openedition
@@ -295,12 +347,12 @@
 	echo s390-ibm-zvmoe
 	exit ;;
     *:OS400:*:*)
-        echo powerpc-ibm-os400
+	echo powerpc-ibm-os400
 	exit ;;
     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
-	echo arm-acorn-riscix${UNAME_RELEASE}
+	echo arm-acorn-riscix"$UNAME_RELEASE"
 	exit ;;
-    arm:riscos:*:*|arm:RISCOS:*:*)
+    arm*:riscos:*:*|arm*:RISCOS:*:*)
 	echo arm-unknown-riscos
 	exit ;;
     SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
@@ -324,20 +376,39 @@
 	case `/usr/bin/uname -p` in
 	    sparc) echo sparc-icl-nx7; exit ;;
 	esac ;;
+    s390x:SunOS:*:*)
+	echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
+	exit ;;
     sun4H:SunOS:5.*:*)
-	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
 	exit ;;
     sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
-	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
 	exit ;;
+    i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
+	echo i386-pc-auroraux"$UNAME_RELEASE"
+	exit ;;
     i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
-	echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	eval "$set_cc_for_build"
+	SUN_ARCH=i386
+	# If there is a compiler, see if it is configured for 64-bit objects.
+	# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
+	# This test works for both compilers.
+	if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
+	    if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
+		(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+		grep IS_64BIT_ARCH >/dev/null
+	    then
+		SUN_ARCH=x86_64
+	    fi
+	fi
+	echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
 	exit ;;
     sun4*:SunOS:6*:*)
 	# According to config.sub, this is the proper way to canonicalize
 	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
 	# it's likely to be more like Solaris than SunOS4.
-	echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
 	exit ;;
     sun4*:SunOS:*:*)
 	case "`/usr/bin/arch -k`" in
@@ -346,25 +417,25 @@
 		;;
 	esac
 	# Japanese Language versions have a version number like `4.1.3-JL'.
-	echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+	echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`"
 	exit ;;
     sun3*:SunOS:*:*)
-	echo m68k-sun-sunos${UNAME_RELEASE}
+	echo m68k-sun-sunos"$UNAME_RELEASE"
 	exit ;;
     sun*:*:4.2BSD:*)
 	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
-	test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+	test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
 	case "`/bin/arch`" in
 	    sun3)
-		echo m68k-sun-sunos${UNAME_RELEASE}
+		echo m68k-sun-sunos"$UNAME_RELEASE"
 		;;
 	    sun4)
-		echo sparc-sun-sunos${UNAME_RELEASE}
+		echo sparc-sun-sunos"$UNAME_RELEASE"
 		;;
 	esac
 	exit ;;
     aushp:SunOS:*:*)
-	echo sparc-auspex-sunos${UNAME_RELEASE}
+	echo sparc-auspex-sunos"$UNAME_RELEASE"
 	exit ;;
     # The situation for MiNT is a little confusing.  The machine name
     # can be virtually everything (everything which is not
@@ -375,44 +446,44 @@
     # MiNT.  But MiNT is downward compatible to TOS, so this should
     # be no problem.
     atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
-        echo m68k-atari-mint${UNAME_RELEASE}
+	echo m68k-atari-mint"$UNAME_RELEASE"
 	exit ;;
     atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
-	echo m68k-atari-mint${UNAME_RELEASE}
-        exit ;;
+	echo m68k-atari-mint"$UNAME_RELEASE"
+	exit ;;
     *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
-        echo m68k-atari-mint${UNAME_RELEASE}
+	echo m68k-atari-mint"$UNAME_RELEASE"
 	exit ;;
     milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
-        echo m68k-milan-mint${UNAME_RELEASE}
-        exit ;;
+	echo m68k-milan-mint"$UNAME_RELEASE"
+	exit ;;
     hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
-        echo m68k-hades-mint${UNAME_RELEASE}
-        exit ;;
+	echo m68k-hades-mint"$UNAME_RELEASE"
+	exit ;;
     *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
-        echo m68k-unknown-mint${UNAME_RELEASE}
-        exit ;;
+	echo m68k-unknown-mint"$UNAME_RELEASE"
+	exit ;;
     m68k:machten:*:*)
-	echo m68k-apple-machten${UNAME_RELEASE}
+	echo m68k-apple-machten"$UNAME_RELEASE"
 	exit ;;
     powerpc:machten:*:*)
-	echo powerpc-apple-machten${UNAME_RELEASE}
+	echo powerpc-apple-machten"$UNAME_RELEASE"
 	exit ;;
     RISC*:Mach:*:*)
 	echo mips-dec-mach_bsd4.3
 	exit ;;
     RISC*:ULTRIX:*:*)
-	echo mips-dec-ultrix${UNAME_RELEASE}
+	echo mips-dec-ultrix"$UNAME_RELEASE"
 	exit ;;
     VAX*:ULTRIX*:*:*)
-	echo vax-dec-ultrix${UNAME_RELEASE}
+	echo vax-dec-ultrix"$UNAME_RELEASE"
 	exit ;;
     2020:CLIX:*:* | 2430:CLIX:*:*)
-	echo clipper-intergraph-clix${UNAME_RELEASE}
+	echo clipper-intergraph-clix"$UNAME_RELEASE"
 	exit ;;
     mips:*:*:UMIPS | mips:*:*:RISCos)
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
+	eval "$set_cc_for_build"
+	sed 's/^	//' << EOF > "$dummy.c"
 #ifdef __cplusplus
 #include <stdio.h>  /* for printf() prototype */
 	int main (int argc, char *argv[]) {
@@ -421,23 +492,23 @@
 #endif
 	#if defined (host_mips) && defined (MIPSEB)
 	#if defined (SYSTYPE_SYSV)
-	  printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+	  printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0);
 	#endif
 	#if defined (SYSTYPE_SVR4)
-	  printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+	  printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0);
 	#endif
 	#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
-	  printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+	  printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0);
 	#endif
 	#endif
 	  exit (-1);
 	}
 EOF
-	$CC_FOR_BUILD -o $dummy $dummy.c &&
-	  dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
-	  SYSTEM_NAME=`$dummy $dummyarg` &&
+	$CC_FOR_BUILD -o "$dummy" "$dummy.c" &&
+	  dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+	  SYSTEM_NAME=`"$dummy" "$dummyarg"` &&
 	    { echo "$SYSTEM_NAME"; exit; }
-	echo mips-mips-riscos${UNAME_RELEASE}
+	echo mips-mips-riscos"$UNAME_RELEASE"
 	exit ;;
     Motorola:PowerMAX_OS:*:*)
 	echo powerpc-motorola-powermax
@@ -461,21 +532,21 @@
 	echo m88k-motorola-sysv3
 	exit ;;
     AViiON:dgux:*:*)
-        # DG/UX returns AViiON for all architectures
-        UNAME_PROCESSOR=`/usr/bin/uname -p`
-	if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+	# DG/UX returns AViiON for all architectures
+	UNAME_PROCESSOR=`/usr/bin/uname -p`
+	if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ]
 	then
-	    if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
-	       [ ${TARGET_BINARY_INTERFACE}x = x ]
+	    if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \
+	       [ "$TARGET_BINARY_INTERFACE"x = x ]
 	    then
-		echo m88k-dg-dgux${UNAME_RELEASE}
+		echo m88k-dg-dgux"$UNAME_RELEASE"
 	    else
-		echo m88k-dg-dguxbcs${UNAME_RELEASE}
+		echo m88k-dg-dguxbcs"$UNAME_RELEASE"
 	    fi
 	else
-	    echo i586-dg-dgux${UNAME_RELEASE}
+	    echo i586-dg-dgux"$UNAME_RELEASE"
 	fi
- 	exit ;;
+	exit ;;
     M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
 	echo m88k-dolphin-sysv3
 	exit ;;
@@ -490,7 +561,7 @@
 	echo m68k-tektronix-bsd
 	exit ;;
     *:IRIX*:*:*)
-	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+	echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`"
 	exit ;;
     ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
 	echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
@@ -502,14 +573,14 @@
 	if [ -x /usr/bin/oslevel ] ; then
 		IBM_REV=`/usr/bin/oslevel`
 	else
-		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+		IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
 	fi
-	echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+	echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV"
 	exit ;;
     *:AIX:2:3)
 	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
-		eval $set_cc_for_build
-		sed 's/^		//' << EOF >$dummy.c
+		eval "$set_cc_for_build"
+		sed 's/^		//' << EOF > "$dummy.c"
 		#include <sys/systemcfg.h>
 
 		main()
@@ -520,7 +591,7 @@
 			exit(0);
 			}
 EOF
-		if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+		if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"`
 		then
 			echo "$SYSTEM_NAME"
 		else
@@ -532,28 +603,29 @@
 		echo rs6000-ibm-aix3.2
 	fi
 	exit ;;
-    *:AIX:*:[456])
+    *:AIX:*:[4567])
 	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
-	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+	if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then
 		IBM_ARCH=rs6000
 	else
 		IBM_ARCH=powerpc
 	fi
-	if [ -x /usr/bin/oslevel ] ; then
-		IBM_REV=`/usr/bin/oslevel`
+	if [ -x /usr/bin/lslpp ] ; then
+		IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
+			   awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
 	else
-		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+		IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
 	fi
-	echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+	echo "$IBM_ARCH"-ibm-aix"$IBM_REV"
 	exit ;;
     *:AIX:*:*)
 	echo rs6000-ibm-aix
 	exit ;;
-    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+    ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
 	echo romp-ibm-bsd4.4
 	exit ;;
     ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
-	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
+	echo romp-ibm-bsd"$UNAME_RELEASE"   # 4.3 with uname added to
 	exit ;;                             # report: romp-ibm BSD 4.3
     *:BOSX:*:*)
 	echo rs6000-bull-bosx
@@ -568,67 +640,67 @@
 	echo m68k-hp-bsd4.4
 	exit ;;
     9000/[34678]??:HP-UX:*:*)
-	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
-	case "${UNAME_MACHINE}" in
-	    9000/31? )            HP_ARCH=m68000 ;;
-	    9000/[34]?? )         HP_ARCH=m68k ;;
+	HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
+	case "$UNAME_MACHINE" in
+	    9000/31?)            HP_ARCH=m68000 ;;
+	    9000/[34]??)         HP_ARCH=m68k ;;
 	    9000/[678][0-9][0-9])
 		if [ -x /usr/bin/getconf ]; then
 		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
-                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
-                    case "${sc_cpu_version}" in
-                      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
-                      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
-                      532)                      # CPU_PA_RISC2_0
-                        case "${sc_kernel_bits}" in
-                          32) HP_ARCH="hppa2.0n" ;;
-                          64) HP_ARCH="hppa2.0w" ;;
-			  '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
-                        esac ;;
-                    esac
+		    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+		    case "$sc_cpu_version" in
+		      523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
+		      528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
+		      532)                      # CPU_PA_RISC2_0
+			case "$sc_kernel_bits" in
+			  32) HP_ARCH=hppa2.0n ;;
+			  64) HP_ARCH=hppa2.0w ;;
+			  '') HP_ARCH=hppa2.0 ;;   # HP-UX 10.20
+			esac ;;
+		    esac
 		fi
-		if [ "${HP_ARCH}" = "" ]; then
-		    eval $set_cc_for_build
-		    sed 's/^              //' << EOF >$dummy.c
+		if [ "$HP_ARCH" = "" ]; then
+		    eval "$set_cc_for_build"
+		    sed 's/^		//' << EOF > "$dummy.c"
 
-              #define _HPUX_SOURCE
-              #include <stdlib.h>
-              #include <unistd.h>
+		#define _HPUX_SOURCE
+		#include <stdlib.h>
+		#include <unistd.h>
 
-              int main ()
-              {
-              #if defined(_SC_KERNEL_BITS)
-                  long bits = sysconf(_SC_KERNEL_BITS);
-              #endif
-                  long cpu  = sysconf (_SC_CPU_VERSION);
+		int main ()
+		{
+		#if defined(_SC_KERNEL_BITS)
+		    long bits = sysconf(_SC_KERNEL_BITS);
+		#endif
+		    long cpu  = sysconf (_SC_CPU_VERSION);
 
-                  switch (cpu)
-              	{
-              	case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
-              	case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
-              	case CPU_PA_RISC2_0:
-              #if defined(_SC_KERNEL_BITS)
-              	    switch (bits)
-              		{
-              		case 64: puts ("hppa2.0w"); break;
-              		case 32: puts ("hppa2.0n"); break;
-              		default: puts ("hppa2.0"); break;
-              		} break;
-              #else  /* !defined(_SC_KERNEL_BITS) */
-              	    puts ("hppa2.0"); break;
-              #endif
-              	default: puts ("hppa1.0"); break;
-              	}
-                  exit (0);
-              }
+		    switch (cpu)
+			{
+			case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+			case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+			case CPU_PA_RISC2_0:
+		#if defined(_SC_KERNEL_BITS)
+			    switch (bits)
+				{
+				case 64: puts ("hppa2.0w"); break;
+				case 32: puts ("hppa2.0n"); break;
+				default: puts ("hppa2.0"); break;
+				} break;
+		#else  /* !defined(_SC_KERNEL_BITS) */
+			    puts ("hppa2.0"); break;
+		#endif
+			default: puts ("hppa1.0"); break;
+			}
+		    exit (0);
+		}
 EOF
-		    (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+		    (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"`
 		    test -z "$HP_ARCH" && HP_ARCH=hppa
 		fi ;;
 	esac
-	if [ ${HP_ARCH} = "hppa2.0w" ]
+	if [ "$HP_ARCH" = hppa2.0w ]
 	then
-	    eval $set_cc_for_build
+	    eval "$set_cc_for_build"
 
 	    # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
 	    # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
@@ -639,23 +711,23 @@
 	    # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
 	    # => hppa64-hp-hpux11.23
 
-	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
-		grep __LP64__ >/dev/null
+	    if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) |
+		grep -q __LP64__
 	    then
-		HP_ARCH="hppa2.0w"
+		HP_ARCH=hppa2.0w
 	    else
-		HP_ARCH="hppa64"
+		HP_ARCH=hppa64
 	    fi
 	fi
-	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+	echo "$HP_ARCH"-hp-hpux"$HPUX_REV"
 	exit ;;
     ia64:HP-UX:*:*)
-	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
-	echo ia64-hp-hpux${HPUX_REV}
+	HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
+	echo ia64-hp-hpux"$HPUX_REV"
 	exit ;;
     3050*:HI-UX:*:*)
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
+	eval "$set_cc_for_build"
+	sed 's/^	//' << EOF > "$dummy.c"
 	#include <unistd.h>
 	int
 	main ()
@@ -680,11 +752,11 @@
 	  exit (0);
 	}
 EOF
-	$CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+	$CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` &&
 		{ echo "$SYSTEM_NAME"; exit; }
 	echo unknown-hitachi-hiuxwe2
 	exit ;;
-    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
 	echo hppa1.1-hp-bsd
 	exit ;;
     9000/8??:4.3bsd:*:*)
@@ -693,7 +765,7 @@
     *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
 	echo hppa1.0-hp-mpeix
 	exit ;;
-    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
 	echo hppa1.1-hp-osf
 	exit ;;
     hp8??:OSF1:*:*)
@@ -701,9 +773,9 @@
 	exit ;;
     i*86:OSF1:*:*)
 	if [ -x /usr/sbin/sysversion ] ; then
-	    echo ${UNAME_MACHINE}-unknown-osf1mk
+	    echo "$UNAME_MACHINE"-unknown-osf1mk
 	else
-	    echo ${UNAME_MACHINE}-unknown-osf1
+	    echo "$UNAME_MACHINE"-unknown-osf1
 	fi
 	exit ;;
     parisc*:Lites*:*:*)
@@ -711,325 +783,274 @@
 	exit ;;
     C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
 	echo c1-convex-bsd
-        exit ;;
+	exit ;;
     C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
 	if getsysinfo -f scalar_acc
 	then echo c32-convex-bsd
 	else echo c2-convex-bsd
 	fi
-        exit ;;
+	exit ;;
     C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
 	echo c34-convex-bsd
-        exit ;;
+	exit ;;
     C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
 	echo c38-convex-bsd
-        exit ;;
+	exit ;;
     C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
 	echo c4-convex-bsd
-        exit ;;
+	exit ;;
     CRAY*Y-MP:*:*:*)
-	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
 	exit ;;
     CRAY*[A-Z]90:*:*:*)
-	echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+	echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \
 	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
 	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
 	      -e 's/\.[^.]*$/.X/'
 	exit ;;
     CRAY*TS:*:*:*)
-	echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
 	exit ;;
     CRAY*T3E:*:*:*)
-	echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
 	exit ;;
     CRAY*SV1:*:*:*)
-	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
 	exit ;;
     *:UNICOS/mp:*:*)
-	echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
 	exit ;;
     F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
-	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
-        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-        exit ;;
+	FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
+	FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
+	FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'`
+	echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+	exit ;;
     5000:UNIX_System_V:4.*:*)
-        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-        FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
-        echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+	FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
+	FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
+	echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
 	exit ;;
     i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
-	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+	echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE"
 	exit ;;
     sparc*:BSD/OS:*:*)
-	echo sparc-unknown-bsdi${UNAME_RELEASE}
+	echo sparc-unknown-bsdi"$UNAME_RELEASE"
 	exit ;;
     *:BSD/OS:*:*)
-	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+	echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE"
 	exit ;;
     *:FreeBSD:*:*)
-	case ${UNAME_MACHINE} in
-	    pc98)
-		echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+	UNAME_PROCESSOR=`/usr/bin/uname -p`
+	case "$UNAME_PROCESSOR" in
 	    amd64)
-		echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
-	    *)
-		echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+		UNAME_PROCESSOR=x86_64 ;;
+	    i386)
+		UNAME_PROCESSOR=i586 ;;
 	esac
+	echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
 	exit ;;
     i*:CYGWIN*:*)
-	echo ${UNAME_MACHINE}-pc-cygwin
+	echo "$UNAME_MACHINE"-pc-cygwin
 	exit ;;
+    *:MINGW64*:*)
+	echo "$UNAME_MACHINE"-pc-mingw64
+	exit ;;
     *:MINGW*:*)
-	echo ${UNAME_MACHINE}-pc-mingw32
+	echo "$UNAME_MACHINE"-pc-mingw32
 	exit ;;
-    i*:windows32*:*)
-    	# uname -m includes "-pc" on this system.
-    	echo ${UNAME_MACHINE}-mingw32
+    *:MSYS*:*)
+	echo "$UNAME_MACHINE"-pc-msys
 	exit ;;
     i*:PW*:*)
-	echo ${UNAME_MACHINE}-pc-pw32
+	echo "$UNAME_MACHINE"-pc-pw32
 	exit ;;
-    *:Interix*:[3456]*)
-    	case ${UNAME_MACHINE} in
+    *:Interix*:*)
+	case "$UNAME_MACHINE" in
 	    x86)
-		echo i586-pc-interix${UNAME_RELEASE}
+		echo i586-pc-interix"$UNAME_RELEASE"
 		exit ;;
-	    EM64T | authenticamd)
-		echo x86_64-unknown-interix${UNAME_RELEASE}
+	    authenticamd | genuineintel | EM64T)
+		echo x86_64-unknown-interix"$UNAME_RELEASE"
 		exit ;;
 	    IA64)
-		echo ia64-unknown-interix${UNAME_RELEASE}
+		echo ia64-unknown-interix"$UNAME_RELEASE"
 		exit ;;
 	esac ;;
-    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
-	echo i${UNAME_MACHINE}-pc-mks
-	exit ;;
-    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
-	# How do we know it's Interix rather than the generic POSIX subsystem?
-	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
-	# UNAME_MACHINE based on the output of uname instead of i386?
-	echo i586-pc-interix
-	exit ;;
     i*:UWIN*:*)
-	echo ${UNAME_MACHINE}-pc-uwin
+	echo "$UNAME_MACHINE"-pc-uwin
 	exit ;;
     amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
 	echo x86_64-unknown-cygwin
 	exit ;;
-    p*:CYGWIN*:*)
-	echo powerpcle-unknown-cygwin
-	exit ;;
     prep*:SunOS:5.*:*)
-	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
 	exit ;;
     *:GNU:*:*)
 	# the GNU system
-	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+	echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`"
 	exit ;;
     *:GNU/*:*:*)
 	# other systems with GNU libc and userland
-	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+	echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC"
 	exit ;;
     i*86:Minix:*:*)
-	echo ${UNAME_MACHINE}-pc-minix
+	echo "$UNAME_MACHINE"-pc-minix
 	exit ;;
+    aarch64:Linux:*:*)
+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+	exit ;;
+    aarch64_be:Linux:*:*)
+	UNAME_MACHINE=aarch64_be
+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+	exit ;;
+    alpha:Linux:*:*)
+	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+	  EV5)   UNAME_MACHINE=alphaev5 ;;
+	  EV56)  UNAME_MACHINE=alphaev56 ;;
+	  PCA56) UNAME_MACHINE=alphapca56 ;;
+	  PCA57) UNAME_MACHINE=alphapca56 ;;
+	  EV6)   UNAME_MACHINE=alphaev6 ;;
+	  EV67)  UNAME_MACHINE=alphaev67 ;;
+	  EV68*) UNAME_MACHINE=alphaev68 ;;
+	esac
+	objdump --private-headers /bin/sh | grep -q ld.so.1
+	if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+	exit ;;
+    arc:Linux:*:* | arceb:Linux:*:*)
+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+	exit ;;
     arm*:Linux:*:*)
-	eval $set_cc_for_build
+	eval "$set_cc_for_build"
 	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
 	    | grep -q __ARM_EABI__
 	then
-	    echo ${UNAME_MACHINE}-unknown-linux-gnu
+	    echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
 	else
-	    echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+	    if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
+		| grep -q __ARM_PCS_VFP
+	    then
+		echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi
+	    else
+		echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf
+	    fi
 	fi
 	exit ;;
     avr32*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
 	exit ;;
     cris:Linux:*:*)
-	echo cris-axis-linux-gnu
+	echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
 	exit ;;
     crisv32:Linux:*:*)
-	echo crisv32-axis-linux-gnu
+	echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
 	exit ;;
+    e2k:Linux:*:*)
+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+	exit ;;
     frv:Linux:*:*)
-    	echo frv-unknown-linux-gnu
+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
 	exit ;;
+    hexagon:Linux:*:*)
+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+	exit ;;
+    i*86:Linux:*:*)
+	echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
+	exit ;;
     ia64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
 	exit ;;
+    k1om:Linux:*:*)
+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+	exit ;;
     m32r*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
 	exit ;;
     m68*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
 	exit ;;
-    mips:Linux:*:*)
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
+    mips:Linux:*:* | mips64:Linux:*:*)
+	eval "$set_cc_for_build"
+	sed 's/^	//' << EOF > "$dummy.c"
 	#undef CPU
-	#undef mips
-	#undef mipsel
+	#undef ${UNAME_MACHINE}
+	#undef ${UNAME_MACHINE}el
 	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-	CPU=mipsel
+	CPU=${UNAME_MACHINE}el
 	#else
 	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-	CPU=mips
+	CPU=${UNAME_MACHINE}
 	#else
 	CPU=
 	#endif
 	#endif
 EOF
-	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
-	    /^CPU/{
-		s: ::g
-		p
-	    }'`"
-	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+	eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`"
+	test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; }
 	;;
-    mips64:Linux:*:*)
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#undef CPU
-	#undef mips64
-	#undef mips64el
-	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-	CPU=mips64el
-	#else
-	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-	CPU=mips64
-	#else
-	CPU=
-	#endif
-	#endif
-EOF
-	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
-	    /^CPU/{
-		s: ::g
-		p
-	    }'`"
-	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
-	;;
-    or32:Linux:*:*)
-	echo or32-unknown-linux-gnu
+    mips64el:Linux:*:*)
+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
 	exit ;;
-    ppc:Linux:*:*)
-	echo powerpc-unknown-linux-gnu
+    openrisc*:Linux:*:*)
+	echo or1k-unknown-linux-"$LIBC"
 	exit ;;
-    ppc64:Linux:*:*)
-	echo powerpc64-unknown-linux-gnu
+    or32:Linux:*:* | or1k*:Linux:*:*)
+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
 	exit ;;
-    alpha:Linux:*:*)
-	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
-	  EV5)   UNAME_MACHINE=alphaev5 ;;
-	  EV56)  UNAME_MACHINE=alphaev56 ;;
-	  PCA56) UNAME_MACHINE=alphapca56 ;;
-	  PCA57) UNAME_MACHINE=alphapca56 ;;
-	  EV6)   UNAME_MACHINE=alphaev6 ;;
-	  EV67)  UNAME_MACHINE=alphaev67 ;;
-	  EV68*) UNAME_MACHINE=alphaev68 ;;
-        esac
-	objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
-	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
-	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+    padre:Linux:*:*)
+	echo sparc-unknown-linux-"$LIBC"
 	exit ;;
+    parisc64:Linux:*:* | hppa64:Linux:*:*)
+	echo hppa64-unknown-linux-"$LIBC"
+	exit ;;
     parisc:Linux:*:* | hppa:Linux:*:*)
 	# Look for CPU level
 	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
-	  PA7*) echo hppa1.1-unknown-linux-gnu ;;
-	  PA8*) echo hppa2.0-unknown-linux-gnu ;;
-	  *)    echo hppa-unknown-linux-gnu ;;
+	  PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;;
+	  PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;;
+	  *)    echo hppa-unknown-linux-"$LIBC" ;;
 	esac
 	exit ;;
-    parisc64:Linux:*:* | hppa64:Linux:*:*)
-	echo hppa64-unknown-linux-gnu
+    ppc64:Linux:*:*)
+	echo powerpc64-unknown-linux-"$LIBC"
 	exit ;;
+    ppc:Linux:*:*)
+	echo powerpc-unknown-linux-"$LIBC"
+	exit ;;
+    ppc64le:Linux:*:*)
+	echo powerpc64le-unknown-linux-"$LIBC"
+	exit ;;
+    ppcle:Linux:*:*)
+	echo powerpcle-unknown-linux-"$LIBC"
+	exit ;;
+    riscv32:Linux:*:* | riscv64:Linux:*:*)
+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+	exit ;;
     s390:Linux:*:* | s390x:Linux:*:*)
-	echo ${UNAME_MACHINE}-ibm-linux
+	echo "$UNAME_MACHINE"-ibm-linux-"$LIBC"
 	exit ;;
     sh64*:Linux:*:*)
-    	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
 	exit ;;
     sh*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
 	exit ;;
     sparc:Linux:*:* | sparc64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
 	exit ;;
+    tile*:Linux:*:*)
+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+	exit ;;
     vax:Linux:*:*)
-	echo ${UNAME_MACHINE}-dec-linux-gnu
+	echo "$UNAME_MACHINE"-dec-linux-"$LIBC"
 	exit ;;
     x86_64:Linux:*:*)
-	echo x86_64-unknown-linux-gnu
+	echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
 	exit ;;
     xtensa*:Linux:*:*)
-    	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
 	exit ;;
-    i*86:Linux:*:*)
-	# The BFD linker knows what the default object file format is, so
-	# first see if it will tell us. cd to the root directory to prevent
-	# problems with other programs or directories called `ld' in the path.
-	# Set LC_ALL=C to ensure ld outputs messages in English.
-	ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
-			 | sed -ne '/supported targets:/!d
-				    s/[ 	][ 	]*/ /g
-				    s/.*supported targets: *//
-				    s/ .*//
-				    p'`
-        case "$ld_supported_targets" in
-	  elf32-i386)
-		TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
-		;;
-	  a.out-i386-linux)
-		echo "${UNAME_MACHINE}-pc-linux-gnuaout"
-		exit ;;
-	  coff-i386)
-		echo "${UNAME_MACHINE}-pc-linux-gnucoff"
-		exit ;;
-	  "")
-		# Either a pre-BFD a.out linker (linux-gnuoldld) or
-		# one that does not give us useful --help.
-		echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
-		exit ;;
-	esac
-	# Determine whether the default compiler is a.out or elf
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#include <features.h>
-	#ifdef __ELF__
-	# ifdef __GLIBC__
-	#  if __GLIBC__ >= 2
-	LIBC=gnu
-	#  else
-	LIBC=gnulibc1
-	#  endif
-	# else
-	LIBC=gnulibc1
-	# endif
-	#else
-	#if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
-	LIBC=gnu
-	#else
-	LIBC=gnuaout
-	#endif
-	#endif
-	#ifdef __dietlibc__
-	LIBC=dietlibc
-	#endif
-EOF
-	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
-	    /^LIBC/{
-		s: ::g
-		p
-	    }'`"
-	test x"${LIBC}" != x && {
-		echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
-		exit
-	}
-	test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
-	;;
     i*86:DYNIX/ptx:4*:*)
 	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
 	# earlier versions are messed up and put the nodename in both
@@ -1037,54 +1058,54 @@
 	echo i386-sequent-sysv4
 	exit ;;
     i*86:UNIX_SV:4.2MP:2.*)
-        # Unixware is an offshoot of SVR4, but it has its own version
-        # number series starting with 2...
-        # I am not positive that other SVR4 systems won't match this,
+	# Unixware is an offshoot of SVR4, but it has its own version
+	# number series starting with 2...
+	# I am not positive that other SVR4 systems won't match this,
 	# I just have to hope.  -- rms.
-        # Use sysv4.2uw... so that sysv4* matches it.
-	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+	# Use sysv4.2uw... so that sysv4* matches it.
+	echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION"
 	exit ;;
     i*86:OS/2:*:*)
 	# If we were able to find `uname', then EMX Unix compatibility
 	# is probably installed.
-	echo ${UNAME_MACHINE}-pc-os2-emx
+	echo "$UNAME_MACHINE"-pc-os2-emx
 	exit ;;
     i*86:XTS-300:*:STOP)
-	echo ${UNAME_MACHINE}-unknown-stop
+	echo "$UNAME_MACHINE"-unknown-stop
 	exit ;;
     i*86:atheos:*:*)
-	echo ${UNAME_MACHINE}-unknown-atheos
+	echo "$UNAME_MACHINE"-unknown-atheos
 	exit ;;
     i*86:syllable:*:*)
-	echo ${UNAME_MACHINE}-pc-syllable
+	echo "$UNAME_MACHINE"-pc-syllable
 	exit ;;
-    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
-	echo i386-unknown-lynxos${UNAME_RELEASE}
+    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
+	echo i386-unknown-lynxos"$UNAME_RELEASE"
 	exit ;;
     i*86:*DOS:*:*)
-	echo ${UNAME_MACHINE}-pc-msdosdjgpp
+	echo "$UNAME_MACHINE"-pc-msdosdjgpp
 	exit ;;
-    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
-	UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+    i*86:*:4.*:*)
+	UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'`
 	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
-		echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+		echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL"
 	else
-		echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+		echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL"
 	fi
 	exit ;;
     i*86:*:5:[678]*)
-    	# UnixWare 7.x, OpenUNIX and OpenServer 6.
+	# UnixWare 7.x, OpenUNIX and OpenServer 6.
 	case `/bin/uname -X | grep "^Machine"` in
 	    *486*)	     UNAME_MACHINE=i486 ;;
 	    *Pentium)	     UNAME_MACHINE=i586 ;;
 	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
 	esac
-	echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+	echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}"
 	exit ;;
     i*86:*:3.2:*)
 	if test -f /usr/options/cb.name; then
 		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
-		echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+		echo "$UNAME_MACHINE"-pc-isc"$UNAME_REL"
 	elif /bin/uname -X 2>/dev/null >/dev/null ; then
 		UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
 		(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
@@ -1094,17 +1115,20 @@
 			&& UNAME_MACHINE=i686
 		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
 			&& UNAME_MACHINE=i686
-		echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+		echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL"
 	else
-		echo ${UNAME_MACHINE}-pc-sysv32
+		echo "$UNAME_MACHINE"-pc-sysv32
 	fi
 	exit ;;
     pc:*:*:*)
 	# Left here for compatibility:
-        # uname -m prints for DJGPP always 'pc', but it prints nothing about
-        # the processor, so we play safe by assuming i386.
-	echo i386-pc-msdosdjgpp
-        exit ;;
+	# uname -m prints for DJGPP always 'pc', but it prints nothing about
+	# the processor, so we play safe by assuming i586.
+	# Note: whatever this is, it MUST be the same as what config.sub
+	# prints for the "djgpp" host, or else GDB configure will decide that
+	# this is a cross-build.
+	echo i586-pc-msdosdjgpp
+	exit ;;
     Intel:Mach:3*:*)
 	echo i386-pc-mach3
 	exit ;;
@@ -1113,9 +1137,9 @@
 	exit ;;
     i860:*:4.*:*) # i860-SVR4
 	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
-	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+	  echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4
 	else # Add other i860-SVR4 vendors below as they are discovered.
-	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
+	  echo i860-unknown-sysv"$UNAME_RELEASE"  # Unknown i860-SVR4
 	fi
 	exit ;;
     mini*:CTIX:SYS*5:*)
@@ -1135,29 +1159,39 @@
 	test -r /etc/.relid \
 	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
 	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-	  && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+	  && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
 	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
-	  && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+	  && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
-        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-          && { echo i486-ncr-sysv4; exit; } ;;
+	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+	  && { echo i486-ncr-sysv4; exit; } ;;
+    NCR*:*:4.2:* | MPRAS*:*:4.2:*)
+	OS_REL='.3'
+	test -r /etc/.relid \
+	    && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+	    && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
+	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+	    && { echo i586-ncr-sysv4.3"$OS_REL"; exit; }
+	/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
+	    && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
     m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
-	echo m68k-unknown-lynxos${UNAME_RELEASE}
+	echo m68k-unknown-lynxos"$UNAME_RELEASE"
 	exit ;;
     mc68030:UNIX_System_V:4.*:*)
 	echo m68k-atari-sysv4
 	exit ;;
     TSUNAMI:LynxOS:2.*:*)
-	echo sparc-unknown-lynxos${UNAME_RELEASE}
+	echo sparc-unknown-lynxos"$UNAME_RELEASE"
 	exit ;;
     rs6000:LynxOS:2.*:*)
-	echo rs6000-unknown-lynxos${UNAME_RELEASE}
+	echo rs6000-unknown-lynxos"$UNAME_RELEASE"
 	exit ;;
-    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
-	echo powerpc-unknown-lynxos${UNAME_RELEASE}
+    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
+	echo powerpc-unknown-lynxos"$UNAME_RELEASE"
 	exit ;;
     SM[BE]S:UNIX_SV:*:*)
-	echo mips-dde-sysv${UNAME_RELEASE}
+	echo mips-dde-sysv"$UNAME_RELEASE"
 	exit ;;
     RM*:ReliantUNIX-*:*:*)
 	echo mips-sni-sysv4
@@ -1168,15 +1202,15 @@
     *:SINIX-*:*:*)
 	if uname -p 2>/dev/null >/dev/null ; then
 		UNAME_MACHINE=`(uname -p) 2>/dev/null`
-		echo ${UNAME_MACHINE}-sni-sysv4
+		echo "$UNAME_MACHINE"-sni-sysv4
 	else
 		echo ns32k-sni-sysv
 	fi
 	exit ;;
-    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
-                      # says <Richard.M.Bartel at ccMail.Census.GOV>
-        echo i586-unisys-sysv4
-        exit ;;
+    PENTIUM:*:4.0*:*)	# Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+			# says <Richard.M.Bartel at ccMail.Census.GOV>
+	echo i586-unisys-sysv4
+	exit ;;
     *:UNIX_System_V:4*:FTX*)
 	# From Gerald Hewes <hewes at openmarket.com>.
 	# How about differentiating between stratus architectures? -djm
@@ -1188,7 +1222,7 @@
 	exit ;;
     i*86:VOS:*:*)
 	# From Paul.Green at stratus.com.
-	echo ${UNAME_MACHINE}-stratus-vos
+	echo "$UNAME_MACHINE"-stratus-vos
 	exit ;;
     *:VOS:*:*)
 	# From Paul.Green at stratus.com.
@@ -1195,7 +1229,7 @@
 	echo hppa1.1-stratus-vos
 	exit ;;
     mc68*:A/UX:*:*)
-	echo m68k-apple-aux${UNAME_RELEASE}
+	echo m68k-apple-aux"$UNAME_RELEASE"
 	exit ;;
     news*:NEWS-OS:6*:*)
 	echo mips-sony-newsos6
@@ -1202,11 +1236,11 @@
 	exit ;;
     R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
 	if [ -d /usr/nec ]; then
-	        echo mips-nec-sysv${UNAME_RELEASE}
+		echo mips-nec-sysv"$UNAME_RELEASE"
 	else
-	        echo mips-unknown-sysv${UNAME_RELEASE}
+		echo mips-unknown-sysv"$UNAME_RELEASE"
 	fi
-        exit ;;
+	exit ;;
     BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
 	echo powerpc-be-beos
 	exit ;;
@@ -1216,54 +1250,101 @@
     BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
 	echo i586-pc-beos
 	exit ;;
+    BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
+	echo i586-pc-haiku
+	exit ;;
+    x86_64:Haiku:*:*)
+	echo x86_64-unknown-haiku
+	exit ;;
     SX-4:SUPER-UX:*:*)
-	echo sx4-nec-superux${UNAME_RELEASE}
+	echo sx4-nec-superux"$UNAME_RELEASE"
 	exit ;;
     SX-5:SUPER-UX:*:*)
-	echo sx5-nec-superux${UNAME_RELEASE}
+	echo sx5-nec-superux"$UNAME_RELEASE"
 	exit ;;
     SX-6:SUPER-UX:*:*)
-	echo sx6-nec-superux${UNAME_RELEASE}
+	echo sx6-nec-superux"$UNAME_RELEASE"
 	exit ;;
     SX-7:SUPER-UX:*:*)
-	echo sx7-nec-superux${UNAME_RELEASE}
+	echo sx7-nec-superux"$UNAME_RELEASE"
 	exit ;;
     SX-8:SUPER-UX:*:*)
-	echo sx8-nec-superux${UNAME_RELEASE}
+	echo sx8-nec-superux"$UNAME_RELEASE"
 	exit ;;
     SX-8R:SUPER-UX:*:*)
-	echo sx8r-nec-superux${UNAME_RELEASE}
+	echo sx8r-nec-superux"$UNAME_RELEASE"
 	exit ;;
+    SX-ACE:SUPER-UX:*:*)
+	echo sxace-nec-superux"$UNAME_RELEASE"
+	exit ;;
     Power*:Rhapsody:*:*)
-	echo powerpc-apple-rhapsody${UNAME_RELEASE}
+	echo powerpc-apple-rhapsody"$UNAME_RELEASE"
 	exit ;;
     *:Rhapsody:*:*)
-	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+	echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE"
 	exit ;;
     *:Darwin:*:*)
 	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
-	case $UNAME_PROCESSOR in
-	    unknown) UNAME_PROCESSOR=powerpc ;;
-	esac
-	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+	eval "$set_cc_for_build"
+	if test "$UNAME_PROCESSOR" = unknown ; then
+	    UNAME_PROCESSOR=powerpc
+	fi
+	if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then
+	    if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
+		if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+		       (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+		       grep IS_64BIT_ARCH >/dev/null
+		then
+		    case $UNAME_PROCESSOR in
+			i386) UNAME_PROCESSOR=x86_64 ;;
+			powerpc) UNAME_PROCESSOR=powerpc64 ;;
+		    esac
+		fi
+		# On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
+		if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
+		       (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+		       grep IS_PPC >/dev/null
+		then
+		    UNAME_PROCESSOR=powerpc
+		fi
+	    fi
+	elif test "$UNAME_PROCESSOR" = i386 ; then
+	    # Avoid executing cc on OS X 10.9, as it ships with a stub
+	    # that puts up a graphical alert prompting to install
+	    # developer tools.  Any system running Mac OS X 10.7 or
+	    # later (Darwin 11 and later) is required to have a 64-bit
+	    # processor. This is not true of the ARM version of Darwin
+	    # that Apple uses in portable devices.
+	    UNAME_PROCESSOR=x86_64
+	fi
+	echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE"
 	exit ;;
     *:procnto*:*:* | *:QNX:[0123456789]*:*)
 	UNAME_PROCESSOR=`uname -p`
-	if test "$UNAME_PROCESSOR" = "x86"; then
+	if test "$UNAME_PROCESSOR" = x86; then
 		UNAME_PROCESSOR=i386
 		UNAME_MACHINE=pc
 	fi
-	echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+	echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE"
 	exit ;;
     *:QNX:*:4*)
 	echo i386-pc-qnx
 	exit ;;
-    NSE-?:NONSTOP_KERNEL:*:*)
-	echo nse-tandem-nsk${UNAME_RELEASE}
+    NEO-*:NONSTOP_KERNEL:*:*)
+	echo neo-tandem-nsk"$UNAME_RELEASE"
 	exit ;;
-    NSR-?:NONSTOP_KERNEL:*:*)
-	echo nsr-tandem-nsk${UNAME_RELEASE}
+    NSE-*:NONSTOP_KERNEL:*:*)
+	echo nse-tandem-nsk"$UNAME_RELEASE"
 	exit ;;
+    NSR-*:NONSTOP_KERNEL:*:*)
+	echo nsr-tandem-nsk"$UNAME_RELEASE"
+	exit ;;
+    NSV-*:NONSTOP_KERNEL:*:*)
+	echo nsv-tandem-nsk"$UNAME_RELEASE"
+	exit ;;
+    NSX-*:NONSTOP_KERNEL:*:*)
+	echo nsx-tandem-nsk"$UNAME_RELEASE"
+	exit ;;
     *:NonStop-UX:*:*)
 	echo mips-compaq-nonstopux
 	exit ;;
@@ -1271,18 +1352,18 @@
 	echo bs2000-siemens-sysv
 	exit ;;
     DS/*:UNIX_System_V:*:*)
-	echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+	echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE"
 	exit ;;
     *:Plan9:*:*)
 	# "uname -m" is not consistent, so use $cputype instead. 386
 	# is converted to i386 for consistency with other x86
 	# operating systems.
-	if test "$cputype" = "386"; then
+	if test "$cputype" = 386; then
 	    UNAME_MACHINE=i386
 	else
 	    UNAME_MACHINE="$cputype"
 	fi
-	echo ${UNAME_MACHINE}-unknown-plan9
+	echo "$UNAME_MACHINE"-unknown-plan9
 	exit ;;
     *:TOPS-10:*:*)
 	echo pdp10-unknown-tops10
@@ -1303,14 +1384,14 @@
 	echo pdp10-unknown-its
 	exit ;;
     SEI:*:*:SEIUX)
-        echo mips-sei-seiux${UNAME_RELEASE}
+	echo mips-sei-seiux"$UNAME_RELEASE"
 	exit ;;
     *:DragonFly:*:*)
-	echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+	echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
 	exit ;;
     *:*VMS:*:*)
-    	UNAME_MACHINE=`(uname -p) 2>/dev/null`
-	case "${UNAME_MACHINE}" in
+	UNAME_MACHINE=`(uname -p) 2>/dev/null`
+	case "$UNAME_MACHINE" in
 	    A*) echo alpha-dec-vms ; exit ;;
 	    I*) echo ia64-dec-vms ; exit ;;
 	    V*) echo vax-dec-vms ; exit ;;
@@ -1319,179 +1400,48 @@
 	echo i386-pc-xenix
 	exit ;;
     i*86:skyos:*:*)
-	echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
+	echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`"
 	exit ;;
     i*86:rdos:*:*)
-	echo ${UNAME_MACHINE}-pc-rdos
+	echo "$UNAME_MACHINE"-pc-rdos
 	exit ;;
+    i*86:AROS:*:*)
+	echo "$UNAME_MACHINE"-pc-aros
+	exit ;;
+    x86_64:VMkernel:*:*)
+	echo "$UNAME_MACHINE"-unknown-esx
+	exit ;;
+    amd64:Isilon\ OneFS:*:*)
+	echo x86_64-unknown-onefs
+	exit ;;
 esac
 
-#echo '(No uname command or uname output not recognized.)' 1>&2
-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
+echo "$0: unable to guess system type" >&2
 
-eval $set_cc_for_build
-cat >$dummy.c <<EOF
-#ifdef _SEQUENT_
-# include <sys/types.h>
-# include <sys/utsname.h>
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
-  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
-     I don't know....  */
-  printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include <sys/param.h>
-  printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
-          "4"
-#else
-	  ""
-#endif
-         ); exit (0);
-#endif
-#endif
+case "$UNAME_MACHINE:$UNAME_SYSTEM" in
+    mips:Linux | mips64:Linux)
+	# If we got here on MIPS GNU/Linux, output extra information.
+	cat >&2 <<EOF
 
-#if defined (__arm) && defined (__acorn) && defined (__unix)
-  printf ("arm-acorn-riscix\n"); exit (0);
-#endif
-
-#if defined (hp300) && !defined (hpux)
-  printf ("m68k-hp-bsd\n"); exit (0);
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
-  int version;
-  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
-  if (version < 4)
-    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
-  else
-    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
-  exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
-  printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
-  printf ("ns32k-encore-mach\n"); exit (0);
-#else
-  printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
-  printf ("i386-pc-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
-  printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
-  printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
-    struct utsname un;
-
-    uname(&un);
-
-    if (strncmp(un.version, "V2", 2) == 0) {
-	printf ("i386-sequent-ptx2\n"); exit (0);
-    }
-    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
-	printf ("i386-sequent-ptx1\n"); exit (0);
-    }
-    printf ("i386-sequent-ptx\n"); exit (0);
-
-#endif
-
-#if defined (vax)
-# if !defined (ultrix)
-#  include <sys/param.h>
-#  if defined (BSD)
-#   if BSD == 43
-      printf ("vax-dec-bsd4.3\n"); exit (0);
-#   else
-#    if BSD == 199006
-      printf ("vax-dec-bsd4.3reno\n"); exit (0);
-#    else
-      printf ("vax-dec-bsd\n"); exit (0);
-#    endif
-#   endif
-#  else
-    printf ("vax-dec-bsd\n"); exit (0);
-#  endif
-# else
-    printf ("vax-dec-ultrix\n"); exit (0);
-# endif
-#endif
-
-#if defined (alliant) && defined (i860)
-  printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
-  exit (1);
-}
+NOTE: MIPS GNU/Linux systems require a C compiler to fully recognize
+the system type. Please install a C compiler and try again.
 EOF
+	;;
+esac
 
-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
-	{ echo "$SYSTEM_NAME"; exit; }
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
-
-# Convex versions that predate uname can use getsysinfo(1)
-
-if [ -x /usr/convex/getsysinfo ]
-then
-    case `getsysinfo -f cpu_type` in
-    c1*)
-	echo c1-convex-bsd
-	exit ;;
-    c2*)
-	if getsysinfo -f scalar_acc
-	then echo c32-convex-bsd
-	else echo c2-convex-bsd
-	fi
-	exit ;;
-    c34*)
-	echo c34-convex-bsd
-	exit ;;
-    c38*)
-	echo c38-convex-bsd
-	exit ;;
-    c4*)
-	echo c4-convex-bsd
-	exit ;;
-    esac
-fi
-
 cat >&2 <<EOF
-$0: unable to guess system type
 
-This script, last modified $timestamp, has failed to recognize
-the operating system you are using. It is advised that you
-download the most up to date version of the config scripts from
+This script (version $timestamp), has failed to recognize the
+operating system you are using. If your script is old, overwrite *all*
+copies of config.guess and config.sub with the latest versions from:
 
-  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+  https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
 and
-  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+  https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
 
-If the version you run ($0) is already up to date, please
-send the following data and any information you think might be
-pertinent to <config-patches at gnu.org> in order to provide the needed
-information to handle your system.
+If $0 has already been updated, send the following data and any
+information you think might be pertinent to config-patches at gnu.org to
+provide the necessary information to handle your system.
 
 config.guess timestamp = $timestamp
 
@@ -1510,16 +1460,16 @@
 /usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
 
-UNAME_MACHINE = ${UNAME_MACHINE}
-UNAME_RELEASE = ${UNAME_RELEASE}
-UNAME_SYSTEM  = ${UNAME_SYSTEM}
-UNAME_VERSION = ${UNAME_VERSION}
+UNAME_MACHINE = "$UNAME_MACHINE"
+UNAME_RELEASE = "$UNAME_RELEASE"
+UNAME_SYSTEM  = "$UNAME_SYSTEM"
+UNAME_VERSION = "$UNAME_VERSION"
 EOF
 
 exit 1
 
 # Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
 # time-stamp-start: "timestamp='"
 # time-stamp-format: "%:y-%02m-%02d"
 # time-stamp-end: "'"


Property changes on: trunk/Build/source/utils/asymptote/config.guess
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Modified: trunk/Build/source/utils/asymptote/config.sub
===================================================================
--- trunk/Build/source/utils/asymptote/config.sub	2018-04-06 00:23:53 UTC (rev 47318)
+++ trunk/Build/source/utils/asymptote/config.sub	2018-04-06 05:21:01 UTC (rev 47319)
@@ -1,36 +1,31 @@
 #! /bin/sh
 # Configuration validation subroutine script.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-#   2011, 2012 Free Software Foundation, Inc.
+#   Copyright 1992-2018 Free Software Foundation, Inc.
 
-timestamp='2012-04-18'
+timestamp='2018-03-08'
 
-# This file is (in principle) common to ALL GNU software.
-# The presence of a machine in this file suggests that SOME GNU software
-# can handle that machine.  It does not imply ALL GNU software can.
-#
-# This file is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
 # (at your option) any later version.
 #
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 #
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
 # configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
+# the same distribution terms that you use for the rest of that
+# program.  This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
 
 
-# Please send patches to <config-patches at gnu.org>.  Submit a context
-# diff and a properly formatted GNU ChangeLog entry.
+# Please send patches to <config-patches at gnu.org>.
 #
 # Configuration subroutine to validate and canonicalize a configuration type.
 # Supply the specified configuration type as an argument.
@@ -38,7 +33,7 @@
 # Otherwise, we print the canonical config type on stdout and succeed.
 
 # You can get the latest version of this script from:
-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
 
 # This file is supposed to be the same for all GNU packages
 # and recognize all the CPU types, system types and aliases
@@ -58,12 +53,11 @@
 me=`echo "$0" | sed -e 's,.*/,,'`
 
 usage="\
-Usage: $0 [OPTION] CPU-MFR-OPSYS
-       $0 [OPTION] ALIAS
+Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
 
 Canonicalize a configuration name.
 
-Operation modes:
+Options:
   -h, --help         print this help, then exit
   -t, --time-stamp   print date of last modification, then exit
   -v, --version      print version number, then exit
@@ -73,9 +67,7 @@
 version="\
 GNU config.sub ($timestamp)
 
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
-Free Software Foundation, Inc.
+Copyright 1992-2018 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -102,7 +94,7 @@
 
     *local*)
        # First pass through any local machine types.
-       echo $1
+       echo "$1"
        exit ;;
 
     * )
@@ -120,24 +112,24 @@
 
 # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
 # Here we must recognize all the valid KERNEL-OS combinations.
-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+maybe_os=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
 case $maybe_os in
   nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
-  linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
-  knetbsd*-gnu* | netbsd*-gnu* | \
-  kopensolaris*-gnu* | \
+  linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
+  knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \
+  kopensolaris*-gnu* | cloudabi*-eabi* | \
   storm-chaos* | os2-emx* | rtmk-nova*)
     os=-$maybe_os
-    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+    basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
     ;;
   android-linux)
     os=-linux-android
-    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
+    basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
     ;;
   *)
-    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
-    if [ $basic_machine != $1 ]
-    then os=`echo $1 | sed 's/.*-/-/'`
+    basic_machine=`echo "$1" | sed 's/-[^-]*$//'`
+    if [ "$basic_machine" != "$1" ]
+    then os=`echo "$1" | sed 's/.*-/-/'`
     else os=; fi
     ;;
 esac
@@ -156,7 +148,7 @@
 	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
 	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
 	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-	-apple | -axis | -knuth | -cray | -microblaze)
+	-apple | -axis | -knuth | -cray | -microblaze*)
 		os=
 		basic_machine=$1
 		;;
@@ -186,44 +178,44 @@
 		;;
 	-sco6)
 		os=-sco5v6
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
 		;;
 	-sco5)
 		os=-sco3.2v5
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
 		;;
 	-sco4)
 		os=-sco3.2v4
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
 		;;
 	-sco3.2.[4-9]*)
 		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
 		;;
 	-sco3.2v[4-9]*)
 		# Don't forget version if it is 3.2v4 or newer.
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
 		;;
 	-sco5v6*)
 		# Don't forget version if it is 3.2v4 or newer.
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
 		;;
 	-sco*)
 		os=-sco3.2v2
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
 		;;
 	-udk*)
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
 		;;
 	-isc)
 		os=-isc2.2
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
 		;;
 	-clix*)
 		basic_machine=clipper-intergraph
 		;;
 	-isc*)
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
 		;;
 	-lynx*178)
 		os=-lynxos178
@@ -235,11 +227,8 @@
 		os=-lynxos
 		;;
 	-ptx*)
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+		basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'`
 		;;
-	-windowsnt*)
-		os=`echo $os | sed -e 's/windowsnt/winnt/'`
-		;;
 	-psos*)
 		os=-psos
 		;;
@@ -259,21 +248,25 @@
 	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
 	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
 	| am33_2.0 \
-	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
-        | be32 | be64 \
+	| arc | arceb \
+	| arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
+	| avr | avr32 \
+	| ba \
+	| be32 | be64 \
 	| bfin \
-	| c4x | clipper \
+	| c4x | c8051 | clipper \
 	| d10v | d30v | dlx | dsp16xx \
-	| epiphany \
-	| fido | fr30 | frv \
+	| e2k | epiphany \
+	| fido | fr30 | frv | ft32 \
 	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
 	| hexagon \
-	| i370 | i860 | i960 | ia64 \
+	| i370 | i860 | i960 | ia16 | ia64 \
 	| ip2k | iq2000 \
+	| k1om \
 	| le32 | le64 \
 	| lm32 \
 	| m32c | m32r | m32rle | m68000 | m68k | m88k \
-	| maxq | mb | microblaze | mcore | mep | metag \
+	| maxq | mb | microblaze | microblazeel | mcore | mep | metag \
 	| mips | mipsbe | mipseb | mipsel | mipsle \
 	| mips16 \
 	| mips64 | mips64el \
@@ -287,10 +280,13 @@
 	| mips64vr5900 | mips64vr5900el \
 	| mipsisa32 | mipsisa32el \
 	| mipsisa32r2 | mipsisa32r2el \
+	| mipsisa32r6 | mipsisa32r6el \
 	| mipsisa64 | mipsisa64el \
 	| mipsisa64r2 | mipsisa64r2el \
+	| mipsisa64r6 | mipsisa64r6el \
 	| mipsisa64sb1 | mipsisa64sb1el \
 	| mipsisa64sr71k | mipsisa64sr71kel \
+	| mipsr5900 | mipsr5900el \
 	| mipstx39 | mipstx39el \
 	| mn10200 | mn10300 \
 	| moxie \
@@ -297,16 +293,17 @@
 	| mt \
 	| msp430 \
 	| nds32 | nds32le | nds32be \
-	| nios | nios2 \
+	| nios | nios2 | nios2eb | nios2el \
 	| ns16k | ns32k \
-	| open8 \
-	| or32 \
-	| pdp10 | pdp11 | pj | pjl \
+	| open8 | or1k | or1knd | or32 \
+	| pdp10 | pj | pjl \
 	| powerpc | powerpc64 | powerpc64le | powerpcle \
+	| pru \
 	| pyramid \
+	| riscv32 | riscv64 \
 	| rl78 | rx \
 	| score \
-	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
 	| sh64 | sh64le \
 	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
 	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
@@ -314,7 +311,8 @@
 	| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
 	| ubicom32 \
 	| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
-	| we32k \
+	| visium \
+	| wasm32 \
 	| x86 | xc16x | xstormy16 | xtensa \
 	| z8k | z80)
 		basic_machine=$basic_machine-unknown
@@ -328,11 +326,14 @@
 	c6x)
 		basic_machine=tic6x-unknown
 		;;
-	m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
+	leon|leon[3-9])
+		basic_machine=sparc-$basic_machine
+		;;
+	m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
 		basic_machine=$basic_machine-unknown
 		os=-none
 		;;
-	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65)
 		;;
 	ms1)
 		basic_machine=mt-unknown
@@ -361,7 +362,7 @@
 	  ;;
 	# Object if more than one company name word.
 	*-*-*)
-		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+		echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2
 		exit 1
 		;;
 	# Recognize the basic CPU types with company name.
@@ -370,26 +371,29 @@
 	| aarch64-* | aarch64_be-* \
 	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
 	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
-	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
 	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
 	| avr-* | avr32-* \
+	| ba-* \
 	| be32-* | be64-* \
 	| bfin-* | bs2000-* \
 	| c[123]* | c30-* | [cjt]90-* | c4x-* \
-	| clipper-* | craynv-* | cydra-* \
+	| c8051-* | clipper-* | craynv-* | cydra-* \
 	| d10v-* | d30v-* | dlx-* \
-	| elxsi-* \
+	| e2k-* | elxsi-* \
 	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
 	| h8300-* | h8500-* \
 	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
 	| hexagon-* \
-	| i*86-* | i860-* | i960-* | ia64-* \
+	| i*86-* | i860-* | i960-* | ia16-* | ia64-* \
 	| ip2k-* | iq2000-* \
+	| k1om-* \
 	| le32-* | le64-* \
 	| lm32-* \
 	| m32c-* | m32r-* | m32rle-* \
 	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
+	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
+	| microblaze-* | microblazeel-* \
 	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
 	| mips16-* \
 	| mips64-* | mips64el-* \
@@ -403,28 +407,34 @@
 	| mips64vr5900-* | mips64vr5900el-* \
 	| mipsisa32-* | mipsisa32el-* \
 	| mipsisa32r2-* | mipsisa32r2el-* \
+	| mipsisa32r6-* | mipsisa32r6el-* \
 	| mipsisa64-* | mipsisa64el-* \
 	| mipsisa64r2-* | mipsisa64r2el-* \
+	| mipsisa64r6-* | mipsisa64r6el-* \
 	| mipsisa64sb1-* | mipsisa64sb1el-* \
 	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
+	| mipsr5900-* | mipsr5900el-* \
 	| mipstx39-* | mipstx39el-* \
 	| mmix-* \
 	| mt-* \
 	| msp430-* \
 	| nds32-* | nds32le-* | nds32be-* \
-	| nios-* | nios2-* \
+	| nios-* | nios2-* | nios2eb-* | nios2el-* \
 	| none-* | np1-* | ns16k-* | ns32k-* \
 	| open8-* \
+	| or1k*-* \
 	| orion-* \
 	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
 	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
+	| pru-* \
 	| pyramid-* \
+	| riscv32-* | riscv64-* \
 	| rl78-* | romp-* | rs6000-* | rx-* \
 	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
 	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
 	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
 	| sparclite-* \
-	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
+	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \
 	| tahoe-* \
 	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
 	| tile*-* \
@@ -432,6 +442,8 @@
 	| ubicom32-* \
 	| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
 	| vax-* \
+	| visium-* \
+	| wasm32-* \
 	| we32k-* \
 	| x86-* | x86_64-* | xc16x-* | xps100-* \
 	| xstormy16-* | xtensa*-* \
@@ -445,7 +457,7 @@
 	# Recognize the various machine names and aliases which stand
 	# for a CPU type and a company and sometimes even an OS.
 	386bsd)
-		basic_machine=i386-unknown
+		basic_machine=i386-pc
 		os=-bsd
 		;;
 	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
@@ -479,7 +491,7 @@
 		basic_machine=x86_64-pc
 		;;
 	amd64-*)
-		basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
+		basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
 		;;
 	amdahl)
 		basic_machine=580-amdahl
@@ -508,6 +520,9 @@
 		basic_machine=i386-pc
 		os=-aros
 		;;
+	asmjs)
+		basic_machine=asmjs-unknown
+		;;
 	aux)
 		basic_machine=m68k-apple
 		os=-aux
@@ -521,7 +536,7 @@
 		os=-linux
 		;;
 	blackfin-*)
-		basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
+		basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'`
 		os=-linux
 		;;
 	bluegene*)
@@ -529,13 +544,13 @@
 		os=-cnk
 		;;
 	c54x-*)
-		basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
+		basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
 		;;
 	c55x-*)
-		basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
+		basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
 		;;
 	c6x-*)
-		basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
+		basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
 		;;
 	c90)
 		basic_machine=c90-cray
@@ -624,10 +639,18 @@
 		basic_machine=rs6000-bull
 		os=-bosx
 		;;
-	dpx2* | dpx2*-bull)
+	dpx2*)
 		basic_machine=m68k-bull
 		os=-sysv3
 		;;
+	e500v[12])
+		basic_machine=powerpc-unknown
+		os=$os"spe"
+		;;
+	e500v[12]-*)
+		basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+		os=$os"spe"
+		;;
 	ebmon29k)
 		basic_machine=a29k-amd
 		os=-ebmon
@@ -717,9 +740,6 @@
 	hp9k8[0-9][0-9] | hp8[0-9][0-9])
 		basic_machine=hppa1.0-hp
 		;;
-	hppa-next)
-		os=-nextstep3
-		;;
 	hppaosf)
 		basic_machine=hppa1.1-hp
 		os=-osf
@@ -732,19 +752,19 @@
 		basic_machine=i370-ibm
 		;;
 	i*86v32)
-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
 		os=-sysv32
 		;;
 	i*86v4*)
-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
 		os=-sysv4
 		;;
 	i*86v)
-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
 		os=-sysv
 		;;
 	i*86sol2)
-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
 		os=-solaris2
 		;;
 	i386mach)
@@ -751,7 +771,7 @@
 		basic_machine=i386-mach
 		os=-mach
 		;;
-	i386-vsta | vsta)
+	vsta)
 		basic_machine=i386-unknown
 		os=-vsta
 		;;
@@ -769,17 +789,17 @@
 		basic_machine=m68k-isi
 		os=-sysv
 		;;
+	leon-*|leon[3-9]-*)
+		basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'`
+		;;
 	m68knommu)
 		basic_machine=m68k-unknown
 		os=-linux
 		;;
 	m68knommu-*)
-		basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
+		basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'`
 		os=-linux
 		;;
-	m88k-omron*)
-		basic_machine=m88k-omron
-		;;
 	magnum | m3230)
 		basic_machine=mips-mips
 		os=-sysv
@@ -788,11 +808,15 @@
 		basic_machine=ns32k-utek
 		os=-sysv
 		;;
-	microblaze)
+	microblaze*)
 		basic_machine=microblaze-xilinx
 		;;
+	mingw64)
+		basic_machine=x86_64-pc
+		os=-mingw64
+		;;
 	mingw32)
-		basic_machine=i386-pc
+		basic_machine=i686-pc
 		os=-mingw32
 		;;
 	mingw32ce)
@@ -807,10 +831,10 @@
 		os=-mint
 		;;
 	mips3*-*)
-		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+		basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`
 		;;
 	mips3*)
-		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+		basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown
 		;;
 	monitor)
 		basic_machine=m68k-rom68k
@@ -820,15 +844,19 @@
 		basic_machine=powerpc-unknown
 		os=-morphos
 		;;
+	moxiebox)
+		basic_machine=moxie-unknown
+		os=-moxiebox
+		;;
 	msdos)
 		basic_machine=i386-pc
 		os=-msdos
 		;;
 	ms1-*)
-		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
+		basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'`
 		;;
 	msys)
-		basic_machine=i386-pc
+		basic_machine=i686-pc
 		os=-msys
 		;;
 	mvs)
@@ -867,7 +895,7 @@
 		basic_machine=v70-nec
 		os=-sysv
 		;;
-	next | m*-next )
+	next | m*-next)
 		basic_machine=m68k-next
 		case $os in
 		    -nextstep* )
@@ -912,6 +940,12 @@
 	nsr-tandem)
 		basic_machine=nsr-tandem
 		;;
+	nsv-tandem)
+		basic_machine=nsv-tandem
+		;;
+	nsx-tandem)
+		basic_machine=nsx-tandem
+		;;
 	op50n-* | op60c-*)
 		basic_machine=hppa1.1-oki
 		os=-proelf
@@ -944,7 +978,7 @@
 		os=-linux
 		;;
 	parisc-*)
-		basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
+		basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'`
 		os=-linux
 		;;
 	pbd)
@@ -960,7 +994,7 @@
 		basic_machine=i386-pc
 		;;
 	pc98-*)
-		basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
+		basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'`
 		;;
 	pentium | p5 | k5 | k6 | nexgen | viac3)
 		basic_machine=i586-pc
@@ -975,16 +1009,16 @@
 		basic_machine=i786-pc
 		;;
 	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
-		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+		basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'`
 		;;
 	pentiumpro-* | p6-* | 6x86-* | athlon-*)
-		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+		basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
 		;;
 	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
-		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+		basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
 		;;
 	pentium4-*)
-		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+		basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'`
 		;;
 	pn)
 		basic_machine=pn-gould
@@ -994,23 +1028,23 @@
 	ppc | ppcbe)	basic_machine=powerpc-unknown
 		;;
 	ppc-* | ppcbe-*)
-		basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+		basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
 		;;
-	ppcle | powerpclittle | ppc-le | powerpc-little)
+	ppcle | powerpclittle)
 		basic_machine=powerpcle-unknown
 		;;
 	ppcle-* | powerpclittle-*)
-		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+		basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'`
 		;;
 	ppc64)	basic_machine=powerpc64-unknown
 		;;
-	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+	ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
 		;;
-	ppc64le | powerpc64little | ppc64-le | powerpc64-little)
+	ppc64le | powerpc64little)
 		basic_machine=powerpc64le-unknown
 		;;
 	ppc64le-* | powerpc64little-*)
-		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+		basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'`
 		;;
 	ps2)
 		basic_machine=i386-ibm
@@ -1019,7 +1053,11 @@
 		basic_machine=i586-unknown
 		os=-pw32
 		;;
-	rdos)
+	rdos | rdos64)
+		basic_machine=x86_64-pc
+		os=-rdos
+		;;
+	rdos32)
 		basic_machine=i386-pc
 		os=-rdos
 		;;
@@ -1060,17 +1098,10 @@
 	sequent)
 		basic_machine=i386-sequent
 		;;
-	sh)
-		basic_machine=sh-hitachi
-		os=-hms
-		;;
 	sh5el)
 		basic_machine=sh5le-unknown
 		;;
-	sh64)
-		basic_machine=sh64-unknown
-		;;
-	sparclite-wrs | simso-wrs)
+	simso-wrs)
 		basic_machine=sparclite-wrs
 		os=-vxworks
 		;;
@@ -1089,7 +1120,7 @@
 		os=-sysv4
 		;;
 	strongarm-* | thumb-*)
-		basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
+		basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'`
 		;;
 	sun2)
 		basic_machine=m68000-sun
@@ -1211,6 +1242,9 @@
 		basic_machine=hppa1.1-winbond
 		os=-proelf
 		;;
+	x64)
+		basic_machine=x86_64-pc
+		;;
 	xbox)
 		basic_machine=i686-pc
 		os=-mingw32
@@ -1219,20 +1253,12 @@
 		basic_machine=xps100-honeywell
 		;;
 	xscale-* | xscalee[bl]-*)
-		basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
+		basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'`
 		;;
 	ymp)
 		basic_machine=ymp-cray
 		os=-unicos
 		;;
-	z8k-*-coff)
-		basic_machine=z8k-unknown
-		os=-sim
-		;;
-	z80-*-coff)
-		basic_machine=z80-unknown
-		os=-sim
-		;;
 	none)
 		basic_machine=none-none
 		os=-none
@@ -1261,10 +1287,6 @@
 	vax)
 		basic_machine=vax-dec
 		;;
-	pdp10)
-		# there are many clones, so DEC is not a safe bet
-		basic_machine=pdp10-unknown
-		;;
 	pdp11)
 		basic_machine=pdp11-dec
 		;;
@@ -1274,9 +1296,6 @@
 	sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
 		basic_machine=sh-unknown
 		;;
-	sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
-		basic_machine=sparc-sun
-		;;
 	cydra)
 		basic_machine=cydra-cydrome
 		;;
@@ -1296,7 +1315,7 @@
 		# Make sure to match an already-canonicalized machine name.
 		;;
 	*)
-		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+		echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2
 		exit 1
 		;;
 esac
@@ -1304,10 +1323,10 @@
 # Here we canonicalize certain aliases for manufacturers.
 case $basic_machine in
 	*-digital*)
-		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+		basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'`
 		;;
 	*-commodore*)
-		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+		basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'`
 		;;
 	*)
 		;;
@@ -1318,8 +1337,8 @@
 if [ x"$os" != x"" ]
 then
 case $os in
-	# First match some system type aliases
-	# that might get confused with valid system types.
+	# First match some system type aliases that might get confused
+	# with valid system types.
 	# -solaris* is a basic system type, with this one exception.
 	-auroraux)
 		os=-auroraux
@@ -1330,9 +1349,6 @@
 	-solaris)
 		os=-solaris2
 		;;
-	-svr4*)
-		os=-sysv4
-		;;
 	-unixware*)
 		os=-sysv4.2uw
 		;;
@@ -1339,36 +1355,42 @@
 	-gnu/linux*)
 		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
 		;;
-	# First accept the basic system types.
+	# es1800 is here to avoid being matched by es* (a different OS)
+	-es1800*)
+		os=-ose
+		;;
+	# Now accept the basic system types.
 	# The portable systems comes first.
-	# Each alternative MUST END IN A *, to match a version number.
+	# Each alternative MUST end in a * to match a version number.
 	# -sysv* is not here because it comes later, after sysvr4.
 	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
 	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
 	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
-	      | -sym* | -kopensolaris* \
+	      | -sym* | -kopensolaris* | -plan9* \
 	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
-	      | -aos* | -aros* \
+	      | -aos* | -aros* | -cloudabi* | -sortix* \
 	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
 	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
-	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
-	      | -openbsd* | -solidbsd* \
+	      | -hiux* | -knetbsd* | -mirbsd* | -netbsd* \
+	      | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
 	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
 	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
 	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
-	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
-	      | -chorusos* | -chorusrdb* | -cegcc* \
+	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* | -hcos* \
+	      | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
 	      | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-	      | -mingw32* | -linux-gnu* | -linux-android* \
-	      | -linux-newlib* | -linux-uclibc* \
-	      | -uxpv* | -beos* | -mpeix* | -udk* \
-	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
+	      | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
+	      | -linux-newlib* | -linux-musl* | -linux-uclibc* \
+	      | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
+	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* \
 	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
 	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
 	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
-	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
+	      | -morphos* | -superux* | -rtmk* | -windiss* \
 	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
-	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
+	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
+	      | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme* \
+	      | -midnightbsd*)
 	# Remember, each alternative MUST END IN *, to match a version number.
 		;;
 	-qnx*)
@@ -1385,12 +1407,12 @@
 	-nto*)
 		os=`echo $os | sed -e 's|nto|nto-qnx|'`
 		;;
-	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
-	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
+	-sim | -xray | -os68k* | -v88r* \
+	      | -windows* | -osx | -abug | -netware* | -os9* \
 	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
 		;;
 	-mac*)
-		os=`echo $os | sed -e 's|mac|macos|'`
+		os=`echo "$os" | sed -e 's|mac|macos|'`
 		;;
 	-linux-dietlibc)
 		os=-linux-dietlibc
@@ -1399,10 +1421,10 @@
 		os=`echo $os | sed -e 's|linux|linux-gnu|'`
 		;;
 	-sunos5*)
-		os=`echo $os | sed -e 's|sunos5|solaris2|'`
+		os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
 		;;
 	-sunos6*)
-		os=`echo $os | sed -e 's|sunos6|solaris3|'`
+		os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
 		;;
 	-opened*)
 		os=-openedition
@@ -1413,12 +1435,6 @@
 	-wince*)
 		os=-wince
 		;;
-	-osfrose*)
-		os=-osfrose
-		;;
-	-osf*)
-		os=-osf
-		;;
 	-utek*)
 		os=-bsd
 		;;
@@ -1443,7 +1459,7 @@
 	-nova*)
 		os=-rtmk-nova
 		;;
-	-ns2 )
+	-ns2)
 		os=-nextstep2
 		;;
 	-nsk*)
@@ -1465,7 +1481,7 @@
 	-oss*)
 		os=-sysv3
 		;;
-	-svr4)
+	-svr4*)
 		os=-sysv4
 		;;
 	-svr3)
@@ -1480,21 +1496,9 @@
 	-ose*)
 		os=-ose
 		;;
-	-es1800*)
-		os=-ose
-		;;
-	-xenix)
-		os=-xenix
-		;;
 	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
 		os=-mint
 		;;
-	-aros*)
-		os=-aros
-		;;
-	-kaos*)
-		os=-kaos
-		;;
 	-zvmoe)
 		os=-zvmoe
 		;;
@@ -1501,14 +1505,29 @@
 	-dicos*)
 		os=-dicos
 		;;
+	-pikeos*)
+		# Until real need of OS specific support for
+		# particular features comes up, bare metal
+		# configurations are quite functional.
+		case $basic_machine in
+		    arm*)
+			os=-eabi
+			;;
+		    *)
+			os=-elf
+			;;
+		esac
+		;;
 	-nacl*)
 		;;
+	-ios)
+		;;
 	-none)
 		;;
 	*)
 		# Get rid of the `-' at the beginning of $os.
 		os=`echo $os | sed 's/[^-]*-//'`
-		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+		echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2
 		exit 1
 		;;
 esac
@@ -1543,6 +1562,12 @@
 	c4x-* | tic4x-*)
 		os=-coff
 		;;
+	c8051-*)
+		os=-elf
+		;;
+	hexagon-*)
+		os=-elf
+		;;
 	tic54x-*)
 		os=-coff
 		;;
@@ -1592,12 +1617,12 @@
 	sparc-* | *-sun)
 		os=-sunos4.1.1
 		;;
+	pru-*)
+		os=-elf
+		;;
 	*-be)
 		os=-beos
 		;;
-	*-haiku)
-		os=-haiku
-		;;
 	*-ibm)
 		os=-aix
 		;;
@@ -1637,7 +1662,7 @@
 	m88k-omron*)
 		os=-luna
 		;;
-	*-next )
+	*-next)
 		os=-nextstep
 		;;
 	*-sequent)
@@ -1652,9 +1677,6 @@
 	i370-*)
 		os=-mvs
 		;;
-	*-next)
-		os=-nextstep3
-		;;
 	*-gould)
 		os=-sysv
 		;;
@@ -1764,15 +1786,15 @@
 				vendor=stratus
 				;;
 		esac
-		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+		basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"`
 		;;
 esac
 
-echo $basic_machine$os
+echo "$basic_machine$os"
 exit
 
 # Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
 # time-stamp-start: "timestamp='"
 # time-stamp-format: "%:y-%02m-%02d"
 # time-stamp-end: "'"


Property changes on: trunk/Build/source/utils/asymptote/config.sub
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Modified: trunk/Build/source/utils/asymptote/configure
===================================================================
--- trunk/Build/source/utils/asymptote/configure	2018-04-06 00:23:53 UTC (rev 47318)
+++ trunk/Build/source/utils/asymptote/configure	2018-04-06 05:21:01 UTC (rev 47319)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for Asymptote 2.42.
+# Generated by GNU Autoconf 2.69 for Asymptote 2.43.
 #
 # Report bugs to <http://sourceforge.net/projects/asymptote>.
 #
@@ -580,8 +580,8 @@
 # Identity of this package.
 PACKAGE_NAME='Asymptote'
 PACKAGE_TARNAME='asymptote'
-PACKAGE_VERSION='2.42'
-PACKAGE_STRING='Asymptote 2.42'
+PACKAGE_VERSION='2.43'
+PACKAGE_STRING='Asymptote 2.43'
 PACKAGE_BUGREPORT='http://sourceforge.net/projects/asymptote'
 PACKAGE_URL=''
 
@@ -628,14 +628,6 @@
 PTHREAD_LIBS
 PTHREAD_CC
 ax_pthread_config
-host_os
-host_vendor
-host_cpu
-host
-build_os
-build_vendor
-build_cpu
-build
 OPTIONS
 INCL
 GCPPLIB
@@ -662,6 +654,14 @@
 TEXI2DVI
 kpsewhich
 Datadir
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
 EGREP
 GREP
 CPP
@@ -1283,7 +1283,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures Asymptote 2.42 to adapt to many kinds of systems.
+\`configure' configures Asymptote 2.43 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1348,7 +1348,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of Asymptote 2.42:";;
+     short | recursive ) echo "Configuration of Asymptote 2.43:";;
    esac
   cat <<\_ACEOF
 
@@ -1462,7 +1462,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-Asymptote configure 2.42
+Asymptote configure 2.43
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2048,7 +2048,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by Asymptote $as_me 2.42, which was
+It was created by Asymptote $as_me 2.43, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3920,7 +3920,107 @@
  presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
  esac
 
+ac_aux_dir=
+for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
+  if test -f "$ac_dir/install-sh"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install-sh -c"
+    break
+  elif test -f "$ac_dir/install.sh"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install.sh -c"
+    break
+  elif test -f "$ac_dir/shtool"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/shtool install -c"
+    break
+  fi
+done
+if test -z "$ac_aux_dir"; then
+  as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
+fi
 
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
+ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
+ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
+
+
+# Make sure we can run config.sub.
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+  as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+$as_echo_n "checking build system type... " >&6; }
+if ${ac_cv_build+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_build_alias=$build_alias
+test "x$ac_build_alias" = x &&
+  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+test "x$ac_build_alias" = x &&
+  as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+  as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+$as_echo "$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
+esac
+build=$ac_cv_build
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+$as_echo_n "checking host system type... " >&6; }
+if ${ac_cv_host+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "x$host_alias" = x; then
+  ac_cv_host=$ac_cv_build
+else
+  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+$as_echo "$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
+esac
+host=$ac_cv_host
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+
+
+
 test "$prefix" = NONE && prefix=/usr/local
 Datadir=$datadir
 test "$Datadir" = '${datarootdir}' && Datadir=$datarootdir
@@ -4857,35 +4957,6 @@
 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
 
-ac_aux_dir=
-for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
-  if test -f "$ac_dir/install-sh"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install-sh -c"
-    break
-  elif test -f "$ac_dir/install.sh"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install.sh -c"
-    break
-  elif test -f "$ac_dir/shtool"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/shtool install -c"
-    break
-  fi
-done
-if test -z "$ac_aux_dir"; then
-  as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
-fi
-
-# These three variables are undocumented and unsupported,
-# and are intended to be withdrawn in a future Autoconf release.
-# They can cause serious problems if a builder's source tree is in a directory
-# whose full name contains unusual characters.
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
-ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
-
-
 # Find a good install program.  We prefer a C program (faster),
 # so one script is as good as another.  But avoid the broken or
 # incompatible versions:
@@ -5766,8 +5837,22 @@
 
 
 
-GCVERSION=7.6.2
-ATOMICVERSION=7.6.2
+case $host in
+  *mac*) HELLO_SYSTEM='hello-linux.$(OBJEXT)' ;;
+  *)       HELLO_SYSTEM='hello-generic.$(OBJEXT)' ;;
+esac
+
+case "${host_os}" in
+    darwin*)
+      GCVERSION=7.6.0
+      ATOMICVERSION=7.6.0
+        ;;
+   *)
+      GCVERSION=7.6.2
+      ATOMICVERSION=7.6.2
+        ;;
+esac
+
 GCFILE=gc-$GCVERSION
 ac_cv_use_gc="system"
 
@@ -6046,79 +6131,8 @@
   as_fn_error $? "*** Please install libz or zlib-devel on your system ***" "$LINENO" 5
 fi
 
-# Make sure we can run config.sub.
-$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
-  as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
-$as_echo_n "checking build system type... " >&6; }
-if ${ac_cv_build+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_build_alias=$build_alias
-test "x$ac_build_alias" = x &&
-  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
-test "x$ac_build_alias" = x &&
-  as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
-ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
-  as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
-$as_echo "$ac_cv_build" >&6; }
-case $ac_cv_build in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
-esac
-build=$ac_cv_build
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_build
-shift
-build_cpu=$1
-build_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-build_os=$*
-IFS=$ac_save_IFS
-case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
-$as_echo_n "checking host system type... " >&6; }
-if ${ac_cv_host+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test "x$host_alias" = x; then
-  ac_cv_host=$ac_cv_build
-else
-  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
-    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
-$as_echo "$ac_cv_host" >&6; }
-case $ac_cv_host in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
-esac
-host=$ac_cv_host
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_host
-shift
-host_cpu=$1
-host_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-host_os=$*
-IFS=$ac_save_IFS
-case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
-
-
-
-
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -8538,7 +8552,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by Asymptote $as_me 2.42, which was
+This file was extended by Asymptote $as_me 2.43, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -8600,7 +8614,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-Asymptote config.status 2.42
+Asymptote config.status 2.43
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 

Modified: trunk/Build/source/utils/asymptote/configure.ac
===================================================================
--- trunk/Build/source/utils/asymptote/configure.ac	2018-04-06 00:23:53 UTC (rev 47318)
+++ trunk/Build/source/utils/asymptote/configure.ac	2018-04-06 05:21:01 UTC (rev 47319)
@@ -3,16 +3,17 @@
 # this file.
 
 AC_PREREQ(2)
-AC_INIT([Asymptote],[2.42],[http://sourceforge.net/projects/asymptote])
+AC_INIT([Asymptote],[2.43],[http://sourceforge.net/projects/asymptote])
 VERSION=$PACKAGE_VERSION
 AC_SUBST(VERSION)
 m4_include([ax_pthread.m4])
 
-test "$CXXFLAGS" || CXXFLAGS=""
+test "$CXXFLAGS" || CXXFLAGS="-std=c++11"
 
 test "$CFLAGS" || CFLAGS="-g -O3"
 
 AC_C_BIGENDIAN
+AC_CANONICAL_HOST
 
 test "$prefix" = NONE && prefix=/usr/local
 Datadir=$datadir
@@ -123,8 +124,22 @@
 			      [Define to 1 if you have tr1/unordered_map]),
 	[AC_CHECK_HEADER(ext/hash_map,,OPTIONS=$OPTIONS"-DNOHASH ")])])
 
-GCVERSION=7.6.2
-ATOMICVERSION=7.6.2
+case $host in
+  *mac*) HELLO_SYSTEM='hello-linux.$(OBJEXT)' ;;
+  *)       HELLO_SYSTEM='hello-generic.$(OBJEXT)' ;;
+esac
+
+case "${host_os}" in
+    darwin*)
+      GCVERSION=7.6.0
+      ATOMICVERSION=7.6.0
+        ;;
+   *)
+      GCVERSION=7.6.2
+      ATOMICVERSION=7.6.2
+        ;;
+esac
+
 GCFILE=gc-$GCVERSION
 ac_cv_use_gc="system"
 

Deleted: trunk/Build/source/utils/asymptote/doc/CAD.pdf
===================================================================
(Binary files differ)

Deleted: trunk/Build/source/utils/asymptote/doc/FAQ/asy-faq.info
===================================================================
(Binary files differ)

Deleted: trunk/Build/source/utils/asymptote/doc/TeXShopAndAsymptote.pdf
===================================================================
(Binary files differ)

Deleted: trunk/Build/source/utils/asymptote/doc/asy-latex.pdf
===================================================================
(Binary files differ)

Deleted: trunk/Build/source/utils/asymptote/doc/asy.1
===================================================================
--- trunk/Build/source/utils/asymptote/doc/asy.1	2018-04-06 00:23:53 UTC (rev 47318)
+++ trunk/Build/source/utils/asymptote/doc/asy.1	2018-04-06 05:21:01 UTC (rev 47319)
@@ -1,300 +0,0 @@
-.\"                                      Hey, EMACS: -*- nroff -*-
-.TH ASY 1 "1 Dec 2004"
-.SH NAME
-asy \- Asymptote: a script-based vector graphics language
-.SH SYNOPSIS
-.B asy
-.RI [ options ]
-.RI [ file \ ...]
-.SH DESCRIPTION
-\fBAsymptote\fP is a powerful descriptive vector graphics language for
-technical drawings, inspired by MetaPost but with an improved C++-like syntax.
-Asymptote provides for figures the same high-quality level of typesetting that
-LaTeX does for scientific text.
-.SH OPTIONS
-If no arguments are given, Asymptote runs in interactive mode.
-.PP
-If "\-" is given as the file argument, Asymptote reads from standard input.
-.PP
-A summary of options is included below. The effect of most options
-can be negated by prepending 
-.B no
-to the option name. 
-Default values for most options may also be entered in the 
-file 
-.B .asy/config.asy
-in the user's home directory using the long form:
-.PP
-     import settings;
-     batchView=true;
-.PP
-For a complete
-description, see the Info files.
-.TP
-.B \-V,\-View             
-View output; command-line only.
-.TP
-.B \-a,\-align C|B|T|Z    
-Center, Bottom, Top, or Zero page alignment [C].
-.TP
-.B \-aligndir pair       
-Directional page alignment (overrides align) [(0,0)].
-.TP
-.B \-antialias n         
-Antialiasing width for rasterized output [2].
-.TP
-.B \-arcballradius pixels
-Arcball radius [750].
-.TP
-.B \-auto3D              
-Automatically activate 3D scene [true].
-.TP
-.B \-autobillboard       
-3D labels always face viewer by default [true].
-.TP
-.B \-autoimport string   
-Module to automatically import.
-.TP
-.B \-autoplain           
-Enable automatic importing of plain [true].
-.TP
-.B \-autoplay            
-Autoplay 3D animations [false].
-.TP
-.B \-autorotate          
-Enable automatic PDF page rotation [false].
-.TP
-.B \-axes3               
-Show 3D axes in PDF output [true].
-.TP
-.B \-batchMask           
-Mask fpu exceptions in batch mode [false].
-.TP
-.B \-batchView           
-View output in batch mode [false].
-.TP
-.B \-bw                  
-Convert all colors to black and white [false].
-.TP
-.B \-cd directory        
-Set current directory; command-line only.
-.TP
-.B \-cmyk                
-Convert rgb colors to cmyk [false].
-.TP
-.B \-c,\-command string   
-Command to autoexecute.
-.TP
-.B \-compact             
-Conserve memory at the expense of speed [false].
-.TP
-.B \-d,\-debug            
-Enable debugging messages [false].
-.TP
-.B \-divisor n           
-Garbage collect using purge(divisor=n) [2].
-.TP
-.B \-doubleclick ms      
-Emulated double-click timeout [200].
-.TP
-.B \-embed               
-Embed rendered preview image [true].
-.TP
-.B \-exitonEOF           
-Exit interactive mode on EOF [true].
-.TP
-.B \-fitscreen           
-Fit rendered image to screen [true].
-.TP
-.B \-framedelay ms       
-Additional frame delay [0].
-.TP
-.B \-framerate frames/s  
-Animation speed [30].
-.TP
-.B \-globalwrite         
-Allow write to other directory [false].
-.TP
-.B \-gray                
-Convert all colors to grayscale [false].
-.TP
-.B \-h,\-help             
-Show summary of options; command-line only.
-.TP
-.B \-historylines n      
-Retain n lines of history [1000].
-.TP
-.B \-iconify             
-Iconify rendering window [false].
-.TP
-.B \-inlineimage         
-Generate inline embedded image [false].
-.TP
-.B \-inlinetex           
-Generate inline TeX code [false].
-.TP
-.B \-interactiveMask     
-Mask fpu exceptions in interactive mode [true].
-.TP
-.B \-interactiveView     
-View output in interactive mode [true].
-.TP
-.B \-interactiveWrite    
-Write expressions entered at the prompt to stdout [true].
-.TP
-.B \-k,\-keep             
-Keep intermediate files [false].
-.TP
-.B \-keepaux             
-Keep intermediate LaTeX .aux files [false].
-.TP
-.B \-level n             
-Postscript level [3].
-.TP
-.B \-l,\-listvariables    
-List available global functions and variables [false].
-.TP
-.B \-localhistory        
-Use a local interactive history file [false].
-.TP
-.B \-loop                
-Loop 3D animations [false].
-.TP
-.B \-m,\-mask             
-Mask fpu exceptions; command-line only.
-.TP
-.B \-maxtile pair        
-Maximum rendering tile size [(1024,768)].
-.TP
-.B \-maxviewport pair    
-Maximum viewport size [(2048,2048)].
-.TP
-.B \-multiline           
-Input code over multiple lines at the prompt [false].
-.TP
-.B \-multipleView        
-View output from multiple batch-mode files [false].
-.TP
-.B \-multisample n       
-Multisampling width for screen images [4].
-.TP
-.B \-offscreen           
-Use offscreen rendering [false].
-.TP
-.B \-O,\-offset pair      
-PostScript offset [(0,0)].
-.TP
-.B \-f,\-outformat format 
-Convert each output file to specified format.
-.TP
-.B \-o,\-outname name     
-Alternative output directory/filename.
-.TP
-.B \-p,\-parseonly        
-Parse file [false].
-.TP
-.B \-pdfreload           
-Automatically reload document in pdfviewer [false].
-.TP
-.B \-pdfreloaddelay usec 
-Delay before attempting initial pdf reload [750000].
-.TP
-.B \-position pair       
-Initial 3D rendering screen position [(0,0)].
-.TP
-.B \-prc                 
-Embed 3D PRC graphics in PDF output [true].
-.TP
-.B \-prompt string       
-Prompt [> ].
-.TP
-.B \-prompt2 string      
-Continuation prompt for multiline input  [..].
-.TP
-.B \-q,\-quiet            
-Suppress welcome text and noninteractive stdout [false].
-.TP
-.B \-render n            
-Render 3D graphics using n pixels per bp (-1=auto) [-1].
-.TP
-.B \-resizestep step     
-Resize step [1.2].
-.TP
-.B \-reverse             
-reverse 3D animations [false].
-.TP
-.B \-rgb                 
-Convert cmyk colors to rgb [false].
-.TP
-.B \-safe                
-Disable system call [true].
-.TP
-.B \-scroll n            
-Scroll standard output n lines at a time [0].
-.TP
-.B \-spinstep deg/s      
-Spin speed [60].
-.TP
-.B \-svgemulation        
-Emulate unimplemented SVG shading [false].
-.TP
-.B \-tabcompletion       
-Interactive prompt auto-completion [true].
-.TP
-.B \-tex engine          
-latex|pdflatex|xelatex|lualatex|tex|pdftex|luatex|context|none [latex].
-.TP
-.B \-thick               
-Render thick 3D lines [true].
-.TP
-.B \-thin                
-Render thin 3D lines [true].
-.TP
-.B \-threads             
-Use POSIX threads for 3D rendering [true].
-.TP
-.B \-toolbar             
-Show 3D toolbar in PDF output [true].
-.TP
-.B \-s,\-translate        
-Show translated virtual machine code [false].
-.TP
-.B \-twice               
-Run LaTeX twice (to resolve references) [false].
-.TP
-.B \-twosided            
-Use two-sided 3D lighting model for rendering [true].
-.TP
-.B \-u,\-user string      
-General purpose user string.
-.TP
-.B \-v,\-verbose          
-Increase verbosity level (can specify multiple times) [0].
-.TP
-.B \-version             
-Show version; command-line only.
-.TP
-.B \-wait                
-Wait for child processes to finish before exiting [false].
-.TP
-.B \-warn string         
-Enable warning; command-line only.
-.TP
-.B \-where               
-Show where listed variables are declared [false].
-.TP
-.B \-zoomfactor factor   
-Zoom step factor [1.05].
-.TP
-.B \-zoomstep step       
-Mouse motion zoom step [0.1].
-
-.SH SEE ALSO
-Asymptote is documented fully in the asymptote Info page.
-The manual can also be accessed in interactive mode with the "help" command.
-
-.SH AUTHOR
-Asymptote was written by Andy Hammerlindl, John Bowman, and Tom Prince.
-.PP
-This manual page was written by Hubert Chan for the Debian project (but may
-be used by others).

Deleted: trunk/Build/source/utils/asymptote/doc/asyRefCard.pdf
===================================================================
(Binary files differ)

Deleted: trunk/Build/source/utils/asymptote/doc/asymptote.pdf
===================================================================
(Binary files differ)

Modified: trunk/Build/source/utils/asymptote/doc/asymptote.texi
===================================================================
--- trunk/Build/source/utils/asymptote/doc/asymptote.texi	2018-04-06 00:23:53 UTC (rev 47318)
+++ trunk/Build/source/utils/asymptote/doc/asymptote.texi	2018-04-06 05:21:01 UTC (rev 47319)
@@ -11,7 +11,7 @@
 
 @url{http://asymptote.sourceforge.net}
      
-Copyright @copyright{} 2004-16 Andy Hammerlindl, John Bowman, and Tom Prince.
+Copyright @copyright{} 2004-18 Andy Hammerlindl, John Bowman, and Tom Prince.
      
 @quotation
 Permission is granted to copy, distribute and/or modify this document
@@ -316,10 +316,10 @@
 @cindex @acronym{RPM}
 @cindex @code{tgz}
 We release both @code{tgz} and @acronym{RPM} binary distributions of
- at code{Asymptote}. The root user can install the @code{Linux i386} @code{tgz}
+ at code{Asymptote}. The root user can install the @code{Linux x86_64} @code{tgz}
 distribution of version @code{x.xx} of @code{Asymptote} with the commands:
 @verbatim
-tar -C / -zxf asymptote-x.xx.i386.tgz
+tar -C / -zxf asymptote-x.xx.x86_64.tgz
 texhash
 @end verbatim
 @noindent
@@ -758,9 +758,9 @@
 @section Uninstall
 @cindex uninstall
 
-To uninstall a @code{Linux i386} binary distribution, use the commands
+To uninstall a @code{Linux x86_64} binary distribution, use the commands
 @verbatim
-tar -zxvf asymptote-x.xx.i386.tgz | xargs --replace=% rm /%
+tar -zxvf asymptote-x.xx.x86_64.tgz | xargs --replace=% rm /%
 texhash
 @end verbatim
 
@@ -9893,7 +9893,7 @@
 @c  LocalWords:  differentiable vectorization vectorized asydir normals quartic
 @c  LocalWords:  wavepacket kerned parametrized specular hyperboloid Bourke's
 @c  LocalWords:  Michail 0pt 1filll 's 3D latin1 labelpath3 2D graph3
- at c  LocalWords:  grid3 contour3 i386 psv a4 gsview32 freeglut 'load '
+ at c  LocalWords:  grid3 contour3 x86_64 psv a4 gsview32 freeglut 'load '
 @c  LocalWords:  'asy 'lasy 'auto 5bp 1cm sqrtx01 4g extenda extendb
 @c  LocalWords:  bb llx 2S 100pt 3t bezier2 bool3 x0 angle1 angle2 z1
 @c  LocalWords:  z2 before' struct X11 x11colors type1cm 12pt OT1 5mm

Deleted: trunk/Build/source/utils/asymptote/doc/png/asymptote.info
===================================================================
(Binary files differ)

Added: trunk/Build/source/utils/asymptote/gsl.symbols.h
===================================================================
--- trunk/Build/source/utils/asymptote/gsl.symbols.h	                        (rev 0)
+++ trunk/Build/source/utils/asymptote/gsl.symbols.h	2018-04-06 05:21:01 UTC (rev 47319)
@@ -0,0 +1,394 @@
+/*****
+ * This file is automatically generated by findsym.pl
+ * Changes will be overwritten.
+ *****/
+
+// If the ADDSYMBOL macro is not already defined, define it with the default
+// purpose of referring to an external pre-translated symbol, such that
+// SYM(name) also refers to that symbol.
+#ifndef ADDSYMBOL
+    #define ADDSYMBOL(name) extern sym::symbol PRETRANSLATED_SYMBOL_##name
+    #define SYM(name) PRETRANSLATED_SYMBOL_##name
+#endif
+
+ADDSYMBOL(Ai);
+ADDSYMBOL(Ai_deriv);
+ADDSYMBOL(Ai_deriv_scaled);
+ADDSYMBOL(Ai_scaled);
+ADDSYMBOL(Bi);
+ADDSYMBOL(Bi_deriv);
+ADDSYMBOL(Bi_deriv_scaled);
+ADDSYMBOL(Bi_scaled);
+ADDSYMBOL(Chi);
+ADDSYMBOL(Ci);
+ADDSYMBOL(D);
+ADDSYMBOL(E);
+ADDSYMBOL(E1);
+ADDSYMBOL(E2);
+ADDSYMBOL(Ei);
+ADDSYMBOL(Ei3);
+ADDSYMBOL(F);
+ADDSYMBOL(FermiDirac);
+ADDSYMBOL(FermiDirac0);
+ADDSYMBOL(FermiDirac1);
+ADDSYMBOL(FermiDirac2);
+ADDSYMBOL(FermiDirac3Half);
+ADDSYMBOL(FermiDiracHalf);
+ADDSYMBOL(FermiDiracInc0);
+ADDSYMBOL(FermiDiracM1);
+ADDSYMBOL(FermiDiracMHalf);
+ADDSYMBOL(H3d);
+ADDSYMBOL(H3d0);
+ADDSYMBOL(H3d1);
+ADDSYMBOL(I);
+ADDSYMBOL(I0);
+ADDSYMBOL(I0_scaled);
+ADDSYMBOL(I1);
+ADDSYMBOL(I1_scaled);
+ADDSYMBOL(I_scaled);
+ADDSYMBOL(J);
+ADDSYMBOL(J0);
+ADDSYMBOL(J1);
+ADDSYMBOL(Jn);
+ADDSYMBOL(K);
+ADDSYMBOL(K0);
+ADDSYMBOL(K0_scaled);
+ADDSYMBOL(K1);
+ADDSYMBOL(K1_scaled);
+ADDSYMBOL(K_scaled);
+ADDSYMBOL(L);
+ADDSYMBOL(L1);
+ADDSYMBOL(L2);
+ADDSYMBOL(L3);
+ADDSYMBOL(P);
+ADDSYMBOL(P1);
+ADDSYMBOL(P2);
+ADDSYMBOL(P3);
+ADDSYMBOL(Pl);
+ADDSYMBOL(Plm);
+ADDSYMBOL(Q);
+ADDSYMBOL(Q0);
+ADDSYMBOL(Q1);
+ADDSYMBOL(Ql);
+ADDSYMBOL(RC);
+ADDSYMBOL(RD);
+ADDSYMBOL(RF);
+ADDSYMBOL(RJ);
+ADDSYMBOL(Shi);
+ADDSYMBOL(Si);
+ADDSYMBOL(U);
+ADDSYMBOL(W0);
+ADDSYMBOL(Wm1);
+ADDSYMBOL(Y);
+ADDSYMBOL(Y0);
+ADDSYMBOL(Y1);
+ADDSYMBOL(Yn);
+ADDSYMBOL(Z);
+ADDSYMBOL(a);
+ADDSYMBOL(aI);
+ADDSYMBOL(aR);
+ADDSYMBOL(alpha);
+ADDSYMBOL(atanint);
+ADDSYMBOL(b);
+ADDSYMBOL(beta);
+ADDSYMBOL(c);
+ADDSYMBOL(cdf_beta_P);
+ADDSYMBOL(cdf_beta_Pinv);
+ADDSYMBOL(cdf_beta_Q);
+ADDSYMBOL(cdf_beta_Qinv);
+ADDSYMBOL(cdf_binomial_P);
+ADDSYMBOL(cdf_binomial_Q);
+ADDSYMBOL(cdf_cauchy_P);
+ADDSYMBOL(cdf_cauchy_Pinv);
+ADDSYMBOL(cdf_cauchy_Q);
+ADDSYMBOL(cdf_cauchy_Qinv);
+ADDSYMBOL(cdf_chisq_P);
+ADDSYMBOL(cdf_chisq_Pinv);
+ADDSYMBOL(cdf_chisq_Q);
+ADDSYMBOL(cdf_chisq_Qinv);
+ADDSYMBOL(cdf_exponential_P);
+ADDSYMBOL(cdf_exponential_Pinv);
+ADDSYMBOL(cdf_exponential_Q);
+ADDSYMBOL(cdf_exponential_Qinv);
+ADDSYMBOL(cdf_exppow_P);
+ADDSYMBOL(cdf_exppow_Q);
+ADDSYMBOL(cdf_fdist_P);
+ADDSYMBOL(cdf_fdist_Pinv);
+ADDSYMBOL(cdf_fdist_Q);
+ADDSYMBOL(cdf_fdist_Qinv);
+ADDSYMBOL(cdf_flat_P);
+ADDSYMBOL(cdf_flat_Pinv);
+ADDSYMBOL(cdf_flat_Q);
+ADDSYMBOL(cdf_flat_Qinv);
+ADDSYMBOL(cdf_gamma_P);
+ADDSYMBOL(cdf_gamma_Pinv);
+ADDSYMBOL(cdf_gamma_Q);
+ADDSYMBOL(cdf_gamma_Qinv);
+ADDSYMBOL(cdf_gaussian_P);
+ADDSYMBOL(cdf_gaussian_Pinv);
+ADDSYMBOL(cdf_gaussian_Q);
+ADDSYMBOL(cdf_gaussian_Qinv);
+ADDSYMBOL(cdf_geometric_P);
+ADDSYMBOL(cdf_geometric_Q);
+ADDSYMBOL(cdf_gumbel1_P);
+ADDSYMBOL(cdf_gumbel1_Pinv);
+ADDSYMBOL(cdf_gumbel1_Q);
+ADDSYMBOL(cdf_gumbel1_Qinv);
+ADDSYMBOL(cdf_gumbel2_P);
+ADDSYMBOL(cdf_gumbel2_Pinv);
+ADDSYMBOL(cdf_gumbel2_Q);
+ADDSYMBOL(cdf_gumbel2_Qinv);
+ADDSYMBOL(cdf_hypergeometric_P);
+ADDSYMBOL(cdf_hypergeometric_Q);
+ADDSYMBOL(cdf_laplace_P);
+ADDSYMBOL(cdf_laplace_Pinv);
+ADDSYMBOL(cdf_laplace_Q);
+ADDSYMBOL(cdf_laplace_Qinv);
+ADDSYMBOL(cdf_logistic_P);
+ADDSYMBOL(cdf_logistic_Pinv);
+ADDSYMBOL(cdf_logistic_Q);
+ADDSYMBOL(cdf_logistic_Qinv);
+ADDSYMBOL(cdf_lognormal_P);
+ADDSYMBOL(cdf_lognormal_Pinv);
+ADDSYMBOL(cdf_lognormal_Q);
+ADDSYMBOL(cdf_lognormal_Qinv);
+ADDSYMBOL(cdf_negative_binomial_P);
+ADDSYMBOL(cdf_negative_binomial_Q);
+ADDSYMBOL(cdf_pareto_P);
+ADDSYMBOL(cdf_pareto_Pinv);
+ADDSYMBOL(cdf_pareto_Q);
+ADDSYMBOL(cdf_pareto_Qinv);
+ADDSYMBOL(cdf_poisson_P);
+ADDSYMBOL(cdf_poisson_Q);
+ADDSYMBOL(cdf_rayleigh_P);
+ADDSYMBOL(cdf_rayleigh_Pinv);
+ADDSYMBOL(cdf_rayleigh_Q);
+ADDSYMBOL(cdf_rayleigh_Qinv);
+ADDSYMBOL(cdf_tdist_P);
+ADDSYMBOL(cdf_tdist_Pinv);
+ADDSYMBOL(cdf_tdist_Q);
+ADDSYMBOL(cdf_tdist_Qinv);
+ADDSYMBOL(cdf_weibull_P);
+ADDSYMBOL(cdf_weibull_Pinv);
+ADDSYMBOL(cdf_weibull_Q);
+ADDSYMBOL(cdf_weibull_Qinv);
+ADDSYMBOL(choose);
+ADDSYMBOL(clausen);
+ADDSYMBOL(conicalP_0);
+ADDSYMBOL(conicalP_1);
+ADDSYMBOL(conicalP_cyl_reg);
+ADDSYMBOL(conicalP_half);
+ADDSYMBOL(conicalP_mhalf);
+ADDSYMBOL(conicalP_sph_reg);
+ADDSYMBOL(coupling_3j);
+ADDSYMBOL(coupling_6j);
+ADDSYMBOL(coupling_9j);
+ADDSYMBOL(dawson);
+ADDSYMBOL(debye_1);
+ADDSYMBOL(debye_2);
+ADDSYMBOL(debye_3);
+ADDSYMBOL(debye_4);
+ADDSYMBOL(debye_5);
+ADDSYMBOL(debye_6);
+ADDSYMBOL(dilog);
+ADDSYMBOL(doublefact);
+ADDSYMBOL(epsilon);
+ADDSYMBOL(erf);
+ADDSYMBOL(erf_Q);
+ADDSYMBOL(erf_Z);
+ADDSYMBOL(erfc);
+ADDSYMBOL(eta);
+ADDSYMBOL(exp_mult);
+ADDSYMBOL(exprel);
+ADDSYMBOL(exprel_2);
+ADDSYMBOL(fact);
+ADDSYMBOL(fcmp);
+ADDSYMBOL(gamma);
+ADDSYMBOL(gamma_P);
+ADDSYMBOL(gamma_Q);
+ADDSYMBOL(gammainv);
+ADDSYMBOL(gammastar);
+ADDSYMBOL(gegenpoly);
+ADDSYMBOL(gegenpoly_1);
+ADDSYMBOL(gegenpoly_2);
+ADDSYMBOL(gegenpoly_3);
+ADDSYMBOL(gsl);
+ADDSYMBOL(hazard);
+ADDSYMBOL(hy0F1);
+ADDSYMBOL(hy1F1);
+ADDSYMBOL(hy2F0);
+ADDSYMBOL(hy2F1);
+ADDSYMBOL(hy2F1_conj);
+ADDSYMBOL(hy2F1_conj_renorm);
+ADDSYMBOL(hy2F1_renorm);
+ADDSYMBOL(hydrogenicR);
+ADDSYMBOL(hydrogenicR_1);
+ADDSYMBOL(hypot);
+ADDSYMBOL(hzeta);
+ADDSYMBOL(i0_scaled);
+ADDSYMBOL(i1_scaled);
+ADDSYMBOL(i2_scaled);
+ADDSYMBOL(i_scaled);
+ADDSYMBOL(j);
+ADDSYMBOL(j0);
+ADDSYMBOL(j1);
+ADDSYMBOL(j2);
+ADDSYMBOL(k);
+ADDSYMBOL(k0_scaled);
+ADDSYMBOL(k1_scaled);
+ADDSYMBOL(k2_scaled);
+ADDSYMBOL(k_scaled);
+ADDSYMBOL(l);
+ADDSYMBOL(lambda);
+ADDSYMBOL(lnK);
+ADDSYMBOL(lnbeta);
+ADDSYMBOL(lnchoose);
+ADDSYMBOL(lncosh);
+ADDSYMBOL(lndoublefact);
+ADDSYMBOL(lnfact);
+ADDSYMBOL(lngamma);
+ADDSYMBOL(lnpoch);
+ADDSYMBOL(lnsinh);
+ADDSYMBOL(log1pm);
+ADDSYMBOL(log_erfc);
+ADDSYMBOL(logabs);
+ADDSYMBOL(m);
+ADDSYMBOL(method);
+ADDSYMBOL(mu);
+ADDSYMBOL(n);
+ADDSYMBOL(n1);
+ADDSYMBOL(n2);
+ADDSYMBOL(name);
+ADDSYMBOL(nu);
+ADDSYMBOL(nu1);
+ADDSYMBOL(nu2);
+ADDSYMBOL(p);
+ADDSYMBOL(pdf_bernoulli);
+ADDSYMBOL(pdf_beta);
+ADDSYMBOL(pdf_binomial);
+ADDSYMBOL(pdf_bivariate_gaussian);
+ADDSYMBOL(pdf_cauchy);
+ADDSYMBOL(pdf_chisq);
+ADDSYMBOL(pdf_dirichlet);
+ADDSYMBOL(pdf_exponential);
+ADDSYMBOL(pdf_exppow);
+ADDSYMBOL(pdf_fdist);
+ADDSYMBOL(pdf_flat);
+ADDSYMBOL(pdf_gamma);
+ADDSYMBOL(pdf_gaussian);
+ADDSYMBOL(pdf_gaussian_tail);
+ADDSYMBOL(pdf_geometric);
+ADDSYMBOL(pdf_gumbel1);
+ADDSYMBOL(pdf_gumbel2);
+ADDSYMBOL(pdf_hypergeometric);
+ADDSYMBOL(pdf_landau);
+ADDSYMBOL(pdf_laplace);
+ADDSYMBOL(pdf_logarithmic);
+ADDSYMBOL(pdf_logistic);
+ADDSYMBOL(pdf_lognormal);
+ADDSYMBOL(pdf_multinomial);
+ADDSYMBOL(pdf_negative_binomial);
+ADDSYMBOL(pdf_pareto);
+ADDSYMBOL(pdf_poisson);
+ADDSYMBOL(pdf_rayleigh);
+ADDSYMBOL(pdf_rayleigh_tail);
+ADDSYMBOL(pdf_tdist);
+ADDSYMBOL(pdf_weibull);
+ADDSYMBOL(phi);
+ADDSYMBOL(poch);
+ADDSYMBOL(pochrel);
+ADDSYMBOL(pow);
+ADDSYMBOL(psi);
+ADDSYMBOL(psi1);
+ADDSYMBOL(psi_1piy);
+ADDSYMBOL(q);
+ADDSYMBOL(r);
+ADDSYMBOL(rho);
+ADDSYMBOL(rng_bernoulli);
+ADDSYMBOL(rng_beta);
+ADDSYMBOL(rng_binomial);
+ADDSYMBOL(rng_bivariate_gaussian);
+ADDSYMBOL(rng_cauchy);
+ADDSYMBOL(rng_chisq);
+ADDSYMBOL(rng_dir);
+ADDSYMBOL(rng_dir2d);
+ADDSYMBOL(rng_dir3d);
+ADDSYMBOL(rng_dirichlet);
+ADDSYMBOL(rng_exponential);
+ADDSYMBOL(rng_exppow);
+ADDSYMBOL(rng_fdist);
+ADDSYMBOL(rng_flat);
+ADDSYMBOL(rng_gamma);
+ADDSYMBOL(rng_gaussian);
+ADDSYMBOL(rng_gaussian_tail);
+ADDSYMBOL(rng_geometric);
+ADDSYMBOL(rng_get);
+ADDSYMBOL(rng_gumbel1);
+ADDSYMBOL(rng_gumbel2);
+ADDSYMBOL(rng_hypergeometric);
+ADDSYMBOL(rng_init);
+ADDSYMBOL(rng_landau);
+ADDSYMBOL(rng_laplace);
+ADDSYMBOL(rng_levy);
+ADDSYMBOL(rng_list);
+ADDSYMBOL(rng_logarithmic);
+ADDSYMBOL(rng_logistic);
+ADDSYMBOL(rng_lognormal);
+ADDSYMBOL(rng_max);
+ADDSYMBOL(rng_min);
+ADDSYMBOL(rng_multinomial);
+ADDSYMBOL(rng_name);
+ADDSYMBOL(rng_negative_binomial);
+ADDSYMBOL(rng_pareto);
+ADDSYMBOL(rng_poisson);
+ADDSYMBOL(rng_rayleigh);
+ADDSYMBOL(rng_rayleigh_tail);
+ADDSYMBOL(rng_set);
+ADDSYMBOL(rng_tdist);
+ADDSYMBOL(rng_uniform);
+ADDSYMBOL(rng_uniform_int);
+ADDSYMBOL(rng_uniform_pos);
+ADDSYMBOL(rng_weibull);
+ADDSYMBOL(s);
+ADDSYMBOL(seed);
+ADDSYMBOL(sigma);
+ADDSYMBOL(sinc);
+ADDSYMBOL(sncndn);
+ADDSYMBOL(sphPlm);
+ADDSYMBOL(synchrotron_1);
+ADDSYMBOL(synchrotron_2);
+ADDSYMBOL(t);
+ADDSYMBOL(taylorcoeff);
+ADDSYMBOL(theta);
+ADDSYMBOL(transport_2);
+ADDSYMBOL(transport_3);
+ADDSYMBOL(transport_4);
+ADDSYMBOL(transport_5);
+ADDSYMBOL(two_ja);
+ADDSYMBOL(two_jb);
+ADDSYMBOL(two_jc);
+ADDSYMBOL(two_jd);
+ADDSYMBOL(two_je);
+ADDSYMBOL(two_jf);
+ADDSYMBOL(two_jg);
+ADDSYMBOL(two_jh);
+ADDSYMBOL(two_ji);
+ADDSYMBOL(two_ma);
+ADDSYMBOL(two_mb);
+ADDSYMBOL(two_mc);
+ADDSYMBOL(u);
+ADDSYMBOL(x);
+ADDSYMBOL(y);
+ADDSYMBOL(y0);
+ADDSYMBOL(y1);
+ADDSYMBOL(y2);
+ADDSYMBOL(z);
+ADDSYMBOL(zero_Ai);
+ADDSYMBOL(zero_Ai_deriv);
+ADDSYMBOL(zero_Bi);
+ADDSYMBOL(zero_Bi_deriv);
+ADDSYMBOL(zero_J);
+ADDSYMBOL(zero_J0);
+ADDSYMBOL(zero_J1);
+ADDSYMBOL(zeta);
+ADDSYMBOL(zetam1);


Property changes on: trunk/Build/source/utils/asymptote/gsl.symbols.h
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Build/source/utils/asymptote/mathop.h
===================================================================
--- trunk/Build/source/utils/asymptote/mathop.h	2018-04-06 00:23:53 UTC (rev 47318)
+++ trunk/Build/source/utils/asymptote/mathop.h	2018-04-06 05:21:01 UTC (rev 47319)
@@ -238,9 +238,9 @@
   }
 };
  
-template <typename>
+template <typename T>
 struct mod {
-  Int operator() (Int x, Int y,  size_t i=0) {
+  T operator() (T x, T y,  size_t i=0) {
     if(y == 0) dividebyzero(i);
     return portableMod(x,y);
   }

Modified: trunk/Build/source/utils/asymptote/picture.cc
===================================================================
--- trunk/Build/source/utils/asymptote/picture.cc	2018-04-06 00:23:53 UTC (rev 47318)
+++ trunk/Build/source/utils/asymptote/picture.cc	2018-04-06 05:21:01 UTC (rev 47319)
@@ -238,6 +238,16 @@
   return false;
 }
 
+bool picture::havepng()
+{
+  for(nodelist::iterator p=nodes.begin(); p != nodes.end(); ++p) {
+    assert(*p);
+    if((*p)->svgpng())
+      return true;
+  }
+  return false;
+}
+
 bbox picture::bounds()
 {
   size_t n=nodes.size();
@@ -409,7 +419,7 @@
 
 bool picture::texprocess(const string& texname, const string& outname,
                          const string& prefix, const pair& bboxshift,
-                         bool svgformat)
+                         bool svg)
 {
   int status=1;
   ifstream outfile;
@@ -427,7 +437,7 @@
       string dviname=auxname(prefix,"dvi");
       mem::vector<string> cmd;
     
-      if(svgformat) {
+      if(svg) {
         cmd.push_back(getSetting<string>("dvisvgm"));
         cmd.push_back("-n");
         cmd.push_back("--verbosity=3");
@@ -664,14 +674,15 @@
   
 bool picture::postprocess(const string& prename, const string& outname,
                           const string& outputformat, double magnification,
-                          bool wait, bool view, bool pdftex, bool svgformat)
+                          bool wait, bool view, bool pdftex, 
+                          bool epsformat, bool svg)
 {
   static mem::map<CONST string,int> pids;
   int status=0;
-  bool epsformat=outputformat == "eps";
   bool pdfformat=(settings::pdf(getSetting<string>("tex")) 
                   && outputformat == "") || outputformat == "pdf";
   
+  mem::vector<string> cmd;
   if(pdftex || !epsformat) {
     if(pdfformat) {
       if(pdftex) {
@@ -680,9 +691,26 @@
           reportError("Cannot rename "+prename+" to "+outname);
       } else status=epstopdf(prename,outname);
     } else if(epsformat) {
-      status=pdftoeps(prename,outname);
+      if(svg) {
+        string epsname=stripExt(prename)+".eps";
+        status=pdftoeps(prename,epsname);
+        cmd.push_back(getSetting<string>("dvisvgm"));
+        cmd.push_back("-n");
+        cmd.push_back("-E");
+        cmd.push_back("--verbosity=3");
+        string libgs=getSetting<string>("libgs");
+        if(!libgs.empty())
+          cmd.push_back("--libgs="+libgs);
+        push_split(cmd,getSetting<string>("dvisvgmOptions"));
+        cmd.push_back("-o"+outname);
+        cmd.push_back(epsname);
+        status=System(cmd,0,true,"dvisvgm");
+        if(!getSetting<bool>("keep"))
+          unlink(epsname.c_str());
+        epsformat=false;
+      } else 
+        status=pdftoeps(prename,outname);
     } else {
-      mem::vector<string> cmd;
       double render=fabs(getSetting<double>("render"));
       if(render == 0) render=1.0;
       double res=render*72.0;
@@ -702,7 +730,7 @@
         cmd.push_back("-sOutputFile="+outname);
         cmd.push_back(prename);
         status=System(cmd,0,true,"gs","Ghostscript");
-      } else if(!svgformat) {
+      } else if(!svg) {
         double expand=antialias;
         if(expand < 2.0) expand=1.0;
         res *= expand;
@@ -715,7 +743,7 @@
         cmd.push_back("-resize");
         cmd.push_back(String(100.0/expand)+"%x");
         if(outputformat == "jpg") cmd.push_back("-flatten");
-        cmd.push_back(nativeformat()+":"+prename);
+        cmd.push_back(prename);
         cmd.push_back(outputformat+":"+outname);
         status=System(cmd,0,true,"convert");
       }
@@ -809,8 +837,14 @@
   string outputformat=format.empty() ? defaultformat() : format;
   bool epsformat=outputformat == "eps";
   bool pdfformat=pdf || outputformat == "pdf";
-  bool svgformat=outputformat == "svg" && !pdf && usetex &&
+  bool svgformat=outputformat == "svg";
+  bool dvi=false;
+  bool svg=svgformat && usetex && !(pdf && havepng()) &&
     (!have3D() || getSetting<double>("render") == 0.0);
+  if(svg) {
+    if(pdf) epsformat=true;
+    else dvi=true;
+  }
   
   bool xobject=magnification > 0;
   string outname=Outname(prefix,outputformat,standardout);
@@ -827,10 +861,11 @@
     out.prologue(b);
     out.epilogue();
     out.close();
-    return postprocess(epsname,outname,outputformat,1.0,wait,view,false,false);
+    return postprocess(epsname,outname,outputformat,1.0,wait,view,false,
+                       epsformat,false);
   }
   
-  Labels |= svgformat;
+  Labels |= svg;
     
   if(Labels)
     prefix=cleanpath(prefix);
@@ -879,7 +914,7 @@
   
   if(Labels) {
     texname=TeXmode ? buildname(prefix,"tex") : auxname(prefix,"tex");
-    tex=svgformat ? new svgtexfile(texname,b) : new texfile(texname,b);
+    tex=dvi ? new svgtexfile(texname,b) : new texfile(texname,b);
     tex->prologue();
   }
   
@@ -934,7 +969,7 @@
     bool postscript=false;
     drawLabel *L=NULL;
     
-    if(svgformat)
+    if(dvi)
       for(nodelist::const_iterator r=begin.begin(); r != begin.end(); ++r)
         (*r)->draw(&out);
     
@@ -942,7 +977,7 @@
       assert(*p);
       if(Labels && (*p)->islayer()) break;
       
-      if(svgformat && (*p)->svg()) {
+      if(dvi && (*p)->svg()) {
         picture *f=(*p)->svgpng() ? new picture : NULL;
         nodelist::const_iterator q=layerp;
         for(;;) {
@@ -1029,7 +1064,7 @@
         for (p=layerp; p != nodes.end(); ++p) {
           assert(*p);
           bool islayer=(*p)->islayer();
-          if(svgformat && (*p)->svg()) {
+          if(dvi && (*p)->svg()) {
             islayer=true;
             if((*p)->svgpng())
               L->write(tex,b);
@@ -1057,8 +1092,8 @@
       if(Labels) {
         tex->epilogue();
         if(context) prefix=stripDir(prefix);
-        status=texprocess(texname,svgformat ? outname : prename,prefix,
-                          bboxshift,svgformat);
+        status=texprocess(texname,dvi ? outname : prename,prefix,
+                          bboxshift,dvi);
         delete tex;
         if(!getSetting<bool>("keep")) {
           for(mem::list<string>::iterator p=files.begin(); p != files.end();
@@ -1073,7 +1108,7 @@
         } else {
           if(context) prename=stripDir(prename);
           status=postprocess(prename,outname,outputformat,magnification,wait,
-                             view,pdf && Labels,svgformat);
+                             view,pdf && Labels,epsformat,svg);
           if(pdfformat && !getSetting<bool>("keep")) {
             unlink(auxname(prefix,"m9").c_str());
             unlink(auxname(prefix,"pbsdat").c_str());

Modified: trunk/Build/source/utils/asymptote/picture.h
===================================================================
--- trunk/Build/source/utils/asymptote/picture.h	2018-04-06 00:23:53 UTC (rev 47318)
+++ trunk/Build/source/utils/asymptote/picture.h	2018-04-06 05:21:01 UTC (rev 47319)
@@ -56,6 +56,7 @@
   
   bool havelabels();
   bool have3D();
+  bool havepng();
 
   bbox bounds();
   bbox3 bounds3();
@@ -75,7 +76,8 @@
     
   bool postprocess(const string& prename, const string& outname, 
                    const string& outputformat, double magnification,
-                   bool wait, bool view, bool pdftex, bool svgformat);
+                   bool wait, bool view, bool pdftex, bool epsformat,
+                   bool svg);
     
   // Ship the picture out to PostScript & TeX files.
   bool shipout(picture* preamble, const string& prefix,

Modified: trunk/Build/source/utils/asymptote/revision.cc
===================================================================
--- trunk/Build/source/utils/asymptote/revision.cc	2018-04-06 00:23:53 UTC (rev 47318)
+++ trunk/Build/source/utils/asymptote/revision.cc	2018-04-06 05:21:01 UTC (rev 47319)
@@ -1 +1 @@
-const char *REVISION="2.42";
+const char *REVISION="2.43";

Added: trunk/Build/source/utils/asymptote/runarray.symbols.h
===================================================================
--- trunk/Build/source/utils/asymptote/runarray.symbols.h	                        (rev 0)
+++ trunk/Build/source/utils/asymptote/runarray.symbols.h	2018-04-06 05:21:01 UTC (rev 47319)
@@ -0,0 +1,61 @@
+/*****
+ * This file is automatically generated by findsym.pl
+ * Changes will be overwritten.
+ *****/
+
+// If the ADDSYMBOL macro is not already defined, define it with the default
+// purpose of referring to an external pre-translated symbol, such that
+// SYM(name) also refers to that symbol.
+#ifndef ADDSYMBOL
+    #define ADDSYMBOL(name) extern sym::symbol PRETRANSLATED_SYMBOL_##name
+    #define SYM(name) PRETRANSLATED_SYMBOL_##name
+#endif
+
+ADDSYMBOL(AtA);
+ADDSYMBOL(_findroot);
+ADDSYMBOL(_projection);
+ADDSYMBOL(a);
+ADDSYMBOL(acc);
+ADDSYMBOL(all);
+ADDSYMBOL(b);
+ADDSYMBOL(c);
+ADDSYMBOL(change2);
+ADDSYMBOL(complement);
+ADDSYMBOL(determinant);
+ADDSYMBOL(dot);
+ADDSYMBOL(dxmax);
+ADDSYMBOL(f);
+ADDSYMBOL(fa);
+ADDSYMBOL(fb);
+ADDSYMBOL(fft);
+ADDSYMBOL(find);
+ADDSYMBOL(findall);
+ADDSYMBOL(fprime);
+ADDSYMBOL(identity);
+ADDSYMBOL(inverse);
+ADDSYMBOL(iterations);
+ADDSYMBOL(maxbezier);
+ADDSYMBOL(maxratio);
+ADDSYMBOL(minbezier);
+ADDSYMBOL(minratio);
+ADDSYMBOL(n);
+ADDSYMBOL(newton);
+ADDSYMBOL(norm);
+ADDSYMBOL(p);
+ADDSYMBOL(project);
+ADDSYMBOL(sequence);
+ADDSYMBOL(sign);
+ADDSYMBOL(simpson);
+ADDSYMBOL(solve);
+ADDSYMBOL(sum);
+ADDSYMBOL(t);
+ADDSYMBOL(tolerance);
+ADDSYMBOL(triangulate);
+ADDSYMBOL(tridiagonal);
+ADDSYMBOL(v);
+ADDSYMBOL(verbose);
+ADDSYMBOL(warn);
+ADDSYMBOL(x);
+ADDSYMBOL(x1);
+ADDSYMBOL(x2);
+ADDSYMBOL(z);


Property changes on: trunk/Build/source/utils/asymptote/runarray.symbols.h
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Build/source/utils/asymptote/runbacktrace.symbols.h
===================================================================
--- trunk/Build/source/utils/asymptote/runbacktrace.symbols.h	                        (rev 0)
+++ trunk/Build/source/utils/asymptote/runbacktrace.symbols.h	2018-04-06 05:21:01 UTC (rev 47319)
@@ -0,0 +1,16 @@
+/*****
+ * This file is automatically generated by findsym.pl
+ * Changes will be overwritten.
+ *****/
+
+// If the ADDSYMBOL macro is not already defined, define it with the default
+// purpose of referring to an external pre-translated symbol, such that
+// SYM(name) also refers to that symbol.
+#ifndef ADDSYMBOL
+    #define ADDSYMBOL(name) extern sym::symbol PRETRANSLATED_SYMBOL_##name
+    #define SYM(name) PRETRANSLATED_SYMBOL_##name
+#endif
+
+ADDSYMBOL(generate_random_backtrace);
+ADDSYMBOL(n);
+ADDSYMBOL(print_random_addresses);


Property changes on: trunk/Build/source/utils/asymptote/runbacktrace.symbols.h
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Build/source/utils/asymptote/runfile.symbols.h
===================================================================
--- trunk/Build/source/utils/asymptote/runfile.symbols.h	                        (rev 0)
+++ trunk/Build/source/utils/asymptote/runfile.symbols.h	2018-04-06 05:21:01 UTC (rev 47319)
@@ -0,0 +1,42 @@
+/*****
+ * This file is automatically generated by findsym.pl
+ * Changes will be overwritten.
+ *****/
+
+// If the ADDSYMBOL macro is not already defined, define it with the default
+// purpose of referring to an external pre-translated symbol, such that
+// SYM(name) also refers to that symbol.
+#ifndef ADDSYMBOL
+    #define ADDSYMBOL(name) extern sym::symbol PRETRANSLATED_SYMBOL_##name
+    #define SYM(name) PRETRANSLATED_SYMBOL_##name
+#endif
+
+ADDSYMBOL(a);
+ADDSYMBOL(b);
+ADDSYMBOL(check);
+ADDSYMBOL(clear);
+ADDSYMBOL(close);
+ADDSYMBOL(comment);
+ADDSYMBOL(delete);
+ADDSYMBOL(digits);
+ADDSYMBOL(eof);
+ADDSYMBOL(eol);
+ADDSYMBOL(error);
+ADDSYMBOL(f);
+ADDSYMBOL(flush);
+ADDSYMBOL(from);
+ADDSYMBOL(getc);
+ADDSYMBOL(input);
+ADDSYMBOL(mktemp);
+ADDSYMBOL(mode);
+ADDSYMBOL(name);
+ADDSYMBOL(output);
+ADDSYMBOL(pos);
+ADDSYMBOL(precision);
+ADDSYMBOL(rename);
+ADDSYMBOL(s);
+ADDSYMBOL(seek);
+ADDSYMBOL(seekeof);
+ADDSYMBOL(tell);
+ADDSYMBOL(to);
+ADDSYMBOL(update);


Property changes on: trunk/Build/source/utils/asymptote/runfile.symbols.h
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Build/source/utils/asymptote/runhistory.symbols.h
===================================================================
--- trunk/Build/source/utils/asymptote/runhistory.symbols.h	                        (rev 0)
+++ trunk/Build/source/utils/asymptote/runhistory.symbols.h	2018-04-06 05:21:01 UTC (rev 47319)
@@ -0,0 +1,22 @@
+/*****
+ * This file is automatically generated by findsym.pl
+ * Changes will be overwritten.
+ *****/
+
+// If the ADDSYMBOL macro is not already defined, define it with the default
+// purpose of referring to an external pre-translated symbol, such that
+// SYM(name) also refers to that symbol.
+#ifndef ADDSYMBOL
+    #define ADDSYMBOL(name) extern sym::symbol PRETRANSLATED_SYMBOL_##name
+    #define SYM(name) PRETRANSLATED_SYMBOL_##name
+#endif
+
+ADDSYMBOL(history);
+ADDSYMBOL(n);
+ADDSYMBOL(name);
+ADDSYMBOL(prompt);
+ADDSYMBOL(readline);
+ADDSYMBOL(saveline);
+ADDSYMBOL(store);
+ADDSYMBOL(tabcompletion);
+ADDSYMBOL(value);


Property changes on: trunk/Build/source/utils/asymptote/runhistory.symbols.h
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Build/source/utils/asymptote/runlabel.symbols.h
===================================================================
--- trunk/Build/source/utils/asymptote/runlabel.symbols.h	                        (rev 0)
+++ trunk/Build/source/utils/asymptote/runlabel.symbols.h	2018-04-06 05:21:01 UTC (rev 47319)
@@ -0,0 +1,27 @@
+/*****
+ * This file is automatically generated by findsym.pl
+ * Changes will be overwritten.
+ *****/
+
+// If the ADDSYMBOL macro is not already defined, define it with the default
+// purpose of referring to an external pre-translated symbol, such that
+// SYM(name) also refers to that symbol.
+#ifndef ADDSYMBOL
+    #define ADDSYMBOL(name) extern sym::symbol PRETRANSLATED_SYMBOL_##name
+    #define SYM(name) PRETRANSLATED_SYMBOL_##name
+#endif
+
+ADDSYMBOL(_strokepath);
+ADDSYMBOL(_texpath);
+ADDSYMBOL(align);
+ADDSYMBOL(f);
+ADDSYMBOL(g);
+ADDSYMBOL(label);
+ADDSYMBOL(labels);
+ADDSYMBOL(p);
+ADDSYMBOL(position);
+ADDSYMBOL(s);
+ADDSYMBOL(size);
+ADDSYMBOL(t);
+ADDSYMBOL(texsize);
+ADDSYMBOL(textpath);


Property changes on: trunk/Build/source/utils/asymptote/runlabel.symbols.h
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Build/source/utils/asymptote/runmath.symbols.h
===================================================================
--- trunk/Build/source/utils/asymptote/runmath.symbols.h	                        (rev 0)
+++ trunk/Build/source/utils/asymptote/runmath.symbols.h	2018-04-06 05:21:01 UTC (rev 47319)
@@ -0,0 +1,57 @@
+/*****
+ * This file is automatically generated by findsym.pl
+ * Changes will be overwritten.
+ *****/
+
+// If the ADDSYMBOL macro is not already defined, define it with the default
+// purpose of referring to an external pre-translated symbol, such that
+// SYM(name) also refers to that symbol.
+#ifndef ADDSYMBOL
+    #define ADDSYMBOL(name) extern sym::symbol PRETRANSLATED_SYMBOL_##name
+    #define SYM(name) PRETRANSLATED_SYMBOL_##name
+#endif
+
+ADDSYMBOL(AND);
+ADDSYMBOL(CLZ);
+ADDSYMBOL(CTZ);
+ADDSYMBOL(Ceil);
+ADDSYMBOL(Floor);
+ADDSYMBOL(Jn);
+ADDSYMBOL(NOT);
+ADDSYMBOL(OR);
+ADDSYMBOL(Round);
+ADDSYMBOL(XOR);
+ADDSYMBOL(Yn);
+ADDSYMBOL(a);
+ADDSYMBOL(abs);
+ADDSYMBOL(atan2);
+ADDSYMBOL(b);
+ADDSYMBOL(bitreverse);
+ADDSYMBOL(bits);
+ADDSYMBOL(c);
+ADDSYMBOL(ceil);
+ADDSYMBOL(choose);
+ADDSYMBOL(cubicroots);
+ADDSYMBOL(d);
+ADDSYMBOL(erf);
+ADDSYMBOL(erfc);
+ADDSYMBOL(factorial);
+ADDSYMBOL(floor);
+ADDSYMBOL(fmod);
+ADDSYMBOL(gamma);
+ADDSYMBOL(hypot);
+ADDSYMBOL(k);
+ADDSYMBOL(n);
+ADDSYMBOL(popcount);
+ADDSYMBOL(quadraticroots);
+ADDSYMBOL(quotient);
+ADDSYMBOL(rand);
+ADDSYMBOL(remainder);
+ADDSYMBOL(round);
+ADDSYMBOL(seed);
+ADDSYMBOL(sgn);
+ADDSYMBOL(srand);
+ADDSYMBOL(unitrand);
+ADDSYMBOL(x);
+ADDSYMBOL(y);
+ADDSYMBOL(z);


Property changes on: trunk/Build/source/utils/asymptote/runmath.symbols.h
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Build/source/utils/asymptote/runpair.symbols.h
===================================================================
--- trunk/Build/source/utils/asymptote/runpair.symbols.h	                        (rev 0)
+++ trunk/Build/source/utils/asymptote/runpair.symbols.h	2018-04-06 05:21:01 UTC (rev 47319)
@@ -0,0 +1,54 @@
+/*****
+ * This file is automatically generated by findsym.pl
+ * Changes will be overwritten.
+ *****/
+
+// If the ADDSYMBOL macro is not already defined, define it with the default
+// purpose of referring to an external pre-translated symbol, such that
+// SYM(name) also refers to that symbol.
+#ifndef ADDSYMBOL
+    #define ADDSYMBOL(name) extern sym::symbol PRETRANSLATED_SYMBOL_##name
+    #define SYM(name) PRETRANSLATED_SYMBOL_##name
+#endif
+
+ADDSYMBOL(Cos);
+ADDSYMBOL(Degrees);
+ADDSYMBOL(Sin);
+ADDSYMBOL(Tan);
+ADDSYMBOL(a);
+ADDSYMBOL(aCos);
+ADDSYMBOL(aSin);
+ADDSYMBOL(aTan);
+ADDSYMBOL(abs);
+ADDSYMBOL(angle);
+ADDSYMBOL(b);
+ADDSYMBOL(bezier);
+ADDSYMBOL(bezierP);
+ADDSYMBOL(bezierPP);
+ADDSYMBOL(bezierPPP);
+ADDSYMBOL(c);
+ADDSYMBOL(conj);
+ADDSYMBOL(cos);
+ADDSYMBOL(cross);
+ADDSYMBOL(d);
+ADDSYMBOL(deg);
+ADDSYMBOL(degrees);
+ADDSYMBOL(dir);
+ADDSYMBOL(dot);
+ADDSYMBOL(exp);
+ADDSYMBOL(expi);
+ADDSYMBOL(gamma);
+ADDSYMBOL(length);
+ADDSYMBOL(log);
+ADDSYMBOL(radians);
+ADDSYMBOL(realmult);
+ADDSYMBOL(sin);
+ADDSYMBOL(sqrt);
+ADDSYMBOL(t);
+ADDSYMBOL(unit);
+ADDSYMBOL(w);
+ADDSYMBOL(warn);
+ADDSYMBOL(x);
+ADDSYMBOL(xpart);
+ADDSYMBOL(ypart);
+ADDSYMBOL(z);


Property changes on: trunk/Build/source/utils/asymptote/runpair.symbols.h
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Build/source/utils/asymptote/runpath.symbols.h
===================================================================
--- trunk/Build/source/utils/asymptote/runpath.symbols.h	                        (rev 0)
+++ trunk/Build/source/utils/asymptote/runpath.symbols.h	2018-04-06 05:21:01 UTC (rev 47319)
@@ -0,0 +1,71 @@
+/*****
+ * This file is automatically generated by findsym.pl
+ * Changes will be overwritten.
+ *****/
+
+// If the ADDSYMBOL macro is not already defined, define it with the default
+// purpose of referring to an external pre-translated symbol, such that
+// SYM(name) also refers to that symbol.
+#ifndef ADDSYMBOL
+    #define ADDSYMBOL(name) extern sym::symbol PRETRANSLATED_SYMBOL_##name
+    #define SYM(name) PRETRANSLATED_SYMBOL_##name
+#endif
+
+ADDSYMBOL(a);
+ADDSYMBOL(accel);
+ADDSYMBOL(arclength);
+ADDSYMBOL(arctime);
+ADDSYMBOL(atleast);
+ADDSYMBOL(b);
+ADDSYMBOL(c);
+ADDSYMBOL(cyclic);
+ADDSYMBOL(d);
+ADDSYMBOL(dir);
+ADDSYMBOL(dirtime);
+ADDSYMBOL(extension);
+ADDSYMBOL(fillrule);
+ADDSYMBOL(fuzz);
+ADDSYMBOL(g);
+ADDSYMBOL(incircle);
+ADDSYMBOL(inside);
+ADDSYMBOL(intersect);
+ADDSYMBOL(intersections);
+ADDSYMBOL(l);
+ADDSYMBOL(length);
+ADDSYMBOL(m);
+ADDSYMBOL(max);
+ADDSYMBOL(maxAfterTransform);
+ADDSYMBOL(maxtimes);
+ADDSYMBOL(min);
+ADDSYMBOL(minAfterTransform);
+ADDSYMBOL(mintimes);
+ADDSYMBOL(normalize);
+ADDSYMBOL(nurb);
+ADDSYMBOL(orient);
+ADDSYMBOL(p);
+ADDSYMBOL(phi);
+ADDSYMBOL(piecewisestraight);
+ADDSYMBOL(point);
+ADDSYMBOL(postcontrol);
+ADDSYMBOL(precontrol);
+ADDSYMBOL(q);
+ADDSYMBOL(radius);
+ADDSYMBOL(relativedistance);
+ADDSYMBOL(reverse);
+ADDSYMBOL(sign);
+ADDSYMBOL(size);
+ADDSYMBOL(straight);
+ADDSYMBOL(subpath);
+ADDSYMBOL(t);
+ADDSYMBOL(theta);
+ADDSYMBOL(unstraighten);
+ADDSYMBOL(w0);
+ADDSYMBOL(w1);
+ADDSYMBOL(w2);
+ADDSYMBOL(w3);
+ADDSYMBOL(windingnumber);
+ADDSYMBOL(z);
+ADDSYMBOL(z0);
+ADDSYMBOL(z1);
+ADDSYMBOL(z2);
+ADDSYMBOL(z3);


Property changes on: trunk/Build/source/utils/asymptote/runpath.symbols.h
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Build/source/utils/asymptote/runpath3d.symbols.h
===================================================================
--- trunk/Build/source/utils/asymptote/runpath3d.symbols.h	                        (rev 0)
+++ trunk/Build/source/utils/asymptote/runpath3d.symbols.h	2018-04-06 05:21:01 UTC (rev 47319)
@@ -0,0 +1,60 @@
+/*****
+ * This file is automatically generated by findsym.pl
+ * Changes will be overwritten.
+ *****/
+
+// If the ADDSYMBOL macro is not already defined, define it with the default
+// purpose of referring to an external pre-translated symbol, such that
+// SYM(name) also refers to that symbol.
+#ifndef ADDSYMBOL
+    #define ADDSYMBOL(name) extern sym::symbol PRETRANSLATED_SYMBOL_##name
+    #define SYM(name) PRETRANSLATED_SYMBOL_##name
+#endif
+
+ADDSYMBOL(a);
+ADDSYMBOL(accel);
+ADDSYMBOL(arclength);
+ADDSYMBOL(arctime);
+ADDSYMBOL(b);
+ADDSYMBOL(c);
+ADDSYMBOL(c0);
+ADDSYMBOL(c1);
+ADDSYMBOL(cyclic);
+ADDSYMBOL(d);
+ADDSYMBOL(dir);
+ADDSYMBOL(dval);
+ADDSYMBOL(e);
+ADDSYMBOL(fuzz);
+ADDSYMBOL(g);
+ADDSYMBOL(insphere);
+ADDSYMBOL(intersect);
+ADDSYMBOL(intersections);
+ADDSYMBOL(length);
+ADDSYMBOL(max);
+ADDSYMBOL(maxratio);
+ADDSYMBOL(maxtimes);
+ADDSYMBOL(min);
+ADDSYMBOL(minratio);
+ADDSYMBOL(mintimes);
+ADDSYMBOL(normalize);
+ADDSYMBOL(orient);
+ADDSYMBOL(p);
+ADDSYMBOL(path3);
+ADDSYMBOL(piecewisestraight);
+ADDSYMBOL(point);
+ADDSYMBOL(post);
+ADDSYMBOL(postcontrol);
+ADDSYMBOL(pre);
+ADDSYMBOL(precontrol);
+ADDSYMBOL(q);
+ADDSYMBOL(radius);
+ADDSYMBOL(reverse);
+ADDSYMBOL(sign);
+ADDSYMBOL(size);
+ADDSYMBOL(straight);
+ADDSYMBOL(straightness);
+ADDSYMBOL(subpath);
+ADDSYMBOL(t);
+ADDSYMBOL(unstraighten);
+ADDSYMBOL(z0);
+ADDSYMBOL(z1);


Property changes on: trunk/Build/source/utils/asymptote/runpath3d.symbols.h
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Build/source/utils/asymptote/runpicture.symbols.h
===================================================================
--- trunk/Build/source/utils/asymptote/runpicture.symbols.h	                        (rev 0)
+++ trunk/Build/source/utils/asymptote/runpicture.symbols.h	2018-04-06 05:21:01 UTC (rev 47319)
@@ -0,0 +1,139 @@
+/*****
+ * This file is automatically generated by findsym.pl
+ * Changes will be overwritten.
+ *****/
+
+// If the ADDSYMBOL macro is not already defined, define it with the default
+// purpose of referring to an external pre-translated symbol, such that
+// SYM(name) also refers to that symbol.
+#ifndef ADDSYMBOL
+    #define ADDSYMBOL(name) extern sym::symbol PRETRANSLATED_SYMBOL_##name
+    #define SYM(name) PRETRANSLATED_SYMBOL_##name
+#endif
+
+ADDSYMBOL(_begingroup3);
+ADDSYMBOL(_draw);
+ADDSYMBOL(_image);
+ADDSYMBOL(_labelpath);
+ADDSYMBOL(a);
+ADDSYMBOL(add);
+ADDSYMBOL(ambient);
+ADDSYMBOL(angle);
+ADDSYMBOL(antialias);
+ADDSYMBOL(axialshade);
+ADDSYMBOL(b);
+ADDSYMBOL(background);
+ADDSYMBOL(beginclip);
+ADDSYMBOL(begingroup);
+ADDSYMBOL(c);
+ADDSYMBOL(center);
+ADDSYMBOL(ci);
+ADDSYMBOL(clip);
+ADDSYMBOL(closed);
+ADDSYMBOL(colors);
+ADDSYMBOL(compression);
+ADDSYMBOL(copy);
+ADDSYMBOL(data);
+ADDSYMBOL(deconstruct);
+ADDSYMBOL(deletepreamble);
+ADDSYMBOL(dest);
+ADDSYMBOL(diffuse);
+ADDSYMBOL(dobreak);
+ADDSYMBOL(draw);
+ADDSYMBOL(drawPRCcylinder);
+ADDSYMBOL(drawPRCdisk);
+ADDSYMBOL(drawPRCsphere);
+ADDSYMBOL(drawPRCtube);
+ADDSYMBOL(drawbeziertriangle);
+ADDSYMBOL(drawpixel);
+ADDSYMBOL(edges);
+ADDSYMBOL(empty);
+ADDSYMBOL(endclip);
+ADDSYMBOL(endgroup);
+ADDSYMBOL(endgroup3);
+ADDSYMBOL(erase);
+ADDSYMBOL(extenda);
+ADDSYMBOL(extendb);
+ADDSYMBOL(f);
+ADDSYMBOL(fill);
+ADDSYMBOL(fillrule);
+ADDSYMBOL(final);
+ADDSYMBOL(format);
+ADDSYMBOL(functionshade);
+ADDSYMBOL(g);
+ADDSYMBOL(gouraudshade);
+ADDSYMBOL(granularity);
+ADDSYMBOL(grestore);
+ADDSYMBOL(gsave);
+ADDSYMBOL(half);
+ADDSYMBOL(height);
+ADDSYMBOL(initial);
+ADDSYMBOL(interaction);
+ADDSYMBOL(is3D);
+ADDSYMBOL(justify);
+ADDSYMBOL(knot);
+ADDSYMBOL(latex);
+ADDSYMBOL(latticeshade);
+ADDSYMBOL(layer);
+ADDSYMBOL(lights);
+ADDSYMBOL(m);
+ADDSYMBOL(magnification);
+ADDSYMBOL(max);
+ADDSYMBOL(max3);
+ADDSYMBOL(maxratio);
+ADDSYMBOL(min);
+ADDSYMBOL(min3);
+ADDSYMBOL(minratio);
+ADDSYMBOL(n);
+ADDSYMBOL(name);
+ADDSYMBOL(nativeformat);
+ADDSYMBOL(newpage);
+ADDSYMBOL(ni);
+ADDSYMBOL(nobreak);
+ADDSYMBOL(offset);
+ADDSYMBOL(opacity);
+ADDSYMBOL(p);
+ADDSYMBOL(palette);
+ADDSYMBOL(pdf);
+ADDSYMBOL(pena);
+ADDSYMBOL(penb);
+ADDSYMBOL(postscript);
+ADDSYMBOL(prc);
+ADDSYMBOL(prcshininess);
+ADDSYMBOL(preamble);
+ADDSYMBOL(prefix);
+ADDSYMBOL(prepend);
+ADDSYMBOL(ra);
+ADDSYMBOL(radialshade);
+ADDSYMBOL(rb);
+ADDSYMBOL(s);
+ADDSYMBOL(shader);
+ADDSYMBOL(shift);
+ADDSYMBOL(shininess);
+ADDSYMBOL(shipout);
+ADDSYMBOL(shipout3);
+ADDSYMBOL(size);
+ADDSYMBOL(size3);
+ADDSYMBOL(specular);
+ADDSYMBOL(src);
+ADDSYMBOL(straight);
+ADDSYMBOL(stroke);
+ADDSYMBOL(t);
+ADDSYMBOL(tensorshade);
+ADDSYMBOL(tessellate);
+ADDSYMBOL(tex);
+ADDSYMBOL(texpreamble);
+ADDSYMBOL(texreset);
+ADDSYMBOL(type);
+ADDSYMBOL(uknot);
+ADDSYMBOL(v);
+ADDSYMBOL(vi);
+ADDSYMBOL(view);
+ADDSYMBOL(viewportlighting);
+ADDSYMBOL(vknot);
+ADDSYMBOL(wait);
+ADDSYMBOL(weights);
+ADDSYMBOL(width);
+ADDSYMBOL(xform);
+ADDSYMBOL(z);
+ADDSYMBOL(zoom);


Property changes on: trunk/Build/source/utils/asymptote/runpicture.symbols.h
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Build/source/utils/asymptote/runstring.cc
===================================================================
--- trunk/Build/source/utils/asymptote/runstring.cc	2018-04-06 00:23:53 UTC (rev 47318)
+++ trunk/Build/source/utils/asymptote/runstring.cc	2018-04-06 05:21:01 UTC (rev 47319)
@@ -385,6 +385,8 @@
   bool forcemath=vm::pop<bool>(Stack,false);
   string * format=vm::pop<string *>(Stack);
 #line 261 "runstring.in"
+  if(*format == "%") {Stack->push<string>(""); return;} // Temporary workaround for github Issue #29.
+  
   bool tex=getSetting<string>("tex") != "none";
   bool texify=forcemath;
   ostringstream out;
@@ -509,12 +511,12 @@
   {Stack->push<string>(out.str()); return;}
 }
 
-#line 386 "runstring.in"
+#line 388 "runstring.in"
 // Int hex(string s);
 void gen_runstring13(stack *Stack)
 {
   string s=vm::pop<string>(Stack);
-#line 387 "runstring.in"
+#line 389 "runstring.in"
   istringstream is(s);
   is.setf(std::ios::hex,std::ios::basefield);
   Int value;
@@ -524,33 +526,33 @@
   error(buf);
 }
 
-#line 397 "runstring.in"
+#line 399 "runstring.in"
 // Int ascii(string s);
 void gen_runstring14(stack *Stack)
 {
   string s=vm::pop<string>(Stack);
-#line 398 "runstring.in"
+#line 400 "runstring.in"
   {Stack->push<Int>(s.empty() ? -1 : (unsigned char) s[0]); return;}
 }
 
-#line 402 "runstring.in"
+#line 404 "runstring.in"
 // string string(Int x);
 void gen_runstring15(stack *Stack)
 {
   Int x=vm::pop<Int>(Stack);
-#line 403 "runstring.in"
+#line 405 "runstring.in"
   ostringstream buf;
   buf << x;
   {Stack->push<string>(buf.str()); return;}
 }
 
-#line 409 "runstring.in"
+#line 411 "runstring.in"
 // string string(real x, Int digits=DBL_DIG);
 void gen_runstring16(stack *Stack)
 {
   Int digits=vm::pop<Int>(Stack,DBL_DIG);
   real x=vm::pop<real>(Stack);
-#line 410 "runstring.in"
+#line 412 "runstring.in"
   ostringstream buf;
   buf.precision(digits);
   buf << x;
@@ -557,12 +559,12 @@
   {Stack->push<string>(buf.str()); return;}
 }
 
-#line 417 "runstring.in"
+#line 419 "runstring.in"
 // string time(string format=defaulttimeformat);
 void gen_runstring17(stack *Stack)
 {
   string format=vm::pop<string>(Stack,defaulttimeformat);
-#line 418 "runstring.in"
+#line 420 "runstring.in"
 #ifdef HAVE_STRFTIME
   const time_t bintime=time(NULL);
   if(!strftime(Time,nTime,format.c_str(),localtime(&bintime))) {Stack->push<string>(""); return;}
@@ -572,13 +574,13 @@
 #endif  
 }
 
-#line 428 "runstring.in"
+#line 430 "runstring.in"
 // string time(Int seconds, string format=defaulttimeformat);
 void gen_runstring18(stack *Stack)
 {
   string format=vm::pop<string>(Stack,defaulttimeformat);
   Int seconds=vm::pop<Int>(Stack);
-#line 429 "runstring.in"
+#line 431 "runstring.in"
 #ifdef HAVE_STRFTIME
   const time_t bintime=seconds;
   if(!strftime(Time,nTime,format.c_str(),localtime(&bintime))) {Stack->push<string>(""); return;}
@@ -590,13 +592,13 @@
 #endif
 }
 
-#line 441 "runstring.in"
+#line 443 "runstring.in"
 // Int seconds(string t=emptystring, string format=emptystring);
 void gen_runstring19(stack *Stack)
 {
   string format=vm::pop<string>(Stack,emptystring);
   string t=vm::pop<string>(Stack,emptystring);
-#line 442 "runstring.in"
+#line 444 "runstring.in"
 #if defined(HAVE_STRPTIME)
   const time_t bintime=time(NULL);
   tm tm=*localtime(&bintime);
@@ -639,19 +641,19 @@
   addFunc(ve, run::gen_runstring11, primString() , SYM(format), formal(primString(), SYM(format), false, false), formal(primInt(), SYM(x), false, false), formal(primString() , SYM(locale), true, false));
 #line 259 "runstring.in"
   addFunc(ve, run::gen_runstring12, primString() , SYM(format), formal(primString(), SYM(format), false, false), formal(primBoolean(), SYM(forcemath), true, false), formal(primString() , SYM(separator), false, false), formal(primReal(), SYM(x), false, false), formal(primString() , SYM(locale), true, false));
-#line 386 "runstring.in"
+#line 388 "runstring.in"
   addFunc(ve, run::gen_runstring13, primInt(), SYM(hex), formal(primString() , SYM(s), false, false));
-#line 397 "runstring.in"
+#line 399 "runstring.in"
   addFunc(ve, run::gen_runstring14, primInt(), SYM(ascii), formal(primString() , SYM(s), false, false));
-#line 402 "runstring.in"
+#line 404 "runstring.in"
   addFunc(ve, run::gen_runstring15, primString() , SYM(string), formal(primInt(), SYM(x), false, false));
-#line 409 "runstring.in"
+#line 411 "runstring.in"
   addFunc(ve, run::gen_runstring16, primString() , SYM(string), formal(primReal(), SYM(x), false, false), formal(primInt(), SYM(digits), true, false));
-#line 417 "runstring.in"
+#line 419 "runstring.in"
   addFunc(ve, run::gen_runstring17, primString() , SYM(time), formal(primString() , SYM(format), true, false));
-#line 428 "runstring.in"
+#line 430 "runstring.in"
   addFunc(ve, run::gen_runstring18, primString() , SYM(time), formal(primInt(), SYM(seconds), false, false), formal(primString() , SYM(format), true, false));
-#line 441 "runstring.in"
+#line 443 "runstring.in"
   addFunc(ve, run::gen_runstring19, primInt(), SYM(seconds), formal(primString() , SYM(t), true, false), formal(primString() , SYM(format), true, false));
 }
 

Modified: trunk/Build/source/utils/asymptote/runstring.in
===================================================================
--- trunk/Build/source/utils/asymptote/runstring.in	2018-04-06 00:23:53 UTC (rev 47318)
+++ trunk/Build/source/utils/asymptote/runstring.in	2018-04-06 05:21:01 UTC (rev 47319)
@@ -259,6 +259,8 @@
 string format(string *format, bool forcemath=false, string separator, real x,
               string locale=emptystring)
 {
+  if(*format == "%") return ""; // Temporary workaround for github Issue #29.
+  
   bool tex=getSetting<string>("tex") != "none";
   bool texify=forcemath;
   ostringstream out;

Added: trunk/Build/source/utils/asymptote/runstring.symbols.h
===================================================================
--- trunk/Build/source/utils/asymptote/runstring.symbols.h	                        (rev 0)
+++ trunk/Build/source/utils/asymptote/runstring.symbols.h	2018-04-06 05:21:01 UTC (rev 47319)
@@ -0,0 +1,39 @@
+/*****
+ * This file is automatically generated by findsym.pl
+ * Changes will be overwritten.
+ *****/
+
+// If the ADDSYMBOL macro is not already defined, define it with the default
+// purpose of referring to an external pre-translated symbol, such that
+// SYM(name) also refers to that symbol.
+#ifndef ADDSYMBOL
+    #define ADDSYMBOL(name) extern sym::symbol PRETRANSLATED_SYMBOL_##name
+    #define SYM(name) PRETRANSLATED_SYMBOL_##name
+#endif
+
+ADDSYMBOL(ascii);
+ADDSYMBOL(digits);
+ADDSYMBOL(downcase);
+ADDSYMBOL(erase);
+ADDSYMBOL(find);
+ADDSYMBOL(forcemath);
+ADDSYMBOL(format);
+ADDSYMBOL(hex);
+ADDSYMBOL(insert);
+ADDSYMBOL(length);
+ADDSYMBOL(locale);
+ADDSYMBOL(n);
+ADDSYMBOL(pos);
+ADDSYMBOL(replace);
+ADDSYMBOL(reverse);
+ADDSYMBOL(rfind);
+ADDSYMBOL(s);
+ADDSYMBOL(seconds);
+ADDSYMBOL(separator);
+ADDSYMBOL(string);
+ADDSYMBOL(substr);
+ADDSYMBOL(t);
+ADDSYMBOL(time);
+ADDSYMBOL(translate);
+ADDSYMBOL(upcase);
+ADDSYMBOL(x);


Property changes on: trunk/Build/source/utils/asymptote/runstring.symbols.h
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Build/source/utils/asymptote/runsystem.symbols.h
===================================================================
--- trunk/Build/source/utils/asymptote/runsystem.symbols.h	                        (rev 0)
+++ trunk/Build/source/utils/asymptote/runsystem.symbols.h	2018-04-06 05:21:01 UTC (rev 47319)
@@ -0,0 +1,40 @@
+/*****
+ * This file is automatically generated by findsym.pl
+ * Changes will be overwritten.
+ *****/
+
+// If the ADDSYMBOL macro is not already defined, define it with the default
+// purpose of referring to an external pre-translated symbol, such that
+// SYM(name) also refers to that symbol.
+#ifndef ADDSYMBOL
+    #define ADDSYMBOL(name) extern sym::symbol PRETRANSLATED_SYMBOL_##name
+    #define SYM(name) PRETRANSLATED_SYMBOL_##name
+#endif
+
+ADDSYMBOL(animate);
+ADDSYMBOL(args);
+ADDSYMBOL(atbreakpoint);
+ADDSYMBOL(atexit);
+ADDSYMBOL(atupdate);
+ADDSYMBOL(breakpoint);
+ADDSYMBOL(breakpoints);
+ADDSYMBOL(clear);
+ADDSYMBOL(convert);
+ADDSYMBOL(divisor);
+ADDSYMBOL(f);
+ADDSYMBOL(file);
+ADDSYMBOL(format);
+ADDSYMBOL(line);
+ADDSYMBOL(locatefile);
+ADDSYMBOL(nowarn);
+ADDSYMBOL(outname);
+ADDSYMBOL(position);
+ADDSYMBOL(purge);
+ADDSYMBOL(s);
+ADDSYMBOL(stop);
+ADDSYMBOL(stripdirectory);
+ADDSYMBOL(stripextension);
+ADDSYMBOL(stripfile);
+ADDSYMBOL(t);
+ADDSYMBOL(warn);
+ADDSYMBOL(warning);


Property changes on: trunk/Build/source/utils/asymptote/runsystem.symbols.h
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Build/source/utils/asymptote/runtime.symbols.h
===================================================================
--- trunk/Build/source/utils/asymptote/runtime.symbols.h	                        (rev 0)
+++ trunk/Build/source/utils/asymptote/runtime.symbols.h	2018-04-06 05:21:01 UTC (rev 47319)
@@ -0,0 +1,113 @@
+/*****
+ * This file is automatically generated by findsym.pl
+ * Changes will be overwritten.
+ *****/
+
+// If the ADDSYMBOL macro is not already defined, define it with the default
+// purpose of referring to an external pre-translated symbol, such that
+// SYM(name) also refers to that symbol.
+#ifndef ADDSYMBOL
+    #define ADDSYMBOL(name) extern sym::symbol PRETRANSLATED_SYMBOL_##name
+    #define SYM(name) PRETRANSLATED_SYMBOL_##name
+#endif
+
+ADDSYMBOL(_cputime);
+ADDSYMBOL(_eval);
+ADDSYMBOL(a);
+ADDSYMBOL(abort);
+ADDSYMBOL(adjust);
+ADDSYMBOL(angle);
+ADDSYMBOL(arclength);
+ADDSYMBOL(assert);
+ADDSYMBOL(asydir);
+ADDSYMBOL(atleast);
+ADDSYMBOL(b);
+ADDSYMBOL(basealign);
+ADDSYMBOL(blend);
+ADDSYMBOL(byte);
+ADDSYMBOL(c);
+ADDSYMBOL(cd);
+ADDSYMBOL(cmyk);
+ADDSYMBOL(colorless);
+ADDSYMBOL(colors);
+ADDSYMBOL(colorspace);
+ADDSYMBOL(controlSpecifier);
+ADDSYMBOL(curlSpecifier);
+ADDSYMBOL(cyclic);
+ADDSYMBOL(defaultpen);
+ADDSYMBOL(dirSpecifier);
+ADDSYMBOL(embedded);
+ADDSYMBOL(exit);
+ADDSYMBOL(f);
+ADDSYMBOL(fillrule);
+ADDSYMBOL(font);
+ADDSYMBOL(fontcommand);
+ADDSYMBOL(fontsize);
+ADDSYMBOL(g);
+ADDSYMBOL(gamma);
+ADDSYMBOL(gray);
+ADDSYMBOL(hex);
+ADDSYMBOL(identity);
+ADDSYMBOL(imports);
+ADDSYMBOL(interactive);
+ADDSYMBOL(interactivewrite);
+ADDSYMBOL(interp);
+ADDSYMBOL(inverse);
+ADDSYMBOL(invisible);
+ADDSYMBOL(isnan);
+ADDSYMBOL(k);
+ADDSYMBOL(length);
+ADDSYMBOL(linecap);
+ADDSYMBOL(linejoin);
+ADDSYMBOL(lineskip);
+ADDSYMBOL(linetype);
+ADDSYMBOL(linewidth);
+ADDSYMBOL(list);
+ADDSYMBOL(locale);
+ADDSYMBOL(location);
+ADDSYMBOL(m);
+ADDSYMBOL(makepen);
+ADDSYMBOL(max);
+ADDSYMBOL(microseconds);
+ADDSYMBOL(min);
+ADDSYMBOL(miterlimit);
+ADDSYMBOL(n);
+ADDSYMBOL(nib);
+ADDSYMBOL(offset);
+ADDSYMBOL(opacity);
+ADDSYMBOL(overwrite);
+ADDSYMBOL(p);
+ADDSYMBOL(pattern);
+ADDSYMBOL(point);
+ADDSYMBOL(r);
+ADDSYMBOL(reflect);
+ADDSYMBOL(resetdefaultpen);
+ADDSYMBOL(reverse);
+ADDSYMBOL(rgb);
+ADDSYMBOL(rotate);
+ADDSYMBOL(s);
+ADDSYMBOL(scale);
+ADDSYMBOL(seconds);
+ADDSYMBOL(shift);
+ADDSYMBOL(shiftless);
+ADDSYMBOL(size);
+ADDSYMBOL(slant);
+ADDSYMBOL(sleep);
+ADDSYMBOL(spec);
+ADDSYMBOL(system);
+ADDSYMBOL(t);
+ADDSYMBOL(tensionSpecifier);
+ADDSYMBOL(tin);
+ADDSYMBOL(tok);
+ADDSYMBOL(tout);
+ADDSYMBOL(transform);
+ADDSYMBOL(uptodate);
+ADDSYMBOL(usleep);
+ADDSYMBOL(view);
+ADDSYMBOL(x);
+ADDSYMBOL(xscale);
+ADDSYMBOL(y);
+ADDSYMBOL(yscale);
+ADDSYMBOL(z);
+ADDSYMBOL(zin);
+ADDSYMBOL(zout);


Property changes on: trunk/Build/source/utils/asymptote/runtime.symbols.h
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Build/source/utils/asymptote/runtriple.symbols.h
===================================================================
--- trunk/Build/source/utils/asymptote/runtriple.symbols.h	                        (rev 0)
+++ trunk/Build/source/utils/asymptote/runtriple.symbols.h	2018-04-06 05:21:01 UTC (rev 47319)
@@ -0,0 +1,44 @@
+/*****
+ * This file is automatically generated by findsym.pl
+ * Changes will be overwritten.
+ *****/
+
+// If the ADDSYMBOL macro is not already defined, define it with the default
+// purpose of referring to an external pre-translated symbol, such that
+// SYM(name) also refers to that symbol.
+#ifndef ADDSYMBOL
+    #define ADDSYMBOL(name) extern sym::symbol PRETRANSLATED_SYMBOL_##name
+    #define SYM(name) PRETRANSLATED_SYMBOL_##name
+#endif
+
+ADDSYMBOL(a);
+ADDSYMBOL(abs);
+ADDSYMBOL(azimuth);
+ADDSYMBOL(b);
+ADDSYMBOL(bezier);
+ADDSYMBOL(bezierP);
+ADDSYMBOL(bezierPP);
+ADDSYMBOL(bezierPPP);
+ADDSYMBOL(c);
+ADDSYMBOL(colatitude);
+ADDSYMBOL(cross);
+ADDSYMBOL(d);
+ADDSYMBOL(dir);
+ADDSYMBOL(dot);
+ADDSYMBOL(expi);
+ADDSYMBOL(latitude);
+ADDSYMBOL(length);
+ADDSYMBOL(longitude);
+ADDSYMBOL(perp);
+ADDSYMBOL(polar);
+ADDSYMBOL(realmult);
+ADDSYMBOL(t);
+ADDSYMBOL(u);
+ADDSYMBOL(unit);
+ADDSYMBOL(v);
+ADDSYMBOL(warn);
+ADDSYMBOL(x);
+ADDSYMBOL(xpart);
+ADDSYMBOL(ypart);
+ADDSYMBOL(z);
+ADDSYMBOL(zpart);


Property changes on: trunk/Build/source/utils/asymptote/runtriple.symbols.h
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Build/source/utils/asymptote/types.symbols.h
===================================================================
--- trunk/Build/source/utils/asymptote/types.symbols.h	                        (rev 0)
+++ trunk/Build/source/utils/asymptote/types.symbols.h	2018-04-06 05:21:01 UTC (rev 47319)
@@ -0,0 +1,51 @@
+/*****
+ * This file is automatically generated by findsym.pl
+ * Changes will be overwritten.
+ *****/
+
+// If the ADDSYMBOL macro is not already defined, define it with the default
+// purpose of referring to an external pre-translated symbol, such that
+// SYM(name) also refers to that symbol.
+#ifndef ADDSYMBOL
+    #define ADDSYMBOL(name) extern sym::symbol PRETRANSLATED_SYMBOL_##name
+    #define SYM(name) PRETRANSLATED_SYMBOL_##name
+#endif
+
+ADDSYMBOL(a);
+ADDSYMBOL(append);
+ADDSYMBOL(atLeast);
+ADDSYMBOL(b);
+ADDSYMBOL(csv);
+ADDSYMBOL(cyclic);
+ADDSYMBOL(delete);
+ADDSYMBOL(dimension);
+ADDSYMBOL(i);
+ADDSYMBOL(in);
+ADDSYMBOL(initialized);
+ADDSYMBOL(insert);
+ADDSYMBOL(j);
+ADDSYMBOL(keys);
+ADDSYMBOL(length);
+ADDSYMBOL(line);
+ADDSYMBOL(mode);
+ADDSYMBOL(name);
+ADDSYMBOL(nx);
+ADDSYMBOL(ny);
+ADDSYMBOL(nz);
+ADDSYMBOL(out);
+ADDSYMBOL(pop);
+ADDSYMBOL(push);
+ADDSYMBOL(read);
+ADDSYMBOL(side);
+ADDSYMBOL(signedint);
+ADDSYMBOL(singleint);
+ADDSYMBOL(singlereal);
+ADDSYMBOL(value);
+ADDSYMBOL(word);
+ADDSYMBOL(x);
+ADDSYMBOL(xx);
+ADDSYMBOL(xy);
+ADDSYMBOL(y);
+ADDSYMBOL(yx);
+ADDSYMBOL(yy);
+ADDSYMBOL(z);


Property changes on: trunk/Build/source/utils/asymptote/types.symbols.h
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property


More information about the tex-live-commits mailing list