Re: DVM - D Version Manager 0.3.0 (including support for Windows)

2011-08-01 Thread Daniel Gibson

Am 01.08.2011 22:53, schrieb Andrej Mitrovic:

I know this is maybe obvious for linux geeks, but your shell command
won't work like this:
wget -O dvm https://bitbucket.org/doob/dvm/downloads/dvm-0.3.0-linux-32
  chmod +x dvm  ./dvm install dvm

Because you have to call this before executing dvm:
chmod +x dvm


This is included in the command above?


Re: D programming language specification ebook

2011-07-10 Thread Daniel Gibson

Am 10.07.2011 12:19, schrieb Walter Bright:

On 7/10/2011 1:02 AM, Russel Winder wrote:

Development, and particularly compilation, is a different matter. The
introduction of the ability to import from a non-local Git, Mercurial or
Bazaar repository embeds the assumption of permanent connectivity of the
developer's machine to the Internet.


That'd cut my productivity in half. My internet connection frequently
goes down for a minute to 5 minutes. Cloud applications are just not
feasible.


There have been suggestions to add something like this to dmd.
imports from URLs or something like that - because its faster than 
having a build tool do this (try to build - realize that dependency is 
missing from DMDs error message - download dependency from central 
repository - try to build again ...)


Cheers,
- Daniel


Re: DVM Windows Beta #2 - Up To Date With v0.2.0

2011-07-03 Thread Daniel Gibson
Am 04.07.2011 03:01, schrieb bearophile:
 Andrej Mitrovic Wrote:
 
 Is there a limit to how far DMD releases are supported?
 
 You are able to find very old versions of DMD too, all the way to the latest 
 one. This is the support.
 

I think he was talking about how far DVM supports old DMD releases, not
the support/availability from the D project (I hope I didn't
misunderstand you ;-)).

Cheers,
- Daniel


Re: TDPL is an Amazon Kindle bestseller

2011-06-21 Thread Daniel Gibson
Am 21.06.2011 01:37, schrieb Walter Bright:
 On 6/20/2011 12:13 PM, Nick Sabalausky wrote:
 I've been guessing that will only happen when DRM starts going away.
 
 Sadly, any DRM books you buy on the Nook aren't usable on the Kindle and
 vice versa.

(I sent this reply yesterday, but it seems like the server lost it)

DRM is generally a bad idea - especially for stuff you buy and not just
rent.
Once the DRM servers are down (because the company is bankrupt or stops
the service) your books/music/movies/... are gone.

Because of that I'd never buy E-Books or music with DRM - if I buy a
book I want to be able to read it again in 20 years - same with music.
Plus I want to be able to play music on any device (like my car radio)
and not just on my PC or iPod.

So I agree with Nick: Until E-Books are DRM free (and have a standard
format that works on any E-Book reader, but I think this is already
available) they (hopefully!) won't supersede paperbacks.

Another thing is that I actually like having real books in my shelf,
just like CDs and computer games (it already pisses me off that the they
are usually distributed in DVD cases now and not anymore in these big
cardboard boxes).

Cheers,
- Daniel



Re: Programming Windows D Examples are now Online!

2011-06-21 Thread Daniel Gibson
Am 21.06.2011 06:14, schrieb Andrej Mitrovic:
 This is a translation project of Charles Petzold's Programming Windows
 (5th edition) book code samples.
 
 Currently over 120 code samples have been translated into D, with only
 a few modules remaining.
 
 Everything else you need to know is in the Readme file:
 https://github.com/AndrejMitrovic/DWindowsProgramming
 
 The examples were tested on fresh installs of XP and Win7 with the
 only dependency being DMD v2.053 and an NT operating system. I hope
 everyone will be able to build these examples without too much
 trouble. *crosses fingers*

The README mentions 2.043 instead of 2.053.

Cheers,
- Daniel


Re: DMD/Objective-C Alpha 1

2011-06-02 Thread Daniel Gibson
Am 02.06.2011 17:12, schrieb Robert Clipsham:
 On 02/06/2011 16:09, Jacob Carlborg wrote:
 On 2011-06-02 15:21, Robert Clipsham wrote:
 The lack of line numbers in debug info on OS X is something that's
 really annoying me, I may look into this in the future should I get
 chance - if someone doesn't beat me to it of course. Wouldn't be the
 first time I'd spent a week playing with dmd's debug info to get it
 working...

 http://d.puremagic.com/issues/show_bug.cgi?id=4154
 
 Oh cool - does this patch work then? Have you made a pull request for it?
 

According to the bugreport it doesn't work properly:

I've attached a patch which fixes this. But with this patch (I think)
one or
several offsets somehow become incorrect. This is the output of dwarfdump
--verify:

The offset into the .debug_abbrev section (0x) is not valid.

Maybe it's because the section names are now one character longer or
there is
something other that isn't working.


Re: Learning With D

2011-05-23 Thread Daniel Gibson
Am 23.05.2011 20:51, schrieb bearophile:
 Russel Winder:
 
 Uuuurrr... this is just wrong on so many levels.  To avoid writing an
 10,000 word essay, I'll just stick to:  Python and Groovy have proven to
 be excellent languages for teaching first year undergraduates and
 adults.
 
 I have chosen Python to teach programming at new university students that 
 know nearly nothing about programming. I think Python is among the best 
 languages currently available to teach programming (Python partially comes 
 from ABC, a language mostly designed for teaching), but it's far from perfect 
 still for this purpose:
 
 - I appreciate Python significant indentation a lot, but I've seen it cause 
 problems to some students.

What kind of problems? (related to tabs vs spaces?)

 - Dynamic typing is handy, but it makes it a bit harder to learn the 
 discipline of types.

Yeah, I personally don't like dynamic typing at all.

 - Confusing variable creation and variable update is not good to teach 
 programming to newbies and causes problems.
 - Many programming newbies are blind to the diffences in case, for them FOR 
 and for are the same word, so a case agnostic language as Pascal is may be 
 better for such people.

