www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - DustMite updated

reply "Vladimir Panteleev" <vladimir thecybershadow.net> writes:
I played with some algorithms today and got about a 7x 
improvement in reduction time for my test case. The data is now 
arranged into a binary tree, and the progress indicator was 
changed to reflect that. Let me know if I broke anything in the 
process.

No new features have been added. Still thinking about how to 
handle lists.

---

DustMite is a tool which minimizes D source code.
https://github.com/CyberShadow/DustMite
Feb 22 2012
next sibling parent Iain Buclaw <ibuclaw ubuntu.com> writes:
On 23 February 2012 02:25, Vladimir Panteleev
<vladimir thecybershadow.net> wrote:
 I played with some algorithms today and got about a 7x improvement in
 reduction time for my test case. The data is now arranged into a binary
 tree, and the progress indicator was changed to reflect that. Let me know if
 I broke anything in the process.

 No new features have been added. Still thinking about how to handle lists.

 ---

 DustMite is a tool which minimizes D source code.
 https://github.com/CyberShadow/DustMite
Awesome! I'll get testing tonight. :) -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0';
Feb 23 2012
prev sibling next sibling parent reply Trass3r <un known.com> writes:
 I played with some algorithms today and got about a 7x improvement in  
 reduction time for my test case. The data is now arranged into a binary  
 tree, and the progress indicator was changed to reflect that. Let me  
 know if I broke anything in the process.
Hooray, DustMite ftw!
Feb 23 2012
parent reply Trass3r <un known.com> writes:
Unfortunately plenty of 64Bit errors again :/
Feb 23 2012
parent reply "Vladimir Panteleev" <vladimir thecybershadow.net> writes:
On Thursday, 23 February 2012 at 11:52:17 UTC, Trass3r wrote:
 Unfortunately plenty of 64Bit errors again :/
I can't test for these easily (I wish DMD on Windows had -m64 working with -o-).
Feb 23 2012
next sibling parent Robert Clipsham <robert octarineparrot.com> writes:
On 23/02/2012 13:05, Vladimir Panteleev wrote:
 On Thursday, 23 February 2012 at 11:52:17 UTC, Trass3r wrote:
 Unfortunately plenty of 64Bit errors again :/
I can't test for these easily (I wish DMD on Windows had -m64 working with -o-).
Fixed - https://github.com/CyberShadow/DustMite/pull/7 -- Robert http://octarineparrot.com/
Feb 23 2012
prev sibling parent "Nick Sabalausky" <a a.a> writes:
"Vladimir Panteleev" <vladimir thecybershadow.net> wrote in message 
news:mnaydzddphyxlgpswddi forum.dlang.org...
 On Thursday, 23 February 2012 at 11:52:17 UTC, Trass3r wrote:
 Unfortunately plenty of 64Bit errors again :/
I can't test for these easily (I wish DMD on Windows had -m64 working with -o-).
As a Windows guy on a 32-bit machine (yes, yea, I know, I know, "that's old", "you should upgrade", etc), I always test 64-bit (on a 64-bit machine that I at least have access to) by using a 64-bit Debian 6 LiveDVD with USB persistence: http://www.linuxquestions.org/questions/debian-26/live-dvd-but-save-to-usb-913698/#post4526688 I use that to do 64-bit testing right before any release. Not nearly as nice as -m64, but it works well enough for me. It sucks that you can't run a 64-bit OS in a VM without hardare virtualization (which many Intels don't have), even on a 64-bit machine with a 64-bit host OS (Hmm...or is that restriction only on 64-bit machines with 32-bit host OSes...? I forgot...).
Feb 23 2012
prev sibling next sibling parent reply "Vladimir Panteleev" <vladimir thecybershadow.net> writes:
I pushed out another large update today[1]. Changes include 
comma-separated list support (no more stray empty modules), a 
better progress indicator, a more useful/intuitive --noremove 
option, several bugfixes, as well as a large internal overhaul 
and the arrival to the bottom of my to-do list :) So, I consider 
DustMite completed for the moment.

The latest version is available on GitHub:
   https://github.com/CyberShadow/DustMite


  [1]: 
https://github.com/CyberShadow/DustMite/compare/c8f1fd...7ac43d
Mar 04 2012
next sibling parent Trass3r <un known.com> writes:
Kudos!
Mar 04 2012
prev sibling next sibling parent reply Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
On 3/4/12, Vladimir Panteleev <vladimir thecybershadow.net> wrote:
 I pushed out another large update today.
