<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content=text/html;charset=utf-8 http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 8.00.7600.16490"></HEAD>
<BODY style="PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 15px" 
id=MailContainerBody leftMargin=0 topMargin=0 CanvasTabStop="true" 
name="Compose message area">
<DIV><FONT size=2 face=Arial>Hi!</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>One suggestion: this &lt;module 
name="notepad"&nbsp;type="win32gui..." syntax should be sooner or later 
converted to &lt;win32gui name="notepad" ... It's not only a cosmetic change 
but&nbsp;to take advantage of object inheritance.</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>This would be mapped to :</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>&nbsp;&nbsp;&nbsp; 
[TaskName("win32gui")]<BR>&nbsp;&nbsp;&nbsp; public class Win32GUI: 
UserModeModuleTask</FONT></DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;<FONT size=2 face=Arial>{</FONT></DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT 
size=2 face=Arial>...</FONT></DIV>
<DIV><FONT size=2 face=Arial>&nbsp;&nbsp;&nbsp;&nbsp;}</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>This would simplificate a lot of checks and hacks, 
code like :</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 
face=Arial>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if 
((Module.Type == ModuleType.Win32CUI) 
||<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
(Module.Type == ModuleType.Win32DLL) 
||<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
(Module.Type == ModuleType.Win32GUI) 
||<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
(Module.Type == ModuleType.Win32OCX) 
||<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
(Module.Type == 
ModuleType.Win32SCR))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
{</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>would be simplified to:</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV>&nbsp;&nbsp;<FONT size=2 face=Arial>if (module is IUserMode) { ... }&nbsp; 
-&gt; (UserModeModuleTask implementing the IUserMode interface)</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>or:</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 
face=Arial>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if 
((libModule.Type != ModuleType.NativeDLL) 
&amp;&amp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
(libModule.Type != ModuleType.Win32DLL) 
&amp;&amp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
(libModule.Type != ModuleType.StaticLibrary) 
&amp;&amp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
(libModule.Type != ModuleType.ObjectLibrary) 
&amp;&amp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
(libModule.Type != ModuleType.Kernel) 
&amp;&amp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
(libModule.Type != ModuleType.KernelModeDLL) 
&amp;&amp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
(libModule.Type != ModuleType.KernelModeDriver) 
&amp;&amp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
(libModule.Type != ModuleType.KeyboardLayout) 
&amp;&amp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
(libModule.Type != ModuleType.RpcServer) 
&amp;&amp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
(libModule.Type != ModuleType.RpcClient) 
&amp;&amp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
(libModule.Type != ModuleType.RpcProxy) 
&amp;&amp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
(libModule.Type != 
ModuleType.HostStaticLibrary))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
{</FONT></DIV>
<DIV><FONT size=2 face=Arial>to</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 
face=Arial>if(module.GetType().IsSubclassOf(typeof(LibraryModule)) { 
...}</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>Also, every time a new module type (like in this 
case IdlInterface)&nbsp;is added a&nbsp;bunch of switch(module.Type) staments 
have to be edited to reflect the changes, and trust me .. there are a lot of 
them! with this change it would 'just work' with little to no 
effort.</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>As a side benefit different module types have 
different allowed attributes that currently cannot be validated&nbsp;without a 
bunch of if staments (not very elegant!). With this change invalid or not 
appropiate attributes can be detected and reported back to the 
user.</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>Regards,</FONT></DIV>
<DIV><FONT size=2 face=Arial>Marc</FONT></DIV>
<DIV style="FONT: 10pt Tahoma">
<DIV><FONT face=Arial></FONT><BR></DIV>
<DIV style="BACKGROUND: #f5f5f5">
<DIV style="font-color: black"><B>From:</B> <A 
title="mailto:samdwise51@gmail.com&#10;CTRL + clic para seguir el vínculo" 
href="mailto:samdwise51@gmail.com">Samuel serapion</A> </DIV>
<DIV><B>Sent:</B> Sunday, April 18, 2010 2:15 AM</DIV>
<DIV><B>To:</B> <A 
title="mailto:ros-dev@reactos.org&#10;CTRL + clic para seguir el vínculo" 
href="mailto:ros-dev@reactos.org">ReactOS Development List</A> </DIV>
<DIV><B>Subject:</B> Re: [ros-dev] [ros-diffs] [mpiulachs] 46862: My first 
commit in avery long time. I'm releasing the source code of my C#implementation 
of Rbuild by popular demand :) I would havepreferred to release the code under a 
BSD licence but thereis a small</DIV></DIV></DIV>
<DIV><BR></DIV>I got it to run... looks like some rbuild files where a bit 
broken... patch is attached.<BR><BR>dependency is this: <A 
title="http://dev.skybound.ca/download.aspx?product=VisualStyles&#10;CTRL + clic para seguir el vínculo" 
href="http://dev.skybound.ca/download.aspx?product=VisualStyles">http://dev.skybound.ca/download.aspx?product=VisualStyles</A><BR><BR>
<DIV class=gmail_quote>2010/4/17 Sir Gallantmon (ニール・ゴンパ) <SPAN dir=ltr>&lt;<A 
href="mailto:ngompa13@gmail.com">ngompa13@gmail.com</A>&gt;</SPAN><BR>
<BLOCKQUOTE 
style="BORDER-LEFT: rgb(204,204,204) 1px solid; MARGIN: 0pt 0pt 0pt 0.8ex; PADDING-LEFT: 1ex" 
class=gmail_quote>Does this work under Mono? AFAIK, Mono supports C# 3.5 and 
  C# 4.0 language features.... so...?<BR><BR>
  <DIV class=gmail_quote>On Sat, Apr 17, 2010 at 7:56 AM, Aleksey Bragin <SPAN 
  dir=ltr>&lt;<A href="mailto:aleksey@reactos.org" 
  target=_blank>aleksey@reactos.org</A>&gt;</SPAN> wrote:<BR>
  <BLOCKQUOTE 
  style="BORDER-LEFT: rgb(204,204,204) 1px solid; MARGIN: 0pt 0pt 0pt 0.8ex; PADDING-LEFT: 1ex" 
  class=gmail_quote>Official URL for that component is <A 
    href="http://dev.skybound.ca/download.aspx" 
    target=_blank>http://dev.skybound.ca/download.aspx</A><BR>Just for 
    reference, it indeed crashes when running the HTML report backend, I'm 
    investigating this in the free time.<BR><BR>WBR,<BR><FONT 
    color=#888888>Aleksey.</FONT> 
    <DIV>
    <DIV></DIV>
    <DIV><BR><BR>On Apr 14, 2010, at 6:41 PM, Ged Murphy wrote:<BR><BR>
    <BLOCKQUOTE 
    style="BORDER-LEFT: rgb(204,204,204) 1px solid; MARGIN: 0pt 0pt 0pt 0.8ex; PADDING-LEFT: 1ex" 
    class=gmail_quote>It partially works.<BR>Can't build the designer due to a 
      Skybound.VisualStyles dependency. I assume we get that from here? <A 
      href="http://windowsclient.net/downloads/folders/controlgallery/entry1590.aspx" 
      target=_blank>http://windowsclient.net/downloads/folders/controlgallery/entry1590.aspx</A><BR><BR>It 
      then crashes when running the html report<BR><BR>Just in case you were 
      interested....<BR><BR>Ged.<BR><BR>-----Original Message-----<BR>From: <A 
      href="mailto:ros-diffs-bounces@reactos.org" 
      target=_blank>ros-diffs-bounces@reactos.org</A> [mailto:<A 
      href="mailto:ros-diffs-bounces@reactos.org" 
      target=_blank>ros-diffs-bounces@reactos.org</A>] On Behalf Of <A 
      href="mailto:mpiulachs@svn.reactos.org" 
      target=_blank>mpiulachs@svn.reactos.org</A><BR>Sent: 13 April 2010 
      23:00<BR>To: <A href="mailto:ros-diffs@reactos.org" 
      target=_blank>ros-diffs@reactos.org</A><BR>Subject: [ros-diffs] 
      [mpiulachs] 46862: My first commit in a very long time. I'm releasing the 
      source code of my C# implementation of Rbuild by popular demand :) I would 
      have preferred to release the code under a BSD licence but there is a 
      small portion of ancient<BR><BR>Author: mpiulachs<BR>Date: Tue Apr 13 
      23:59:21 2010<BR>New Revision: 46862<BR><BR>URL: <A 
      href="http://svn.reactos.org/svn/reactos?rev=46862&amp;view=rev" 
      target=_blank>http://svn.reactos.org/svn/reactos?rev=46862&amp;view=rev</A><BR>Log:<BR>My 
      first commit in a very long time. I'm releasing the source code of my C# 
      implementation of Rbuild by popular demand :) I would have preferred to 
      release the code under a BSD licence but there is a small portion of 
      ancient Nant GPL code that would have been to be rewritten 
      first.<BR><BR>There are two executables (SysGen.Designer) and 
      (SysGen.Make)<BR><BR>SysGen.Designer is a windows forms tool that allows 
      to generate customized reactos images, it is similar in concept to Windows 
      CE Platfom Builder. SysGen.Make is the actual Rbuild clone, It has three 
      main parts, the .rbuild file parser + in-memory tree representation, the 
      backends , and the auto generated files. The Mingw backend used to work 
      1'5 years ago and produced a 100% valid makefile.auto but have to be 
      updated to be able to build a recent revision. Rewriting parts of it to 
      take advantage of C# 3.5 extension methods would probably reduce the code 
      by 50%. The other two parts are quite stable.<BR><BR>This code was only a 
      proof of concept and was never intended to be released so there is a ton 
      of unpolished code and hacks required by the current C++ implementation 
      that should be removed.<BR><BR>How to test it:<BR><BR>Select SysGen.Make 
      as the Start-up Project in Visual Studio and edit Program.cs to point to 
      the correct path to ReactOS-i386.rbuild Edit SysGenEngine.cs:639 to 
      enable/disable specific backends, The HtmlBackend in 
      \SysGen.BuildEngine\Backends\Html\HtmlBackend.cs is a very simple 
      illustration of how powerful this framework is.<BR><BR>Happy 
      hacking!<BR><BR><BR><BR><BR>_______________________________________________<BR>Ros-dev 
      mailing list<BR><A href="mailto:Ros-dev@reactos.org" 
      target=_blank>Ros-dev@reactos.org</A><BR><A 
      href="http://www.reactos.org/mailman/listinfo/ros-dev" 
      target=_blank>http://www.reactos.org/mailman/listinfo/ros-dev</A><BR></BLOCKQUOTE><BR><BR>_______________________________________________<BR>Ros-dev 
    mailing list<BR><A href="mailto:Ros-dev@reactos.org" 
    target=_blank>Ros-dev@reactos.org</A><BR><A 
    href="http://www.reactos.org/mailman/listinfo/ros-dev" 
    target=_blank>http://www.reactos.org/mailman/listinfo/ros-dev</A><BR></DIV></DIV></BLOCKQUOTE></DIV><BR><BR>_______________________________________________<BR>Ros-dev 
  mailing list<BR><A 
  href="mailto:Ros-dev@reactos.org">Ros-dev@reactos.org</A><BR><A 
  href="http://www.reactos.org/mailman/listinfo/ros-dev" 
  target=_blank>http://www.reactos.org/mailman/listinfo/ros-dev</A><BR></BLOCKQUOTE></DIV><BR>
<P>
<HR>

<P></P>_______________________________________________<BR>Ros-dev mailing 
list<BR>Ros-dev@reactos.org<BR>http://www.reactos.org/mailman/listinfo/ros-dev</BODY></HTML>