I strongly disagree. The first language they learn should *not* be
agnostic to case, so they learn that case matters (because it does in
most languages).

 - The lack of built-in rationals doesn't help.
 - Lazy computations, introduced since some years in Python are a useful and 
 powerful tool, but for a newbie it's one more complexity to learn and manage.
 - All variables managed by reference (by name) is good for uniformity (and 
 efficiency!), but it also introduces some complexities and bugs that newbies 
 don't like a lot.
 - Python doesn't support recursion in a good enough way.
 - Python error messages and debugging is far from the best. If you take a 
 look at the IDE of Racket Scheme you see something far more newbie-friendly.
 
 Note: your posts come out empty through the web interface:
 http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D.announcearticle_id=20572
 
 Bye,
 bearophile



Re: Learning With D

2011-05-23 Thread Daniel Gibson
Am 23.05.2011 21:53, schrieb bearophile:
 Daniel Gibson:
 
 - I appreciate Python significant indentation a lot, but I've seen it cause 
 problems to some students.

 What kind of problems? (related to tabs vs spaces?)
 
 Tabs Vs spaces is not a big problem once you have told students to set up all 
 their editors to never emit a tab :-) So this is not the real problem.
 Different people have very different brains, some people find easy certain 
 things and other people find easy other things. A good teacher must adapt 
 himself/herself/hirself to the brain of the different students. Significant 
 indentation has some good advantages, it reduces noise, it makes the 
 semantics of the code the same of what you see, etc. But some programming 
 newbies just aren't precise enough, they lose control and count of 
 indentations, etc. For them spaces are nothing, they don't even see them, so 
 for them braces are probably better, despite the increase in noise.
 

OTOH python teaches to indent your code properly which enhances
readability, so maybe it's a good thing to learn right from the beginning.
I've had students producing working code (Java and SQL) that was totally
unreadable because it wasn't indented properly.

 
 - Dynamic typing is handy, but it makes it a bit harder to learn the 
 discipline of types.

 Yeah, I personally don't like dynamic typing at all.
 
 We are discussing about a language used as first programming language. What's 
 good for an programmer that is programming since two years is sometimes not 
 the best for a newbie and vice versa too. Finding a good balance for newbies 
 between Pascal/Java-style boring and stupid static typing, full type 
 inference as in ML, and full dynamic typing as in Python, is not easy.
 
 
 I strongly disagree. The first language they learn should *not* be
 agnostic to case, so they learn that case matters (because it does in
 most languages).
 
 Most languages are strict in their case. So sooner or later a programmer must 
 learn to tell apart cases of keywords and variables. 

Exactly. So why teach it in a differently first and then tell well, now
you're using a proper language and now you have to start caring about
case? This just asks for subtle bugs because of spelling mistakes..

class Bar {
  int p;
  void setFoo(int P) { this.p = p; }
}

and stuff like that.

 But the case of keywords is _not_ essential to learn the basics of 
 programming. There are so many things to learn in the beginning. And Pascal 
 has being used to successfully teach generations of programmers. So while I 
 respect your point of view, I think this is something different teachers are 
 allowed to disagree on :-)
 

It may not be essential. Neither is correct spelling; so the language
could be fuzzy about detecting keywords so to { ... } wihle(...);
could be accepted as well :-P

Also: What are the basics or programming? Isn't expressing what you
want in a precise way part of it? And caring about case is part of being
precise IMHO.

 Bye,
 bearophile

Cheers,
- Daniel


Re: Learning With D

2011-05-23 Thread Daniel Gibson
Am 23.05.2011 22:51, schrieb Adam D. Ruppe:
 bearophile wrote:
 For them spaces are nothing, they don't even see them, so for them
 braces are probably better
 
 This is the biggest thing that trips me up with Python. Something
 indenting inward is pretty easy to see, but going outward is often
 skipped by my eyes.
 
 def foo():
 # i see this change
 
 # but here I don't register the change and think I'm still in foo()
 
 
 I wonder if part of the confusion is from indented paragraphs
 in normal English. The most difficult thing to see is two or more
 indents changing at once though... counting groups of spaces is
 weird.

Scintilla based editors (like SciTE and Geany) have indentation guides,
see
http://www.joeflash.ca/blog/2009/03/indentation-guides-in-flex-builder.html
for a screenshot (that's not my page, I found this via google).
That should help.

Cheers,
- Daniel


Re: Learning With D

2011-05-23 Thread Daniel Gibson
Am 24.05.2011 01:59, schrieb bearophile:
 Daniel Gibson:
 
 OTOH python teaches to indent your code properly which enhances
 readability, so maybe it's a good thing to learn right from the beginning.
 I've had students producing working code (Java and SQL) that was totally
 unreadable because it wasn't indented properly.
 
 Some students are precise, they puts all the full stops and commas in their 
 comments, and format code well. Other students seem unable to understand the 
 need for a proper code formatting. But both kinds of students must learn some 
 programming and do some practice at it. The teacher has to ask for a good 
 code formatting, but I have seen it's better to avoid an escalation of the 
 frustration of the less precise programmers, otherwise they may lose interest 
 in programming and sometimes even switch courses :-) They already hate the 
 interpreter/compiler for all those stupid error messages it gives them...
 

How do you do less precise programming? Just change your code until
the compiler stops emitting error messages and until the output of your
program looks about right for some sample input?
IMHO the sooner they learn to be precise the better - randomly changing
code until it compiles is no programming but a sign that the
programmer hasn't got a clue what he's doing.

Furthermore I'm not sure whether setting correct parentheses is easier
than correct indenting for these kind of students (or will they just add
parentheses until the compiler shuts up)?

(WTF am I really defending a scripting language?)

 
 Exactly. So why teach it in a differently first and then tell well, now
 you're using a proper language and now you have to start caring about
 case?
 
 Delphi is a proper language (better than C, by the way). 

Maybe, doesn't change the fact that most other languages are case
sensitive. And as a Linux user (with case sensitive file systems) I
think people should get used to case sensitivity.

 The first language you use doesn't need to be the same language you use 8 
 months later. Ignoring cases first, and later asking for a more strict 
 programming style is not bad, it's exactly what lot of students used to do 
 learning Pascal the first year and C the second :-)
 

