Re: Starting Formal Review of std.process

2013-04-11 Thread Rory McGuire
Hi Jesse,

Is there any example code that uses it?

On Tue, Apr 9, 2013 at 6:48 PM, Jesse Phillips
jessekphillip...@gmail.comwrote:

 On Thursday, 4 April 2013 at 14:31:43 UTC, Jesse Phillips wrote:

 The changes for std.process are under review at:
 http://forum.dlang.org/thread/**gclsbrghhjitnfderoos@forum.**dlang.orghttp://forum.dlang.org/thread/gclsbrghhjitnfder...@forum.dlang.org

 std.process is improvements to the existing std.process and is a
 complete change to the API. The original API remains but these
 will be going through deprecation.

 The major change is support for redirecting stdin/stdout/stderr

 As review has been going for a month, I'm proposing we do a formal review
 for 1 week followed by a 1 week vote.


 As there has been no objection, Thursday PST will be the last Review day.
 Voting will start Friday/Thursday night.



Re: Justin Bieber booked for Dconf 2013!

2013-04-11 Thread deadalnix

On Wednesday, 3 April 2013 at 14:39:17 UTC, John Colvin wrote:

Take awful song.
apply Swedish virtuoso funk:
http://www.youtube.com/watch?v=KjVGJ3YFDc8

I now know the lyrics to many awful songs due to those guys.


That is awesome !

I love that one as well (starcraft player should enjoy) :

https://www.youtube.com/watch?v=fzMhh8zhTiY


Re: TDPL Japanese Edition

2013-04-11 Thread Masahiro Nakagawa

All,

Thank you for the reply!

Today, just delivered to Japanese programmers :)
April 8th was the presale date.


Masahiro

On Thursday, 4 April 2013 at 05:51:03 UTC, Masahiro Nakagawa 
wrote:

Hi guys,

I and Kenji are happy to announce TDPL Japanese edition will be 
published on April 8th in Japan. We are translation supervisor 
of this book.


Sample picture is here:

https://pathakacdn-a.akamaihd.net/photos2/7ace5e69-4d3c-497f-87fc-4fbd97c7ad8f/original.jpg

The official web page of the publisher Shoeisha:

http://books.shoeisha.co.jp/book/b108222.html (in japanese)

Of course, we applied latest changes and added some columns for 
new features, e.g. CTFE, lambda syntax and more. In addition, 
we strived to maintain Andrei's distinctive and lively language 
even through translation :)


Thanks to Andrei for writing TDPL and D community for keeping 
an active development. We hope this book becomes a stepping 
stone to further development.



Thanks,
Masahiro and Kenji




Re: Starting Formal Review of std.process

2013-04-11 Thread Jesse Phillips

On Thursday, 11 April 2013 at 08:27:24 UTC, Rory McGuire wrote:

Hi Jesse,

Is there any example code that uses it?


The docs provide examples
http://www.kyllingen.net/code/std-process2/phobos-prerelease/std_process.html

is there something insufficient about them?


Re: TDPL Japanese Edition

2013-04-11 Thread Walter Bright

On 4/3/2013 10:51 PM, Masahiro Nakagawa wrote:

The official web page of the publisher Shoeisha:

http://books.shoeisha.co.jp/book/b108222.html (in japanese)


The google translation:

http://translate.google.com/translate?sl=autotl=enjs=nprev=_thl=enie=UTF-8eotf=1u=http%3A%2F%2Fbooks.shoeisha.co.jp%2Fbook%2Fb108222.htmlact=url



Re: State of the forum

2013-04-11 Thread angel

He is totally right.
Everything, possibly except the the forum speed, is not related 
to no maintenance, rather plain bugs in implementation or design.


Re: State of the forum

2013-04-11 Thread Vladimir Panteleev

On Thursday, 11 April 2013 at 05:55:10 UTC, angel wrote:

He is totally right.
Everything, possibly except the the forum speed, is not related 
to no maintenance, rather plain bugs in implementation or 
design.


If they're as plain as you say, why don't you fix them? ;)

https://github.com/CyberShadow/DFeed


Re: dmd command line options bad design: -offilename, -Ddocdir etc.

2013-04-11 Thread Jacob Carlborg

On 2013-04-10 21:30, Walter Bright wrote:


I agree. The way to do it is to support both the old and the new ways
for now. Anyone want to do a pull req? Also, this should be put in
bugzilla as an enhancement request.


Preferably the code for the new syntax should be in its own 
module/function and not included directly in main.


--
/Jacob Carlborg


Re: State of the forum

2013-04-11 Thread Vladimir Panteleev

On Wednesday, 10 April 2013 at 16:25:03 UTC, ixid wrote:
The forum has a number of issues, is there anything practical 
that can be done to address them? A forum should really work.


You can collect more information about the issues you're 
experiencing, and file an issue, or even better, send a pull 
request to the forum's GitHub repository:


https://github.com/CyberShadow/DFeed


Regular forum errors (XHR error)
Posts disappearing after getting stuck in a waiting for message 
response loop


I have not experienced these issues. The next time it happens, 
please make a note of the exact time and the post you're 
attempting to send, and file an issue or contact me directly.



Broken up threads with the same title


The core issue is caused by Mailman rewriting Message-IDs. I know 
how to implement a workaround, but it requires reengineering the 
database (I need to store two IDs for each message, and account 
for both when reconstructing threads). This is planned for the 
next major update.



Often has layout errors when loading that require a refresh


Which web browser? If the HTML doesn't change (and I don't know 
why it would), it sounds like a bug with your browser's layout 
engine.


Works poorly/buggily on mobile browers (Android Stock/Android 
Chrome)


Please list some specific issues. Note that there is a limit to 
the post width, since many mail/news clients send text in a 
non-reflowable (pre-wrapped) format.


Also the user habit due to the combined use of the forum as an 
email discussion and as a website forum of repeating the whole 
of a post, often to respond with a one-liner. Posts without the 
whole email/context repeated receive complaints that people do 
not know what it is in response to.


I'll implement some warnings when a user attempts to post a 
message not conforming to netiquette.


Re: Disable GC entirely

2013-04-11 Thread Nick Sabalausky
On Wed, 10 Apr 2013 15:29:25 -0700
H. S. Teoh hst...@quickfur.ath.cx wrote:
 
 I wonder if this is why I enjoy retro games more -- they require less
 concentration and lots of fun can be had for not too much effort. I
 find that a lot of modern games seem to require a lot of
 concentration -- keeping track of a convoluted storyline, keeping
 track of one's 3D surroundings, being on one's toes to react quickly
 at surprise enemy attacks, etc.. After a full day's worth of coding,
 that's the last thing I want to be doing. Much better to relax with
 something that can be played in a more relaxed/casual way.
 

Strange, I find the exact opposite to true. I always felt this summed it
up perfectly:

http://semitwist.com/download/img/funny/digitalunrest-2008-09-29.jpg

(That said, I never thought MM9 was *as* hard as people made it out
to be. At first it seemed the same as all the older megaman's, and
then it wasn't long before I could get through the whole thing in about
an hour. Still one of the best games ever made, though. But if you want
a *really* hard MegaMan, try MegaMan  Bass. I'm totally stuck in
that.)

The last 10 or so years, big-budget games have tended to be designed
specifically so that anyone can get to the end without much effort.
The lack of challenge makes them tedious and boring.

For example, the Mario and Zelda games have done nothing but get
progressively easier sine the 80's (compare the battle system in the
original zelda to *any* 3D zelda - the former is an addictive
challenge, the latter is mindless button-mashing/waggle and
*vastly* easier.) New Mario is fun, but notably easier than Mario
1/2/3/64. And then there's the old Kid Icarus. *Phew!* - that's not for
the faint of heart. Most people don't even know that it has
zelda/Metroid-like dungeons or horizontal levels because they never got
past level 3.

As far as keeping track of a convoluted storyline, I rarely pay
attention to the stories/dialog/characters/etc anyway. There are
exceptions (like 2D JRPGs or Disgaea), but most games I just skip
through the dialog (9 times out of 10 it's both uninteresting and
irrelevant to the gameplay), and when a game doesn't let me skip a
cutscene or scripted event I'll just grab a drink or snack or hit the
can if I need to, or otherwise just hit Switch Inputs and find
something not-too-horrible on TV while I wait for the tell-tale sound
of a level being loaded off disc.



Re: Disable GC entirely

2013-04-11 Thread Jacob Carlborg

On 2013-04-10 18:49, Andrej Mitrovic wrote:


Just take a look at the upcoming changelog:

https://github.com/D-Programming-Language/d-programming-language.org/pull/303


It's great to see that we will have, what it looks like, a proper 
changelog of the next release.


--
/Jacob Carlborg


Re: Disable GC entirely

2013-04-11 Thread Paulo Pinto

On Wednesday, 10 April 2013 at 22:50:48 UTC, Walter Bright wrote:

On 4/7/2013 3:59 AM, Paulo Pinto wrote:
The current compilers just don't have the amount of investment 
in more than 20
years of code optimization like C++ has. You cannot expect to 
achieve that from

one moment to the other.


This is incorrect, as dmd, gdc, and ldc all use the backends of 
C++ compilers, and the code generated is as good as that of the 
corresponding C++ compiler.


Correct, assuming the frontend organizes the intermediate 
information in a way that the backend can make the best use of 
it, or am I wrong?


Re: Disable GC entirely

2013-04-11 Thread Paulo Pinto

On Wednesday, 10 April 2013 at 22:48:06 UTC, Walter Bright wrote:

On 4/6/2013 3:10 AM, Paulo Pinto wrote:
However there are cases where every byte and every ms matter, 
in those cases you

are still better with C, C++ and Fortran.


This is not correct.

If you care about every byte, you can make D code just as 
performant.


And by caring about every byte, you'll need to become as 
familiar with how D generates code, and the cost of what 
various features entail, as you would be in C++.


Same can be said for JVM and .NET languages.

Some of our consulting projects are conversion of C++ code into 
one of the said technologies. We usually achieve performance 
parity with the existing application.


With C, C++ and Fortran it is easier to achieve a certain 
performance level without effort, while the other languages 
require a bit of effort knowing the runtime, writing GC friendly 
data structures and algorithms, and doing performance analysis, 
but it achievable as well.


Many developers don't want to do this, hence my statement.

--
Paulo


Re: State of the forum

2013-04-11 Thread Mr. Anonymous
Also the user habit due to the combined use of the forum as an 
email discussion and as a website forum of repeating the whole 
of a post, often to respond with a one-liner. Posts without 
the whole email/context repeated receive complaints that 
people do not know what it is in response to.