I can't believe I'm saying this, but I can't wait for my next ICE to try it out. :p
Mar 04 2012
next sibling parent reply Chad J <chadjoan __spam.is.bad__gmail.com> writes:
On 03/04/2012 12:04 PM, Andrej Mitrovic wrote:
 On 3/4/12, Vladimir Panteleev<vladimir thecybershadow.net>  wrote:
 I pushed out another large update today.
I can't believe I'm saying this, but I can't wait for my next ICE to try it out. :p
Here's one for DMD 2.057. Knock yourself out ;) (As I mentioned in my other post, I can't build DustMite right now, or I'd do it myself. But if you want one...) ---------------------------------------------- chad Hugin ~/dprojects/database $ dmd ice.d entity.(fld) Internal error: e2ir.c 683 ---------------------------------------------- import std.stdio; scope class Query(string queryText) { static class Entity { private static size_t bufSize = 0; private static size_t[string] offsets; private static size_t registerField(T)(string varName) { auto offset = bufSize; offsets[varName] = offset; bufSize += T.sizeof; return offset; } private void[] buf; class fld(T,string varName) { T opCall() { auto i1 = offsets[varName]; return cast(T)buf[i1 .. i1 + T.sizeof]; } static this() { registerField!T(varName); } } this() { buf = new void[bufSize]; writefln("offsets = %s\n", offsets); } ~this() { delete buf; } } Entity e; this() { e = new Entity(); } } void main() { scope query = new Query!( "SELECT ONLY_NEEDED_COLUMNS" "FROM contacts c" "WHERE c.country = 'US'" "AND c.sales > 10000;")(); auto entity = query.e; //foreach(entity; query) //{ auto email_addy = entity.fld!(char[],"email")(); auto full_name = entity.fld!(char[],"name")(); //Email.spam(email_addy, full_name, "We have this great new offer for you!"); //} }
Mar 04 2012
next sibling parent reply Trass3r <un known.com> writes:
 Here's one for DMD 2.057.  Knock yourself out ;)

 (As I mentioned in my other post, I can't build DustMite right now, or  
 I'd do it myself.  But if you want one...)

 ----------------------------------------------
 chad Hugin ~/dprojects/database $ dmd ice.d
 entity.(fld)
 Internal error: e2ir.c 683
 ----------------------------------------------
Done in 280 tests and 20 secs and 934 ms; http://d.puremagic.com/issues/show_bug.cgi?id=7645
Mar 04 2012
parent reply Chad J <chadjoan __spam.is.bad__gmail.com> writes:
On 03/04/2012 02:12 PM, Trass3r wrote:
 Here's one for DMD 2.057. Knock yourself out ;)

 (As I mentioned in my other post, I can't build DustMite right now, or
 I'd do it myself. But if you want one...)

 ----------------------------------------------
 chad Hugin ~/dprojects/database $ dmd ice.d
 entity.(fld)
 Internal error: e2ir.c 683
 ----------------------------------------------
Done in 280 tests and 20 secs and 934 ms; http://d.puremagic.com/issues/show_bug.cgi?id=7645
Cool!
Mar 04 2012
parent "Tove" <tove fransson.se> writes:
On Sunday, 4 March 2012 at 19:43:47 UTC, Chad J wrote:
 On 03/04/2012 02:12 PM, Trass3r wrote:
 Here's one for DMD 2.057. Knock yourself out ;)

 (As I mentioned in my other post, I can't build DustMite 
 right now, or
 I'd do it myself. But if you want one...)

 ----------------------------------------------
 chad Hugin ~/dprojects/database $ dmd ice.d
 entity.(fld)
 Internal error: e2ir.c 683
 ----------------------------------------------
Done in 280 tests and 20 secs and 934 ms; http://d.puremagic.com/issues/show_bug.cgi?id=7645
Cool!
Quite impressive tool, it can be reduced even further though. :) class Entity { class fld() { char t; } } void main() { Entity entity; auto email_addy = entity.fld!().t; }
Mar 04 2012
prev sibling parent reply Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
On 3/4/12, Chad J <chadjoan __spam.is.bad__gmail.com> wrote:
 Here's one for DMD 2.057.  Knock yourself out ;)
It's reproducible in 2.058 too. Reduced test-case: http://paste.pocoo.org/show/560891/ That ran really really fast compared to older versions of dustmite. Great work Vlad. :)
Mar 04 2012
parent Dmitry Olshansky <dmitry.olsh gmail.com> writes:
On 04.03.2012 23:17, Andrej Mitrovic wrote:
 On 3/4/12, Chad J<chadjoan __spam.is.bad__gmail.com>  wrote:
 Here's one for DMD 2.057.  Knock yourself out ;)
It's reproducible in 2.058 too. Reduced test-case: http://paste.pocoo.org/show/560891/ That ran really really fast compared to older versions of dustmite. Great work Vlad. :)
OT: that should have been Vova ;) -- Dmitry Olshansky
Mar 04 2012
prev sibling parent reply Trass3r <un known.com> writes:
 I can't believe I'm saying this, but I can't wait for my next ICE to
 try it out. :p
Me too :D
Mar 04 2012
parent Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
On 3/4/12, Trass3r <un known.com> wrote:
 I can't believe I'm saying this, but I can't wait for my next ICE to
 try it out. :p
Me too :D
Son of a gun, you beat me to it! lol
Mar 04 2012
prev sibling next sibling parent "H. S. Teoh" <hsteoh quickfur.ath.cx> writes:
On Sun, Mar 04, 2012 at 06:04:36PM +0100, Andrej Mitrovic wrote:
 On 3/4/12, Vladimir Panteleev <vladimir thecybershadow.net> wrote:
 I pushed out another large update today.
I can't believe I'm saying this, but I can't wait for my next ICE to try it out. :p
Just play around with AA's a bit and you'll run into lots of them. ;-) Especially unusual AA's, like unusual key types. T -- One reason that few people are aware there are programs running the internet is that they never crash in any significant way: the free software underlying the internet is reliable to the point of invisibility. -- Glyn Moody, from the article "Giving it all away"
Mar 04 2012
prev sibling parent Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
On 3/4/12, H. S. Teoh <hsteoh quickfur.ath.cx> wrote:
 Just play around with AA's a bit and you'll run into lots of them. ;-)
 Especially unusual AA's, like unusual key types.