And learning Pascal in the first and C in the second year is good?

 
 This just asks for subtle bugs because of spelling mistakes..

 class Bar {
   int p;
   void setFoo(int P) { this.p = p; }
 }

 and stuff like that.
 
 Have you programmed in Delphi/ObjectPascal for some weeks or more? 
 Case-related bugs are not common. I am not talking about removing case 
 sensitivity from C/Java, I am talking about a language wholly designed taking 
 into account it is case insensitive.
 

I've learned Delphi in school (didn't learn that much in retrospect, I
wasn't taught about records, classes, pointers, ... but we always
clicked a nice GUI..) but didn't even know it was case insensitive.

 
 It may not be essential. Neither is correct spelling; so the language
 could be fuzzy about detecting keywords so to { ... } wihle(...);
 could be accepted as well :-P
 
 People that don't know how to switch on a computer know that in their natural 
 language the word the means the same thing if you write it lowercase in the 
 middle of the phrase, or if you write it capitalized as The at the 
 beginning of a phrase. But even programming newbies (unless they have 
 dyslexia, and some new programmers _do_ have strong dyslexia, and the teacher 
 must find a ways to teach them too something) are able to see that hte is a 
 word different from the. So this argument of yours is not good enough.
 

Even programming newbies can easily learn that The != the.

 Bye,
 bearophile



Re: Learning With D

2011-05-22 Thread Daniel Gibson
Am 23.05.2011 01:29, schrieb Ali Çehreli:
 On 05/21/2011 11:12 PM, Jesse Phillips wrote:
 
 I started writing what I hoped would turn into a fairly
 complete book.
 
 Thank you for doing this! :)
 
 This book is intended to teach programming from the ground
 up.
 
 I have some experience in doing the same. Just like teaching in the
 classroom, no matter what style or detail has been chosen, readers will
 find the material anywhere from very easy to exteremly difficult. :)
 
 One (draft of an) article on teaching programming that had struck a
 chord with me has been
 
   http://www.cs.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf
 
 They divide the students in three groups. They argue that the ones that
 are successful in programming are the ones who can form consistent
 models for unknown phenomena. (Not their exact words, but what I got out
 of the paper.)
 
 We all know D would make a very good first language
 
 Agreed. Although there are so many high level concepts in the language,
 starting to write simple programs is very easy. For example, one can go
 a long way without even knowing that pointers exist. Additionally,
 having to introduce the concept of a reference type earlier makes it
 easy to explain pointers later on.
 

I think explaining pointers first (including you have to dereference it
to get to the thing it's pointing at, to show the difference between
pointer and pointee) may be a better idea.
After that you can say and objects of classes are reference types, they
behave like pointers but don't need all the ugly syntax

And I think http://www.youtube.com/watch?v=i49_SNt4yfk is a great video
explaining pointers ;)

 And I really want the user to go from first time Python
 programmer to basic C programmer.
 
 I think, that is a more accurate description than the one in Chapter 1:
 (expected starting experience of none). I can imagine that some people
 will find your book a little too fast. (And others will find it too
 slow! :))
 
 One approach that I think many will like is the Common Errors
 sections which is meant to help people identify what the
 compiler is saying when things go wrong.
 
 That is going to be very helpful.
 
 Thank you,
 Ali
 



Re: DVM - D Version Manager 0.2.0

2011-05-18 Thread Daniel Gibson
Am 18.05.2011 14:21, schrieb Steven Schveighoffer:
 On Wed, 18 May 2011 03:15:50 -0400, Nick Sabalausky a@a.a wrote:
 
 But the bottom line seems to be: Linux is in a bigger DLL hell than
 windows
 has ever been, and I don't think *anyone* actually knows how to do it.
 
 This is one of the side effects of having open source software.  Since
 everything on linux is expected to be open source, it's expected that
 you simply recompile everything for your system.  In this respect,
 Windows has Linux beat hands down.  A hardware company that builds a
 driver needs only to support one compiled driver that just keeps working
 no matter how many times XP is updated.

Drivers are completely different from normal applications on Linux.
Because the Kernel changes all the time you have to change drivers quite
often.
The userspace should be more stable - AFAIK the kernel ABI is backwards
compatible since kernel 0.99 or something, i.e. programs from back than
should still work.
In practice there is some kind of DLL hell because old software may rely
on old libs that are not available on newer distributions (or only in
not backward-compatible versions).
For Open Source software that is not that much of a problem, often it's
sufficient to recompile..
Closed source software on Linux often supplies almost all needed
libraries to avoid problems with preinstalled libs - or is even
statically linked. I think this is the same on Windows..