I'll implement some warnings when a user attempts to post a 
message not conforming to netiquette.


A suggestion: Can you make the quotes hidden by default, like 
e.g. in Gmail or Google Groups?


That would be perfect.

(http://i.imgur.com/axuAFvz.png)


Re: DIP 36: Rvalue References

2013-04-11 Thread Dicebot

On Wednesday, 10 April 2013 at 07:43:57 UTC, Dicebot wrote:

...


Kenji, got any comments/objections on this point of view? It is 
not that late to change it back ;)


Re: Disable GC entirely

2013-04-11 Thread Walter Bright

On 4/10/2013 11:55 PM, Paulo Pinto wrote:

Some of our consulting projects are conversion of C++ code into one of the said
technologies. We usually achieve performance parity with the existing 
application.

With C, C++ and Fortran it is easier to achieve a certain performance level
without effort, while the other languages require a bit of effort knowing the
runtime, writing GC friendly data structures and algorithms, and doing
performance analysis, but it achievable as well.

Many developers don't want to do this, hence my statement.


I've seen enough performant C++ code to disagree with your statement. If they 
knew what was going on with how C++ implemented their constructions, they could 
get a lot better performance.


The second problem with writing performant C and C++ code is the difficulty of 
refactoring code to try different data structures  algorithms. Generally, one 
picks a design up front, and never changes it because it is too hard to change it.




Re: DIP 36: Rvalue References

2013-04-11 Thread kenji hara
I think 'scope ref' should always pass the address of given argument to the
function body. Because 'ref' always means pass the address of given
argument. So, if given argument is an rvalue, compiler will allocate a
temporary on stack, save the rvalue in it, and take its address. If
argument is an lvalue, take its address directly. It should be always true,
eve if the parameter type is small int.

Essentially language semantics should not reflect low level implementation
detail. After DIP36 is accepted, we will get a full set of tools for
efficiency - T, ref T, and scope ref T. From the toolbox, you can choose
the most efficient storage class based on the T.

void foo(MostEfficientParameters!(int, string, S, int[1024]) params) { ... }

Kenji Hara

2013/4/11 Dicebot m.stras...@gmail.com

 On Wednesday, 10 April 2013 at 07:43:57 UTC, Dicebot wrote:

 ...


 Kenji, got any comments/objections on this point of view? It is not that
 late to change it back ;)



Re: Disable GC entirely

2013-04-11 Thread Nick Sabalausky
On Wed, 10 Apr 2013 18:52:58 -0400
Jeff Nowakowski j...@dilacero.org wrote:

 On 04/10/2013 05:22 PM, Nick Sabalausky wrote:
 
  For many (admittedly, not all) of them, I really don't believe
  games is an accurate term (Don't misinterpret that into a
  statement of Only true 'games' are legitimate because I never
  said such a thing.)
 
 But that's essentially what you *are* saying by downplaying the
 gameplay that lies at the heart of the interactive movies you've
 used as examples.

That's because the heart of such games *isn't* the gameplay, it's the
storytelling. I'm not downplaying anything that the developers
themselves aren't already downplaying.

 It's the No True Scotsman fallacy.

No, you're just very persistent in trying to turn it into the No True
Scotsman fallacy. I'm merely using terminology to distinguish between
story-driven titles and gameplay-driven tiles. *YOU'RE* the one who's
falsely insisting that what I meant was Only the one type is
legitimate, despite my numerous statements to the contrary. How many
times to I have to tell you in various wordings, I'm *not* using
'interactive movie' pejoratively before you'll stop trying to tell me
what I meant?

 Let's take a
 statement from your original post:
 
 Modern  AAA/big-budget titles are interactive movies, not
 videogames, because their focus is story, dialog and cinematics, not
 gameplay.
 
 Which is untrue when it comes to games like BioShock or GTA. At the
 end of the day both games are mostly shooters along with other
 gameplay elements (like driving in GTA), and you will spend most of
 your time playing the game and not watching cinematics.

So we disagree on the categorization of a few titles. Big freaking deal.

 I gave you a
 canonical example of what would be an interactive movie, and you
 tried to wave it away because it really was an interactive movie.
 

That's a complete mischaracterization, and I find it interesting
that you've claimed that while *completely* ignoring my very clear
statement of:

Keep in mind, I'm using interactive movie largely for lack of a
better term.

Yes, obviously Heavy Rain is a canonical example of interactive
movie, and for goodness sake, I *AGREED* with you and yet you're still
complaining.

  It might be a bad thing if the industry focused too heavily on them,
  but that would be a completely different complaint.
 
 Which has been the essence of your complaint,

Now you're just flat-out quoting me out-of-context. Here it is with the
proper context re-added:

