February 13, 2007
Walter Bright wrote:
> Kirk McDonald wrote:
>> Ohh, lookit all the huge, pretty red sections.
> 
> My goal is to make the Boost implementation code look as obsolete as a muzzle-loading smoothbore.

It has nothing to do with the conversation, but your statement reminded me...  I saw a show not too long ago (may have been MythBusters) where the penetration depth of various types of ammunition were tested in water.  Modern bullets had poor penetration because they tended to tumble upon entering the water, thus creating drag (max injury depth was less than 5 feet).  And high-velocity rounds tended to fragment upon entry and had even shallower penetration (around 3 feet).  Finally, a muzzle-loading smoothbore was tested and it had by far the deepest penetration of any weapon tested.  So if you're being shot at in a lake, I suppose you don't want the shooter using Boost ;-)


Sean
February 13, 2007
Walter Bright wrote:
> Kirk McDonald wrote:
>> Ohh, lookit all the huge, pretty red sections.
> 
> My goal is to make the Boost implementation code look as obsolete as a muzzle-loading smoothbore.

LOL

After reading that, I was immediately given the mental image of a colonial minute-man, trying desperately to hammer out C++ code on a set of jacquard loom cards.

-- 
- EricAnderton at yahoo
February 13, 2007
Sean Kelly wrote:
> Walter Bright wrote:
>> Kirk McDonald wrote:
>>> Ohh, lookit all the huge, pretty red sections.
>>
>> My goal is to make the Boost implementation code look as obsolete as a muzzle-loading smoothbore.
> 
> It has nothing to do with the conversation, but your statement reminded me...  I saw a show not too long ago (may have been MythBusters) where the penetration depth of various types of ammunition were tested in water.  Modern bullets had poor penetration because they tended to tumble upon entering the water, thus creating drag (max injury depth was less than 5 feet).  And high-velocity rounds tended to fragment upon entry and had even shallower penetration (around 3 feet).  Finally, a muzzle-loading smoothbore was tested and it had by far the deepest penetration of any weapon tested.  So if you're being shot at in a lake, I suppose you don't want the shooter using Boost ;-)

Sounds like that is about the ammunition, not the gun.

The worst thing about a muzzle-loader in combat was you had to *stand up* to reload it. Can you imagine the guts it takes to do that, when your every nerve screams at you to push your face in the dirt?
February 13, 2007
Walter Bright wrote:
> Sean Kelly wrote:
>> Walter Bright wrote:
>>> Kirk McDonald wrote:
>>>> Ohh, lookit all the huge, pretty red sections.
>>>
>>> My goal is to make the Boost implementation code look as obsolete as a muzzle-loading smoothbore.
>>
>> It has nothing to do with the conversation, but your statement reminded me...  I saw a show not too long ago (may have been MythBusters) where the penetration depth of various types of ammunition were tested in water.  Modern bullets had poor penetration because they tended to tumble upon entering the water, thus creating drag (max injury depth was less than 5 feet).  And high-velocity rounds tended to fragment upon entry and had even shallower penetration (around 3 feet).  Finally, a muzzle-loading smoothbore was tested and it had by far the deepest penetration of any weapon tested.  So if you're being shot at in a lake, I suppose you don't want the shooter using Boost ;-)
> 
> Sounds like that is about the ammunition, not the gun.
> 
> The worst thing about a muzzle-loader in combat was you had to *stand up* to reload it. Can you imagine the guts it takes to do that, when your every nerve screams at you to push your face in the dirt?

It wasn't an issue until people got sick of standing in two lines facing one another :-)  I wonder how quickly the shift to guerilla tactics changed the development of firearm technology.  After discovering they had a chance to actually survive a battle, I can't imagine soldiers were terribly keen on giving up their cover every ten seconds or so.


Sean
February 14, 2007
Sean Kelly wrote:
> Walter Bright wrote:
>> The worst thing about a muzzle-loader in combat was you had to *stand up* to reload it. Can you imagine the guts it takes to do that, when your every nerve screams at you to push your face in the dirt?
> 
> It wasn't an issue until people got sick of standing in two lines facing one another :-)  I wonder how quickly the shift to guerilla tactics changed the development of firearm technology.  After discovering they had a chance to actually survive a battle, I can't imagine soldiers were terribly keen on giving up their cover every ten seconds or so.

I think the firearm technology drove the tactics. The two line approach worked only because guns were inaccurate and very slow loading, the idea was you could reach the enemy lines before they could get off more than one or two shots.