Also, as Nick mentioned, it helps to compile software on a older
distribution, because many libs are at least backwards compatible (to a
certain degree), but not the other way round, so it still works on
newer/recent distributions - while compiling on your newest bleeding
edge beta Ubuntu (or Debian unstable or whatever) will quite likely
produce binaries that won't work on older distributions.
I maintain Debian/Ubuntu packages for a Quake2 port (Yamagi Quake2) and
building them on a old Debian etch chroot jail produces binaries that
work on about any Debian/Ubuntu from the last years (at least there
never have been complaints that it doesn't work).

 
 I think reading some of the issues with MacOSX breaking dmd builds by
 going through a *point* revision, it sounds like MacOSX is just as bad.
 

Strange, considering that MacOSX isn't open and there are not a several
different distributions of it.

 At my previous company, we integrated software from pure software
 companies into their required OSes and hardware, and did all the
 OS/hardware dirty work for them (i.e. we turned pure software into an
 appliance).  One of the *worst* problems was when the customer wanted
 some version of Linux, and let's say they had a specific kernel build. 
 Because of the expectation from the Linux kernel that you just recompile
 all your drivers, any RAID card (a very common requirement) which had
 proprietary driver code would require us to contact the hardware vendor,
 and have them rebuild the RAID driver on their specific kernel (for a
 not-so-nominal fee of course, with very little support).
 

That's why you should use hardware that doesn't rely on proprietary
drivers on Linux. If the driver is integrated in the Kernel you don't
have to worry if it still works after minor or major upgrades.
On Windows you may have hardware that is supported on Windows XP, but
not on Win7 etc.
I think using hardware with free/open drivers is realistic for about any
hardware besides video cards - although the open drivers for AMD/Ati are
getting better. And the proprietary drivers for them are compatible to
any recent kernels (apart from maybe the most recent one, but you won't
find that in distributions anyway). You just have to be a bit careful
and choose your hardware accordingly.


 I fantasized about building my own linux kernel that had zero
 configuration options, and would never break driver compatibility
 between point revisions.  Such a kernel would allow hardware companies
 to release one driver and have it work for any system that used their
 hardware and that kernel.  

Like Redhats 2.6.18 fork they maintained forever?

 I can't imagine hardware companies love
 supporting umpteen driver versions multiplied by umpteen linux vendors
 (generally they only pick one vendor and support that).  

Yeah, they should just donate the driver to the kernel (or at least
release HW specs so somebody else can write an open driver) and let the
kernel developers maintain it.

 Of course, that
 dream would be impossible to realize without tremendous effort, which I
 don't have.
 
 Ah well.
 
 -Steve

Cheers,
- Daniel


Re: DVM - D Version Manager 0.2.0

2011-05-18 Thread Daniel Gibson
Am 18.05.2011 17:20, schrieb Steven Schveighoffer:
 On Wed, 18 May 2011 10:47:02 -0400, Daniel Gibson
 metalcae...@gmail.com wrote:
 
 Am 18.05.2011 14:21, schrieb Steven Schveighoffer:
 
 At my previous company, we integrated software from pure software
 companies into their required OSes and hardware, and did all the
 OS/hardware dirty work for them (i.e. we turned pure software into an
 appliance).  One of the *worst* problems was when the customer wanted
 some version of Linux, and let's say they had a specific kernel build.
 Because of the expectation from the Linux kernel that you just recompile
 all your drivers, any RAID card (a very common requirement) which had
 proprietary driver code would require us to contact the hardware vendor,
 and have them rebuild the RAID driver on their specific kernel (for a
 not-so-nominal fee of course, with very little support).


 That's why you should use hardware that doesn't rely on proprietary
 drivers on Linux. If the driver is integrated in the Kernel you don't
 have to worry if it still works after minor or major upgrades.
 On Windows you may have hardware that is supported on Windows XP, but
 not on Win7 etc.
 
 I don't want to get into a philosophical debate here, but this is truly
 unrealistic.  I think it's one of the main reasons many hardware
 companies don't support Linux.  Opening the source does not mean you
 will not support it, and then you have to deal with 8 million
 configuration options for the kernel to test against your driver.  As a
 hardware company whose main purpose is not writing drivers, that sounds
 like a QA nightmare.
 

I don't know much about coding for the kernel, but I guess that most of
the configuration options shouldn't affect your driver.
Of course there may still be a lot of options left that could affect
your driver.

 Yes, XP drivers don't work on Windows 7, but they work on XP, and there
 is only *one* XP.  Furthermore, Microsoft *purposely* does not
 invalidate existing drivers.  Compare that to Linux, where not only do
 the interfaces in the kernel change from revision to revision, but
 someone is *rebuilding* the entire kernel and all the drivers on every
 revision.  I'm surprised it works as well as it does.
 
 Case in point, while I was using Linux as my main OS, an upgrade of the
 Fedora kernel simply broke my sound card driver.  There was no changes
 to the driver, and I really never figured out what happened, but an
 upgrade to the next major release fixed the problem.  There is
 absolutely no reason for existing drivers to break on a minor upgrade.
 

Are you sure that it wasn't some userspace fuckup?
Also: bugs in the kernel and drivers are always possible, especially
when using a bleeding edge distribution like Fedora.

 I think using hardware with free/open drivers is realistic for about any
 hardware besides video cards - although the open drivers for AMD/Ati are
 getting better. And the proprietary drivers for them are compatible to
 any recent kernels (apart from maybe the most recent one, but you won't
 find that in distributions anyway). You just have to be a bit careful
 and choose your hardware accordingly.
 
 Printer support is woefully missing.  My 2-year old printer still isn't
 supported on Linux.

As I said, you have to choose your hardware accordingly.
There are a lot of printers that have really good Linux support - more
expensive ones via postscript and/or PCL, cheap ones (especially
inkjets) often need some proprietary libs, that are however independent
of the kernel and tend to work, even when they haven't been updated for
some years (cheap HP printers are often supported via HPs open source
hplip driver).

http://www.openprinting.org/printers is pretty helpful and the
proprietary drivers are available from the printer vendors (for example
Brother supports many of their printers), so it's a good idea to look on
that page and on the vendors page for linux support before buying a
printer ;-)


 I fantasized about building my own linux kernel that had zero
 configuration options, and would never break driver compatibility
 between point revisions.  Such a kernel would allow hardware companies
 to release one driver and have it work for any system that used their
 hardware and that kernel.

 Like Redhats 2.6.18 fork they maintained forever?
 
 Not really.  I mean freeze the configuration options for the kernel --
 they can never change except for a major release.  Then, don't recompile
 the drivers for every kernel update.  Maintain *binary* compatibility
 for drivers, so one never has to recompile them unless the driver itself
 has a bug.
 
 I can't imagine hardware companies love
 supporting umpteen driver versions multiplied by umpteen linux vendors
 (generally they only pick one vendor and support that).

 Yeah, they should just donate the driver to the kernel (or at least
 release HW specs so somebody else can write an open driver) and let the
 kernel developers maintain it.
 
 This isn't

Re: DVM - D Version Manager 0.2.0