Keep in mind, even sandbox titles, which are definitely not
remotely interactive movie or cinematic at all (at least any
of the ones I've seen), have long been debated as to whether or
not they are games. And note that nobody ever said that was a
bad thing. It might be a bad thing if the industry focused too
heavily on them, but that would be a completely different complaint.

What that means when it's *not* deliberately twisted around is:

 The following are two completely *different* claims:

 A. Not being a game is an inherently bad thing.

 B. Too much indusrtry-wide focus on  (for whatever ) is a
 bad thing.

 I am claiming B and *NOT* A. Stop trying to tell me I'm claiming A.

See?

 based on how games used
 to be and your particular tastes, sounding a lot like a grumpy old
 man who thinks the industry is suffering because they don't make them
 like they used to:
 
 Maybe I'm just projecting my own tastes into this, or maybe this is 
 just because I don't have sales/profits/etc charts for the last 10-20 
 years to examine, but lately I'm finding it difficult to believe that 
 AAA games aren't becoming (or already) a mere niche, much like 
 high-performance sports cars. (Ie, big money, but small market.)
 
 Part of this is because, as I see it, the big/AAA games *as they
 used to exist* up until around the early 2000's don't seem to be
 around much anymore.
 

Oh for crap's sake. Yes, newer AAA/big-business games, on average, *do*
direct significantly more of their emphasis on story/dialog/cinematic
feel/etc than older ones. I was being diplomatic before, but that's
really undeniable. Do you think all that comes at no cost in
development resources? (Rhetorical, of course. I'm pointing out it's
rhetorical so I don't get accused of hyperbole or of actually
suggesting that you did think it didn't cost extra resources.) So that
requires more sales for sustainability, and then I went on with my
reasoning about diminishing audience - clearly marked with disclaimers
about my lack of certainly (which you've conveniently quoted for me
and also conveniently ignored).

And now you come along, slap the big generic grumpy old man don't
make them like they used to labels over the whole thing, and now I'm
supposed to believe not only that your poisoning the well tactics
somehow *aren't* a logical fallacy, but also that I'm the one being
categorically dismissive?


  And really, is it so damn horrible to have and voice a negative
  opinion 

Re: To help LDC/GDC

2013-04-11 Thread Joseph Rushton Wakeling
On 04/10/2013 08:39 PM, Walter Bright wrote:
 Sure there is. Declare the function as pure, and the function's parameters as
 const or immutable.

Sure, I accept that.  What I was meaning, though, was an up-front declaration
which would make the compiler shout if those necessary conditions were not met.

i.e.

   pure foo(int n) { ... } // compiles

   strong pure bar(int n) { ... } // compiler instructs you to make
  // variables const or immutable


Re: DIP 36: Rvalue References

2013-04-11 Thread Dicebot
You don't think exposing creation of temporaries is low level 
implementation

detail?

On Thursday, 11 April 2013 at 08:14:00 UTC, kenji hara wrote:

...

Kenji Hara


Re: Disable GC entirely

2013-04-11 Thread Paulo Pinto

On Thursday, 11 April 2013 at 08:03:53 UTC, Walter Bright wrote:

On 4/10/2013 11:55 PM, Paulo Pinto wrote:
Some of our consulting projects are conversion of C++ code 
into one of the said
technologies. We usually achieve performance parity with the 
existing application.


With C, C++ and Fortran it is easier to achieve a certain 
performance level
without effort, while the other languages require a bit of 
effort knowing the
runtime, writing GC friendly data structures and algorithms, 
and doing

performance analysis, but it achievable as well.

Many developers don't want to do this, hence my statement.


I've seen enough performant C++ code to disagree with your 
statement. If they knew what was going on with how C++ 
implemented their constructions, they could get a lot better 
performance.


The second problem with writing performant C and C++ code is 
the difficulty of refactoring code to try different data 
structures  algorithms. Generally, one picks a design up 
front, and never changes it because it is too hard to change it.


Fair enough, I have left the C daily coding on the job in 2002 
and C++ in 2005, so I can hardly consider myself an expert in 
optimization tricks in those languages.


Nowadays I get seldom the opportunity to write new C++ code on 
the job.


--
Paulo


Re: Disable GC entirely

2013-04-11 Thread Walter Bright

On 4/10/2013 11:57 PM, Paulo Pinto wrote:

On Wednesday, 10 April 2013 at 22:50:48 UTC, Walter Bright wrote:

On 4/7/2013 3:59 AM, Paulo Pinto wrote:

The current compilers just don't have the amount of investment in more than 20
years of code optimization like C++ has. You cannot expect to achieve that from
one moment to the other.


This is incorrect, as dmd, gdc, and ldc all use the backends of C++ compilers,
and the code generated is as good as that of the corresponding C++ compiler.


Correct, assuming the frontend organizes the intermediate information in a way
that the backend can make the best use of it, or am I wrong?


Of course.


Re: DIP 36: Rvalue References

2013-04-11 Thread kenji hara
2013/4/11 Dicebot m.stras...@gmail.com

 You don't think exposing creation of temporaries is low level
 implementation
 detail?


No. In this case, it is the purpose of 'scope ref', not is the
implementation details.

What is the language semantics and what is the implementation detail - that
varies depending on what is properly supported in the language. D
explicitly distinguishes lvalues and rvalues, and also defines that rvalue
cannot be taken its address (== reference).

The purpose of 'scope ref' is that the parameter can be received both
lvalues and rvalues with one function body. To receive lvalues, scope ref
should take the address of them. As a conclusion, to receive rvalues
temporary creation is necessary in caller site.

Yes, it mostly represents implementation details, but it is still
description of language semantics.
This confusion is almost inevitable. Because the essential purpose of
'scope ref' is already efficiency.

Furthermore, note that the desired efficiency is not the speed of
argument passing.
I recognize that it is to avoid code bloating of function body. If you
need most efficient argument passing, you should choose it from the
argument type. 'scope ref' is not a thing to make the choice automatic.

Kenji Hara


Re: DIP 36: Rvalue References

2013-04-11 Thread Dicebot

On Thursday, 11 April 2013 at 09:27:11 UTC, kenji hara wrote:

No. In this case, it is the purpose of 'scope ref', not is the
implementation details.

What is the language semantics and what is the implementation 
detail - that
varies depending on what is properly supported in the language. 
D
explicitly distinguishes lvalues and rvalues, and also defines 
that rvalue

cannot be taken its address (== reference).

The purpose of 'scope ref' is that the parameter can be 
received both
lvalues and rvalues with one function body. To receive lvalues, 
scope ref
should take the address of them. As a conclusion, to receive 
rvalues

temporary creation is necessary in caller site.

Yes, it mostly represents implementation details, but it is 
still

description of language semantics.
This confusion is almost inevitable. Because the essential 
purpose of

'scope ref' is already efficiency.

Furthermore, note that the desired efficiency is not the 
speed of

argument passing.
I recognize that it is to avoid code bloating of function 
body. If you
need most efficient argument passing, you should choose it 
from the
argument type. 'scope ref' is not a thing to make the choice 
automatic.


Kenji Hara


I trust your judgement then, will update DIP then. But I am still 
afraid of confusion.


Re: DIP 36: Rvalue References

2013-04-11 Thread Jonas Drewsen


Isn's it too strict? The following example would not work because 
you cannot take the address of the parameter. But it would still 
be nice to have it passed by ref and scoped:


struct Item
{
   int data;
   Item* next;
}

void printThem(const scope ref Item first)
{
auto it = first;
while (it)
{
std.stdio.writeln(*it);
it = it.next;
}
}


/Jonas


Re: To help LDC/GDC

2013-04-11 Thread deadalnix

On Thursday, 11 April 2013 at 00:41:01 UTC, Walter Bright wrote:

On 4/10/2013 5:33 PM, deadalnix wrote:
call with const parameter can be considered strongly pure if 
the argument is

immutable


The argument doesn't need to be immutable because nobody can 
change it while the function is running.


I explained the sentence just above how it is possible. Ignoring 
issue rarely help when it come to solve them.


Re: To help LDC/GDC

2013-04-11 Thread deadalnix
On Thursday, 11 April 2013 at 08:36:13 UTC, Joseph Rushton 
Wakeling wrote:

On 04/10/2013 08:39 PM, Walter Bright wrote:
Sure there is. Declare the function as pure, and the 
function's parameters as

const or immutable.


Sure, I accept that.  What I was meaning, though, was an 
up-front declaration
which would make the compiler shout if those necessary 
conditions were not met.


i.e.

   pure foo(int n) { ... } // compiles

   strong pure bar(int n) { ... } // compiler instructs you 
to make
  // variables const or 
immutable


Both are strongly pure.


Re: To help LDC/GDC

2013-04-11 Thread Simen Kjærås

On Thu, 11 Apr 2013 12:03:38 +0200, deadalnix deadal...@gmail.com wrote:

On Thursday, 11 April 2013 at 08:36:13 UTC, Joseph Rushton Wakeling  
wrote:

On 04/10/2013 08:39 PM, Walter Bright wrote:
Sure there is. Declare the function as pure, and the function's  
parameters as

const or immutable.


Sure, I accept that.  What I was meaning, though, was an up-front  
declaration
which would make the compiler shout if those necessary conditions were  
not met.


i.e.

   pure foo(int n) { ... } // compiles

   strong pure bar(int n) { ... } // compiler instructs you to make
  // variables const or immutable


Both are strongly pure.


That's not the point. The point is, if he'd written this:

  strong pure bar(int* n) { ... }

The compiler would have said 'Bad programmer! int* is not implicitly
castable to immutable!'

--
Simen


Re: To help LDC/GDC

2013-04-11 Thread John Colvin

On Thursday, 11 April 2013 at 10:03:39 UTC, deadalnix wrote:
On Thursday, 11 April 2013 at 08:36:13 UTC, Joseph Rushton 
Wakeling wrote:

On 04/10/2013 08:39 PM, Walter Bright wrote:
Sure there is. Declare the function as pure, and the 
function's parameters as

const or immutable.


Sure, I accept that.  What I was meaning, though, was an 
up-front declaration
which would make the compiler shout if those necessary 
conditions were not met.


i.e.

  pure foo(int n) { ... } // compiles

  strong pure bar(int n) { ... } // compiler instructs you 
to make
 // variables const or 
immutable


Both are strongly pure.


is foo strongly pure because of n being a value type that cannot 
contain any indirection? (i.e. as far as the outside world is 
concerned you don't get any side effects whatever you do with it).


Is the same for structs that contain no indirection? Or do they 
have to be const/immutable?


Re: To help LDC/GDC

2013-04-11 Thread kenji hara
2013/4/11 John Colvin john.loughran.col...@gmail.com

 On Thursday, 11 April 2013 at 10:03:39 UTC, deadalnix wrote:

 On Thursday, 11 April 2013 at 08:36:13 UTC, Joseph Rushton Wakeling wrote:

 On 04/10/2013 08:39 PM, Walter Bright wrote:

 Sure there is. Declare the function as pure, and the function's
 parameters as
 const or immutable.


 Sure, I accept that.  What I was meaning, though, was an up-front
 declaration
 which would make the compiler shout if those necessary conditions were
 not met.

 i.e.

   pure foo(int n) { ... } // compiles

   strong pure bar(int n) { ... } // compiler instructs you to make
  // variables const or immutable


 Both are strongly pure.


 is foo strongly pure because of n being a value type that cannot contain
 any indirection? (i.e. as far as the outside world is concerned you don't
 get any side effects whatever you do with it).

 Is the same for structs that contain no indirection? Or do they have to be
 const/immutable?


It is same for structs that has no *mutable* indirections. In below, all
functions are strongly pure.

module x;
struct S1 { int n; }
struct S2 { immutable int[] arr; }
struct S3 { int[] arr; }

pure int foo0(int n);
pure int foo1(S1);   // S1 has no indirections
pure int foo2(S2);   // S2 has no *mutable* indirections
pure int foo3(immutable ref S3 x);   // foo3 cannot access any mutable
indirections

Kenji Hara


Re: dmd command line options bad design: -offilename, -Ddocdir etc.

2013-04-11 Thread Jonas Drewsen

AFAIK most unix tools have two formats: long and short.

long:
dmd --foobar-dir=/somewhere/over/the/rainbow

short:
dmd -f /somewhere/over/the/rainbow

Most programs supports both. I think that would be the way to go.

/Jonas


Re: To help LDC/GDC

2013-04-11 Thread John Colvin

On Thursday, 11 April 2013 at 10:27:55 UTC, kenji hara wrote:

2013/4/11 John Colvin john.loughran.col...@gmail.com


On Thursday, 11 April 2013 at 10:03:39 UTC, deadalnix wrote:

On Thursday, 11 April 2013 at 08:36:13 UTC, Joseph Rushton 
Wakeling wrote:



On 04/10/2013 08:39 PM, Walter Bright wrote:

Sure there is. Declare the function as pure, and the 
function's

parameters as
const or immutable.



Sure, I accept that.  What I was meaning, though, was an 
up-front

declaration
which would make the compiler shout if those necessary 
conditions were

not met.

i.e.

  pure foo(int n) { ... } // compiles

  strong pure bar(int n) { ... } // compiler instructs 
you to make
 // variables const or 
immutable




Both are strongly pure.



is foo strongly pure because of n being a value type that 
cannot contain
any indirection? (i.e. as far as the outside world is 
concerned you don't

get any side effects whatever you do with it).

Is the same for structs that contain no indirection? Or do 
they have to be

const/immutable?



It is same for structs that has no *mutable* indirections. In 
below, all

functions are strongly pure.

module x;
struct S1 { int n; }
struct S2 { immutable int[] arr; }
struct S3 { int[] arr; }

pure int foo0(int n);
pure int foo1(S1);   // S1 has no indirections
pure int foo2(S2);   // S2 has no *mutable* indirections
pure int foo3(immutable ref S3 x);   // foo3 cannot access any 
mutable

indirections

Kenji Hara


right, gotcha!


Re: To help LDC/GDC

2013-04-11 Thread Joseph Rushton Wakeling
On 04/11/2013 12:03 PM, deadalnix wrote:
 Both are strongly pure.

Perhaps the fact that I can have this misunderstanding is itself an argument for
an explicit strong pure keyword, so that a daft bugger like me can really be
sure he's getting what he thinks he's getting? :-)

Apart from that, I think Simen replied better than I could ...


Re: To help LDC/GDC

2013-04-11 Thread deadalnix

On Thursday, 11 April 2013 at 10:16:39 UTC, John Colvin wrote:

On Thursday, 11 April 2013 at 10:03:39 UTC, deadalnix wrote:
On Thursday, 11 April 2013 at 08:36:13 UTC, Joseph Rushton 
Wakeling wrote:

On 04/10/2013 08:39 PM, Walter Bright wrote:
Sure there is. Declare the function as pure, and the 
function's parameters as

const or immutable.


Sure, I accept that.  What I was meaning, though, was an 
up-front declaration
which would make the compiler shout if those necessary 
conditions were not met.


i.e.

 pure foo(int n) { ... } // compiles

 strong pure bar(int n) { ... } // compiler instructs you 
to make
// variables const or 
immutable


Both are strongly pure.


is foo strongly pure because of n being a value type that 
cannot contain any indirection? (i.e. as far as the outside 
world is concerned you don't get any side effects whatever you 
do with it).


Is the same for structs that contain no indirection? Or do they 
have to be const/immutable?


I don't know what the current implementation says, but it should 
be.


Re: Disable GC entirely

2013-04-11 Thread Jeff Nowakowski

On 04/11/2013 04:17 AM, Nick Sabalausky wrote:


No, you're just very persistent in trying to turn it into the No True
Scotsman fallacy. I'm merely using terminology to distinguish between
story-driven titles and gameplay-driven tiles.


Then you could call them story-driven games instead of interactive 
movies, and also acknowledge that the gameplay element is still a 
strong component. Your insistence on denying the massive amounts of 
gaming elements that are still part of these titles shows you have an ax 
to grind, backed up by the fact that you even started your argument by 
saying your personal tastes may have been informing your theories.



So we disagree on the categorization of a few titles. Big freaking deal.


Since it's the heart of your argument, it is a big deal.


Yes, obviously Heavy Rain is a canonical example of interactive
movie, and for goodness sake, I *AGREED* with you and yet you're still
complaining.


You just have a funny way of agreeing, what I'll call disagreeable agreeing.


Oh for crap's sake. Yes, newer AAA/big-business games, on average, *do*
direct significantly more of their emphasis on story/dialog/cinematic
feel/etc than older ones.


Yes, there's no doubt about that, and do you know *why* they do this? 
It's because, just like movies, these big budget cinematic games tend to 
sell a whole lot more, both in quantity and dollar volume. And just like 
the movies, it's also a big risk. But they are still games, and it's the 
gamers who flock to these blockbuster titles.


As an aside, the interesting thing about GTA, especially GTA3, is that 
the budget wasn't about the movie elements, of which there were few. It 
was about creating an immersive *environment*. It's really the artwork 
that costs so much money. There was also a story arc, but you can find 
stories in games going back decades.


As to why the industry is sick, in Manu's terms, it's probably just 
competition with other forms of entertainment given the mobile 
explosion. The games industry did very well post 2000, despite the move 
to cinematic experiences.



And now you come along, slap the big generic grumpy old man don't
make them like they used to labels over the whole thing, and now I'm
supposed to believe not only that your poisoning the well tactics
somehow *aren't* a logical fallacy, but also that I'm the one being
categorically dismissive?


Yet your pet theory does amount to how they don't make them like they 
used to, and maybe that's the reason the industry is failing, which 
sounds a lot like a grumpy-old-man complaint, doesn't it? Along with 
your usual ranting, of course.


Last post for me.


Re: dmd command line options bad design: -offilename, -Ddocdir etc.

2013-04-11 Thread Andrej Mitrovic
On 4/11/13, Jonas Drewsen nospam4...@hotmail.com wrote:
 AFAIK most unix tools have two formats: long and short.

 long:
 dmd --foobar-dir=/somewhere/over/the/rainbow

 short:
 dmd -f /somewhere/over/the/rainbow

 Most programs supports both. I think that would be the way to go.

RDMD works on the assumption that its flags begin with -- and DMD's
flags with -. There's no need to invent new short/long switches, we
just need an equals sign to make it visually clear.

Also using spaces might be a bad idea, you might end up doing the
wrong thing if you call DMD incorrectly (e.g. a result of a wrong
expansion in a shell script), for example:

$ dmd -of foo.d bar.d

Currently this is an error, the user forgot to specify the -of switch.
If spaces were ok then this becomes the equivalent of:

$ dmd -offoo.d bar.d

I'd rather be safe than sorry and allow either -offoo or -of=foo. It
will catch errors this way rather than do something unexpected.


PHP extension in D

2013-04-11 Thread gedaiu

Hi,

I want to extend Php with an extension written in D, and wrap 
some D classes in php. My questions are:


1. How I can build a static library(I am using eclipse with ddt)
2. How I can create methods and create objects in c++ from the D 
library.



Thanks,
Bogdan


Re: PHP extension in D

2013-04-11 Thread Denis Shelomovskij

11.04.2013 15:28, gedaiu пишет:

Hi,

I want to extend Php with an extension written in D, and wrap some D
classes in php. My questions are:

1. How I can build a static library(I am using eclipse with ddt)
2. How I can create methods and create objects in c++ from the D library.


Post such questions to digitalmars.D.learn, please.

--
Денис В. Шеломовский
Denis V. Shelomovskij


Re: dmd command line options bad design: -offilename, -Ddocdir etc.

2013-04-11 Thread Jonas Drewsen

On Thursday, 11 April 2013 at 11:16:08 UTC, Andrej Mitrovic wrote:

On 4/11/13, Jonas Drewsen nospam4...@hotmail.com wrote:

AFAIK most unix tools have two formats: long and short.

long:
dmd --foobar-dir=/somewhere/over/the/rainbow

short:
dmd -f /somewhere/over/the/rainbow

Most programs supports both. I think that would be the way to 
go.


RDMD works on the assumption that its flags begin with -- and 
DMD's
flags with -. There's no need to invent new short/long 
switches, we

just need an equals sign to make it visually clear.


By I think that would be the way to go I did not necessary 
refer to having both formats supported at the same time but 
simply to use the standard way that people know.


Also using spaces might be a bad idea, you might end up doing 
the
wrong thing if you call DMD incorrectly (e.g. a result of a 
wrong

expansion in a shell script), for example:

$ dmd -of foo.d bar.d

Currently this is an error, the user forgot to specify the -of 
switch.

If spaces were ok then this becomes the equivalent of:

$ dmd -offoo.d bar.d

I'd rather be safe than sorry and allow either -offoo or 
-of=foo. It

will catch errors this way rather than do something unexpected.


You may not like using spaces but it is a widespread standard and 
I think deviating is not the way to go. Anyway - this is turning 
into a bikeshed coloring discussion I guess :)


/Jonas



Re: State of the forum

2013-04-11 Thread ixid
A suggestion: Can you make the quotes hidden by default, like 
e.g. in Gmail or Google Groups?


That would be ideal.



Re: Disable GC entirely

2013-04-11 Thread Johannes Pfau
Am Thu, 11 Apr 2013 00:11:05 +1000
schrieb Manu turkey...@gmail.com:

 
  Btw: implementing -vgc shouldn't be too difficult: We have to
  check all runtime hooks
  ( 
  http://wiki.dlang.org/Runtime_**Hookshttp://wiki.dlang.org/Runtime_Hooks)
  for allocations, then check all places in dmd where calls to those
  hooks are emitted.
 
 
  It's actually very easy to find hidden allocations. If you remove
  the gc entierly from the runtime hidden allocations will cause
  linker errors.
 
 
 Not a particularly user-friendly approach. I'd rather think of some
 proper tools/mechanisms to help in this area :)
 

I like
test-vgc.d(9) vgc[CONCAT]: (a ~ b) causes gc allocation
a lot more than
undefined reference to gc_alloc ;-)

