# New SoftWire release

10 replies to this topic

### #1Nick

Senior Member

• Members
• 1227 posts

Posted 06 September 2004 - 01:55 PM

SoftWire is a run-time code generator. It is written in C++ and creates x86 functions. It can be used for a script compiler or to optimize inner loops. An introduction can be found here: Tutorial. It is also the key technology behind swShader, my DirectX 9-like software renderer.

The new feature for this release is to allow code to be created from a C++ expression. Operator overloading makes the calls to the SoftWire run-time intrinsics to generate the corresponding code. The optimizer makes sure that most redundant operations are eliminated. For example:
Int emitMul(Int a, Int b)
{
return a * b;
}

This function does not compute a * b, it generates the code for a multiplication. So for a script compiler, you can just write what the code has to do in C++, and SoftWire takes care of all the rest. This new feature also allows to quickly turn static C++ code into dynamically compiled and optimized C++ code. Conditional execution becomes conditional compilation.

Enjoy!

### #2davepermen

Senior Member

• Members
• 1306 posts

Posted 06 September 2004 - 02:00 PM

heck thats cute! :D you do all the nice work for us :D anubis, we should finally get something real up to plug softwire into !! :D
davepermen.net
-Loving a Person is having the wish to see this Person happy, no matter what that means to yourself.
-No matter what it means to myself....

### #3anubis

Senior Member

• Members
• 2225 posts

Posted 06 September 2004 - 02:01 PM

be sure to have me as an admirer on this board :)
If Prolog is the answer, what is the question ?

### #4anubis

Senior Member

• Members
• 2225 posts

Posted 06 September 2004 - 02:10 PM

dave : yeah... i tried out subversion... maybe that's the version control system we want. our problem is that we never got around to find a way to share source
If Prolog is the answer, what is the question ?

### #5Mihail121

Senior Member

• Members
• 1059 posts

Posted 06 September 2004 - 03:37 PM

UhU! New release of SoftWire!! Nick, i'm always filled with joy when you release a new version of that! I've been following this project (swShader and SoftWire) since you've released the first demo with it!

### #6SnprBoB86

Valued Member

• Members
• 112 posts

Posted 06 September 2004 - 03:57 PM

I didn't quite follow how subversion got brought up. But if you are looking for a free source control solution, I highly recomend it. Also, TortoiseSVN is extreamly useful for Windows SVN users, although it is not as mature as TortoiseCVS.
Brandon Bloom
http://brandonbloom.name

### #7anubis

Senior Member

• Members
• 2225 posts

Posted 06 September 2004 - 03:59 PM

SnprBoB86 : dave and i are planning on co-writing something but never started, mainly because we couldn't decide on how to share the source. did you try the subversion plugin for visual studio ?
If Prolog is the answer, what is the question ?

### #8davepermen

Senior Member

• Members
• 1306 posts

Posted 06 September 2004 - 09:16 PM

i've heard good things about subversion. can't wait to connect softwire with .NET 2.0, too ..

the power of lowest level paired with the power of highest level.
davepermen.net
-Loving a Person is having the wish to see this Person happy, no matter what that means to yourself.
-No matter what it means to myself....

### #9SnprBoB86

Valued Member

• Members
• 112 posts

Posted 06 September 2004 - 11:25 PM

@anubis:

I did not try any VS plug-in. However, I do not think you really need it if you use Tortoise.

Why?
You do not need to check out files with CVS or SVN. Everyone operates on their own local sandbox and changes it however they like and then merge their changes with the server's copy.

I use TortoiseCVS at work. My solution to not having a plug-in was to pin a shortcut to the root source folder on my start menu. When working collaboratively, before I start I right click the icon and choose "CVS Update" which downloads my teamates changes. I then work until I have completed a feature or bug fix or major change. Then I right click the shortcut and choose "CVS Commit".

The update requires no additional user input.
The commit requires writing a comment and presents a list of changed/added/removed files. You can right click a file and see a change history or launch a comparison between the current server and local versions.

As you can see, they is very limited interaction with the CVS/SVN system. The only benifit to integration is that you can select a file right in the IDE to update individually or commit individually, but I rarely find a need to do that.

One thing I particuarly like in Tortoise is that if you use "Details" view in explorer, you can add columns such as "Status" and choose to "Show in groups". So right in explorer I can seperate out ignored files and easily see a summary of which files I have changed. That would be difficult to do in the IDE.

That all said: If the plug-in works fine, install it and use it! It can't hurt at all and probably can prove useful once in a while.
Brandon Bloom
http://brandonbloom.name

### #10anubis

Senior Member

• Members
• 2225 posts

Posted 06 September 2004 - 11:52 PM

i've used Tortoise so far, too and i'm happy with it. i just heard about a surbversion plugin but wanted to spare me the pain of trying it out
If Prolog is the answer, what is the question ?

### #11Dia

DevMaster Staff