May 07, 2005
Hi, John,

1) "Only four?.... "
Take a look on the map:
http://www.terrainformatica.com/harmonia/map.htm
Blue/cyan group of modules at the bottom.

1) I *will* publish full sources next week

2) Dictionary is a simple template (below)
Beside of the fact that it behaves like a map
it also a) keeps elements in the order of adding
b) has 'intern' function for implementation of 'symbol table's.

//
// Dictionary, maps key/value pair to the symbol(uint)
// Allows to retrieve value by its key or numeric symbol
//

class Dictionary(KEY, VALUE)
{
  alias   uint   symbol;
  static  VALUE  undefined; // undefined element
private:
  uint[KEY]  map;
  VALUE     elements[];
public:

  this() {}

  // get symbol of element
  symbol opIndex(KEY key)
  {
    return map[key];
  }

  symbol opIndex(KEY key, VALUE function(KEY k) ctor)
  {
    symbol sym = map[key];
    if( sym == 0 ) // it is not in dictionary yet
    {
      sym = cast(symbol)(elements.length + 1);
      elements.length = sym;
      elements[sym - 1] = ctor(key);
      map[ key ] = sym;
    }
    return sym;
  }

  // get symbol of element
  VALUE opIndexAssign(VALUE v, KEY key)
  {
    symbol sym = map[key];
    if( sym == 0 ) // it is not in dictionary yet
    {
      sym = cast(symbol)(elements.length + 1);
      elements.length = sym;
      map[ key ] = sym;
    }
    elements[sym - 1] = v;
    return v;
  }
  //

  // get element by its symbol
  VALUE  opCall(symbol sym)
  {
    return ( sym > 0 && sym <= elements.length )? elements[sym-1]:
undefined;
  }
  // test for existence of element in the pool
  bool exists(KEY key) { return (key in map) !== null; }
  bool valid(symbol sym) { return ( sym > 0 && sym <= elements.length ); }

  // intern element, returns a unique copy of the element
  VALUE intern(KEY key, VALUE function(KEY k) ctor )
  {
    return opCall( opIndex(key,ctor) );
  }
}





"John Reimer" <brk_6502@yahoo.com> wrote in message news:d5i048$2clt$1@digitaldaemon.com...
> Andrew Fedoniouk wrote:
>>>So when do we get the Linux version? (I won't touch Windows)
>>
>>
>> When you will write a port of it. :) Only four files, eh?
>>
>> Andrew.
>
> Only four?  You provided only 3 on the newsgroup: graphics.d, geometry.d, and images.d.  Where's your svn server?
>
> In order to get a feel for what would be involved in a Linux port, I started looking at graphics.d.  Thankfully, it doesn't look like there's too much to implement if all one has to do is replace the native* functions. On X11, it looks like we need to use the Xft API for nice font rendering (includes AA support).  The old core X11 font system would be hideous.  Furthermore, I was wondering where the Dictionary template is defined. You use it in graphics.d to store the system font list, and it looks like we need to know the implementation in order to add native font handling. Or perhaps I just missed something.
>
> Between an X11 and opengl port, Harmonia could really take off. :-)
>
> -JJR


May 07, 2005
Andrew Fedoniouk wrote:
> Hi, John,
> 
> 1) "Only four?.... "
> Take a look on the map:
> http://www.terrainformatica.com/harmonia/map.htm
> Blue/cyan group of modules at the bottom.

Ah, there!  I see now.


> 1) I *will* publish full sources next week


Okay, I'll stop pestering you then. :-)


> 2) Dictionary is a simple template (below)
> Beside of the fact that it behaves like a map
> it also a) keeps elements in the order of adding
> b) has 'intern' function for implementation of 'symbol table's.

Thanks. Looks good.