I posted a proof of concept pull request here:
https://github.com/D-Programming-Language/dmd/pull/1886

It needs some work but maybe it will be ready for 2.063. Would be
great if both of you could comment there as you probably have most
experience in avoiding the GC :-)


Re: To help LDC/GDC

2013-04-11 Thread Jacob Carlborg

On 2013-04-11 12:09, Simen Kjærås wrote:


That's not the point. The point is, if he'd written this:

   strong pure bar(int* n) { ... }

The compiler would have said 'Bad programmer! int* is not implicitly
castable to immutable!'


What's the point of that. Just have strong mean const/immutable 
parameters.


--
/Jacob Carlborg


Re: dmd command line options bad design: -offilename, -Ddocdir etc.

2013-04-11 Thread Jacob Carlborg

On 2013-04-11 12:25, Jonas Drewsen wrote:

AFAIK most unix tools have two formats: long and short.

long:
dmd --foobar-dir=/somewhere/over/the/rainbow

short:
dmd -f /somewhere/over/the/rainbow

Most programs supports both. I think that would be the way to go.


For some reason compilers seem to only use a single dash for all 
formats. That is true for DMD, GCC and Clang.


--
/Jacob Carlborg


Re: To help LDC/GDC

2013-04-11 Thread Joseph Rushton Wakeling
On 04/11/2013 03:29 PM, Jacob Carlborg wrote:
 What's the point of that. Just have strong mean const/immutable parameters.

The point is to have a way for me, the programmer, to say to the compiler: I
mean for this function to be strongly pure, can you confirm whether my choice of
function inputs supports this please?


Re: To help LDC/GDC

2013-04-11 Thread Iain Buclaw
On 11 April 2013 11:09, Simen Kjærås simen.kja...@gmail.com wrote:

 On Thu, 11 Apr 2013 12:03:38 +0200, deadalnix deadal...@gmail.com wrote:

  On Thursday, 11 April 2013 at 08:36:13 UTC, Joseph Rushton Wakeling wrote:

 On 04/10/2013 08:39 PM, Walter Bright wrote:

 Sure there is. Declare the function as pure, and the function's
 parameters as
 const or immutable.


 Sure, I accept that.  What I was meaning, though, was an up-front
 declaration
 which would make the compiler shout if those necessary conditions were
 not met.

 i.e.

pure foo(int n) { ... } // compiles

strong pure bar(int n) { ... } // compiler instructs you to make
   // variables const or immutable


 Both are strongly pure.


 That's not the point. The point is, if he'd written this:

   strong pure bar(int* n) { ... }

 The compiler would have said 'Bad programmer! int* is not implicitly
 castable to immutable!'


Great, just what we need.  A compiler that barrages the user about how bad
his code is, then dies...

/sarcasm

-- 
Iain Buclaw

*(p  e ? p++ : p) = (c  0x0f) + '0';


Re: To help LDC/GDC

2013-04-11 Thread Iain Buclaw
On 11 April 2013 14:38, Joseph Rushton Wakeling 
joseph.wakel...@webdrake.net wrote:

 On 04/11/2013 03:29 PM, Jacob Carlborg wrote:
  What's the point of that. Just have strong mean const/immutable
 parameters.

 The point is to have a way for me, the programmer, to say to the compiler:
 I
 mean for this function to be strongly pure, can you confirm whether my
 choice of
 function inputs supports this please?


I think that giving the user choice of purity is about as useful as given
user choice over what functions should be inlined, or what vars should go
in registers.

Such decisions are best left to the compiler devs judgement on doing the
right thing for you.  Even if they sometimes get it wrong. :o)

-- 
Iain Buclaw

*(p  e ? p++ : p) = (c  0x0f) + '0';


Re: To help LDC/GDC

2013-04-11 Thread Joseph Rushton Wakeling
On 04/11/2013 03:49 PM, Iain Buclaw wrote:
 Great, just what we need.  A compiler that barrages the user about how bad his
 code is, then dies...

Compiler says no ...



Re: To help LDC/GDC

2013-04-11 Thread Joseph Rushton Wakeling
On 04/11/2013 03:53 PM, Iain Buclaw wrote:
 I think that giving the user choice of purity is about as useful as given user
 choice over what functions should be inlined, or what vars should go in 
 registers.

Well, I don't mean the compiler should guarantee that my code will be optimized
in a certain way, but it's handy to be able to verify that it _qualifies_ for
those optimizations.

That said, I think my suggestion is a minor convenience feature, and is much,
much less important than ironing out the design/implementation issues that
others have raised in this thread.

 Such decisions are best left to the compiler devs judgement on doing the right
 thing for you.  Even if they sometimes get it wrong. :o)

What??!!  You guys get it wrong sometimes??!! :-O


Re: Order of destruction when garbage collection kicks in

2013-04-11 Thread Steven Schveighoffer
On Wed, 10 Apr 2013 05:48:30 -0400, Henning Pohl henn...@still-hidden.de  
wrote:


Any instance of B always needs to be destructed _before_ the A it's  
connected to. How do you express this in D?