With the advent of longer range, more accurate rifles, this turned into a slaughter. Breech loading repeaters finished it off.
February 14, 2007
Walter Bright wrote:
> Don Clugston wrote:
>> Walter Bright wrote:
>>> Bruno Medeiros wrote:
>>>> Well, actually you can do that, with the unannounced (in the changelog) .stringof property ( http://www.digitalmars.com/d/property.html ) :
>>>>
>>>> ----
>>>>
>>>> template MakeVariable(Type, char[] name)
>>>> {
>>>>   const char[] MakeVariable = Type.stringof ~ " " ~ name ~ ";";
>>>> }
>>>
>>> It's unannounced because it doesn't work right yet.
>>
>> <trashes meta.nameof>
>> It was a piece of code I was particularly proud of. Ah well.
>> </trashes>
>>
>> It seems that 90% of the metaprogramming code I've ever written has been made obsolete by being incorporated into the code language.
>> My 'workarounds' file went from 16 entries to zero.
>>
>> But the ability to do it for an expression as well is quite exciting; it seems that this could easily supercede lazy parameters.
>> So I'm not complaining <g>.
> 
> The big problem with .stringof is the following:
> 
>     alias Foo.Bar.Abc T;
>     typedef int Abc;
>     const char[] s = T.stringof;
>     typeof(mixin(s)) x;
> 
> s is given the string "Abc". So, when the mixin evaluates s, it resolves to the local declaration of Abc, not the fully qualified one.

Isn't it always going to be true that the scope where stringof is applied, could be different from where it is mixed in?

That's why I figured that the concept of symbolnameof (the minimal descriptor in the scope) was different from qualifiednameof (valid in any scope). Of course, you've got access to much more information than I did, so perhaps there's a cleaner solution.
February 14, 2007
Walter Bright wrote:
> Sean Kelly wrote:
>> Walter Bright wrote:
>>> The worst thing about a muzzle-loader in combat was you had to *stand up* to reload it. Can you imagine the guts it takes to do that, when your every nerve screams at you to push your face in the dirt?
>>
>> It wasn't an issue until people got sick of standing in two lines facing one another :-)  I wonder how quickly the shift to guerilla tactics changed the development of firearm technology.  After discovering they had a chance to actually survive a battle, I can't imagine soldiers were terribly keen on giving up their cover every ten seconds or so.
> 
> I think the firearm technology drove the tactics. The two line approach worked only because guns were inaccurate and very slow loading, the idea was you could reach the enemy lines before they could get off more than one or two shots.
> 
> With the advent of longer range, more accurate rifles, this turned into a slaughter. Breech loading repeaters finished it off.

Huh.  That makes a lot of sense.


Sean
February 15, 2007
Walter Bright wrote:
> Don Clugston wrote:
>> Walter Bright wrote:
>>> Bruno Medeiros wrote:
>>>> Well, actually you can do that, with the unannounced (in the changelog) .stringof property ( http://www.digitalmars.com/d/property.html ) :
>>>>
>>>> ----
>>>>
>>>> template MakeVariable(Type, char[] name)
>>>> {
>>>>   const char[] MakeVariable = Type.stringof ~ " " ~ name ~ ";";
>>>> }
>>>
>>> It's unannounced because it doesn't work right yet.
>>
>> <trashes meta.nameof>
>> It was a piece of code I was particularly proud of. Ah well.
>> </trashes>
>>
>> It seems that 90% of the metaprogramming code I've ever written has been made obsolete by being incorporated into the code language.
>> My 'workarounds' file went from 16 entries to zero.
>>
>> But the ability to do it for an expression as well is quite exciting; it seems that this could easily supercede lazy parameters.
>> So I'm not complaining <g>.
> 
> The big problem with .stringof is the following:
> 
>     alias Foo.Bar.Abc T;
>     typedef int Abc;
>     const char[] s = T.stringof;
>     typeof(mixin(s)) x;
> 
> s is given the string "Abc". So, when the mixin evaluates s, it resolves to the local declaration of Abc, not the fully qualified one.

Erm, shouldn't T.stringof be "T" and not "Abc" nor even "Foo.Bar.Abc"?

-- 
Bruno Medeiros - MSc in CS/E student
http://www.prowiki.org/wiki4d/wiki.cgi?BrunoMedeiros#D
February 15, 2007
"Bruno Medeiros" <brunodomedeiros+spam@com.gmail> wrote in message news:eqnkde$2l2e$1@digitalmars.com...
>
> Well, actually you can do that, with the unannounced (in the changelog) .stringof property ( http://www.digitalmars.com/d/property.html ) :

Damn!  I stopped reading this thread when it got so big, so I completely missed your reply.. and I finally found out about stringof from Frits.  This is a sweet, sweet feature.  I was actually going to say something about the ability to get the string of an arbitrary expression as well, but that's covered too.  What a feature :)


February 16, 2007
Walter Bright wrote:
> Sean Kelly wrote:
>> Walter Bright wrote:
>>> Kirk McDonald wrote:
>>>> Ohh, lookit all the huge, pretty red sections.
>>>
>>> My goal is to make the Boost implementation code look as obsolete as a muzzle-loading smoothbore.
>>
>> It has nothing to do with the conversation, but your statement reminded me...  I saw a show not too long ago (may have been MythBusters) where the penetration depth of various types of ammunition were tested in water.  Modern bullets had poor penetration because they tended to tumble upon entering the water, thus creating drag (max injury depth was less than 5 feet).  And high-velocity rounds tended to fragment upon entry and had even shallower penetration (around 3 feet).  Finally, a muzzle-loading smoothbore was tested and it had by far the deepest penetration of any weapon tested.  So if you're being shot at in a lake, I suppose you don't want the shooter using Boost ;-)
> 
> Sounds like that is about the ammunition, not the gun.
> 
> The worst thing about a muzzle-loader in combat was you had to *stand up* to reload it. Can you imagine the guts it takes to do that, when your every nerve screams at you to push your face in the dirt?

Actually the notion of taking cover, now ubiquitously known even by civilians (due to cinematography), is (amazingly) a recent development. Until the end of WWI, soldiers actually were not jumping to the ground under fire. They'd be trained to think that they'd have a better chance by moving forward and storming the enemy. It's pretty much how a million soldiers just died mowed by machine gun at Somme.

When I was in the military, there was a big detailed poster displaying the difference in shooting angle offered by a standing vs. a crouched vs. a lying man.


Andrei