January 26, 2023, 10:14:10 PM

News:

Own IWBasic 2.x ? -----> Get your free upgrade to 3.x now.........


Alpha2 update 1/06/06

Started by Ionic Wind Support Team, January 06, 2006, 04:30:27 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Ionic Wind Support Team

The first of the Alpha 2 updates of the Aurora compiler is now ready for testing.  Redownload and reinstall from the link provided during purchasing.

Changes/Additions
-------------------------
- A derived class pointer bug was squashed.
- The scrollbar controls colors were wrong.  Fixed.
- A memory leak in CControl::SetColor was fixed.
- Printing from the IDE now displays the correct header and footer, instead of random garbage ;)
- Bookmarks were added to the IDE.  See the edit menu.
- Find in Files was added to the IDE.  See the tools menu.
- A RETURN statment is no longer required on functions that don't return a value.
- The CListView class was added to the GUI library. See 'gui.inc' for implemented methods.
- 'listview.src' added to the example programs.
- 'modplayer.zip' added to the example programs.
- The about box in the IDE shows (Alpha 2) so you know you've got the correct install.

Notes:
--------
Find in Files is primative, but it works.  Double click on a line in the 'Find In Files' pane to open up the file and highlight the line where the match was found.  Still needs a 'match whole word' option.

As usual I've made other bug fixes other than what is listed.  So if something didn't work before try it again.

As the Alpha2 version progresses we will be adding the ODBC and Dictionary libraries.  So no need to ask me where they are yet.


Ionic Wind Support Team

Zen

Yay. its finaly here. Alpha 2

Lewis

Parker

I just thought I'd point out the find regular expression feature in the IDE too, which seems to work for me.

Great job Paul!

Ionic Wind Support Team

Yes the find/find replace dialogs have a regular expression parser.
Ionic Wind Support Team

Zen

Well pointed out parker. Never knew about that untill now.

Lewis

Rock Ridge Farm (Larry)

Listview is a big step in the direction I need to go. Now if I can get 3 of them in the same
window......
I really like alpha2 so far.

Rock Ridge Farm (Larry)

In the IDE - when I click Resource Compiler Help - fails to find resource.htm.
Is this the correct place to report issues?

Zen

Attached is the Resource compiler documentation. It has not yet been added to the installation of Aurora. Maybe Paul will add it to the next update.

Lewis

Parker

Paul knows about most of these things I think, they just haven't been added yet. Late betas would be the time to report missing docs, cosmetics, etc.

Parker

January 06, 2006, 07:39:06 PM #9 Last Edit: January 06, 2006, 07:40:59 PM by Parker
Found one last pointer dereferencing bug:
global sub LoadFile(string *fn)
{
unsigned int hFile;
hFile = ::OpenFile(*fn, MODE_READ);
...
}


Adding the (string) between * and fn makes it work fine.

And on the topic of pointer dereferencing, does this->variable or this->function() work?

Ionic Wind Support Team

Quote
And on the topic of pointer dereferencing, does this->variable or this->function() work?

By the end of Alpha 2 it will.
Ionic Wind Support Team

Ionic Wind Support Team

Don't know how we ever lived without the Find In Files tool.  Great for searching windows header files ;)
Ionic Wind Support Team

Parker

Now that you mention it, it is going to be so much easier to find what I need now. It's a great feeling when you've written something that's useful ;)

Parker

Found another one of those pointer bugs:
dstring ch[2];
ch[0] = *text[pos];

text is a string* and by making it *(string)text[pos] the code compiles fine.

And this one:
tkn->*strval = mid$(*(string)text, start+1, pos-start);
text is a string*, tkn is a Token struct, tkn->strval is a string*.

Ionic Wind Support Team

Part of the problem it is having is a STRING type is already a reference.  That is the variable is already a pointer.


global sub LoadFile(string fn)
{
unsigned int hFile;
hFile = ::OpenFile(fn, MODE_READ);
...
}

Would be the proper way.

I will look into the other code to see what 'makes sense'.
Ionic Wind Support Team

Parker

Alright, thanks. I've got one more:
tkn->strval = new(dstring, (pos-start)+1);
tkn->*(string)strval = mid$(*(string)text, start+1, pos-start);

It compiles fine using the statement tkn->*strval, but it doesn't seem to copy over right. I think the NEW statement above is causing the problem by setting it to a dstring pointer.

Sorry I didn't mention these before the alpha 2.

Ionic Wind Support Team

Use BYTE.  dstring doesn't actually have a size unless used as a define.  It is not a valid keyword anywhere else (like ISTRING).

tkn->strval = new(byte, (pos-start)+1);

The dereferncing I am still looking into.  Only happens witht the string type.
Ionic Wind Support Team

Parker

I did that, but it sets it to a byte pointer, and as a result only one character I'm trying to copy gets copied. So I still have to add the (string) part in there. Shouldn't string pointers keep their type when you NEW them? And really any type that already has a type assigned to it?

Ionic Wind Support Team

Yes...except in structs at the moment ;)   Working on a fix.
Ionic Wind Support Team

Parker

Both of these compile, but only the bottom one works correctly. Probably another wrong type in dereferencing.

while ((chr$(*text[pos]) = " ") | (chr$(*text[pos]) = "\t"))

while ((chr$(*(string)text[pos]) = " ") | (chr$(*(string)text[pos]) = "\t"))

Ionic Wind Support Team

How is your 'tkn' struct defined?

Ionic Wind Support Team

Ionic Wind Support Team

Ionic Wind Support Team