You must not rely on the GC if you need ordered destruction.

Even though destructors CAN destroy other resources, it's almost always  
better to use manual destruction.  Consider that you almost certainly have  
more memory available than limited resources (such as file handles).  If  
you rely on the GC to destroy that resource (and the GC is not guaranteed  
to always destroy it), then it's possible you run out of file handles  
before the memory that owns it is collected.


I recommend you introduce destruction methods to close the handles  
manually outside the GC.  Then if you happen to forget to close those  
manually, as a fail-safe have A destroy its a_handle (which would destroy  
all the b_handles, right?) in the destructor.


A simple example to explain this is a buffered stream.  Imagine you have a  
class which contains GC-managed array as a buffer, and the OS file handle.


Upon destruction, it would be best if the buffered stream wrote whatever  
buffered data was left into the file handle, but since the GC may have  
destroyed the buffer, we can't do that.  So you have to put a warning in  
the docs not to rely on the GC to destroy the stream.


It really requires a change in philosophy -- do not let the GC clean up  
non-memory resources.  Use manual methods to do that.


-Steve


Re: dmd command line options bad design: -offilename, -Ddocdir etc.

2013-04-11 Thread Andrej Mitrovic
On 4/11/13, Jonas Drewsen nospam4...@hotmail.com wrote:
 By I think that would be the way to go I did not necessary
 refer to having both formats supported at the same time but
 simply to use the standard way that people know.

Unix != universal standard.


Re: dmd command line options bad design: -offilename, -Ddocdir etc.

2013-04-11 Thread John Colvin

On Thursday, 11 April 2013 at 15:15:09 UTC, Andrej Mitrovic wrote:

On 4/11/13, Jonas Drewsen nospam4...@hotmail.com wrote:

By I think that would be the way to go I did not necessary
refer to having both formats supported at the same time but
simply to use the standard way that people know.


Unix != universal standard.


Next best thing.


Re: DConf 2013 official car/room sharing thread

2013-04-11 Thread Iain Buclaw
On 25 March 2013 05:29, Mike Parker aldac...@gmail.com wrote:

 On Sunday, 24 March 2013 at 21:32:12 UTC, Andrei Alexandrescu wrote:

 Hello to all prospective DConf 2013 attendees!

 A few of you are interested in sharing options for rental cars, or to
 share hotel rooms and split the cost in half.

 Let this thread be the official tracker for such requests and offers.
 I'll also post a link to this thread on http://dconf.org/venue.html. If
 necessary, we'll also post important related notices there.

 So, just reply to this with your offers and requests!


 Thanks,

 Andrei


 I'll be in the Comfort Inn in Redwood City with a 7-passenger mini-van.
 I'll be happy to pick people up along the route to FB.



I'll be at http://goo.gl/maps/vNGCt

Which according to maps is 10 minutes out of your way.

Regards
-- 
Iain Buclaw

*(p  e ? p++ : p) = (c  0x0f) + '0';


Re: DConf 2013 official car/room sharing thread

2013-04-11 Thread Mike Parker

On Thursday, 11 April 2013 at 15:29:08 UTC, Iain Buclaw wrote:

On 25 March 2013 05:29, Mike Parker aldac...@gmail.com wrote:




I'll be in the Comfort Inn in Redwood City with a 7-passenger 
mini-van.

I'll be happy to pick people up along the route to FB.




I'll be at http://goo.gl/maps/vNGCt

Which according to maps is 10 minutes out of your way.



I think I can manage that. Assuming I don't oversleep!


Re: DConf 2013 official car/room sharing thread

2013-04-11 Thread Andrei Alexandrescu
I'll stay at Aloft (http://goo.gl/CHmzw) and will drive a compact 
rental. Will gladly pick up people to and fro that hotel.


Andrei


Re: Formal Review of std.process

2013-04-11 Thread Steven Schveighoffer

A couple minor comments:

1. I have two issues with Error being used.  One is that we should have a  
specific type that is thrown, not raw Error type.  Second is that I think  
in situations where the error is due to an incorrect parameter, it should  
be an exception not an error (and not a straight Exception either!).
2. For the documentation of inheritFDs, it says that On Windows, this  
option has no effect.  While this is true, it may give the impression  
that we don't set the bInheritHandles flag, which we do.  I think there  
should be a note on that somewhere.


Otherwise, the API and functionality looks good!

-Steve


Re: DConf 2013 official car/room sharing thread

2013-04-11 Thread Iain Buclaw
On 11 April 2013 16:39, Mike Parker aldac...@gmail.com wrote:

 On Thursday, 11 April 2013 at 15:29:08 UTC, Iain Buclaw wrote:

 On 25 March 2013 05:29, Mike Parker aldac...@gmail.com wrote:



 I'll be in the Comfort Inn in Redwood City with a 7-passenger mini-van.
 I'll be happy to pick people up along the route to FB.



 I'll be at http://goo.gl/maps/vNGCt

 Which according to maps is 10 minutes out of your way.


 I think I can manage that. Assuming I don't oversleep!


Infact, for an an extra £600 (and arrive and depart at SJC) - could stay in
Four Seasons, which is a 10 minute cycle away... if I rent a bicycle...

Squeezing my pockets and going to make a decision 

-- 
Iain Buclaw

*(p  e ? p++ : p) = (c  0x0f) + '0';


Re: Disable GC entirely

2013-04-11 Thread Rob T

On Thursday, 11 April 2013 at 04:23:07 UTC, xenon325 wrote:
On Wednesday, 10 April 2013 at 16:08:53 UTC, Andrei 
Alexandrescu wrote:
It may as well be a mistake that nonvirtual functions are at 
all part of a class' methods. This has been quite painfully 
seen in C++ leading to surprising conclusions: 
http://goo.gl/dqZrr.


Non-Member Functions Improve Encapsulation is invalid for D 
because of implicit friends.


It was discussed before: 
http://forum.dlang.org/post/op.wbyg2ywyeav7ka@localhost.localdomain


--
Alexander


In some ways, implicit friends is the analogous to implicit 
virtual. With implied virtual you can at least state final for 
a reversal but with implied friends there's no way out other than 
through band-aid measures which cause headaches.


Really, the generality of the problem is analogous to the reasons 
why you do not allow implicit data typing or worse, implicit 
declarations. So in D a fundamental rule is being violated. IMO, 
everything should be explicit unless the intention can be 
calculated to be 100% certain (i.e., no possible alternatives). 
For example auto in D is fine, because the data typing is 
certain, but a data type of a value in a JSON struct being 
defined by the value is wrong, eg maybe the 0 (integer) was 
supposed to be 0.0 (real).


BTW, the UFCS solution to non-virtual methods creates the old C++ 
problem of constantly re-typing in the same symbol name of the 
class for every external member function. Not fun. Some syntactic 
sugar may help, perhaps clever use of template's, I don't know.


--rt


Re: dmd command line options bad design: -offilename, -Ddocdir etc.

2013-04-11 Thread Paulo Pinto

Am 11.04.2013 17:20, schrieb John Colvin:

On Thursday, 11 April 2013 at 15:15:09 UTC, Andrej Mitrovic wrote:

On 4/11/13, Jonas Drewsen nospam4...@hotmail.com wrote:

By I think that would be the way to go I did not necessary
refer to having both formats supported at the same time but
simply to use the standard way that people know.


Unix != universal standard.


Next best thing.


Actually I would like to know how the desktop world would look like
had Apple bought BeOS instead.

This would mean no UNIX on the desktop, assuming Apple would have
won a similar market as of today.

--
Paulo


Re: Disable GC entirely

2013-04-11 Thread Nick Sabalausky
On Thu, 11 Apr 2013 06:57:05 -0400
Jeff Nowakowski j...@dilacero.org wrote:

 Your insistence on denying the massive amounts of 
 gaming elements that are still part of these titles shows you have an
 ax to grind,
 

Generic gameplay is not massive amounts of gaming elements, but
that's not what you're *really* interested in discussing is it?

You're *still* starting from your purely-fabricated assertion that I'm
just trying to be nasty, which *you've* decided to be true *solely
because* you've decided it to be true. Then you blatantly ignore
everything I say to the contrary and repeatedly use your own personal
attacks as *their own* proof.

Clearly you're not interested in even attempting a remotely rational
discussion. The only thing you care to do is repeatedly bang your
tired old You're being a grumpy old man drum of a complete
non-argument.

I'm sorry I've given you the benefit of the doubt as to your true
intent in all this and actually read all of your asinine claims up to
now, but I'm not bothering reading the rest of this clearly twisted
post of yours, nor will I be reading anything more from you in this
thread. Maybe you'll be willing to be sensible in other discussions.



Re: DConf 2013 official car/room sharing thread

2013-04-11 Thread Ali Çehreli

I live in Mountain View, 15-30 minutes away from the venue.

I can drive only one other person in my two-seater. :/

Ali



Re: Disable GC entirely

2013-04-11 Thread H. S. Teoh
On Thu, Apr 11, 2013 at 02:39:01AM -0400, Nick Sabalausky wrote:
 On Wed, 10 Apr 2013 15:29:25 -0700
 H. S. Teoh hst...@quickfur.ath.cx wrote:
  
  I wonder if this is why I enjoy retro games more -- they require
  less concentration and lots of fun can be had for not too much
  effort. I find that a lot of modern games seem to require a lot of
  concentration -- keeping track of a convoluted storyline, keeping
  track of one's 3D surroundings, being on one's toes to react quickly
  at surprise enemy attacks, etc.. After a full day's worth of coding,
  that's the last thing I want to be doing. Much better to relax with
  something that can be played in a more relaxed/casual way.
  
 
 Strange, I find the exact opposite to true. I always felt this summed it
 up perfectly:
 
 http://semitwist.com/download/img/funny/digitalunrest-2008-09-29.jpg
 
 (That said, I never thought MM9 was *as* hard as people made it out
 to be. At first it seemed the same as all the older megaman's, and
 then it wasn't long before I could get through the whole thing in about
 an hour. Still one of the best games ever made, though. But if you want
 a *really* hard MegaMan, try MegaMan  Bass. I'm totally stuck in
 that.)
 
 The last 10 or so years, big-budget games have tended to be designed
 specifically so that anyone can get to the end without much effort.
 The lack of challenge makes them tedious and boring.