2011-05-18 Thread Daniel Gibson
Am 18.05.2011 21:22, schrieb Steven Schveighoffer:
 On Wed, 18 May 2011 14:51:18 -0400, Robert Clipsham
 rob...@octarineparrot.com wrote:
 
 On 18/05/2011 16:20, Steven Schveighoffer wrote:
 Printer support is woefully missing. My 2-year old printer still isn't
 supported on Linux.

 Now this is beyond me. Everyone I've talked to says printer support in
 Linux sucks, but I've been through several printers, and Linux has
 been the only operating system I've used that's had no problems with
 it. Regardless of the distro, it picks up a local or network printer
 and allows me to print without any configuration whatsoever -
 apparently it doesn't 'just work' for anyone else though. In OS X and
 Windows I have to manually find network printers and find drivers
 online, only the latter for local printers. Even then they don't
 always work.

 
 At work, since I've been here (almost 2 years), my laptop always cuts
 off about 1/8 of an inch from the left of the page.  Until the latest
 upgrade to ubuntu 11, I would have to adjust the image quality to 1200
 dpi every time I printed (even from the same application) or else any
 graphics on a page would be super-grainy like I printed it in 1995.
 
 I'm sure it works great in some cases.  Just not in general.  And mostly
 not for me :(
 
 -Steve

http://localhost:631

Printers - click on that printer - Administration - Set Default
Options - General - Print Quality



Re: Goldie Parsing System v0.4 Released - Now for D2

2011-04-15 Thread Daniel Gibson
Am 15.04.2011 09:50, schrieb Nick Sabalausky:
 Since you're talking about C, you'll probably want to run your original C 
 code through the preprocess-only option of a real C compiler. (I *think* 
 DMC will do that.) Then parse the resulting preprocessed C files with 
 Goldie. (Although if your goal is an HTOD-like tool, maybe you would need to 
 deal with the original un-preprocessed source directly. 

Why? Just call the preprocessor from your tool or from a wrapping script
and go on with the preprocessed C code. Should be much easier and more
compatible because C compilers ought to know how to preprocess correctly.
For GCC the option you're looking for is -E, btw.

 If Golde's grammar 
 langauge doesn't seem quite up to the task, it probably wouldn't bee too 
 hard to just manually make a basic C preprocessor.)
 

Cheers,
- Daniel


Re: Goldie Parsing System v0.4 Released - Now for D2

2011-04-15 Thread Daniel Gibson
Am 15.04.2011 10:13, schrieb Nick Sabalausky:
 Daniel Gibson metalcae...@gmail.com wrote in message 
 news:io8u12$132q$1...@digitalmars.com...
 Am 15.04.2011 09:50, schrieb Nick Sabalausky:
 Since you're talking about C, you'll probably want to run your original C
 code through the preprocess-only option of a real C compiler. (I 
 *think*
 DMC will do that.) Then parse the resulting preprocessed C files with
 Goldie. (Although if your goal is an HTOD-like tool, maybe you would need 
 to
 deal with the original un-preprocessed source directly.

 Why? Just call the preprocessor from your tool or from a wrapping script
 and go on with the preprocessed C code. Should be much easier and more
 compatible because C compilers ought to know how to preprocess correctly.
 For GCC the option you're looking for is -E, btw.

 
 If by your tool mean a program that uses Goldie to process C code, then 
 yea, that's what I meant.
 

I meant Andrej's hypothetical tool using Goldie to process C code :-)


Re: [Article Context, First Draft] Concurrency, Parallelism and D

2011-04-10 Thread Daniel Gibson
Am 10.04.2011 00:27, schrieb Torarin:
 2011/4/8 dsimcha dsim...@yahoo.com:
 Here's a first draft of an article on D's approaches to concurrency and
 parallelism for D's article contest.  It's not an official submission yet,
 but feedback would be appreciated.

 http://davesdprogramming.wordpress.com/2011/04/07/7/

 
 A very good article! And I like that you linked to other articles that
 go into more detail on  relevant subjects. I wouldn't mind a couple
 more examples.
 
 Torarin

After all the language bikeshedding I'll add something on-topic to this
thread ;)

I agree with Torarin: It's a very good article, I like how further
explanations are linked and I also wouldn't mind some more examples.

Some additional notes:
 * A link to the std.parallelism docs would make sense
 * This means that no data that is not either immutable or shared may
be transitively reachable via pointers or references passed into a
spawned function or passed as a message. is a strange sentence with
those two negations in it.
 * Maybe you could compare std.parallelism to OpenMP in terms of syntax
and functionality? That would probably help all the people that are
familiar with it.

Cheers,
- Daniel


Re: [Article Context, First Draft] Concurrency, Parallelism and D

2011-04-09 Thread Daniel Gibson
Am 10.04.2011 04:27, schrieb dsimcha:
 On 4/9/2011 10:22 PM, Andrei Alexandrescu wrote:
 On 04/09/2011 08:31 PM, dsimcha wrote:
 On 4/9/2011 7:56 PM, Andrei Alexandrescu wrote:
 I think the article's title is missing a comma btw.

 Andrei

 Where?

 Where could it ever be? After parallelism.

 Andrei
 
 Actually, I specifically remember learning about this grammar rule in
 middle school.  When listing stuff, the comma before the and is
 optional.  Putting it and not putting it are both correct.

Having both and and the comma seems redundant to me.

But I'm German and we don't have a comma before and (und) in lists* so
maybe I'm just not used to it.

Cheers,
- Daniel

* an Exception is when a subordinate clause ends before the and, like
in I know programming languages like C, D, which kicks ass, and Java


Re: [Article Context, First Draft] Concurrency, Parallelism and D

2011-04-09 Thread Daniel Gibson
Am 10.04.2011 06:04, schrieb Jonathan M Davis:
 Am 10.04.2011 04:27, schrieb dsimcha:
 On 4/9/2011 10:22 PM, Andrei Alexandrescu wrote:
 On 04/09/2011 08:31 PM, dsimcha wrote:
 On 4/9/2011 7:56 PM, Andrei Alexandrescu wrote:
 I think the article's title is missing a comma btw.

 Andrei

 Where?

 Where could it ever be? After parallelism.

 Andrei

 Actually, I specifically remember learning about this grammar rule in
 middle school.  When listing stuff, the comma before the and is
 optional.  Putting it and not putting it are both correct.

 Having both and and the comma seems redundant to me.

 But I'm German and we don't have a comma before and (und) in lists* so
 maybe I'm just not used to it.

 Cheers,
 - Daniel

 * an Exception is when a subordinate clause ends before the and, like
 in I know programming languages like C, D, which kicks ass, and Java
 
 I'm sure that the wikipedia article goes into a fair bit of detail on it, but 
 there are cases where the lack of the comma leads to ambiguity. I believe 
 that 
 the current recommendation is to always put the comma in, but it's bound to 
 depend on who you talk to - even among English teachers.
 
 - Jonathan M Davis

You can always have ambiguities, e.g.
I know programming languages like C, D, my favorite, Java and Haskell
- does my favorite belong to the list or does it describe D? And
shouldn't there be two commas after favorite (for me this kind of
feels like a missing closing bracket)?

