Re: assumeSafeAppend and purity

2012-02-08 Thread Steven Schveighoffer
On Tue, 07 Feb 2012 00:35:14 -0500, Jonathan M Davis wrote: On Monday, February 06, 2012 21:40:55 Steven Schveighoffer wrote: I thought of a better solution: pure T[] pureSafeShrink(T)(ref T[] arr, size_t maxLength) { if(maxLength < arr.length) { bool safeToShrink = (arr.cap

Re: assumeSafeAppend and purity

2012-02-07 Thread Timon Gehr
On 02/07/2012 03:48 AM, Steven Schveighoffer wrote: On Mon, 06 Feb 2012 21:32:05 -0500, Vladimir Panteleev wrote: On Tuesday, 7 February 2012 at 01:47:12 UTC, Jonathan M Davis wrote: At present, assumeSafeAppend isn't pure - nor is capacity or reserve. AFAIK, none of them access any global va

Re: assumeSafeAppend and purity

2012-02-06 Thread Jonathan M Davis
On Monday, February 06, 2012 21:40:55 Steven Schveighoffer wrote: > I thought of a better solution: > > pure T[] pureSafeShrink(T)(ref T[] arr, size_t maxLength) > { > if(maxLength < arr.length) > { > bool safeToShrink = (arr.capacity == arr.length); > arr = arr[0..maxLengt

Re: assumeSafeAppend and purity

2012-02-06 Thread Steven Schveighoffer
On Mon, 06 Feb 2012 21:32:05 -0500, Vladimir Panteleev wrote: On Tuesday, 7 February 2012 at 01:47:12 UTC, Jonathan M Davis wrote: At present, assumeSafeAppend isn't pure - nor is capacity or reserve. AFAIK, none of them access any global variables aside from GC-related stuff (and new is

Re: assumeSafeAppend and purity

2012-02-06 Thread Steven Schveighoffer
On Mon, 06 Feb 2012 21:28:49 -0500, Steven Schveighoffer wrote: On Mon, 06 Feb 2012 21:18:21 -0500, Vladimir Panteleev wrote: On Tuesday, 7 February 2012 at 02:02:22 UTC, Jonathan M Davis wrote: On Tuesday, February 07, 2012 02:54:40 Vladimir Panteleev wrote: On Tuesday, 7 February 201

Re: assumeSafeAppend and purity

2012-02-06 Thread Vladimir Panteleev
On Tuesday, 7 February 2012 at 01:47:12 UTC, Jonathan M Davis wrote: At present, assumeSafeAppend isn't pure - nor is capacity or reserve. AFAIK, none of them access any global variables aside from GC-related stuff (and new is already allowed in pure functions). All it would take to make them p

Re: assumeSafeAppend and purity

2012-02-06 Thread Steven Schveighoffer
On Mon, 06 Feb 2012 21:18:21 -0500, Vladimir Panteleev wrote: On Tuesday, 7 February 2012 at 02:02:22 UTC, Jonathan M Davis wrote: On Tuesday, February 07, 2012 02:54:40 Vladimir Panteleev wrote: On Tuesday, 7 February 2012 at 01:47:12 UTC, Jonathan M Davis wrote: > At present, assumeSafeA

Re: assumeSafeAppend and purity

2012-02-06 Thread Vladimir Panteleev
On Tuesday, 7 February 2012 at 02:02:22 UTC, Jonathan M Davis wrote: On Tuesday, February 07, 2012 02:54:40 Vladimir Panteleev wrote: On Tuesday, 7 February 2012 at 01:47:12 UTC, Jonathan M Davis wrote: > At present, assumeSafeAppend isn't pure - nor is capacity or > reserve. AFAIK, none of the

Re: assumeSafeAppend and purity

2012-02-06 Thread Jonathan M Davis
On Tuesday, February 07, 2012 02:54:40 Vladimir Panteleev wrote: > On Tuesday, 7 February 2012 at 01:47:12 UTC, Jonathan M Davis > > wrote: > > At present, assumeSafeAppend isn't pure - nor is capacity or > > reserve. AFAIK, none of them access any global variables aside > > from GC-related stuff

Re: assumeSafeAppend and purity

2012-02-06 Thread Vladimir Panteleev
On Tuesday, 7 February 2012 at 01:47:12 UTC, Jonathan M Davis wrote: At present, assumeSafeAppend isn't pure - nor is capacity or reserve. AFAIK, none of them access any global variables aside from GC-related stuff (and new is already allowed in pure functions). All it would take to make them p

assumeSafeAppend and purity

2012-02-06 Thread Jonathan M Davis
At present, assumeSafeAppend isn't pure - nor is capacity or reserve. AFAIK, none of them access any global variables aside from GC-related stuff (and new is already allowed in pure functions). All it would take to make them pure is to mark the declarations for the C functions that they call pur