summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Wright <gienah@gentoo.org>2015-07-09 09:46:47 +0000
committerMark Wright <gienah@gentoo.org>2015-07-09 09:46:47 +0000
commitcde1f98248463dc59d48c24b5d44629075ded3d5 (patch)
tree0f0a33c5ee1bf29580913893353ed43011aa125f /dev-lang
parentRemove old. (diff)
downloadhistorical-cde1f98248463dc59d48c24b5d44629075ded3d5.tar.gz
historical-cde1f98248463dc59d48c24b5d44629075ded3d5.tar.bz2
historical-cde1f98248463dc59d48c24b5d44629075ded3d5.zip
Bump polyml to 5.5.2 with patches from the fixes-5.5.2 branch to allow sci-mathematics/isabelle-2015 to build. Drop obsolete polyml-5.2.1.ebuild. Specify slot 0 on x11-libs/motif dependency.
Package-Manager: portage-2.2.20/cvs/Linux x86_64 Manifest-Sign-Key: 0x618E971F
Diffstat (limited to 'dev-lang')
-rw-r--r--dev-lang/polyml/ChangeLog15
-rw-r--r--dev-lang/polyml/Manifest38
-rw-r--r--dev-lang/polyml/files/polyml-5.5.2-r1952-check_for_negative_sized_array.patch13
-rw-r--r--dev-lang/polyml/files/polyml-5.5.2-r1954_Fix_segfault_in_FFI_when_malloc_runs_out_of_memory.patch112
-rw-r--r--dev-lang/polyml/files/polyml-5.5.2-r2007_Ensure_the_large_object_cache_pointer_is_cleared.patch27
-rw-r--r--dev-lang/polyml/files/polyml-5.5.2-r2009_Initialise_the_largeObjectCache_fully_in_the_constructor.patch21
-rw-r--r--dev-lang/polyml/polyml-5.2.1.ebuild29
-rw-r--r--dev-lang/polyml/polyml-5.4.1.ebuild6
-rw-r--r--dev-lang/polyml/polyml-5.5.0.ebuild6
-rw-r--r--dev-lang/polyml/polyml-5.5.1.ebuild6
-rw-r--r--dev-lang/polyml/polyml-5.5.2.ebuild72
11 files changed, 283 insertions, 62 deletions
diff --git a/dev-lang/polyml/ChangeLog b/dev-lang/polyml/ChangeLog
index e3fa219837f2..23859ee0af8b 100644
--- a/dev-lang/polyml/ChangeLog
+++ b/dev-lang/polyml/ChangeLog
@@ -1,6 +1,19 @@
# ChangeLog for dev-lang/polyml
# Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-lang/polyml/ChangeLog,v 1.12 2015/06/09 14:09:00 jlec Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-lang/polyml/ChangeLog,v 1.13 2015/07/09 09:46:32 gienah Exp $
+
+*polyml-5.5.2 (09 Jul 2015)
+
+ 09 Jul 2015; Mark Wright <gienah@gentoo.org>
+ +files/polyml-5.5.2-r1952-check_for_negative_sized_array.patch, +files/polyml-
+ 5.5.2-r1954_Fix_segfault_in_FFI_when_malloc_runs_out_of_memory.patch, +files/p
+ olyml-5.5.2-r2007_Ensure_the_large_object_cache_pointer_is_cleared.patch, +fil
+ es/polyml-5.5.2-r2009_Initialise_the_largeObjectCache_fully_in_the_constructor
+ .patch, +polyml-5.5.2.ebuild, -polyml-5.2.1.ebuild, polyml-5.4.1.ebuild,
+ polyml-5.5.0.ebuild, polyml-5.5.1.ebuild:
+ Bump polyml to 5.5.2 with patches from the fixes-5.5.2 branch to allow sci-
+ mathematics/isabelle-2015 to build. Drop obsolete polyml-5.2.1.ebuild. Specify
+ slot 0 on x11-libs/motif dependency.
09 Jun 2015; Justin Lecher <jlec@gentoo.org> metadata.xml:
Updating remote-id in metadata.xml
diff --git a/dev-lang/polyml/Manifest b/dev-lang/polyml/Manifest
index 54d6a963aa15..80092b24670e 100644
--- a/dev-lang/polyml/Manifest
+++ b/dev-lang/polyml/Manifest
@@ -1,5 +1,5 @@
-----BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA512
+Hash: SHA256
AUX polyml-5.4.1-asm.patch 1026 SHA256 9879c43c7e82e53ff6d15b838b159df3336b791c46e9f80a38f21c4180500bed SHA512 bf19cedff74b11feba72c0ba2f5a9b6ee8169b5bb1b783d3559640070025ca0e7627d751bc703c41d812025d6909cba56101e49f0199f2aee310bc95ca4f2d6d WHIRLPOOL 4e0fda223b89b12801b06be970c98b8c0caece7bc8fb6994e8cebfe8ebf25d1efc8fec0311b360c5665f45279b0bd72ada9199041ad2245ecf4849118ef034ca
AUX polyml-5.4.1-configure.patch 459 SHA256 89e712f53a08386505d8a503f23d6e29310ae1b1ce39e3acaa024ab47ab3b20d SHA512 4e3a5e6651c8b6b9cb018f72f100755eee0265ad7dd0ba57030b7bce95670ff35e7191661be469b59206266f5eb51042d98504601311629bc2e83ed36a0cef8f WHIRLPOOL fa3b63cc9ecb46fe099d9a3e7ce050018c7384c269ceb9359dd9f5bfc02dc36317e79acad6dd728758a89486ac0020b00733ddadd43ced831576961f6708289c
@@ -9,32 +9,24 @@ AUX polyml-5.5.0-x-it-basis.patch 562 SHA256 114c8b973ec601a616700c5301d09aa74da
AUX polyml-5.5.1-inputN-return-for-zero-chars.patch 1475 SHA256 a58a2376b4c9dc3bf47ac9f4c8aa4c177dbedac1bc4333743aa2434268a9751e SHA512 6a92e1b86ea755221659621ff8a1b401ec76b1f24b5f42998b05d8f522412bf5e8bf6d72a76a0eab35a48dde729440b5e6bc4ae4ceb5a1c0f9cef14b06e7cc54 WHIRLPOOL ae8d4b03ab6a30b2ced84ff4e9e077762659c094b0cd25929a14f9fdcc58390dbf37af85301f3fa1f901072aed2c5f9876cc8413256ada7fed43b5f942b9160e
AUX polyml-5.5.1-mprotect-exec.patch 1323 SHA256 472fcd191357d157918eafee495a3481bea00e5e627af673860e929f5a8deb19 SHA512 6c2901283959c3e607dff11647cfa8831f43f139d3c77c5a89bca955c65e85d14adec8221763efe69a99c683d2eedba1cdd03bd3bc277cdc227fdb473098acb8 WHIRLPOOL a27fd20f4666adb940c39d972d67485300a7b054b693c590c6e7a58dee35cd168e83d481abd4361c6629c5fbd4fbbda0f442e80cdd51ce9251d44abe7a53f11c
AUX polyml-5.5.1-optimize-closure.patch 6694 SHA256 429b66daa4b4cad501a7711139bbc759b3ceca6082ebc187b7cfe661d2efabfd SHA512 215a4afa4dd29ad551b3ac0eb04e390d2776340874824def1b950dafd306e5dada85482ce3ef037765860f00c5e6a75290747b44fa92223b2a9c6a17a887c4d3 WHIRLPOOL 9421c218663f809f02a9e06f9691c59b02b462faedf01c51ca735187a2ce1b87ff7c39e88cbb1df6229fe88880a3865dccef947f76c53db4dee47551f6637115
-DIST polyml.5.2.1.tar.gz 4114551 SHA256 c84148ae9a28e782f48208bcb8c5b82ee7bfdc178784fe81694cf1f0789ae62e SHA512 c3971eb7765712acfe19a48c91183eb1a93b537cdcf479bc70b47676f1a5d93a1cb966839298607274d077df3419c74dcaed319e4b4c0f79e3e78c36f2af428e WHIRLPOOL e02aa5e4995b9f70a04c700bb53306ed712aaf99a8cf2ff9f0a1dd465ccbe905348b7dcad3c6b9528c1b62293f62fb917e5fa9409bd72852897a933776a2fb51
+AUX polyml-5.5.2-r1952-check_for_negative_sized_array.patch 548 SHA256 b65ba50d7184a5f94cc2d841de82180218711b4b312442d51bb5fa87c447bea1 SHA512 d979c6542a2a983ab1b536e8b983d4d0a154f4f5e00f3d4161dd38f965f63ea5bd339785904690928a715ec43cb2a296f535ff6af1da522b096ffae0bba759a4 WHIRLPOOL adf5310406e02e3d258fa6148a1a5e4a7c5097aa330c9c1a046b64f5ef8a2b5a1c50d300e3f97e938557a8a89dabd98f11e85431e1c9fb30b6381bbf97413c7a
+AUX polyml-5.5.2-r1954_Fix_segfault_in_FFI_when_malloc_runs_out_of_memory.patch 4089 SHA256 a2f08bc8f5708df1fbb1b91170f43d35b9d6d69b7b7f44ca9ee67e4b747b5d5f SHA512 8b4f174ace31a839ea592402c10068af62f03227a43a663ea17ea5eefecf52472fc6a3437cd99f1593de7d575af57ae4b8156756695623c7db0f9e726e5f21a6 WHIRLPOOL be034af4b9e9f594895ce0cebccd6a8e9cc262a5e2b0c44f45496a57a9c6159385a86c35acccd8e258cd78c61d258ebaaf14c7ed466ff61e0c4450a334334a8f
+AUX polyml-5.5.2-r2007_Ensure_the_large_object_cache_pointer_is_cleared.patch 1247 SHA256 9e5a5c254b84ac272fa15ce09494ac61c817d47499c3729bfdf65290cada489b SHA512 ac2d1baff1c8d743ee783ac81f31df12cc4598874dd5a9a7855cd06fb179af2c64bc02a87d85a72238f19c805128143693839bd0a58d9a4002bc75fae985303b WHIRLPOOL a2f044c74b9b8898130436c9e59510321af9a71e24287f78f353b8efaa72c0854c456607fa92c44625f980a3f32ec60f543ae1e6fb1c3fabf4000689d699f1dd
+AUX polyml-5.5.2-r2009_Initialise_the_largeObjectCache_fully_in_the_constructor.patch 951 SHA256 9612b28a09e7097440962ba9b59678fefcc0ab85a80fd6436484028682a015f3 SHA512 644e90f26ef80aa8e945257eafa4da1ee2da9d353db40b5c6e367d032f41db4a6589a2527bce9d84d45794d88d31edaeb3cea53d57b4421bf209f6c07be69cf0 WHIRLPOOL d82c663331d7e72ace67a3c20edbab4dd2672dd04e0adaa26e47d953f2357cc4654dfb96a5145579d7485f7b0075647c7614952b6b8d3be9adaf1caaad2ba36c
DIST polyml.5.4.1.tar.gz 6107319 SHA256 514d1d07be487b783d4dfa29dbd550b3396640579ce135a9eb5a61f08e7f9cac SHA512 4a7b404ed648b5a9fd9d52917214688d15f4f9a5f4570ba13b52a8304bde1cc4b534f539ffc3c9554283816ae130e4c898a179d776df6d3220fba9743a19b175 WHIRLPOOL 048db0b2210d699c0a86940daaafd24bfc81debae412f7e7dcad2585cd5514253f6c47e0006277ef00b640ab971a031d74e64c78c4abcc09712fa9e8593d1720
DIST polyml.5.5.1.tar.gz 5465794 SHA256 cf8009dabc8b5d308d92e201dcd01f17ce14289d30caa8021a87365f4b8e209a SHA512 283954c8bf5599d83ea69916b827b1acae7137fe4add67537026092da2e6f1a89d71d3a394dbba599bbe9e967ded1446f39f4d81afb90301532db6be949f7a6f WHIRLPOOL 5bfeb8dcedcfe9b0a925ed089abc246d70d1269631ee46e9c78b123d461afb80e68640d6c08d77f47e69b0c244e9c7a27750dd7350741911e007f9dbcb2e7f76
+DIST polyml.5.5.2.tar.gz 5599140 SHA256 73fd2be89f7e3ff0567e27ef525ef788775d9f963d6db54069cb34d53040a682 SHA512 248c2a38c4691898bc1243a041f4683bf227d9c8a98c6c3545af2a8a3249ed5ed96f33f90cb2dede8809b42f33c0557650147302cfe046a5fba965ccd93cbc5b WHIRLPOOL d8dae553b6d4effef80b4303ea8fdbb95f8470790ab7ff49e62ae2a47d70d9d0b11b2113caa28302c029049041bd0286ba06a2153b5266b88a6c26eb1714abf7
DIST polyml.5.5.tar.gz 5504389 SHA256 2b20e597e6fe43df1b0ed01e78e410c6b51d0ac7911833e91d94fcc9eb05d831 SHA512 4725c2e4a786b8c63bc6fc1cadad0de818ed935014d51040af43defa07b03ba7bedb2185bfb2e39a0db7284479e79e698b31ec7fe8463c306b668de1eda69b89 WHIRLPOOL 166c7d0037dff771251c95e17d86a6208d926a5adbbac0188426dfe09b7cdbab1b620919068a722f34377fbc59966145ebd1cba5dcb0664943cc82c10d3b5688
-EBUILD polyml-5.2.1.ebuild 599 SHA256 ae47586ab5cf84d8d23e59fc3d0a4a1611ab8a6d4abfe60ad0aad71acb69ff08 SHA512 ce51e98c6eadd9ab2406e62a50015f692a4ed2bf9e7a272523cbadf8adde51e9740d035c2744106cd7816fc3908b301aa6efb238a35a8051e0be1ad11860814d WHIRLPOOL e46e45d05868210ce158d07ae3b6f6e2bd4f5a704f8be11766ec204c8c04186cd6be818027185f5f13552e580ed42ff5a906141cf6705cb1e6f2fb3f320ebef6
-EBUILD polyml-5.4.1.ebuild 989 SHA256 372f27b0c403e920b577b764ce4a20ad89a3a35e3caec3621deb23743717f0df SHA512 a0c0b8457a78e236bcb722f2db291c83474c88b40d5761730ee7784dbc93fc327594bee7068a6a87cbd4d270fe39d345826394685ac226c8431b16ad094ac47a WHIRLPOOL 3576978e4483fd98704081c6f3677476383c0c2463e5585ed6a3405906da013a219a51309f10e4b3b534e4802df29cc727c8cb8a563e1ce5e1f093899249d25a
-EBUILD polyml-5.5.0.ebuild 1228 SHA256 0f6169aaf39b123202c4dcc85b3ea1afbca531ccd2cd88640ab904a1a929d539 SHA512 5260ed748087cb85b72ba19546115f118e41d8a02e7810784c072c7289e9e059a981565514df253098f29d74e19707516f7e001f9150590c5119562432408a8e WHIRLPOOL 9a0d7965475c0f4278ae3875dcab5db27245dccd7e3a1e3a62c20c4fab04c646d10d92e020222b81b82d0164af3b7e1fb86ca360de1d65dccead2271f0076afb
-EBUILD polyml-5.5.1.ebuild 1911 SHA256 aa51d6a86a7fc29ee7994b7e94cbb27719e1ef1c39e0e6e34095c9956b6f47c3 SHA512 5bbbfcd1a10f195a83f7396bfa31c3cdd15717d4d68be31d5fa70cd966a5866207a58ea7998a76bb5036063030a92236f597ed0b77a58f8572e13a6726129469 WHIRLPOOL 7b87252febdb89d6d9ab4e9de6d893c92f99cfb281f8f6152bdf8ae0772c7b78449a0a515ed488cefe003781e1bd344630be858c2980cbb569be671c754ca4ad
-MISC ChangeLog 2747 SHA256 33041d14af036e8f9d8edf8d74c148b29455f018e6eb238c67c3ede9cfef849b SHA512 609a713fba75d9edcdf9edc61034bea439ab1d01f7d8f577e19313daf42be83665989fc1c12bd3005ad9c5f8ea1f001f1c542617f11ea6e1cab6b9591cfd9373 WHIRLPOOL ba471df9b7aab5c4f9bddd7edb6869de7bf8ff91f8a45654185fc746764bce2163e6190f44f0b7d266510848cc19e3aa294e16ffba984a7eabdb87b2c937c27c
+EBUILD polyml-5.4.1.ebuild 991 SHA256 795895dfad0648a066d26538d443c42db6cb1fc4b1664f58dc837f3da72c9064 SHA512 8a6cab2a75d1920b8e71cd95eadc66b9695df6ec087d6937e160573085c00727407978c3e1562771b9d6588665073350f479d75c634825ea3f068e24061c3929 WHIRLPOOL 576b04e8dc65a514adf52872f8e244948eefd929827b067e1124b5e0137a63cd10754145f674f157d479b73311a97515af342bd6dce42a073e6d930e7d93cb74
+EBUILD polyml-5.5.0.ebuild 1230 SHA256 9370fca01997bf08e3301ebdb0505c89bb882b4ee0b4adfbf24bdfd079a24074 SHA512 e9ef2c238c87181836c4fea8cd859892188d00a53ed0dcc3b6f10b63500d117131fa3193ced02df1d2b74bd5aba678fe69df3acaf2a435241197406e312969ab WHIRLPOOL 41ee3e40f823545e29034130fd6359125f1e420e81792f0684725747727bc2c08826bc8bef500f11eaee0a830c2f553171c8a9faa091ba2002e72a5b25df543a
+EBUILD polyml-5.5.1.ebuild 1913 SHA256 0701845bb6f5c06f7144ac368d8a6fd4f2f9f038c6adacbbd02895040094683b SHA512 f1552afeebe842e0ee01156b774d24c7787e244f70db9120a65e496b9deed5b28361818bba7a8feabf3b20dab8a7bf82a22d58acbae5526d8f391d967ac95763 WHIRLPOOL e494fc46f8d06980e907883eee83d0cfaffe5d1a11f8b28cd42c9f53cb21eb081ced29ed8247f834fc24834d3989e0425e39a00418e86259fbf239c3cac37aba
+EBUILD polyml-5.5.2.ebuild 2071 SHA256 defef2ccf0ddef27e18ff23a1ca8049cb40eee763c73c83a8a7428bbbe9b7a75 SHA512 7a676c5d80eba8582bce0d436aece20dc623cd64594e5748d14e18b8705e7ff830b65566fa24b2158a0bfdc49c99231f6d3363dbed8b311b7a9668866e2ea4b0 WHIRLPOOL f4100a8789d770626126766f4e464415f2b1a5a8fdc4595907e6dc3ff11ce2e0d97f03f02168c21bd1604ae1617f6884946e10adbcdef99b1b637cb798d39c5c
+MISC ChangeLog 3467 SHA256 e234d6a82bafcf318ab6bf7cce265924c9c974509ac66df2f84f498ddaa1a837 SHA512 219f020da6115415d7dbd9c076bcf25e9809a99168cdd336916e193c8412b70b681f03504e64bf33900afad95f936ba6cd5841c2eb3b5711a1fb83d795316e1b WHIRLPOOL 92517471801ceb4e0083bb4990da61729f7bdf3fcf8e30acf1528c3e1203f368d641eba1cd3e8c0e292e5a4c7987e5df8673f4f126e59f04d8187ab2c26e6d6e
MISC metadata.xml 471 SHA256 0bfe5fc6da051736285084df38ff47d60e98106fe0cc9d721fe9f3b74e81ef98 SHA512 6bae40b9659b82b5ca98104d80f22a41f02923894579021bbb2843598efdae27108f360b210217bfa0323844ec17569febff5db1414d20edf3b1843a9cd45795 WHIRLPOOL c3f961528f7ea9802298930aa08b6bbe1b4033bd187c22a23a9071f33b72c331c8758161c5c5c0fa9f07fa0182e88fe65fa64e81a03b9c95439763466e9938ae
-----BEGIN PGP SIGNATURE-----
-Version: GnuPG v2.0
+Version: GnuPG v2
-iQJ8BAEBCgBmBQJVdvN9XxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
-ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQ0QUU0N0I4NzFERUI0MTJFN0EyODE0NUFF
-OTQwMkE3OUIwMzUyOUEyAAoJEOlAKnmwNSmiKzcQALcv/5g2L7m7ZOFpZbRgr1RF
-gU+FSPS0YlWG7u7msHOEVoqXBx3tsqkq6SeelViiet6zlzIbLlk081ibgCFXVDLB
-szBeXRKmZ8zIP0CCFmWuAjYf+truk72TJdmWtAx9Q9kBWhVerJOmSNoC4RfVhQ0n
-kiEXh6ig54BLb9mAecQQcEaLV/j3j4ZQFUg84UWIhE8wbrdcLXKnoZOdfFWrZ5jk
-pa7sc/+IYFvH4xsmdi81hmlo9fXtIJiMHPtHzWdtqhLahf957OREa2Ceo1jpDbhx
-YMuT4YMtREPZ00jEDZdQzA09zdNn++FNOinPMVhwRULAtowgwCcD9cQ58tr7XaFR
-mqTpwlSWmo7wMJYegw7BfTKR6DwzSKuu/BpgtJ3ICDw1w5HO88aVkWhpEkKSTsuS
-INmKwlzRBbBRJCMUBC4DS9zfi1vC21dif1pZDBPSWgfpLY6Kpew9YQ5GXpmq+LGj
-eaQpWSgUynsvpCWQ4lO3I7VycCpmEf56SUho3c4RWyzImXKT058tZHkdUiZI2Tju
-vbXh6DuArrjS6ygIeaUv+t2IEyeTgpcSf28DDplAwJOp7eof5fhrM/ejvZ+mEMl+
-GpECWl7sr86oXX9uS4cMIIKDrZAhIg+kmAFpWQcmAsqQgcUKKcKwAXoWXjCk/o6B
-INL5Yrcb5PELWa7p7Kpq
-=nuDB
+iF4EAREIAAYFAlWeZcAACgkQoBEVQmGOlx/pvAEAkTP4Awlw1Jua4bW2+yeXB/va
+ZB9gYwwRoAUxO9CCPzkBAL+qcOOSHHQfmfff5q4jQhGU1cUWXmRP+HnMYh2Z0Pjo
+=m/9W
-----END PGP SIGNATURE-----
diff --git a/dev-lang/polyml/files/polyml-5.5.2-r1952-check_for_negative_sized_array.patch b/dev-lang/polyml/files/polyml-5.5.2-r1952-check_for_negative_sized_array.patch
new file mode 100644
index 000000000000..1451d2df8d84
--- /dev/null
+++ b/dev-lang/polyml/files/polyml-5.5.2-r1952-check_for_negative_sized_array.patch
@@ -0,0 +1,13 @@
+Index: polyml/basis/Array.sml
+===================================================================
+--- polyml/basis/Array.sml (revision 1951)
++++ polyml/basis/Array.sml (revision 1952)
+@@ -129,7 +129,7 @@
+
+ fun array(len, a) =
+ let
+- val () = if len >= maxLen then raise General.Size else ()
++ val () = if len < 0 orelse len >= maxLen then raise General.Size else ()
+ val vec = System_alloc(len+1, 0wx40, RunCall.unsafeCast a)
+ in
+ System_setw(vec, 0, RunCall.unsafeCast len);
diff --git a/dev-lang/polyml/files/polyml-5.5.2-r1954_Fix_segfault_in_FFI_when_malloc_runs_out_of_memory.patch b/dev-lang/polyml/files/polyml-5.5.2-r1954_Fix_segfault_in_FFI_when_malloc_runs_out_of_memory.patch
new file mode 100644
index 000000000000..783577026f67
--- /dev/null
+++ b/dev-lang/polyml/files/polyml-5.5.2-r1954_Fix_segfault_in_FFI_when_malloc_runs_out_of_memory.patch
@@ -0,0 +1,112 @@
+Index: polyml/libpolyml/foreign.cpp
+===================================================================
+--- polyml/libpolyml/foreign.cpp (revision 1953)
++++ polyml/libpolyml/foreign.cpp (revision 1954)
+@@ -4,7 +4,7 @@
+
+ Copyright (c) 2000-7
+ Cambridge University Technical Services Limited
+- Further development Copyright David C.J. Matthews 2008-2011.
++ Further development Copyright David C.J. Matthews 2008-2014.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+@@ -251,6 +251,10 @@
+
+ static Volatile *vols;
+ static PLock volLock; // Mutex to protect vols.
++// TODO: There is a theoretical risk of deadlock if any ML allocation is made while this
++// lock is held. An allocation can result in a GC which requires all threads to release
++// ML memory but another thread could block waiting for the mutex.
++// N.B. raising an exception involves an allocation.
+
+ #define FIRST_VOL 0
+
+@@ -268,24 +272,8 @@
+ static unsigned callBackEntries = 0;
+ static PLock callbackTableLock; // Mutex to protect table.
+
+-
+ /**********************************************************************
+ *
+- * Malloc / Free Wrappers
+- *
+- **********************************************************************/
+-
+-static POLYUNSIGNED malloc_count = 0;
+-#if 0
+-#define Vmalloc(where,size) {where = malloc(size); printf("malloc: %p,%d\n",where,size); fflush(stdout); malloc_count++;}
+-#else
+-#define Vmalloc(where,size) {where = malloc(size); malloc_count++;}
+-#endif
+-#define Vfree(p) { free(p); malloc_count--;}
+-
+-
+-/**********************************************************************
+- *
+ * Volatile Allocation
+ *
+ **********************************************************************/
+@@ -349,8 +337,12 @@
+ PLocker plocker(&volLock);
+ Handle res = vol_alloc(taskData);
+ trace(("size= %" POLYUFMT "\n",size));
+- Vmalloc( C_POINTER(UNVOLHANDLE(res)), size );
++ void *p = malloc(size);
++ if (p == 0)
++ RAISE_EXN("Insufficient memory");
++ C_POINTER(UNVOLHANDLE(res)) = p;
+ OWN_C_SPACE(UNVOLHANDLE(res)) = true;
++
+ return res;
+ }
+
+@@ -685,7 +677,7 @@
+ {
+ // Can now free this.
+ trace(("Freeing malloc space of <%" POLYUFMT ">\n",from));
+- Vfree(vols[from].C_pointer);
++ free(vols[from].C_pointer);
+ vols[from].C_pointer = 0;
+ vols[from].Own_C_space = false;
+ }
+@@ -702,7 +694,6 @@
+ }
+ }
+ next_vol = to;
+- info(("unfreed mallocs=<%" POLYUFMT "> next_vol=<%" POLYUFMT ">\n", malloc_count, next_vol));
+
+ /* Callback table. Added DCJM 12/4/04. We always process these as strong references.
+ For the time being at any rate we treat these as permanent entries so that once a
+@@ -910,8 +901,9 @@
+ RAISE_EXN("libffi error: ffi_prep_cif failed");
+
+ // malloc memory for the result
+- void *result;
+- Vmalloc(result, result_type->size);
++ void *result = malloc(result_type->size);
++ if (result == 0)
++ RAISE_EXN("Insufficient memory to allocate space for result");
+
+ processes->ThreadReleaseMLMemory(taskData);
+ ffi_call(&cif, sym, result, arg_values);
+@@ -1580,6 +1572,9 @@
+
+ unsigned num_args = length_list(argTypeList->Word());
+ ffi_type **arg_types = (ffi_type**)malloc(num_args * sizeof(ffi_type*));
++ if (arg_types == 0)
++ RAISE_EXN("Insufficient memory to allocate space for arguments");
++
+ PolyWord p = argTypeList->Word();
+ for (POLYUNSIGNED i=0; i<num_args; i++,p=Tail(p))
+ arg_types[i] = ctypeToFfiType(taskData, Head(p));
+@@ -1587,6 +1582,9 @@
+
+ // The cif needs to be on the heap so that it is available in the callback.
+ ffi_cif *cif = (ffi_cif *)malloc(sizeof(ffi_cif));
++ if (cif == 0)
++ RAISE_EXN("Insufficient memory to allocate space for cif");
++
+ if (ffi_prep_cif(cif, abi, num_args, result_type, arg_types) != FFI_OK)
+ RAISE_EXN("libffi error: ffi_prep_cif failed");
+
diff --git a/dev-lang/polyml/files/polyml-5.5.2-r2007_Ensure_the_large_object_cache_pointer_is_cleared.patch b/dev-lang/polyml/files/polyml-5.5.2-r2007_Ensure_the_large_object_cache_pointer_is_cleared.patch
new file mode 100644
index 000000000000..36c82947f37b
--- /dev/null
+++ b/dev-lang/polyml/files/polyml-5.5.2-r2007_Ensure_the_large_object_cache_pointer_is_cleared.patch
@@ -0,0 +1,27 @@
+Index: polyml/libpolyml/gc_mark_phase.cpp
+===================================================================
+--- polyml/libpolyml/gc_mark_phase.cpp (revision 2006)
++++ polyml/libpolyml/gc_mark_phase.cpp (revision 2007)
+@@ -130,13 +130,6 @@
+ if (locPtr == LARGECACHE_SIZE) locPtr = 0;
+ largeObjectCache[locPtr].base = obj;
+ largeObjectCache[locPtr].current = currentPtr;
+- // To try to narrow down a bug that results in the ASSERT failing,
+- // add these extra checks.
+- POLYUNSIGNED lengthWord = obj->LengthWord();
+- ASSERT (OBJ_IS_LENGTH(lengthWord));
+- POLYUNSIGNED length = OBJ_OBJECT_LENGTH(lengthWord);
+- ASSERT(length == originalLength);
+- ASSERT(currentPtr > (PolyWord*)obj && currentPtr < ((PolyWord*)obj)+length);
+ }
+ }
+ else StackOverflow(obj);
+@@ -579,6 +572,8 @@
+ ASSERT(nInUse == 0);
+ MTGCProcessMarkPointers *marker = &markStacks[0];
+ marker->active = true;
++ marker->locPtr = 0;
++ marker->largeObjectCache[0].base = 0;
+ nInUse = 1;
+
+ // Scan the permanent mutable areas.
diff --git a/dev-lang/polyml/files/polyml-5.5.2-r2009_Initialise_the_largeObjectCache_fully_in_the_constructor.patch b/dev-lang/polyml/files/polyml-5.5.2-r2009_Initialise_the_largeObjectCache_fully_in_the_constructor.patch
new file mode 100644
index 000000000000..0629f12f72ca
--- /dev/null
+++ b/dev-lang/polyml/files/polyml-5.5.2-r2009_Initialise_the_largeObjectCache_fully_in_the_constructor.patch
@@ -0,0 +1,21 @@
+Index: polyml/libpolyml/gc_mark_phase.cpp
+===================================================================
+--- polyml/libpolyml/gc_mark_phase.cpp (revision 2008)
++++ polyml/libpolyml/gc_mark_phase.cpp (revision 2009)
+@@ -176,6 +176,16 @@
+ // Clear the mark stack
+ for (unsigned i = 0; i < MARK_STACK_SIZE; i++)
+ markStack[i] = 0;
++ // Clear the large object cache. Actually only largeObjectCache[0].base
++ // needs to be set to zero and for the objects allocated on the heap it is
++ // cleared before each GC in either MarkRoots or MarkPointersTask.
++ // The remianing case is the RescanMarked sub-class which is allocated on the stack
++ // but it doesn't hurt to clear it in all cases.
++ for (unsigned j = 0; j < LARGECACHE_SIZE; j++)
++ {
++ largeObjectCache[locPtr].base = 0;
++ largeObjectCache[locPtr].current = 0;
++ }
+ }
+
+ // Called when the stack has overflowed. We need to include this
diff --git a/dev-lang/polyml/polyml-5.2.1.ebuild b/dev-lang/polyml/polyml-5.2.1.ebuild
deleted file mode 100644
index 630d3020f4a2..000000000000
--- a/dev-lang/polyml/polyml-5.2.1.ebuild
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright 1999-2009 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-lang/polyml/polyml-5.2.1.ebuild,v 1.3 2009/01/11 19:16:52 maekke Exp $
-
-MY_P=${PN}.${PV}
-
-DESCRIPTION="Poly/ML is a full implementation of Standard ML"
-HOMEPAGE="http://www.polyml.org"
-SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.gz"
-
-LICENSE="LGPL-2.1"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="X"
-
-DEPEND=""
-RDEPEND=""
-
-S=${WORKDIR}/${MY_P}
-
-src_compile() {
- econf $(use_with X)
-
- emake || die
-}
-
-src_install() {
- emake DESTDIR="${D}" install || die
-}
diff --git a/dev-lang/polyml/polyml-5.4.1.ebuild b/dev-lang/polyml/polyml-5.4.1.ebuild
index 1eee8a2d5cf5..59faf3c3f5a0 100644
--- a/dev-lang/polyml/polyml-5.4.1.ebuild
+++ b/dev-lang/polyml/polyml-5.4.1.ebuild
@@ -1,6 +1,6 @@
-# Copyright 1999-2012 Gentoo Foundation
+# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-lang/polyml/polyml-5.4.1.ebuild,v 1.6 2012/12/05 09:49:35 gienah Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-lang/polyml/polyml-5.4.1.ebuild,v 1.7 2015/07/09 09:46:32 gienah Exp $
EAPI="5"
@@ -17,7 +17,7 @@ SLOT="0/${PV}"
KEYWORDS="~amd64 ~x86"
IUSE="X elibc_glibc +gmp portable test +threads"
-RDEPEND="X? ( x11-libs/motif )
+RDEPEND="X? ( x11-libs/motif:0 )
gmp? ( >=dev-libs/gmp-5 )
elibc_glibc? ( threads? ( >=sys-libs/glibc-2.13 ) )"
DEPEND="${RDEPEND}"
diff --git a/dev-lang/polyml/polyml-5.5.0.ebuild b/dev-lang/polyml/polyml-5.5.0.ebuild
index 2ced5678abab..953740159dbc 100644
--- a/dev-lang/polyml/polyml-5.5.0.ebuild
+++ b/dev-lang/polyml/polyml-5.5.0.ebuild
@@ -1,6 +1,6 @@
-# Copyright 1999-2012 Gentoo Foundation
+# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-lang/polyml/polyml-5.5.0.ebuild,v 1.3 2012/12/05 09:49:35 gienah Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-lang/polyml/polyml-5.5.0.ebuild,v 1.4 2015/07/09 09:46:32 gienah Exp $
EAPI="5"
@@ -20,7 +20,7 @@ SLOT="0/${PV}"
KEYWORDS="~amd64 ~x86"
IUSE="X elibc_glibc +gmp portable test +threads"
-RDEPEND="X? ( x11-libs/motif )
+RDEPEND="X? ( x11-libs/motif:0 )
gmp? ( >=dev-libs/gmp-5 )
elibc_glibc? ( threads? ( >=sys-libs/glibc-2.13 ) )
virtual/libffi"
diff --git a/dev-lang/polyml/polyml-5.5.1.ebuild b/dev-lang/polyml/polyml-5.5.1.ebuild
index 4e902728cb46..2cbc5149e144 100644
--- a/dev-lang/polyml/polyml-5.5.1.ebuild
+++ b/dev-lang/polyml/polyml-5.5.1.ebuild
@@ -1,6 +1,6 @@
-# Copyright 1999-2014 Gentoo Foundation
+# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-lang/polyml/polyml-5.5.1.ebuild,v 1.1 2014/02/11 14:35:09 gienah Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-lang/polyml/polyml-5.5.1.ebuild,v 1.2 2015/07/09 09:46:32 gienah Exp $
EAPI="5"
@@ -17,7 +17,7 @@ SLOT="0/${PV}"
KEYWORDS="~amd64 ~x86"
IUSE="X elibc_glibc +gmp portable test +threads"
-RDEPEND="X? ( x11-libs/motif )
+RDEPEND="X? ( x11-libs/motif:0 )
gmp? ( >=dev-libs/gmp-5 )
elibc_glibc? ( threads? ( >=sys-libs/glibc-2.13 ) )
virtual/libffi"
diff --git a/dev-lang/polyml/polyml-5.5.2.ebuild b/dev-lang/polyml/polyml-5.5.2.ebuild
new file mode 100644
index 000000000000..07d5e84e3e40
--- /dev/null
+++ b/dev-lang/polyml/polyml-5.5.2.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-lang/polyml/polyml-5.5.2.ebuild,v 1.1 2015/07/09 09:46:32 gienah Exp $
+
+EAPI="5"
+
+inherit base autotools pax-utils
+
+MY_P="${PN}.${PV}"
+
+DESCRIPTION="Poly/ML is a full implementation of Standard ML"
+HOMEPAGE="http://www.polyml.org"
+SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~x86"
+IUSE="X elibc_glibc +gmp portable test +threads"
+
+RDEPEND="X? ( x11-libs/motif:0 )
+ gmp? ( >=dev-libs/gmp-5 )
+ elibc_glibc? ( threads? ( >=sys-libs/glibc-2.13 ) )
+ virtual/libffi"
+DEPEND="${RDEPEND}"
+
+S=${WORKDIR}/${MY_P}
+
+PATCHES=(
+ # Bug 256679 - patch the assembler code. The remaining executable stacks in ./.libs/poly
+ # comes from the polyml generated ./polyexport.o file.
+ "${FILESDIR}/${PN}-5.5.0-asm.patch"
+ # Patches from http://sourceforge.net/p/polyml/code/HEAD/tree/fixes-5.5.2
+ # which are required to build and run sci-mathematics/isabelle-2015
+ "${FILESDIR}/${PN}-5.5.2-r1952-check_for_negative_sized_array.patch"
+ "${FILESDIR}/${PN}-5.5.2-r1954_Fix_segfault_in_FFI_when_malloc_runs_out_of_memory.patch"
+ "${FILESDIR}/${PN}-5.5.2-r2007_Ensure_the_large_object_cache_pointer_is_cleared.patch"
+ "${FILESDIR}/${PN}-5.5.2-r2009_Initialise_the_largeObjectCache_fully_in_the_constructor.patch"
+)
+
+src_prepare() {
+ base_src_prepare
+ eautoreconf
+ if [ -f "${S}/Tests/Succeed/Test146.ML" ]; then
+ mv "${S}/Tests/Succeed/Test146.ML" "${S}/Tests/Succeed/Test146.ML.disable-test-as-it-fails"
+ fi
+}
+
+src_configure() {
+ econf \
+ --enable-shared \
+ --disable-static \
+ --with-system-libffi \
+ $(use_with X x) \
+ $(use_with gmp) \
+ $(use_with portable) \
+ $(use_with threads)
+}
+
+src_compile() {
+ # Bug 453146 - dev-lang/polyml-5.5.0: fails to build (pax kernel?)
+ pushd libpolyml || die "Could not cd to libpolyml"
+ emake
+ popd
+ emake polyimport
+ pax-mark m "${S}/.libs/polyimport"
+ emake
+ pax-mark m "${S}/.libs/poly"
+}
+
+src_test() {
+ emake tests || die "tests failed"
+}