Or, a slightly altered version of a wikipedia example:
Among those interviewed were his three ex-wives, Kris Kristofferson,
Horst Hacker and Robert Duvall. - are Kris, Horst and Robert his
ex-wives (same problem like in the original wikipedia example)?
Alternative version:
Among those interviewed were his three ex-wives, Kris Kristofferson,
Horst Hacker, and Robert Duvall. - not better at all: It's not clear
whether Kris Kristofferson, Horst Hacker, and Robert Duvall is a list
of ex-wives (it's a list, so we put a comma before the and etc) or if
his three ex-wives, Kris Kristofferson, Horst Hacker, and Robert
Duvall. is a list of six people.
So I think a comma before and doesn't help very much in solving
ambiguities.

Cheers,
- Daniel


Re: [OT] Re: Short forum post on REST API

2011-04-03 Thread Daniel Gibson
Am 03.04.2011 08:59, schrieb Nick Sabalausky:
 Daniel Gibson metalcae...@gmail.com wrote in message 
 news:in889j$knb$1...@digitalmars.com...
 Am 03.04.2011 00:22, schrieb Adam D. Ruppe:
 Nick Sabalausky:
 Heh, yup. Because after all, VRML just went over sooo well.

 Yeah... what's old is new again fits so well to web 2.0.

 WebGL gets more minus points too since its on shaky technical
 grounds too. It isn't very 'webby' if you will and may have
 security implications... but wheee you can make shitty ports
 of old games to the browser!

 If it helps killing Flash I'm fine with WebGL,
 
 My immeditate reaction is to agree with you on that, because direct 
 experience as both a flash-user and as a flash-developer has given me a 
 strong personal hatred towards Flash. But, if WebGL is driven by in-browser 
 JS (as I *think* it is, not that I've studied it closely), then I dunno, 
 suddenly Flash doesn't sound quite so bad anymore. Heck, at the very least, 
 Flash is already in byte-code when it's distributed, and the 
 JS-as-the-web's-asm idea just gives me a rash. Plus it's cleaner/easier to 
 block flash than to block specific JS features. Etc.

But Flash is a notorious security hole, sometimes crashes the browser, ...

 
 [If it helps killing Flash I'm fine with] HTML5-videotag
 
 I dunno. The thing that still bugs me about that is we *already* had the 
 object tag, 

The problem was that there were different codecs for videos (windows media, real
media, ...) and often websites prompted you to install their codec.. which
sometimes distributed malware etc.
It's better to have a video tag with a standard codec that is supplied by the
browser.

 but then ever since YouTube came along everyone just stopped 
 using it, Google outright left it out of Chrome, etc. It was just plain 
 killed off in favor of flash. And now, ages later, they reinvent the object 
 tag and try to convince me it'll finally pull web-A/V out of the flash 
 shackes that *they* had placed web-A/V into in the first place? Even if I 
 did feel that I could trust that claim (a shaky prospect), the fact remains 
 that we *already* had a solution.
 
 (I hope google's WebM will win) etc.
 
 Oh god yes. I suppose everyone knows I'm, well, not exactly a big Google 
 fan, but the legal ball-and-chain that's welded to H.2[0-9][0-9] (whatever 
 the hell it's called) just leaves it a complete non-option, IMO. I'd sooner 
 use flv and an embedded player - and I've always hated the whole concept of 
 flash video players.
 

Flash also supports H.264 and other patented MPEG crap.


Re: [OT] Re: Short forum post on REST API

2011-04-02 Thread Daniel Gibson
Am 03.04.2011 00:22, schrieb Adam D. Ruppe:
 Nick Sabalausky:
 Heh, yup. Because after all, VRML just went over sooo well.
 
 Yeah... what's old is new again fits so well to web 2.0.
 
 WebGL gets more minus points too since its on shaky technical
 grounds too. It isn't very 'webby' if you will and may have
 security implications... but wheee you can make shitty ports
 of old games to the browser!

If it helps killing Flash I'm fine with WebGL, HTML5-videotag (I hope google's
WebM will win) etc. However that shouldn't be used in serious (non
demo/showcase) websites until proper support is ready in all major browsers.

As a web developer you should be glad that IE5/6's days are over and browsers
are a more standard-conformant - or did you like writing a different version  of
your websites for each browser?
A friend of mine who does web programming complained about having to work around
IE6's anomalies a lot until he could finally stop supporting it, so I'm kind of
surprised that you and Nick seem to like these old versions of the IE.

Cheers,
- Daniel


Re: TDPL Amazon rank at 4-months high

2011-03-01 Thread Daniel Gibson
Am 02.03.2011 01:26, schrieb Jordi Sayol:
 Al 01/03/11 21:57, En/na Walter Bright ha escrit:
 Andrei Alexandrescu wrote:
 Yah, there are many variables. Add to those many handling details that 
 influence the process. TDPL has certainly sold more than 1830 copies by now 
 (= the collector's edition count) but booksellers have no obligation to 
 send older prints first, so it all depends on which batch they have handy 
 when shipping. Also I'm sure some smaller booksellers have gotten a batch 
 from the collector's edition that hasn't been sold yet.

 It could be like milk. You buy a new carton of milk, and shove it in the 
 refrigerator. When you need some, you grab the carton in front, which is the 
 new one.

 So the old milk remains in stock for months, years, ...

 
 milk + years = poison :-)
 
 To solve this, somebody invented FIFO (first in, first out), and FILO (first 
 in, last out), to solve storage problems. 
 

You'd need a fridge with two doors: one in the front, one in the back. Insert
new food in the front, get food to eat from the back (or the other way round).
But reinsert opened food in the back (or, in the alternative case, in the 
front).

;-)


Re: dmd 1.067 and 2.052 release

2011-02-20 Thread Daniel Gibson

Am 21.02.2011 01:51, schrieb Graham St Jack:

Fantastic news! Well done once again to the whole team.

Now that the 64-bit bugbear is in the bag (along with a big pile of
bugs), what is next? Is there a list somewhere detailing the planned
language/toolchain changes that will make it into D2? Are we converging
on a stable release of the language anytime soon?

In particular, are there any plans to re-examine the tail-const issue in
light of the compiler patch proposed by Michel Fortin in his post:
const(Object)ref is here! back in December?

Some other issues I assume are still in flux (and can remember) are:
* Tweaks to usability of const/immutable/shared.
* Tweaks to usability of nothrow, pure, etc.
* Rollout of const, nothrow, pure, etc thoughout phobos.
* Fate of the delete keyword.
* Fate of the scope keyword used in object declaration and function
parameters.
* Meaning of in keyword for function parameters. Is it just const, and
if so, why not just use const?

I don't have (much) of a personal agenda here - I just want the rough
edges smoothed off and a stable language.




If I recall correctly, the next thing to be implemented was support for 
shared libraries (dmd being able to create create position-independent 
code (PIC)).


Cheers,
- Daniel


Re: Alternative linker win32/64

2011-02-18 Thread Daniel Gibson

Am 18.02.2011 16:41, schrieb Andrei Alexandrescu:

On 2/18/11 9:42 AM, dsimcha wrote:

== Quote from Andrei Alexandrescu (seewebsiteforem...@erdani.org)'s
article

On 2/18/11 4:00 AM, Dmitry Olshansky wrote:

The fresh beta of universal linker UniLink has arrived, with exciting
new features.

Wow. If this works out, it is the closest thing in real life to Deux ex
machina. We were pretty much out of options.
Andrei


Let's say for the sake of discussion that UniLink does work. How close
does that
put us to having 64 support on Windows, too, if OptLink doesn't need
to be
translated/rewritten/whatever?


AFAIK the linker is the largest roadblock, but Walter should really
answer this question.

Andrei


I've got this message (and the other one from you in this thread) twice, 
one sent to the poster you were replying to and one without an explicit 
to, but both in this news group.

Was that intended?

Cheers,
- Daniel


Re: New web newsreader - requesting participation

2011-02-03 Thread Daniel Gibson
Am 03.02.2011 22:00, schrieb Lars T. Kyllingstad:
 On Thu, 03 Feb 2011 17:16:58 +, Adam Ruppe wrote:
 
 Eric Poggel wrote:
 I hate to mention this in light of Adam's work, but Reddit is open
 source--why not run our own deployment of it for D?

 I *really* dislike tree style interfaces. I find them incredibly hard to
 navigate.

 Of course, I'm fairly unlikely to use the web interface much anyway
 (whether mine or someone else - I prefer my mail client most the time),
 but still, it would be nice if it didn't suck.

 Anyway, I did a little more work on my thing this morning:

 http://arsdnet.net/d-web-site/nntp/thread-index?newsgroup=digitalmars.D

 There's now [Tree] and [Linear] links on the right to view the whole
 thread at once.


 Any ideas on how to improve that? I copied a few basic elements of
 reddit style sites, but I'm thinking that view works best for very short
 messages.
 
 I agree.  Subject, author and date should be shown in a tree view, but 
 you should never display more than one message body at a time.  The 
 average message on this forum is far too long for that.
 
 -Lars

I find it annoying to open each message in a thread manually.
I prefer a fully expanded thread with all bodies (or maybe partially expended by
subthreads or something when it's too big). This makes reading longer threads
much easier.
I haven't found a non-web-based news/mail client that does this yet, but going
to the next message with 'n' in Thunderbird certainly is less painful than
clicking the next message I want to read on a website.

Cheers,
- Daniel


Re: New web newsreader - requesting participation

2011-01-31 Thread Daniel Gibson

Am 31.01.2011 13:19, schrieb Nick Sabalausky:

foobarf...@bar.com  wrote in message
news:ii62n0$1r3i$1...@digitalmars.com...


1. common human markup such as: _foo_ (underline), *foo* (bold) etc,



I've never been much of a fan of that. Actually that's one of the things I
didn't like about Thunderbird when I tried it: it kept replacing *'s and _'s
with formatting even what I was in the supposed plaintext mode.

Of course, if the *'s and _'s stay intact when the text is bolded/etc, then
I can't say I'd care quite so much.



This is exactly what my Thunderbird (okay, it's Icedove really) does. 
*,_,/ stays intact, but the text is bolded/underlined/italicized.




Re: DVM - D Version Manager

2011-01-27 Thread Daniel Gibson

Am 27.01.2011 13:05, schrieb Jacob Carlborg:

On 2011-01-26 23:46, Michel Fortin wrote:

On 2011-01-26 15:24:56 -0500, Jacob Carlborg d...@me.com said:


/bin/sh is not a symlink on Mac OS X. I guess I just can try to use sh
instead of bash.


But should it output this?

$ /bin/sh --version
GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0)
Copyright (C) 2007 Free Software Foundation, Inc.
$

This is on Mac OS X 10.6.6.


I have no idea. Perhaps it will run bash in a mode which is compatible
with sh.



Or just in normal mode, like linux distributions have been done for ages 
(and some still do).
bash *is* compatible with sh (= everything that runs in sh runs in 
bash), but sh is not compatible with bash (= bash has features that 
other sh-compliant shells don't have and that are not required by the 
corresponding POSIX standard).


Re: Texas LinuxFest 2011 call for papers now open

2011-01-20 Thread Daniel Gibson

Am 20.01.2011 19:58, schrieb Lutger Blijdestijn:

Andrei Alexandrescu wrote:


http://www.texaslinuxfest.org/callforpapers/

One topic of interest is Open Source Programming Languages. If someone
could explain to me the various subtle nuances of what an open source
programming language is, I'll try to make a D-related submission and of
course I recommend anyone else to do the same.


Andrei


This is a matter of perspective, I think these are the possibly interesting
angles and issues for D:

- availability and development of Open Source compilers (OSI compatible
license)



(x) we have gdc and ldc (check how well current versions with D2 work before 
talking about them, though ;))



- cross-platform design, this extends beyond linux but is often a concern
and goal in the Open Source world


(x) Windows, Linux, OSX, FreeBSD are supported, with gdc/ldc probably more



- development process of the language (and std lib) itself: here the
community participation is important. For D it's an interesting (and
ongoing) story to tell.