OK, now I'm not so sure what I meant anymore, because I find this tedium
and bore really tiring, whereas something like, say, the ancient Lode
Runner with its incredibly complicated time-sensitive maneuvres is
actually stimulating and, paradoxically enough, relaxing. OTOH, things
like Quake and other FPSes I find exhausting, even if they're no more
than mindless shoot-everything-that-moves deals.  Maybe the difference
lies in the simplicity of rules in the older 2D games -- yes they can be
challenging but the mechanics are easy to grasp, whereas in 3D
environments, the complexity of movement possibilities can be
overwhelming.

Big-budget hold-your-hand games, OTOH, are tiring in another way, in a
click-through ads kinda way. I have very little patience for anything
with video clips, 'cos I rather be doing stuff instead of watching a
video (I might as well watch youtube instead, etc.), yet I feel like I
can't really get into the game if I don't endure through all those
clips, 'cos I might miss some interesting game-world exposition or
important story twist, etc.. So the result is that it's very tiring.

But maybe this all just reflects my personal biases, and has nothing to
do with what is objectively tiring / difficult / etc..


 For example, the Mario and Zelda games have done nothing but get
 progressively easier sine the 80's (compare the battle system in the
 original zelda to *any* 3D zelda - the former is an addictive
 challenge, the latter is mindless button-mashing/waggle and *vastly*
 easier.) New Mario is fun, but notably easier than Mario 1/2/3/64. And
 then there's the old Kid Icarus. *Phew!* - that's not for the faint of
 heart. Most people don't even know that it has zelda/Metroid-like
 dungeons or horizontal levels because they never got past level 3.

Hmm. I beat nethack. Several times. I don't know of any other game that
is as difficult to beat! But OTOH, its difficulty comes not from
hand-eye coordination, but from the block-shuffling-puzzle type of
inherent difficulty -- you have all the time in the world to think
before making your next move, but your decision could mean the
difference between life and death (i.e. the loss of the last 40 hours of
gameplay, due to permadeath). I guess personally I prefer that kind of
challenge to the how-fast-can-you-react kind.


 As far as keeping track of a convoluted storyline, I rarely pay
 attention to the stories/dialog/characters/etc anyway. There are
 exceptions (like 2D JRPGs or Disgaea), but most games I just skip
 through the dialog (9 times out of 10 it's both uninteresting and
 irrelevant to the gameplay), and when a game doesn't let me skip a
 cutscene or scripted event I'll just grab a drink or snack or hit the
 can if I need to, or otherwise just hit Switch Inputs and find
 something not-too-horrible on TV while I wait for the tell-tale sound
 of a level being loaded off disc.

But you see, that's precisely the kind of thing that wears me out. I
feel like I'm not getting the max out of the game if I don't watch all
the cutscenes / read all the dialogs, but then I have to endure through
the whole thing when it's poorly written and then it's not enjoyable
anymore. This is one of the things I really liked about the older
Ultimas: the technology was such that dialogs were minimal, but that
meant that they got the point across without needing to sit through long
cutscenes / sift through convoluted dialogues. The trigger keywords were
more-or-less obvious, so you just hit town, chat up the few
obviously-important NPCs using the obviously important keywords, get 

Re: DConf 2013 official car/room sharing thread

2013-04-11 Thread Steven Schveighoffer

On Thu, 11 Apr 2013 13:21:23 -0400, Ali Çehreli acehr...@yahoo.com wrote:


I live in Mountain View, 15-30 minutes away from the venue.

I can drive only one other person in my two-seater. :/

Ali



I'm staying in Palo Alto on El Camino Real, which appears to be between  
Mountain View and the venue.


/me puts up thumb

-Steve


Re: To help LDC/GDC

2013-04-11 Thread Walter Bright

On 4/11/2013 3:02 AM, deadalnix wrote:

On Thursday, 11 April 2013 at 00:41:01 UTC, Walter Bright wrote:

On 4/10/2013 5:33 PM, deadalnix wrote:

call with const parameter can be considered strongly pure if the argument is
immutable


The argument doesn't need to be immutable because nobody can change it while
the function is running.


I explained the sentence just above how it is possible. Ignoring issue rarely
help when it come to solve them.


The delegate issue is a known one, and can be solved, and is not relevant to 
this point.


Re: Formal Review of std.process

2013-04-11 Thread David Nadlinger
The doc build linked in the first post says that the execute* 
return type might change to 
std.typecons.Tuple!(int,status,bool,output) – I suppose this 
should be »…, string, output«.


Unfortunately, I probably won't manage to do an actual review 
before the deadline, but I didn't notice any obvious major issues.


David


Re: DConf 2013 official car/room sharing thread

2013-04-11 Thread Ali Çehreli

On 04/11/2013 10:49 AM, Steven Schveighoffer wrote:

 /me puts up thumb

Me does a double take (yes, he is the Steven Schveighoffer of the D 
fame!). I hit the brakes and pick him up! :)


Ali



Re: Formal Review of std.process

2013-04-11 Thread Lars T. Kyllingstad
On Thursday, 11 April 2013 at 15:43:18 UTC, Steven Schveighoffer 
wrote:

A couple minor comments:

1. I have two issues with Error being used.  One is that we 
should have a specific type that is thrown, not raw Error type.
 Second is that I think in situations where the error is due to 
an incorrect parameter, it should be an exception not an error 
(and not a straight Exception either!).


I agree for the most part.  The 'environment' functions do throw 
straight Exceptions, and I'm not happy about that.  I just don't 
like the idea of adding even more module-specific Exceptions and 
Errors, when what we really should do is decide on a systematic 
organisation for the entire library.


Then again, maybe such a reorganisation will cause enough 
breakage that one more module makes little difference?  Any good 
name suggestions for the errors and exceptions in question?


2. For the documentation of inheritFDs, it says that On 
Windows, this option has no effect.  While this is true, it 
may give the impression that we don't set the bInheritHandles 
flag, which we do.  I think there should be a note on that 
somewhere.


I'll add one.

Lars


Re: To help LDC/GDC

2013-04-11 Thread Jacob Carlborg

On 2013-04-11 15:53, Iain Buclaw wrote:


I think that giving the user choice of purity is about as useful as
given user choice over what functions should be inlined, or what vars
should go in registers.

Such decisions are best left to the compiler devs judgement on doing the
right thing for you.  Even if they sometimes get it wrong. :o)


Beside from optimizations, it could good to be able to mark functions as 
pure, form a design point of view. I might be more easy to reason about 
a piece of code.


--
/Jacob Carlborg


Re: Formal Review of std.process

2013-04-11 Thread Lars T. Kyllingstad

On Thursday, 11 April 2013 at 17:56:17 UTC, David Nadlinger wrote:
The doc build linked in the first post says that the execute* 
return type might change to 
std.typecons.Tuple!(int,status,bool,output) – I suppose 
this should be »…, string, output«.


That's right.  I'll fix it.

Lars


Re: To help LDC/GDC

2013-04-11 Thread Jacob Carlborg

On 2013-04-11 15:38, Joseph Rushton Wakeling wrote:


The point is to have a way for me, the programmer, to say to the compiler: I
mean for this function to be strongly pure, can you confirm whether my choice of
function inputs supports this please?


Why should I have to explicitly specify immutable when that could be 
default for strongly pure functions?


--
/Jacob Carlborg


Re: Formal Review of std.process

2013-04-11 Thread Jacob Carlborg

On 2013-04-11 17:43, Steven Schveighoffer wrote:

A couple minor comments:

1. I have two issues with Error being used.  One is that we should have
a specific type that is thrown, not raw Error type.  Second is that I
think in situations where the error is due to an incorrect parameter, it
should be an exception not an error (and not a straight Exception either!).


Does it throw an Error, that's bad. Code should basically never create 
and throw an Error or Exception. It should always be a derived type from 
either of these classes.


--
/Jacob Carlborg


Re: To help LDC/GDC

2013-04-11 Thread Timon Gehr

On 04/11/2013 07:48 AM, Walter Bright wrote:

On 4/10/2013 10:44 PM, Timon Gehr wrote:

On 04/10/2013 11:50 PM, Walter Bright wrote:

...

My point was that competing designs are very probably not necessary. We
just need to pull on the string on what must be.



Yes, IMO it is quite obvious how to do it. (transfer the meaning of the
modifiers from member functions to local functions, disallow
conversion to const
for delegates and disallow loading a mutable delegate from a const
receiver.)
However, I think there are other opinions. There will probably always
be as long
as nothing is specified as the official behaviour.


A delegate works exactly like a member function call. It has an implicit
'this' pointer, and how the 'this' pointer is qualified, just like for a
member function, determines how it works.


That's still not sufficient as a specification.

A member function may be qualified differently from the 'this' pointer 
and calling said member function may even be disallowed because of this.


For delegates, the same syntax element is used for qualifying the 
context pointer and the function. Therefore delegates and member 
functions need to behave differently.


Re: Formal Review of std.process

2013-04-11 Thread Jacob Carlborg

On 2013-04-11 20:12, Lars T. Kyllingstad wrote:


I agree for the most part.  The 'environment' functions do throw
straight Exceptions, and I'm not happy about that.  I just don't like
the idea of adding even more module-specific Exceptions and Errors, when
what we really should do is decide on a systematic organisation for the
entire library.

Then again, maybe such a reorganisation will cause enough breakage that
one more module makes little difference?  Any good name suggestions for
the errors and exceptions in question?


EnvironmentException, SystemException, ProcessException.

--
/Jacob Carlborg


Re: Formal Review of std.process

2013-04-11 Thread Jacob Carlborg

On 2013-04-04 16:22, Jesse Phillips wrote:


I have decided to take on Review Manager for std.process and hopefully
will keep it up and get through the review queue. This is slightly
ignoring a first come, first serve approach, but that is mostly
because I didn't want to look into it. (So don't be too upset).


1. Why is there functionality for handing environment variables in 
std.process?


2. The class environment should be capitalized

--
/Jacob Carlborg


Re: Formal Review of std.process

2013-04-11 Thread Jesse Phillips

On Thursday, 11 April 2013 at 18:32:23 UTC, Jacob Carlborg wrote:

On 2013-04-04 16:22, Jesse Phillips wrote:

I have decided to take on Review Manager for std.process and 
hopefully
will keep it up and get through the review queue. This is 
slightly
ignoring a first come, first serve approach, but that is 
mostly

because I didn't want to look into it. (So don't be too upset).


1. Why is there functionality for handing environment variables 
in std.process?


2. The class environment should be capitalized


Because it is manipulating the environment your process is 
running in?


True, though I'd then say do what the original did and alias the 
class to its lowercase. Not that the result is any different 
though.


Re: DConf 2013 official car/room sharing thread

2013-04-11 Thread Steven Schveighoffer

On Thu, 11 Apr 2013 14:07:06 -0400, Ali Çehreli acehr...@yahoo.com wrote:


