I've been meaning to follow up this thread, but slow to do so: I wanted mention to mention some work planned for the current BigInt implementation: Our intention is to change it from a class to a record so that it has the more natural value semantics you'd expect from a big integer (e.g., no need to call 'delete' on them to avoid memory leaks). This work is currently being held up by known problems in our constructor/copy/destructor semantics for records that users may be aware of. These record semantic issues are quite close to being wrapped up, and my hope/expectation is that this will permit BigInts to be converted to records for the April 2016 release.
Once BigInts are working correctly as records, we've discussed integrating them more closely into the language by using a special "bit-width" indicator to imply an arbitrary-sized int (e.g., rather than int(64), imagine something like 'int(?)' or 'int(*)' or 'int(arbitrary)' or <your suggestion here>. Assuming we did go this routine, I suspect we'd put in the effort to have such bigints integrate in logical places where integers can be used, such as ranges. At present, I don't anticipate such integration of bigints being ready for the April 2016 release, but that could change based on feedback and reprioritization. -Brad On Thu, 19 Nov 2015, Elliot Ronaghan wrote: > Hi Russel, > > In my mind this is definitely a feature request. BigInt is just a class > that wraps GMP integers so it'd be wrong for the compiler to recognize it > as an integer. That said, I can certainly see the appeal for a range over > BigInts and I think there's a few different ways we could approach this. > > I don't think there's any existing feature requests for this, so we'd be > happy for you to file one. For this sort of thing, I think a .future in > our testing system would be appropriate. For more info on creating a > .future see: > > https://github.com/chapel-lang/chapel/blob/master/doc/developer/bestPractic > es/TestSystem.txt#L319-L379 > > Elliot > >> I notice that: >> >> new BigInt(1) .. new BigInt(10) >> >> results in the error: >> >> error: Bounds of '..' must be integers of compatible types, when >> specified. >> >> which implies the compiler believe BigInt is not an integer. I'm happy >> to post an issue, I am just wondering if this is already known so >> doesn't need reporting or should be reported as a bug or a feature. >> >> -- >> Russel. >> ========================================================================== >> === >> Dr Russel Winder t: +44 20 7585 2200 voip: >> sip:[email protected] >> 41 Buckmaster Road m: +44 7770 465 077 xmpp: [email protected] >> London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder > > > ------------------------------------------------------------------------------ > _______________________________________________ > Chapel-users mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/chapel-users > ------------------------------------------------------------------------------ Go from Idea to Many App Stores Faster with Intel(R) XDK Give your users amazing mobile app experiences with Intel(R) XDK. Use one codebase in this all-in-one HTML5 development environment. Design, debug & build mobile apps & 2D/3D high-impact games for multiple OSs. http://pubads.g.doubleclick.net/gampad/clk?id=254741911&iu=/4140 _______________________________________________ Chapel-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/chapel-users