(x) agree.
Also: The std lib is under a very free license (unlike for example suns/oracles 
classpath.. OpenJDK seems to be GPLed, but that still sucks for a std lib)




- usefulness and place in the open source ecosystem: I believe D has a
potential here as a serious alternative for both mono and java. Mono, the
open source implementation of .net, has loads of potential patent issues and
for this reason is not supported by some distro's. Java also has it's
issues. Positioning D as a solution to those problems (rather than an
alternative for C++ or dynamic languages) will please the crowd, for sure :)


You can never be sure with patents, as someone else in another thread already 
pointed out: it's virtually impossible to write a piece of software that doesn't 
infringe patents.
Of course, the situation is worse with Java (as seen in Oracle suing Google for 
using a Java-derivate in Android) and Mono (you never know if Microsoft will 
tolerate this forever. Even if they promised not to sue for current .net related 
patents, you never know about patents applying to features in future versions of 
.net).
With D at least people still would have to find patents that are infringed - and 
even then the case isn't as clear as with Java/mono, where it's obvious that the 
Java/.net related patents are infringed.


So yes, the point that D may cause less trouble than Java/.net can be made, but 
you probably shouldn't claim that D doesn't infringe any patents, because you 
can't possibly know (nobody can, there are just too many software patents to 
check, even for big companies).