-JJR
May 17, 2005
"Andrew Fedoniouk" <news@terrainformatica.com> wrote in message news:d5ccpl$g2m$1@digitaldaemon.com...
> > Andrew, when is it going to be released? And... what kind of licensing are you looking at?
>
> Umm....
> Take a look here, this is a package tree of Harmonia.
> http://www.terrainformatica.com/harmonia/map.htm
> Everything which is not red I am assuming done.
> There are bugs for sure but structure is rock solid.
> Items marked by red are done at level mentioned there.
> It took me month and a half (thanks to D and MS VS) to design
> stuff in black. (To be honest it was pretty much compilation
> from existing modules in C++ and Java, HTML engine was written
> from groundup).
>
> I think if I will drop for a while GridT and TextArea (RichText)
> then other stuff could be finished at the end of the week.
> So I can publish (without mentioned modules) its as alpha/beta version.
>
> The license will be similar to the old Apache license http://www.apache.org/licenses/LICENSE-1.1
>
> Andrew.
>
>
> "Kyle Furlong" <ky220@umail.ucsb.edu> wrote in message news:d5budn$3nq$1@digitaldaemon.com...
> > Andrew, when is it going to be released? And... what kind of licensing are you looking at?
>
>

I'm curious how the package tree is imported.

I was talking with Walter recently about how it would be good for imports to
default to looking first in a path relative to the path of the source file that requests the import...
because so many packages use relative addressing to import other modules.

Does installation of this framework presently require addition to the system's path environment, or DMD's -I switch or the sc.ini file, etc.?

TZ


May 18, 2005
Hi, Zeus,

> I'm curious how the package tree is imported. ....
> Does installation of this framework presently require addition to the
> system's path environment, or DMD's -I switch or the sc.ini file, etc.?

I am using (in VS 6) following:
c:\dmd\bin\dmd.exe -c  -I$(WkspDir) .... filename.d

Where WkspDir is the name of harmonia parent directory:

(WkspDir)/
   harmonia/ (harmonia per se)
   imageio/  (image io - PNG, JPEG, ZLIB)
   std/ ( boxer.d is for a while here)

Andrew.


"TechnoZeus" <TechnoZeus@PeoplePC.com> wrote in message news:d6c45t$nss$1@digitaldaemon.com...
>
> "Andrew Fedoniouk" <news@terrainformatica.com> wrote in message news:d5ccpl$g2m$1@digitaldaemon.com...
>> > Andrew, when is it going to be released? And... what kind of licensing
>> > are
>> > you looking at?
>>
>> Umm....
>> Take a look here, this is a package tree of Harmonia.
>> http://www.terrainformatica.com/harmonia/map.htm
>> Everything which is not red I am assuming done.
>> There are bugs for sure but structure is rock solid.
>> Items marked by red are done at level mentioned there.
>> It took me month and a half (thanks to D and MS VS) to design
>> stuff in black. (To be honest it was pretty much compilation
>> from existing modules in C++ and Java, HTML engine was written
>> from groundup).
>>
>> I think if I will drop for a while GridT and TextArea (RichText)
>> then other stuff could be finished at the end of the week.
>> So I can publish (without mentioned modules) its as alpha/beta version.
>>
>> The license will be similar to the old Apache license http://www.apache.org/licenses/LICENSE-1.1
>>
>> Andrew.
>>
>>
>> "Kyle Furlong" <ky220@umail.ucsb.edu> wrote in message news:d5budn$3nq$1@digitaldaemon.com...
>> > Andrew, when is it going to be released? And... what kind of licensing
>> > are
>> > you looking at?
>>
>>
>
> I'm curious how the package tree is imported.
>
> I was talking with Walter recently about how it would be good for imports
> to
> default to looking first in a path relative to the path of the source file
> that requests the import...
> because so many packages use relative addressing to import other modules.
>
> Does installation of this framework presently require addition to the system's path environment, or DMD's -I switch or the sc.ini file, etc.?
>
> TZ
>
> 


May 18, 2005
"Andrew Fedoniouk" <news@terrainformatica.com> wrote in message news:d6e5oj$1311$1@digitaldaemon.com...
> Hi, Zeus,
>
> > I'm curious how the package tree is imported. ....
> > Does installation of this framework presently require addition to the
> > system's path environment, or DMD's -I switch or the sc.ini file, etc.?
>
> I am using (in VS 6) following:
> c:\dmd\bin\dmd.exe -c  -I$(WkspDir) .... filename.d
>
> Where WkspDir is the name of harmonia parent directory:
>
> (WkspDir)/
>    harmonia/ (harmonia per se)
>    imageio/  (image io - PNG, JPEG, ZLIB)
>    std/ ( boxer.d is for a while here)
>
> Andrew.
>
>