On 04/11/2013 10:49 AM, Steven Schveighoffer wrote:

  /me puts up thumb

Me does a double take (yes, he is the Steven Schveighoffer of the D  
fame!). I hit the brakes and pick him up! :)


And I humbly accept the ride from a D conference speaker and D book author!

-Steve


Re: To help LDC/GDC

2013-04-11 Thread Joseph Rushton Wakeling
On 04/11/2013 08:16 PM, Jacob Carlborg wrote:
 Why should I have to explicitly specify immutable when that could be default
 for strongly pure functions?

Oh, sorry, I misunderstood your meaning.  I thought you were saying that a
strong pure keyword wasn't necessary because it was sufficient to have pure
with immutable/const input.



Re: PHP extension in D

2013-04-11 Thread Rémy Mouëza

On Thursday, 11 April 2013 at 11:28:05 UTC, gedaiu wrote:

Hi,

I want to extend Php with an extension written in D, and wrap 
some D classes in php. My questions are:


1. How I can build a static library(I am using eclipse with ddt)
2. How I can create methods and create objects in c++ from the 
D library.



Thanks,
Bogdan



I once tried to make a proof of concept PHP extension in D on an
Ubuntu Linux. I chose to make it simple by letting Swig
(www.swig.org) do the heavy wrapping work for me. It's then
becomes quite as much difficult as calling some D code from C.

Below is an outline of the steps it took me to wrap a D function
for PHP.
You'll still have to figure out how to make it work nicely with
Eclipse and on your particular platform, nonetheless it should
help you getting started.

Note that this approach could also be used to call some D code
from Java, C# or any other language supported by Swig.


1. Write / get the D code (speedup.d).

import std.stdio , std.string ; import std.conv : to;
string speedUp (string msg) {
writefln (-- %s --, msg);
return `sped up %s`.format (msg);
}



2. make a C API for that code, declaring the functions of that
API with the extern (C) qualifier.

extern (C) {
immutable (char) * d_speedUp (char * msg) {
return toStringz (speedUp (to!string (msg)));
}
}



3. Create a Swig interface file for that C API (speedup.i). Also
add a declaration to the rt_init function from the druntime.

%module speedup
char rt_init (long long);
const char * d_speedUp (char * msg);


4. run Swig: `swig -php speedup.i`. This will generate several
files:
  - speedup_wrap.c
  - php_speedup.h
  - speedup.php

Now we've got to compile all those parts together: we want to
generate a speedup.so dynamic library object from all that we
got.

5. From what I researched, dmd (at least on Linux) needs to see a
main function to properly generate all the code of the druntime
within the dynamic library/shared object it generates.  We will
trick it by adding a fake main function (dfakemain.d):

void main () {}


6. compile dfakemain.d:

dmd -c dfakemain.d


7. compile speedup.o:

dmd -fPIC -c -L-shared dfakemain.o speedup.d


8. compile speedup_wrap.o, you'll need to have everything needed
to compile extension for PHP on your platform:

gcc `php-config --includes` -fpic -c speedup_wrap.c


9. compile speedup.so, our target:

dmd -shared speedup_wrap.o dfakemain.o speedup.o -ofspeedup.so


10. If everything went well so far, you can now try your
extension within a script (dmd_speedup.php):
?php rt_init (0); // initialize the D runtime. echo d_speedUp 
(hello from php), \n;


You can launch the script with extension loading enabled with a
command line such like this one:

php -d enable_dl=1 -d extension=`pwd`/speedup.so dmd_speedup.php


It should then output:

-- hello from php --
sped up hello from php



Now, one could imagine to get a bit further by automating all
that, like using the json output from dmd to generate a swig
interface file and a nice OOP interface on the PHP side, but this
would be much more work.

Have fun!


Re: Formal Review of std.process

2013-04-11 Thread Lars T. Kyllingstad

On Thursday, 11 April 2013 at 18:32:23 UTC, Jacob Carlborg wrote:

2. The class environment should be capitalized


It's implemented using a class, but you use it like an object. I 
think that is more important.


Lars


Re: Disable GC entirely

2013-04-11 Thread Nick Sabalausky
On Thu, 11 Apr 2013 10:24:14 -0700
H. S. Teoh hst...@quickfur.ath.cx wrote:
 On Thu, Apr 11, 2013 at 02:39:01AM -0400, Nick Sabalausky wrote:
  The last 10 or so years, big-budget games have tended to be designed
  specifically so that anyone can get to the end without much effort.
  The lack of challenge makes them tedious and boring.
 
 OK, now I'm not so sure what I meant anymore, because I find this
 tedium and bore really tiring, whereas something like, say, the
 ancient Lode Runner with its incredibly complicated time-sensitive
 maneuvres is actually stimulating and, paradoxically enough,
 relaxing. OTOH, things like Quake and other FPSes I find exhausting,
 even if they're no more than mindless shoot-everything-that-moves
 deals.  Maybe the difference lies in the simplicity of rules in the
 older 2D games -- yes they can be challenging but the mechanics are
 easy to grasp, whereas in 3D environments, the complexity of movement
 possibilities can be overwhelming.
 

Ahh, I see what you mean, and I can relate.

Maybe part of it is sensory overload. There's a lot more to take in.
And there's more visual/auditory  information to process and mentally
filter out all the details to reach the core elements like this is
an enemy, shoot here, this is an area of interest, go here, this is
dangerous, avoid etc. And like you say, freedom of movement.

 Big-budget hold-your-hand games, OTOH, are tiring in another way,
 in a click-through ads kinda way. I have very little patience for
 anything with video clips, 'cos I rather be doing stuff instead of
 watching a video (I might as well watch youtube instead, etc.), yet I
 feel like I can't really get into the game if I don't endure
 through all those clips, 'cos I might miss some interesting
 game-world exposition or important story twist, etc.. So the result
 is that it's very tiring.
 

Interesting points, yea. Personally, I don't feel afraid of missing out
on such things unless it's a JRPG (whether action JRPG or menu-based)
or it demonstrates a high degree of storytelling quality (*and* grabs
my interest) right from the start, like Disgaea, Splinter Cell 1-3,
Izuna, or Max Payne. (Just as examples.)

 Hmm. I beat nethack. Several times. I don't know of any other game
 that is as difficult to beat! But OTOH, its difficulty comes not from
 hand-eye coordination, but from the block-shuffling-puzzle type of
 inherent difficulty -- you have all the time in the world to think
 before making your next move, but your decision could mean the
 difference between life and death (i.e. the loss of the last 40 hours
 of gameplay, due to permadeath). I guess personally I prefer that
 kind of challenge to the how-fast-can-you-react kind.
 

I like both kinds :) At least, provided that the
how-fast-can-you-react also requires active thinking and accurate
execution, too, as a good bullet-hell shmup or MegaMan, Contra, etc.

 But you see, that's precisely the kind of thing that wears me out. I
 feel like I'm not getting the max out of the game if I don't watch all
 the cutscenes / read all the dialogs, but then I have to endure
 through the whole thing when it's poorly written and then it's not
 enjoyable anymore. This is one of the things I really liked about the
 older Ultimas: the technology was such that dialogs were minimal, but
 that meant that they got the point across without needing to sit
 through long cutscenes / sift through convoluted dialogues. The
 trigger keywords were more-or-less obvious, so you just hit town,
 chat up the few obviously-important NPCs using the obviously
 important keywords, get the info you need, and move out and do stuff.
 

I never really played the Ultimas (I've always been drawn more to JRPGs
than to the DD/Tolkien-esque western RPGs). Although I do have a vague
recollection of spending a few minutes in some 3D Ultima on DOS.

But I do get what you're saying: I *love* Zelda 2-style dialog:

Stop and rest here.
Sorry. I know nothing.
Only the hammer can destroy a roadblock.