Interoperability with C is also important here.


Yeah, it's a killer-feature. Being able to just call C functions and link 
objects produced by gcc objects (foo.o) is *really* helpful, especially in the 
Linux world.



I think D (with gdc/ldc) qualifies as an Open Source Programming Language, but 
you should probably ask the texaslinuxfest guys for their personal definition.


Cheers,
- Daniel


Re: Texas LinuxFest 2011 call for papers now open

2011-01-20 Thread Daniel Gibson

Am 20.01.2011 21:15, schrieb Lutger Blijdestijn:

Daniel Gibson wrote:
...


So yes, the point that D may cause less trouble than Java/.net can be
made, but you probably shouldn't claim that D doesn't infringe any
patents, because you can't possibly know (nobody can, there are just too
many software patents to check, even for big companies).





 Technically that is right, but I find it a bit of an understatement because
 every non trival software project has potential issues. With .NET and Java
 you *know* you have patent issues, with D any potential patent issue is a
 tragic mistake that still has to be proven to exist. Those are not on the
 same scale, so I wouldn't use the term 'less trouble' You also have
 ownership to take into account, I would rather trust Walter Bright not using
 submarine patent traps than MS or Oracle :)

I mostly agree with you :-)
Maybe less trouble is not the right word.. my point is: I guess Walter did not 
explicitly try to avoid patents when developing D (and, as mentioned before, you 
can't be sure anyway), so you probably can't advertise D as a patent-free 
language (like ogg vorbis is claimed to be a patent-free audio codec).
And I don't believe Walter is using any patent traps (Does he hold any patents? 
I wouldn't be surprised, and I don't really care because I don't believe he'd 
use it offensively) - but once D is popular you never know if a third party 
starts trolling. But of course, this may happen with any language or software in 
general. Furthermore, there was this thread in d.D about two Borland patents 
that are now owned by M$ that *may* be infringed by D...




Perhaps I should elaborate a bit. mono is simply out of the question in a
large part of linux. Fedora for example, has D as a feature for its 14
release but doesn't support mono. Java is more complex, but if we take it
out of the picture it leaves (some of) linux with C / C++ on the one hand
and a lot of higher level dynamic languages on the other. In between are
some more 'exotic' languages such as haskell. Perhaps I'm wrong, but I see a
big void there where D can step in, mostly because of its set of features.
In the non-open-source world, Java and .NET are already taking care of much
of this void.


I agree.
A free language that works well with C and is at least as user-friendly as 
Java definitely has a lot of potential in the open source and esp. Linux/*BSD 
world. Many Open Source developers will prefer it to Java/Mono, because it 
doesn't use a VM (some may still complain about the garbage collector, though, 
but in the end they'd benefit from it, because it mostly prevents the quite 
common memory leaks).


Another thing that should be considered: For D2 to be really interesting in the 
Linux world, stream and socket handling needs to improve.
But it seems like this will happen, Andrei started a discussion about a new 
std.stream in d.D recently.


Cheers,
- Daniel


Re: Build a D project is now easy

2010-11-23 Thread Daniel Gibson

bioinfornatics schrieb:

hello community,
I have start a project for generate easily a build system for D project. 
Currently in d world everyone use his own build system for build a new project 
with a new system is a bit hard for everyone, for debug  same thing. My tool 
generate
makefile system for your project in one command:
$ dmake --path src --lib src/myProject/
and for user he need ony do:
$ make
$ make install

At this time only works for build a library.
This system is usefull for support ldc, gdc and dmd compiler

You can found the project here: http://gitorious.org/dmake/dmake

Any help are welcome


I think this is a good thing :-)

D compilers are available in many linux distributions (debian, ubuntu and 
archlinux have gdc and ldc, fedora has ldc, don't know about other 
distributions), but D specific build-tools/systems like rebuild, dsss, xfbuild 
etc aren't.

Make is part of any linux distribution, of course.

So now you can use dmake to conveniently create a makefile so anybody who uses 
one of the aforementioned linux distributions can easily compile your software - 
he just needs to install [lg]dc and make from the distributions repository.


This could really help any open source D application, because
1. they're painless to compile and install for users
2. your application being packaged in a linux distribution is more likely, 
because the build dependencies (well, at least the compiler and the make tool) 
already exist in the distribution


Now all we need are killer open source applications written in D ;-)

Cheers,
- Daniel


Re: [Phoronix] Digital Mars Is Wanting To Merge D Into GCC

2010-11-22 Thread Daniel Gibson

Jesse Phillips schrieb:

Looks like Phoronix posted an article about D moving into GCC a couple weeks 
ago. So hopefully things are going well on this.


http://www.phoronix.com/scan.php?page=news_itempx=ODc2Ng


Phoronix took notice of D?
Expect monthly articles revealing performance drawbacks in the latest beta 
versions of dmd/gdc/ldc that only matter in artificial benchmarks.