Re: [polyml] Different behaviors between SML/NJ and Poly/ML in a code from 'The Little MLer'

2017-07-05 Thread Rob Arthan
Roní, If you don’t want to upgrade to version 5.7, you can work around the problem like this: val oldMaxInlineSize = !PolyML.Compiler.maxInlineSize; val _ = PolyML.Compiler.maxInlineSize := 1; fun ints(n) = Link(n + 1, ints); val _ = PolyML.Compiler.maxInlineSize := oldMaxInlineSize; Aside to

Re: [polyml] Different behaviors between SML/NJ and Poly/ML in a code from 'The Little MLer'

2017-07-05 Thread David Matthews
I think you must be using an older version of Poly/ML. There was a bug in 5.6 and earlier versions that caused the optimiser to loop but that has been fixed in the current version, 5.7. Regards, David On 04/07/2017 17:40, Roní Gonçalves wrote: Actually, I have mistyped the definition of

Re: [polyml] Different behaviors between SML/NJ and Poly/ML in a code from 'The Little MLer'

2017-07-05 Thread Roní Gonçalves
Actually, I have mistyped the definition of chain before. I am sorry. The definitions are: datatype chain = Link of int * (int -> chain); fun ints(n) = Link(n + 1, ints); And for these definitions, Poly/ML does not work, but SML/NJ does. Best regards, Roní Gonçalves. 2017-07-04 13:37

[polyml] Different behaviors between SML/NJ and Poly/ML in a code from 'The Little MLer'

2017-07-05 Thread Roní Gonçalves
Hello, everyone! I am reading The Little MLer from Matthias Felleisen and Daniel Friedman using Poly/ML interpreter. In chapter 7, whe have some sort of stream implementation: datatype chain = Link of datatype chain = Link of int * (int -> chain); fun ints(n) = Link(n + 1, ints); When I try to