Right.  I cought that much already... but for example, if somoene writes a program that imports a module from imageio (for example) will they have to tell the compiler where to find that module, and of so... how?

TZ


May 19, 2005
"Andrew Fedoniouk" <news@terrainformatica.com> wrote in message news:d6e5oj$1311$1@digitaldaemon.com...
> Hi, Zeus,
>
>
> I am using (in VS 6) following:
> c:\dmd\bin\dmd.exe -c  -I$(WkspDir) .... filename.d
>
*snip*

Ah, I hadn't noticed this part of what you wrote.

The -I$(WkspDir) in Visual Studio would be what's directing the compiler to know what directory the include files are in.

So, what happens if you're working on a project in a workspace directory that's different from that of the Harmonia files, or worse yet, on a different drive?
I'm asking this more out of curiosity about how you have gotten around certain problems that I've had with D than out of curiosity about Harmonia, although I do look forward to testing Harmonia also when I get the chance.  I hope you don't mind my questions.

TZ


May 19, 2005
> So, what happens if you're working on a project in a workspace directory
> that's different from that of the Harmonia files, or worse yet, on a
> different drive?
> I'm asking this more out of curiosity about how you have gotten around
> certain problems that I've had with D than out of curiosity about
> Harmonia, although I do look forward to testing Harmonia also when I get
> the chance.  I hope you don't mind my questions.
>

I'll put all stuff in sc.ini file

LIB="%@P%\..\lib";\dm\lib; C:\dprojects\imageio DFLAGS="-I%@P%\..\src\phobos -IC:\dprojects"

and make it read-only just in case.





May 19, 2005
"Andrew Fedoniouk" <news@terrainformatica.com> wrote in message news:d6iqe9$2fat$1@digitaldaemon.com...
> > So, what happens if you're working on a project in a workspace directory
> > that's different from that of the Harmonia files, or worse yet, on a
> > different drive?
> > I'm asking this more out of curiosity about how you have gotten around
> > certain problems that I've had with D than out of curiosity about
> > Harmonia, although I do look forward to testing Harmonia also when I get
> > the chance.  I hope you don't mind my questions.
> >
>
> I'll put all stuff in sc.ini file
>
> LIB="%@P%\..\lib";\dm\lib; C:\dprojects\imageio DFLAGS="-I%@P%\..\src\phobos -IC:\dprojects"
>
> and make it read-only just in case.
>
>

Cool, but still has limitations.

Here's what I currently have set up for the D language...

in my [sc.ini] file...
[Environment]
LIB="%@P%\..\lib";"f:\dmd\lib";"\dm\lib";"F:\dmd"
DFLAGS=-I"%@P%\..\src\phobos\";"%@P%\..\src\dig\";"%@P%\..\practice\";".\";"%@P%\..\src\phobos\std\";"%@P%\..\src\phobos\std\c\windows\;f:\dfl\dfl\"
LINKCMD=%@P%\..\..\dm\bin\link.exe

my %path% variable... PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;C:\WINDOWS\SYSTEM;F:\DM\BIN;F:\DMD\BIN;F:\GTK\BIN

my Windows98 Registry...

[HKEY_CLASSES_ROOT\dfile]
@="D Language Source File"
"EditFlags"=hex:00,00,00,00
"AlwaysShowExt"=""

[HKEY_CLASSES_ROOT\dfile\Shell] @="Edit_with_Crimson_Editor"

[HKEY_CLASSES_ROOT\dfile\Shell\Edit_in_Notepad]
@="Edit in Notepad"

[HKEY_CLASSES_ROOT\dfile\Shell\Edit_in_Notepad\command] @="C:\\WINDOWS\\Notepad.exe \"%1\""

[HKEY_CLASSES_ROOT\dfile\Shell\Compile_with_Digital_Mars_D_Compiler] @="Compile with Digital Mars D Compiler"

[HKEY_CLASSES_ROOT\dfile\Shell\Compile_with_Digital_Mars_D_Compiler\command] @="F:\\dmd\\bin\\dmd.PIF \"%1\" -v -w -unittest"

