I'm planning to release Poly/ML 5.4 by the end of this month unless there are any show-stoppers. I've had a couple of bug reports from Phil Clayton and fixed those. I've also fixed a few minor bugs so that it will build on the PowerPC and Sparc. Now is the time to check that your software will run in the current version and let me know if there are problems. Don't forget to run make compiler twice to build the current version (SVN 1189).
David
David,
I tried building ProofPower svn rev 1189 of Poly/ML on Fedora 12 and it worked fine.
One question: is it intended that poly -v reports RTS version: I386-5.3.0?
Regards,
Rob.
On 12 Aug 2010, at 16:36, David Matthews wrote:
I'm planning to release Poly/ML 5.4 by the end of this month unless there are any show-stoppers. I've had a couple of bug reports from Phil Clayton and fixed those. I've also fixed a few minor bugs so that it will build on the PowerPC and Sparc. Now is the time to check that your software will run in the current version and let me know if there are problems. Don't forget to run make compiler twice to build the current version (SVN 1189).
David
polyml mailing list polyml@inf.ed.ac.uk http://lists.inf.ed.ac.uk/mailman/listinfo/polyml
I've updated the version number. Thanks for pointing it out. Regards, David
Rob Arthan wrote:
David,
I tried building ProofPower svn rev 1189 of Poly/ML on Fedora 12 and it worked fine.
One question: is it intended that poly -v reports RTS version: I386-5.3.0?
Regards,
Rob.
On 12 Aug 2010, at 16:36, David Matthews wrote:
I'm planning to release Poly/ML 5.4 by the end of this month unless there are any show-stoppers. I've had a couple of bug reports from Phil Clayton and fixed those. I've also fixed a few minor bugs so that it will build on the PowerPC and Sparc. Now is the time to check that your software will run in the current version and let me know if there are problems. Don't forget to run make compiler twice to build the current version (SVN 1189).
David
polyml mailing list polyml@inf.ed.ac.uk http://lists.inf.ed.ac.uk/mailman/listinfo/polyml
David,
Poly/ML 5.4 (SVN r1192) gives an InternalError exception on the attached program.
[mtf@graywolf mlton-polyml-bug]$ cat mlton-polyml.use | poly Poly/ML 5.4 Experimental ...
Exception- InternalError: getPolyVars: Unable to get type vars raised while compiling
Exception- Fail "Exception- InternalError: getPolyVars: Unable to get type vars raised while compiling" raised
-Matthew
On Thu, Aug 12, 2010 at 11:36 AM, David Matthews David.Matthews@prolingua.co.uk wrote:
I'm planning to release Poly/ML 5.4 by the end of this month unless there are any show-stoppers. ?I've had a couple of bug reports from Phil Clayton and fixed those. ?I've also fixed a few minor bugs so that it will build on the PowerPC and Sparc. ?Now is the time to check that your software will run in the current version and let me know if there are problems. ?Don't forget to run make compiler twice to build the current version (SVN 1189).
David
polyml mailing list polyml@inf.ed.ac.uk http://lists.inf.ed.ac.uk/mailman/listinfo/polyml
Matthew, Thanks for reporting that. I've installed a fix; well more of a work-around really and your example now compiles. I managed to reduce it a few lines which are now in the regression test suite.
Regards, David
Matthew Fluet wrote:
David,
Poly/ML 5.4 (SVN r1192) gives an InternalError exception on the attached program.
[mtf@graywolf mlton-polyml-bug]$ cat mlton-polyml.use | poly Poly/ML 5.4 Experimental ...
Exception- InternalError: getPolyVars: Unable to get type vars raised while compiling
Exception- Fail "Exception- InternalError: getPolyVars: Unable to get type vars raised while compiling" raised
-Matthew
David, With that change, I was able to successfully compile MLton with Poly/ML; unfortunately, the PolyML.export-ed executable gives a "Bus error" (on MacOSX (Snow Leopard)). I'll see if I get a different result on Linux and if I can reduce the issue. -Matthew
On Thu, Aug 19, 2010 at 6:00 AM, David Matthews David.Matthews@prolingua.co.uk wrote:
Matthew, Thanks for reporting that. ?I've installed a fix; well more of a work-around really and your example now compiles. ?I managed to reduce it a few lines which are now in the regression test suite.
Regards, David
Matthew Fluet wrote:
David,
Poly/ML 5.4 (SVN r1192) gives an InternalError exception on the attached program.
[mtf@graywolf mlton-polyml-bug]$ cat mlton-polyml.use | poly Poly/ML 5.4 Experimental ...
Exception- InternalError: getPolyVars: Unable to get type vars raised while compiling
Exception- ? Fail ?"Exception- InternalError: getPolyVars: Unable to get type vars raised while compiling" ? raised
-Matthew
MacOSX (Leopard) does not exhibit the same issue. Perhaps that indicates a 32-bit vs. 64-bit issue? -Matthew
On Thu, Aug 19, 2010 at 9:21 AM, Matthew Fluet matthew.fluet@gmail.com wrote:
David, With that change, I was able to successfully compile MLton with Poly/ML; unfortunately, the PolyML.export-ed executable gives a "Bus error" (on MacOSX (Snow Leopard)). ?I'll see if I get a different result on Linux and if I can reduce the issue. -Matthew
On Thu, Aug 19, 2010 at 6:00 AM, David Matthews David.Matthews@prolingua.co.uk wrote:
Matthew, Thanks for reporting that. ?I've installed a fix; well more of a work-around really and your example now compiles. ?I managed to reduce it a few lines which are now in the regression test suite.
Regards, David
Matthew Fluet wrote:
David,
Poly/ML 5.4 (SVN r1192) gives an InternalError exception on the attached program.
[mtf@graywolf mlton-polyml-bug]$ cat mlton-polyml.use | poly Poly/ML 5.4 Experimental ...
Exception- InternalError: getPolyVars: Unable to get type vars raised while compiling
Exception- ? Fail ?"Exception- InternalError: getPolyVars: Unable to get type vars raised while compiling" ? raised
-Matthew
Matthew, That looks suspiciously like the "execute bit" problem. Did you include -segprot POLY rwx rwx to the linker? See the last line of (the updated) http://www.polyml.org/FAQ.html#standalone
David
Matthew Fluet wrote:
David, With that change, I was able to successfully compile MLton with Poly/ML; unfortunately, the PolyML.export-ed executable gives a "Bus error" (on MacOSX (Snow Leopard)). I'll see if I get a different result on Linux and if I can reduce the issue. -Matthew
David,
On 19 Aug 2010, at 18:59, David Matthews wrote:
Matthew, That looks suspiciously like the "execute bit" problem. Did you include -segprot POLY rwx rwx to the linker? See the last line of (the updated) http://www.polyml.org/FAQ.html#standalone
On that point, I recall having some problems caused by using "cc" rather than "c++". Was that an illusion?
Regards,
Rob.
Rob Arthan wrote:
Matthew, That looks suspiciously like the "execute bit" problem. Did you include -segprot POLY rwx rwx to the linker? See the last line of (the updated) http://www.polyml.org/FAQ.html#standalone
On that point, I recall having some problems caused by using "cc" rather than "c++". Was that an illusion?
I wouldn't have thought that using "cc" rather than "c++" would have an effect on the Bus Error and the fix for it. It would probably simplify finding the C++ libraries.
To just explain: the Bus Error arises because the linker has removed execute permission from the segment containing the code produced by Poly/ML and exported. It is actually exported with read, write and execute permissions set in the Mach-O header but for some reason the Mac OS X linker removes the execute permission unless it's explicitly set with the segprot option. This isn't a problem in 32-bit mode which doesn't seem to enforce execute permission but causes a Bus Error in 64-bit mode. It would probably be better if Poly/ML exported the code as a read/execute "text" segment but the current RTS needs write access in some circumstances.
Regards, David
David,
On 20 Aug 2010, at 12:33, David Matthews wrote:
Rob Arthan wrote:
Matthew, That looks suspiciously like the "execute bit" problem. Did you include -segprot POLY rwx rwx to the linker? See the last line of (the updated) http://www.polyml.org/FAQ.html#standalone
On that point, I recall having some problems caused by using "cc" rather than "c++". Was that an illusion?
I wouldn't have thought that using "cc" rather than "c++" would have an effect on the Bus Error and the fix for it. It would probably simplify finding the C++ libraries.
To just explain: the Bus Error arises because the linker has removed execute permission from the segment containing the code produced by Poly/ML and exported. It is actually exported with read, write and execute permissions set in the Mach-O header but for some reason the Mac OS X linker removes the execute permission unless it's explicitly set with the segprot option. This isn't a problem in 32-bit mode which doesn't seem to enforce execute permission but causes a Bus Error in 64-bit mode. It would probably be better if Poly/ML exported the code as a read/execute "text" segment but the current RTS needs write access in some circumstances.
Thanks for the clarification. In fact, I didn't explain myself very well. What I meant was that as I have had problems of the sort linking Poly/ML programs because I used cc rather than c++, I thought it might be better to use c++ in the documentation throughout.
Regards,
Rob.
Rob Arthan wrote:
Thanks for the clarification. In fact, I didn't explain myself very well. What I meant was that as I have had problems of the sort linking Poly/ML programs because I used cc rather than c++, I thought it might be better to use c++ in the documentation throughout.
I think it depends a bit on the platform. I would guess that using c++ to do the linking would make it easier to find the c++ libraries if they're in a non-standard place. The Poly/ML configure script uses autoconf/automake/libtool to sort all these things out and that's probably the most portable way of doing it. It ought to be fairly easy to copy the relevant bits from the polyml directory and adapt them as necessary.
Regards, David
Here is another thing that looks like a regression from Poly/ML 5.3.0.
datatype ('a, 'b) foo = Foo of 'a * 'b;
val _ = PolyML.addPrettyPrinter (fn depth => fn (pretty1, pretty2) => fn Foo (x, y) => PolyML.PrettyBlock (2, false, [], [PolyML.PrettyString "Foo", PolyML.PrettyBreak (1, 0), PolyML.PrettyString "(", pretty1 (x, depth - 1), PolyML.PrettyString ",", PolyML.PrettyBreak (1, 0), pretty2 (y, depth - 1), PolyML.PrettyString ")"]));
This crashes the RTS when trying to print Foo (1, "a") for example.
The same kind of code does work with a single type parameter, e.g. for datatype 'a bar = Bar of 'a
Makarius
Thanks for reporting that. I've committed a fix and included your example as a regression test. David
Makarius wrote:
Here is another thing that looks like a regression from Poly/ML 5.3.0.
datatype ('a, 'b) foo = Foo of 'a * 'b;
val _ = PolyML.addPrettyPrinter (fn depth => fn (pretty1, pretty2) => fn Foo (x, y) => PolyML.PrettyBlock (2, false, [], [PolyML.PrettyString "Foo", PolyML.PrettyBreak (1, 0), PolyML.PrettyString "(", pretty1 (x, depth - 1), PolyML.PrettyString ",", PolyML.PrettyBreak (1, 0), pretty2 (y, depth - 1), PolyML.PrettyString ")"]));
This crashes the RTS when trying to print Foo (1, "a") for example.
The same kind of code does work with a single type parameter, e.g. for datatype 'a bar = Bar of 'a
Makarius
polyml mailing list polyml@inf.ed.ac.uk http://lists.inf.ed.ac.uk/mailman/listinfo/polyml
The "-segprog POLY rwx rwx" was the problem with 64-bit MacOS X.
On Thu, Aug 19, 2010 at 1:59 PM, David Matthews David.Matthews@prolingua.co.uk wrote:
Matthew, That looks suspiciously like the "execute bit" problem. ?Did you include -segprot POLY rwx rwx to the linker? See the last line of (the updated) http://www.polyml.org/FAQ.html#standalone
David
Matthew Fluet wrote:
David, With that change, I was able to successfully compile MLton with Poly/ML; unfortunately, the PolyML.export-ed executable gives a "Bus error" (on MacOSX (Snow Leopard)). ?I'll see if I get a different result on Linux and if I can reduce the issue. -Matthew