Oh don't worry, I'm all too familiar with ICEs. :) They do mostly show up when doing metaprogramming and not that often in regular code.
Mar 04 2012
prev sibling parent reply Chad J <chadjoan __spam.is.bad__gmail.com> writes:
On 02/22/2012 09:25 PM, Vladimir Panteleev wrote:
 I played with some algorithms today and got about a 7x improvement in
 reduction time for my test case. The data is now arranged into a binary
 tree, and the progress indicator was changed to reflect that. Let me
 know if I broke anything in the process.

 No new features have been added. Still thinking about how to handle lists.

 ---

 DustMite is a tool which minimizes D source code.
 https://github.com/CyberShadow/DustMite
I ran into an ICE today and decided to try DustMite. I couldn't compile it though: chad Hugin ~/dprojects/dustmite $ dmd dustmite.d dsplit.d dustmite.d(873): expression expected, not '>' dustmite.d(873): found 'regex' when expecting ')' following template argument list dustmite.d(873): semicolon expected following auto declaration, not ')' dustmite.d(873): found ')' instead of statement DMD32 D Compiler v2.057 on Gentoo Linux If it's because my compiler is a version behind, then don't worry about it too much. I haven't updated because issue 5278 (http://d.puremagic.com/issues/show_bug.cgi?id=5278) makes it a pain for me to upgrade the dmd.
Mar 04 2012
next sibling parent reply Trass3r <un known.com> writes:
 If it's because my compiler is a version behind, then don't worry about  
 it too much.
Yep it uses the new => syntax.
Mar 04 2012
parent "Vladimir Panteleev" <vladimir thecybershadow.net> writes:
On Sunday, 4 March 2012 at 19:06:01 UTC, Trass3r wrote:
 If it's because my compiler is a version behind, then don't 
 worry about it too much.
Yep it uses the new => syntax.
Fixed the 64-bit and 2.058-only problems, should build on older and x64 compilers now.
Mar 04 2012
prev sibling parent "Marco Leise" <Marco.Leise gmx.de> writes:
Am 04.03.2012, 19:39 Uhr, schrieb Chad J <chadjoan __spam.is.bad__gmail.com>:

 DMD32 D Compiler v2.057
 on Gentoo Linux

 If it's because my compiler is a version behind, then don't worry about
 it too much.  I haven't updated because issue 5278
 (http://d.puremagic.com/issues/show_bug.cgi?id=5278) makes it a pain for
 me to upgrade the dmd.
If you find any problems with the ebuilds, don't hesitate write an email to me for DMD2 or Julian "hasufell" Ospald for DMD1. (See http://overlays.gentoo.org/proj/sunrise/browser/reviewed/dev-lang/dmd/ChangeLog ) for the email address. They are taken from the discontinued d-overlay and updated to meet Portage ebuild writing standards. We may be able to sort out some Gentoo specific issues for already released versions of DMD via patches. I also keep the three most recent releases in the tree, so you can downgrade in case of problems. -- Marco
Mar 08 2012