[HKEY_CLASSES_ROOT\dfile\Shell\Compile for Windows with DMD Compiler] @="Compile for Windows with DMD Compiler" "EditFlags"=hex:01,00,00,00

[HKEY_CLASSES_ROOT\dfile\Shell\Compile for Windows with DMD Compiler\command]
@="F:\\dmd\\bin\\dmd.PIF \"%1\" gdi32.lib F:\\dmd\\bin\\windows.def -v -O -w -unittest -version=windows >\"%1.dmd.compile.txt\""

[HKEY_CLASSES_ROOT\dfile\Shell\DMD Compile Windows Release version] @="DMD Compile Windows Release version"

[HKEY_CLASSES_ROOT\dfile\Shell\DMD Compile Windows Release version\command] @="F:\\dmd\\bin\\dmd.PIF \"%1\" gdi32.lib F:\\dmd\\bin\\windows.def -v -O -release"

[HKEY_CLASSES_ROOT\dfile\Shell\Quick Compile for Windows] @="Quick Compile for Windows"

[HKEY_CLASSES_ROOT\dfile\Shell\Quick Compile for Windows\command] @="F:\\dmd\\bin\\dmd.PIF \"%1\" gdi32.lib F:\\dmd\\bin\\windows.def"

[HKEY_CLASSES_ROOT\dfile\Shell\Edit_in_WordPad]
"EditFlags"=hex:01,00,00,00
@="Edit in &WordPad"

[HKEY_CLASSES_ROOT\dfile\Shell\Edit_in_WordPad\command] @="C:\\WINDOWS\\Write.exe \"%1\""

[HKEY_CLASSES_ROOT\dfile\Shell\Build_with_DFL]
"EditFlags"=hex:01,00,00,00
@="Build with DFL"

[HKEY_CLASSES_ROOT\dfile\Shell\Build_with_DFL\command]
@="F:\\dfl\\dfl.exe \"%1\" -dfl-gui  gdi32.lib F:\\dmd\\bin\\windows.def -v -O -w -unittest -version=windows >\"%1.dfl.build.txt\""

[HKEY_CLASSES_ROOT\dfile\Shell\Build] "EditFlags"=hex:01,00,00,00

[HKEY_CLASSES_ROOT\dfile\Shell\Build\command] @="f:\\dmd\\bin\\build.exe \"%1\" >\"%1.build.build.txt\""

[HKEY_CLASSES_ROOT\dfile\Shell\Edit_with_Vim]
"EditFlags"=hex:01,00,00,00
@="Edit with Vim"

[HKEY_CLASSES_ROOT\dfile\Shell\Edit_with_Vim\command] @="\"F:\\Program Files\\Vim\\vim63\\gvim.exe\" \"%1\""

[HKEY_CLASSES_ROOT\dfile\Shell\Edit_with_Crimson_Editor]
"EditFlags"=hex:01,00,00,00
@="Edit with Crimson Editor"

[HKEY_CLASSES_ROOT\dfile\Shell\Edit_with_Crimson_Editor\command] @="\"F:\\Program Files\\Crimson Editor\\cedt.exe\" \"%1\""

[HKEY_CLASSES_ROOT\dfile\Shell\Command_line_Build]
"EditFlags"=hex:01,00,00,00
@="Command line Build"

[HKEY_CLASSES_ROOT\dfile\Shell\Command_line_Build\command] @="command.com /K f:\\dmd\\bin\\build.exe \"%1\""

[HKEY_CLASSES_ROOT\dfile\Shell\Command_compile_for_Windows_with_DMD]
"EditFlags"=hex:01,00,00,00
@="Command compile for Windows with DMD"

[HKEY_CLASSES_ROOT\dfile\Shell\Command_compile_for_Windows_with_DMD\command]
@="command.com /K F:\\dmd\\bin\\dmd.exe \"%1\" gdi32.lib F:\\dmd\\bin\\windows.def -v -O -w -unittest -version=windows"

[HKEY_CLASSES_ROOT\dfile\DefaultIcon] @="F:\\dmd\\bin\\d002tz1.ico,0"