They cut straight to the chase and then shut up. I *love* that. Then
the 16-bit ones expanded a bit and added a nice dash of character, but
not overdone and still generally good. But modern NPCs talk the way my
Dad does: They'll give you half their life story and entire social and
emotional profile before finally getting to the point, and then they'll
restate the damn point twenty times. Cliffs notes, people! ;)


 The free-exploration style of the old Ultimas was also something I
 liked very much. I find sequence-breakers in many modern games very
 mimesis-breaking, especially when it's something trivial like
 exploring and beating an area before talking to the NPC who was
 supposed to tell you to go there, thereby breaking some
 poorly-written script that assumes you haven't been there yet.
 Forcefully railroaded games I also find annoying (why is that
 gigantic boulder sitting there on the road blocking my way for no
 good reason other than that the game devs don't 

Re: To help LDC/GDC

2013-04-11 Thread deadalnix

On Thursday, 11 April 2013 at 17:52:43 UTC, Walter Bright wrote:

On 4/11/2013 3:02 AM, deadalnix wrote:
On Thursday, 11 April 2013 at 00:41:01 UTC, Walter Bright 
wrote:

On 4/10/2013 5:33 PM, deadalnix wrote:
call with const parameter can be considered strongly pure if 
the argument is

immutable


The argument doesn't need to be immutable because nobody can 
change it while

the function is running.


I explained the sentence just above how it is possible. 
Ignoring issue rarely

help when it come to solve them.


The delegate issue is a known one, and can be solved, and is 
not relevant to this point.


See Timon's post. Both are deeply linked.


Re: DIP 36: Rvalue References

2013-04-11 Thread Zach the Mystic

On Wednesday, 10 April 2013 at 07:43:57 UTC, Dicebot wrote:
Consistent behavior is important but it does not change the 
fact that there two types of rvalues in the language - raw 
literals (42, A.init) and constructed temporaries (A()). 
Accepting rvalues of the first type in as mutable references 
may be consistent from the point of view of syntax by 
_extremely_ confusing semantics-wise:


void foo(scope ref int x)
{
x = 32;
}

void main()
{
foo(42); // erm, 32 is the new 42 or ref is not actually 
ref?

}

Beauty of in ref is that in that case user can't use it in 
any way that may disclose the fact the temporary variable for 
non-adressable entities is created. For mutable scope ref it is 
not the case and we must leak implementation details, which is 
never good.


Another concern is that if someone tries to pass 42 as a 
mutable ref, most likely he does not really wants it to be 
mutable and in ref is a better match.


This may not be consistent from the point of view of generic 
code, but it is now consistent from the point of view of 
programmer : A(...) construct always create temporaries, raw 
value literals never do (well, they will for in ref but you 
can't observe it). I think this is much more important.


One extra thing to note is that test32 may actually work if it 
instantiates T as const int for 42 (making it in ref 
essentially), but I don't know if D rules allow it.


I think this is another case of two different features which may 
or may not be paired up together. If it is always okay to have A 
accompany B, and B accompany A, it's good from a syntax point of 
view because you only need one syntax for both of them. But if 
you pair them up and later think, I wish I could do A without 
having to do B, or B without having to do A, then you'll regret 
pairing them up because you'll either have to break code or live 
with what you've got.


When you say we shouldn't be able to return an rvalue 
temporaries, even if they're safe, I think it's reasonable, not a 
life or death issue. But if 'scope ref' is used to mean that, 
you're also saying that any *other* feature which wants 'scope', 
such as 'ref' safety (why I created DIP35, to highlight this), 
will automatically also have to take rvalue temps because they're 
bound up with it, it's more risky.


Some of these will be a judgment call - A and B  are sometimes so 
similar that it's better to save on syntax than differentiate 
them. 'const scope' might be the same way.


Re: DConf 2013 official car/room sharing thread

2013-04-11 Thread Manu
On 2 April 2013 21:18, Iain Buclaw ibuc...@ubuntu.com wrote:

 On Monday, 25 March 2013 at 01:59:07 UTC, Manu wrote:

 I'm keen to share a room/ride with someone. I have no plans yet.
 Arrive on the 29th of April in SFO.



 I look set to be arriving on the 29th at SFO also.  Maybe could hook up! :)


Sure! I arrive at midday.
I see you pondering flying to SJC? It's an easy bart ride from SFO - San
Jose, I'd save the money if I were you, the train is convenient, and it
sounds like there might be cars heading past.
When do you land?


Vote for std.process

2013-04-11 Thread Jesse Phillips
It is that time, If you would like to see the proposed 
std.process include into Phobos please vote yes. If one condition 
must be met specify under what condition, otherwise vote no.


std.process by Lars Kyllingstad and Steven Schveighoffer is a 
suggested improvement to the existing std.process and is a major 
change to the API. The original API remains but these will be 
going through deprecation.


In summary of the discussion there was concern of the use of 
Error and Exception. Lars is very interested in getting the 
standard hierarchy http://wiki.dlang.org/DIP33 thus leaving these 
at the safest level to allow for change without breaking code.


Please place any further comments in the official review thread 
leaving only your vote and a short comment (there should be no 
need to reply to anyone).


Docs: 
http://www.kyllingen.net/code/std-process2/phobos-prerelease/std_process.html


Source: 
https://github.com/kyllingstad/phobos/blob/std-process2/std/process.d


Friday April 19 PST will be the last day of voting.


Re: Vote for std.process

2013-04-11 Thread Vladimir Panteleev

On Friday, 12 April 2013 at 04:46:52 UTC, Jesse Phillips wrote:
It is that time, If you would like to see the proposed 
std.process include into Phobos please vote yes.


Yes!


Re: DConf 2013 official car/room sharing thread

2013-04-11 Thread Ali Çehreli

On 04/11/2013 08:43 PM, Manu wrote:

 It's an easy bart ride from SFO - San Jose

That is planned for the future. :) BART doesn't go to San Jose.

Ali



Re: DConf 2013 official car/room sharing thread

2013-04-11 Thread Manu
On 12 April 2013 15:49, Ali Çehreli acehr...@yahoo.com wrote:

 On 04/11/2013 08:43 PM, Manu wrote:

  It's an easy bart ride from SFO - San Jose

 That is planned for the future. :) BART doesn't go to San Jose.


Oh right, well it's some other train then? I've had no trouble getting
trains between SF and SJ...


Re: DWT2 building

2013-04-11 Thread Jacob Carlborg

On 2013-04-10 20:57, JohnnyK wrote:


Nevermind I found it.  Sorry I have not used D since version 1.x and I
did not do much with it at that time.


No problem :)

--
/Jacob Carlborg


Re: DWT2 building

2013-04-11 Thread Jacob Carlborg

On 2013-04-10 19:41, JohnnyK wrote:


The instructions say to use the rdmd program.  What is the rdmd
program?  The copy of D version 2 that I have does not have rdmd with
it.  Also I assume that dwt will work with D version 2 and the phobos
library correct?


I see that you already found rdmd. Yes, DWT works with D2 and Phobos. 
The combinations are:


* D2 with Phobos
* D1 with Tango

--
/Jacob Carlborg


Re: memory leaks in phobos?

2013-04-11 Thread Ali Çehreli

On 04/10/2013 10:04 PM, Andrey wrote: Hello!

  int arr[];
  int length = 100_000_000;
  for (int i=0; i10; i++)
  {
  arr.length = length; // always new memory blocks, why?

The slice does not know what other slices may be sharing the same 
elements. So, increasing the length of a slice will relocate the 
elements (almost always, with exceptions.) The following article goes 
into a lot of detail:


  http://dlang.org/d-array-article.html

  arr[90] = 20;
  writeln(After allocation. Press a key.);
  stdin.readln();

  clear(arr);
  arr.length = 0; // must be deallocation? but nothing happens

Are you compiling as a 32-bit application? Then, chances are random bit 
patterns look like references into these slices. (dmd uses a 
conservative garbage collector). Try compiling with -m64.


Ali



Re: Range returning an array

2013-04-11 Thread Joseph Rushton Wakeling
On 04/10/2013 08:22 PM, Jesse Phillips wrote:
 I'm pretty sure he realizes this, his original code shows how he is doing 
 this.
 He expects 'output' to hold the final front value, but instead it holds the
 empty value.
 
 Joseph, I think you will have to profile to decide which is the fastest for 
 your
 use case.

Agree.  I do also see the risks in these assumptions with respect to front --
they can be safely worked around within my code but it's not a very friendly
construction to put in front of other people.



Re: Range returning an array

2013-04-11 Thread Joseph Rushton Wakeling
On 04/10/2013 01:18 AM, Steven Schveighoffer wrote:
 Calling front after empty is not good range policy, once empty, front is
 possibly invalid or points at invalid memory.

It's not necessarily required to actually call front with the range empty: one
could do something like,

for(; !sim.empty; sim.popFront())
v = sim.front;

... and the way that popFront() operates means that, while the output of front()
may be transient in general, the last value will remain.

Though I agree that, even in this case, it's is a potentially problematic
situation (there's something weird about the idea of a range that is transient
except for the last entry).  I will have to profile with .dup enabled and see
what changes.


Re: memory leaks in phobos?

2013-04-11 Thread Andrey

On Thursday, 11 April 2013 at 06:39:53 UTC, Traveler wrote:
On 64 bit may cause crash: arr.length = length, fixed in next 
version.




arr.length = 0; // must be deallocation?


Not necessarily. You can manually do a garbage collection.


The manual calling function GC.collect() has no effect (tested 
under x32 and x64 versions).


=
...
clear(arr);
arr.length = 0;

	GC.collect(); // useless calling, the used memory will be 
increase


writeln(After dispose. Press a key.);
stdin.readln();
...
=



[Issue 9899] struct with pure/nothrow destructor cannot be used as a struct member in pure/nothrow functions

2013-04-11 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=9899



--- Comment #2 from github-bugzi...@puremagic.com 2013-04-10 23:46:48 PDT ---
Commits pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/a886e55abe29ed1ffe05ba154e2977443ad808ec
fix Issue 9899 - struct with pure/nothrow destructor cannot be used as a struct
member in pure/nothrow functions

https://github.com/D-Programming-Language/dmd/commit/5a0d812059995186860a418735c77e432b05500e
Merge pull request #1866 from 9rnsr/fix9899

Issue 9899 - struct with pure/nothrow destructor cannot be used as a struct
member in pure/nothrow functions

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 9899] struct with pure/nothrow destructor cannot be used as a struct member in pure/nothrow functions

2013-04-11 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=9899


Walter Bright bugzi...@digitalmars.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||bugzi...@digitalmars.com
 Resolution||FIXED


-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 9571] link error due to using unique ids in anonymous funcliteral

2013-04-11 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=9571


Dicebot m.stras...@gmail.com changed:

   What|Removed |Added

   Keywords|pull|


--- Comment #9 from Dicebot m.stras...@gmail.com 2013-04-11 00:32:09 PDT ---
Thanks for tracking down the root cause for this specific issue.
I'll move my pull request to its own issue then.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 9916] int*[] implicitly converts to int*

2013-04-11 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=9916



--- Comment #2 from phyph...@gmail.com 2013-04-11 01:32:09 PDT ---
Yes, but the problem is it is compiling without error on 2.062 and that breaks
stuff

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3703] static array assignment

2013-04-11 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3703



--- Comment #3 from github-bugzi...@puremagic.com 2013-04-11 01:36:43 PDT ---
Commit pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/f703c5c6551affddd9213f759657a2b3e391b935
More fix for issue 3703

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 2356] array literal as non static initializer generates horribly inefficient code.

2013-04-11 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=2356



--- Comment #18 from github-bugzi...@puremagic.com 2013-04-11 01:36:48 PDT ---
Commits pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/8cd5f790a78e7514e46618d0325e92cbd6e00e48
fix Issue 2356 - array literal as non static initializer generates horribly
inefficient code.

https://github.com/D-Programming-Language/dmd/commit/d4b20baee7a1c9ee8a9271724feb5d1031e773d4
Merge pull request #1883 from 9rnsr/fix2356

Issue 2356 - array literal as non static initializer generates horribly
inefficient code.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 9539] Wrong implicit conversion of array to pointer

2013-04-11 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=9539


Kenji Hara k.hara...@gmail.com changed:

   What|Removed |Added

 CC||phyph...@gmail.com


--- Comment #7 from Kenji Hara k.hara...@gmail.com 2013-04-11 01:54:36 PDT ---
*** Issue 9916 has been marked as a duplicate of this issue. ***

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 9916] int*[] implicitly converts to int*

2013-04-11 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=9916


Kenji Hara k.hara...@gmail.com changed:

   What|Removed |Added

   Keywords||rejects-valid
  Component|Phobos  |DMD
 Resolution|INVALID |DUPLICATE


--- Comment #3 from Kenji Hara k.hara...@gmail.com 2013-04-11 01:54:35 PDT ---
(In reply to comment #2)
 Yes, but the problem is it is compiling without error on 2.062 and that breaks
 stuff

Oh... I completely had mistaken. Sorry confusion by my wrong comment.

Yes, this is actually a regression. It had occurred from 2.061, and still
exists in 2.062.

Fortunately, this regression had been found in the 2.063 devel, and already
fixed in bug 9539. You would get the fix in 2.063 release.

Thanks!

*** This issue has been marked as a duplicate of issue 9539 ***

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


  1   2   >