[HKEY_CLASSES_ROOT\dfile\QuickView]
@="*"

[HKEY_CLASSES_ROOT\Directory\shell\Open_command_line_interpreter_here.]
"EditFlags"=hex:01,00,00,00
@="Open command line interpreter here."

[HKEY_CLASSES_ROOT\Directory\shell\Open_command_line_interpreter_here.\command] @="command.com /k cd \"%1\""


...and I'm still working on it.

TZ


May 24, 2005
"Andrew Fedoniouk" <news@terrainformatica.com> wrote in message news:d5iqml$2q30$1@digitaldaemon.com...
> Hi, John,
>
> 1) "Only four?.... "
> Take a look on the map:
> http://www.terrainformatica.com/harmonia/map.htm
> Blue/cyan group of modules at the bottom.
>
> 1) I *will* publish full sources next week
>
> 2) Dictionary is a simple template (below)
> Beside of the fact that it behaves like a map
> it also a) keeps elements in the order of adding
> b) has 'intern' function for implementation of 'symbol table's.
>
> //
> // Dictionary, maps key/value pair to the symbol(uint)
> // Allows to retrieve value by its key or numeric symbol
> //
>
> class Dictionary(KEY, VALUE)
> {
>   alias   uint   symbol;
>   static  VALUE  undefined; // undefined element
> private:
>   uint[KEY]  map;
>   VALUE     elements[];
> public:
>
>   this() {}
>
>   // get symbol of element
>   symbol opIndex(KEY key)
>   {
>     return map[key];
>   }
>
>   symbol opIndex(KEY key, VALUE function(KEY k) ctor)
>   {
>     symbol sym = map[key];
>     if( sym == 0 ) // it is not in dictionary yet
>     {
>       sym = cast(symbol)(elements.length + 1);
>       elements.length = sym;
>       elements[sym - 1] = ctor(key);
>       map[ key ] = sym;
>     }
>     return sym;
>   }
>
>   // get symbol of element
>   VALUE opIndexAssign(VALUE v, KEY key)
>   {
>     symbol sym = map[key];
>     if( sym == 0 ) // it is not in dictionary yet
>     {
>       sym = cast(symbol)(elements.length + 1);
>       elements.length = sym;
>       map[ key ] = sym;
>     }
>     elements[sym - 1] = v;
>     return v;
>   }
>   //
>
>   // get element by its symbol
>   VALUE  opCall(symbol sym)
>   {
>     return ( sym > 0 && sym <= elements.length )? elements[sym-1]:
> undefined;
>   }
>   // test for existence of element in the pool
>   bool exists(KEY key) { return (key in map) !== null; }
>   bool valid(symbol sym) { return ( sym > 0 && sym <= elements.length ); }
>
>   // intern element, returns a unique copy of the element
>   VALUE intern(KEY key, VALUE function(KEY k) ctor )
>   {
>     return opCall( opIndex(key,ctor) );
>   }
> }
>
>
>
>
>
> "John Reimer" <brk_6502@yahoo.com> wrote in message news:d5i048$2clt$1@digitaldaemon.com...
> > Andrew Fedoniouk wrote:
> >>>So when do we get the Linux version? (I won't touch Windows)
> >>
> >>
> >> When you will write a port of it. :) Only four files, eh?
> >>
> >> Andrew.
> >
> > Only four?  You provided only 3 on the newsgroup: graphics.d, geometry.d, and images.d.  Where's your svn server?
> >
> > In order to get a feel for what would be involved in a Linux port, I started looking at graphics.d.  Thankfully, it doesn't look like there's too much to implement if all one has to do is replace the native* functions. On X11, it looks like we need to use the Xft API for nice font rendering (includes AA support).  The old core X11 font system would be hideous.  Furthermore, I was wondering where the Dictionary template is defined. You use it in graphics.d to store the system font list, and it looks like we need to know the implementation in order to add native font handling. Or perhaps I just missed something.
> >
> > Between an X11 and opengl port, Harmonia could really take off. :-)
> >
> > -JJR
>
>

Is there any way to get a look at what's ready of the help files or instructions at this time?

TZ


1 2
Next ›   Last »