Darwinbots Forum

Code center => Bugs and fixes => Topic started by: PurpleYouko on October 25, 2005, 09:56:22 AM

Title: Let's make a stable platform
Post by: PurpleYouko on October 25, 2005, 09:56:22 AM
OK Guys. I think it will probably be best to go with the slightly newer 2.37.4 as a start point.

You can download the source from Here (http://www.darwinbots.com/FTP/Darwinsource2.37.4.zip) if you don't already have it.

Just run it directly through the VB interpretter and make it crash.

Either try to figure out how to fix the error yourself or report it to me with as much detail as you can manage.

I will colate all changes and fixes then periodically release a fixed version.

There will be no additional stuff added until we have a 100% stable platform

Good luck peeps  :D
Title: Let's make a stable platform
Post by: Griz on October 25, 2005, 10:28:13 AM
thank you :pray:

"always drink upstream from the herd"
Title: Let's make a stable platform
Post by: shvarz on October 25, 2005, 11:14:36 AM
Will do!
Title: Let's make a stable platform
Post by: MrMound on October 25, 2005, 02:32:31 PM
yaaa! my suggestion worked! :cheers:
Title: Let's make a stable platform
Post by: Testlund on October 25, 2005, 03:01:29 PM
I assume that when you talk about VB you mean VB6, as it's named on the ftp, wich means Visual Studio. Following the instructions in the readme file how to install will cause the installer to search for files in a folder that doesn't exist. The folder's name is 'COMMON'. Therefor you can't install it.  :angry:
Title: Let's make a stable platform
Post by: PurpleYouko on October 25, 2005, 03:07:18 PM
Just ignore all that stuff and install the main program.

Most of the things it can't find are the help files which unfortunately the freebee version doesn't have.
Title: Let's make a stable platform
Post by: Testlund on October 25, 2005, 03:25:29 PM
Did that. Only chosed the Visual Basic core files. Still trying to access that nonexisting folder 'COMMON'.
Title: Let's make a stable platform
Post by: PurpleYouko on October 25, 2005, 04:04:48 PM
Can't you just tell it to ignore that?
Title: Let's make a stable platform
Post by: Testlund on October 25, 2005, 04:12:02 PM
Ok, I managed to run VB6 WITHOUT installing it. Just went into the folder VB98 and dubbelclick VB6.EXE.

Testing version 2.37.4

Draw boxes on the species tab are a little messed up and doesn't stay put when clicking another tab or on another bot in the list.

To use the save function on the recording tab one must set the same number on both fields wich will cause the program to save both sim and best bot at the same time. The meaning is that you are supposed to chose different numbers for the upper and lower field, right?

Ran the program in fast mode (both speed arrows pressed down) and clicked on 'Start New Simulation' icon to make some settings, wich caused a crash: Run-time error 13, I think. Chosing debug marked the following code:
    MutLab.Caption = (TmpOpts.MutCurrMult) + " X"
Title: Let's make a stable platform
Post by: Numsgil on October 25, 2005, 04:29:02 PM
Many, many people have issues with the VB6 on the FTP.  Some don't.  I have no idea why.  If anyone ever figures it out...

Be sure you're running setup.exe, and not acmboot or soemthing like that.  Sort of obvious, so I doubt that's it.
Title: Let's make a stable platform
Post by: Testlund on October 25, 2005, 04:32:47 PM
At least I can run it. So you mean when you installed VB it didn't ask for the nonexisting 'COMMON' folder, Numsgil?
Title: Let's make a stable platform
Post by: Numsgil on October 25, 2005, 04:35:36 PM
Nope, it ran just fine on mine.  That's the VB6 version I use actually.
Title: Let's make a stable platform
Post by: Testlund on October 25, 2005, 04:42:36 PM
That's wicked!

Ok, I found out that the problem that causes run-time error 13 is that it can't load a setting wich I have saved, only the other settings.
Title: Let's make a stable platform
Post by: Numsgil on October 25, 2005, 04:46:18 PM
Did you save the settings file by hand or through the program?

Maybe you have an extra space somewhere or something like that.  The save/load routines are not all that robust (as you may have guessed).  They sort of blithely expect  everything to go perfectly.
Title: Let's make a stable platform
Post by: Testlund on October 25, 2005, 04:48:33 PM
I just found out it doesn't matter if I have saved any settings or not. It crashes the same allmost everytime I try to access the GUI when a simulation is running.
Title: Let's make a stable platform
Post by: Numsgil on October 25, 2005, 04:50:12 PM
Maybe one of your fields is too big?

For instance, if you try to put 1000000000000000000000000000 in the field for how much nrg each veggy gets per cycle, it will crash the program.  If a settings file being loaded has this (or any other nubmer of out of bounds problems) you'll never get the GUI to show itself.
Title: Let's make a stable platform
Post by: Testlund on October 25, 2005, 04:55:30 PM
No, I allready know I shouldn't have 1 billion NRG for my veggies (lol), you've allready told about that. I have 10 NRG/cycle for the veggies set. Also I think I have quite low values for the other fields too. Simulation size: Field width: 16000 and Field height: 12000. Max veggies: 100. Waste treshold: 100.

If a setting is not good for the program it should not be available.
Title: Let's make a stable platform
Post by: Griz on October 25, 2005, 04:56:13 PM
so we need a good default setting to start with ...
or one never gets far enough to test anything else, eh?
Title: Let's make a stable platform
Post by: Numsgil on October 25, 2005, 04:58:30 PM
Yeah, VB is great for GUI development until you realize that idiot-proofing it is near impossible.
Title: Let's make a stable platform
Post by: Testlund on October 25, 2005, 04:58:31 PM
Yeah, big default buttons for every tab!  :boing:
Title: Let's make a stable platform
Post by: Numsgil on October 25, 2005, 04:59:14 PM
That's probably a good idea.  Really a single button would work just as well.
Title: Let's make a stable platform
Post by: PurpleYouko on October 25, 2005, 05:04:05 PM
The download worked for me just fine. I use it at home but here at work I have the full enterprize edition with all the bells and whistles.  :D
Title: Let's make a stable platform
Post by: Numsgil on October 25, 2005, 05:04:58 PM
Hmm, make less than 80 changes at once?

Sounds intriguing...
Title: Let's make a stable platform
Post by: Testlund on October 25, 2005, 05:28:01 PM
I think I know now what is causing run-time error 13. Mismatch something. As soon as I changed the mutation to 32x on the mutation tab, clicked change, and then access the GUI again I got the crash.
Title: Let's make a stable platform
Post by: Testlund on October 25, 2005, 05:37:21 PM
Quote
btw Test, may I call you Test for short? ;)
Sure. I whould prefere to upload my own avatar, but I guess I can't do that. I have some aquariums with fishes, so I thought I'll chose a fish.

I can only find bugs, not fix them. Know nothing about programming.

Where are you PY??? :help:
Title: Let's make a stable platform
Post by: Numsgil on October 25, 2005, 07:08:12 PM
Yes, this is a main pain PY and I have dealt with since time immorial.

Sometimes I wanted to yell at my computer "No, you find sysvars2.21.txt!"

What I ended up doing is wherever the program sets up MainDir (it's a variable) I check to see if the left most bit is "C:\darwinsource" cause that's where I keep the source codes.  If it is, I delete that bit and set it equal to: "C:\DarwinbotsII\" cause that's where I keep my DB install.

Somethign similar should work for you, but it takes a bit of finagling to set it straight.  Feel free to downlaod 2.4's source and see how I did it.
Title: Let's make a stable platform
Post by: Testlund on October 25, 2005, 07:42:49 PM
Here's that Run-Time error 6 bug, appeared after a one hour long simulation.

 rob(n).mem(refvelscalar) = Sqr(rob(n).mem(refvelup) ^ 2 + rob(n).mem(refveldx) ^ 2) ' how fast is this robot moving compared to me?

Are you looking into these bugs I'm reporting here?
Title: Let's make a stable platform
Post by: Botsareus on October 25, 2005, 07:48:26 PM
CANT PROGRAM ARE ME!!!!!!! NOT US!!!!!!!

It might help when you press the "debug" button, to go to the highlighted line, and hover with the mouse over each variable. It will get you what kind of numbers you are getting from each. (and sometimes if you modify the code you can get crazy numbers in places that were low before)

You might also get other information then numbers if I can recall correctly, by hovering over stuff and waiting for the tool tip to apper...
Title: Let's make a stable platform
Post by: Testlund on October 25, 2005, 09:52:14 PM
Ok, here's a full bug report. (sigh)

A 1h 16 min simulation caused a crash displaying the error message:

Run-time error 6 overflow.

Offending code:

 rob(n).mem(refveldx) = (rob(o).vy * Cos(rob(n).aim) + rob(o).vx * Sin(rob(n).aim)) - rob(n).mem(veldx)

HOVERING THE MOUSE over the code...as Botsareus demanded...displays a lot of different things depending on where you hover the mouse. I don't know how I can explain that in an understandable way and I don't see any use of telling you cause you can hover the mouse yourselves over the code if you scroll down to it. Unfortunately I forgot to check what line the above mensioned code is located but you can copy the code and search for it via the Find button.

Changing the mutation to anything higher than 1 on the Mutations tab, clicking change and going back to the GUI causes a crash displaying Run-Time error 13: Type mismatch.

Offending code:

MutLab.Caption = (TmpOpts.MutCurrMult) + " X"

Location: Ln 764, Col 5

Clicking on the x in the upper right corner on some windows causes the program to hang. Must be closed through Ctrl-Alt-Delete.

Clicking options->Show robot info->Dna without selecting a robot first causes a crash displaying an error message that can't be read because it's obscured by a window.

Offending code:

  While Not (rob(n).DNA(t).tipo = 4 And rob(n).DNA(t).value = 4)

Location: Ln 1402, Col 1

That's all the bugs I've found.
Title: Let's make a stable platform
Post by: Botsareus on October 25, 2005, 09:55:22 PM
Hold on , are you talking about my code or not?
Title: Let's make a stable platform
Post by: Numsgil on October 26, 2005, 01:08:29 AM
Ah, that would be a no, Bots.

The fix isn't too bad.  Store the memrefvelup or whtatever and the other one to longs.  Then square each one and add them together.  Then find the square root.  Then double check to see that that isn't > 32000.

Welcome to my world ;)


Just so we're clear, PY is handling all the debugging of 2.37.4.  I'm working on other things (like robot placement code ;) (speaking of which... Bots, you have heard of thiis little button on the left of the keyboard called a 'tab', right?)
Title: Let's make a stable platform
Post by: PurpleYouko on October 26, 2005, 09:19:35 AM
Quote
Where are you PY??? 

Give me a chance dude.

I only initiated this yesterday and I do actually have a life (and a job) outside DB. Sometimes I can't even get to the code for a week at a time.

Let's start at the beginning. (No offense intended if you already know this stuff)

As Bots suggested, hovering the mouse over a variable is the best way to find out what is wrong.

The most common problem seems to be "overflow"

This simply means that the result of a calculation is too big to fit within the variable type.
Most DB variables are defined as "single" (single precision floating decimal) or "integer". Both of these memory types assign 16 bits of memory to hold the value. That is 1*2*2*2*2*2*2*2*2*2*2*2*2*2*2 possible combinations. Otherwise known as a maximum value of 32,768. We normally limit it to 32000 for an easier life.

So what happens is that some calculation results in a value greater than 32768 then tries to store it into a variable that can't hold it. Instant overflow and the program gives up in disgust.

By hovering the mouse, you can often find the exact variable or calculation that is causing the problem.

You need to report the line of code with as much information about the actual variables as possible. It also helps a lot to report the name of the subroutine in which the code is located. It can be an extremely daunting task just trying to find a specific line of code in the program without a little more info to go on.
In the case of a relatively small routine, just copy the whole routine and put it inside "code" tags in your message. Then describe the problem.

Hopefully I can look into some of this stuff later today.
Title: Let's make a stable platform
Post by: Numsgil on October 26, 2005, 11:57:07 AM
Haha, okay.  Let's do this bit by bit:

Quote
Here's that Run-Time error 6 bug, appeared after a one hour long simulation.

rob(n).mem(refvelscalar) = Sqr(rob(n).mem(refvelup) ^ 2 + rob(n).mem(refveldx) ^ 2) ' how fast is this robot moving compared to me?

velocity should never be > 60, so theoretically rob(n).mem(refvelup) ^ 2 + rob(n).mem(refveldx) ^ 2 should always be <= 3600, well within the range of an integer.

That it isn't is cause for concern, because it means somewhere something is acting screwy.  Oh well, that's life.  To fix it so this doesn't overflow, we do:

dim temp as single

temp = rob(n).mem(refvelup) ^ 2 + rob(n).mem(refveldx) ^ 2
temp = sqr(temp)

rob(n).mem(refvelscalar) = temp

and then you test it, cause overflow errors like this are always a pain in the butt, and often fixes that should work don't.
Title: Let's make a stable platform
Post by: Botsareus on October 26, 2005, 12:05:42 PM
Quote
Bots, you have heard of thiis little button on the left of the keyboard called a 'tab', right?

 :blink:
I dont get it; Yes I have... and?



MY CODE < USE MY CODE! ... :( ... (What really bugs me is: what if you fix something in some other ways then I fixed it and suddenly 'poof' my robots that I got from my code don't work on your code)
Title: Let's make a stable platform
Post by: Numsgil on October 26, 2005, 12:24:48 PM
And your code lacks standard tabbing.  Things like indenting at the start of a function, for instance.
Title: Let's make a stable platform
Post by: PurpleYouko on October 26, 2005, 12:58:57 PM
That kind of thing makes code almost impossible to debug.

You have to spend ages going through and reformatting things before you can even look at the code itself.

I have debugged other peoples code for them from time to time and invariably, bad formatting is the primary cause for the bug in the first place.

Here is an example of some code that I am fixing for some guy from Mr. Excel

Just check out the crappy formatting.  :blink:

Code: [Select]
Private Sub CommandButton1_Click() 'Enter Button
'Error messages that show if TextBox not filled in
Dim ws As Worksheet
Dim WSQC As Worksheet
    Set ws = Sheets("Time Sheet Compile")
    Set WSQC = Sheets("Quality Control Checks")
        If TextBox4 = "" Then
            MsgBox (" You Have Not Entered The Order Number In The Box Supplied")
                Order_Details.Hide
                    Order_Details.Show
                Else
                    If TextBox5 = "" Then
                        MsgBox (" You Have Not Entered Your Name In The Box Supplied")
                            Order_Details.Hide
                                Order_Details.Show
                            Else
                                If ComboBox1 = "" Then
                                    MsgBox (" You Have Not Entered The Shift Details In The Box Supplied")
                                        Order_Details.Hide
                                     Order_Details.Show
                                  Else
                                If ComboBox2 = "" Then
                            MsgBox (" You Have Not Entered The Machine Details In The Box Supplied")
                        Order_Details.Hide
                    Order_Details.Show
                        Else
                    Confirm_Details.Show
                  End If
               End If
            End If
          End If
        With ws
        ws.Range("A6") = Me.Textbox3.text  'Date
        ws.Range("B6") = Me.TextBox4.text  'Order Number
        ws.Range("C6") = Me.ComboBox1.text 'Shift
        ws.Range("D6") = Me.ComboBox2.text 'Machine
        ws.Range("E6") = Me.TextBox5.text  'Operators Name
        'Copy to Quality Control Checks Sheet
        WSQC.Range("B2") = Me.Textbox3.text 'date
        WSQC.Range("B5") = Me.TextBox4.text  'Order Number
        WSQC.Range("B3") = Me.ComboBox1.text 'Shift
        WSQC.Range("B6") = Me.ComboBox2.text 'Machine
        WSQC.Range("B4") = Me.TextBox5.text  'Operators Name
        WSQC.Range("C11") = Sheets("Time Sheet Archive").Range("AQ6")  'Previous Order Number
        WSQC.Range("D11") = Sheets("Time Sheet Archive").Range("BB6")  'Previous Order's Colour Code
        
        Me.Hide
        QC_Check.Show
        End With
End Sub
Title: Let's make a stable platform
Post by: Numsgil on October 26, 2005, 01:54:15 PM
:o

Bots, that would be the exact opposite problem you have ;)
Title: Let's make a stable platform
Post by: Numsgil on October 26, 2005, 02:10:28 PM
The 60 maxvelocity is a physical limitation of the visual basic program.

Ideally there'd be no max velocity.  But the physics engine isn't built to cope with that (yet).  Bots would fly right through each other during a cycle without colliding when they should have.

I've raised it to 180 in my code at home to see how stable it is.  Alot of collisions are being missed.

Higher than 180 and you'll get a spate of overflow errors you'd need to fix.

And now you know why I work on the physics engine ;)
Title: Let's make a stable platform
Post by: Testlund on October 26, 2005, 03:16:53 PM
Ran a simulation wich lasted for only 5 minutes and then it crashed.

Run-time error 9: Subscript out of range.

Code:

    While Not (DNA(k).tipo = 4 And DNA(k).value = 4) And Not (DNA(k).tipo = tipo And DNA(k).value = value)

Line 108.

It's the code in the mutations window.
Title: Let's make a stable platform
Post by: Numsgil on October 26, 2005, 03:22:16 PM
That means a bit of DNA wasn't ending with "end" like it should I think.  tipo = 4 and value = 4 is the old code for "end".
Title: Let's make a stable platform
Post by: PurpleYouko on October 26, 2005, 03:36:00 PM
I can't make the bloody thing crash period.

I have been running a sim all day with insanely high mutation rates. Nothing I do can put a dent in it yet.
Title: Let's make a stable platform
Post by: Numsgil on October 26, 2005, 03:38:00 PM
It's the developer's curse.  Only people who can't fix bugs can ever find them. ;)
Title: Let's make a stable platform
Post by: PurpleYouko on October 26, 2005, 03:39:59 PM
Quote
Ran a simulation wich lasted for only 5 minutes and then it crashed.

Run-time error 9: Subscript out of range.

Code:

    While Not (DNA(k).tipo = 4 And DNA(k).value = 4) And Not (DNA(k).tipo = tipo And DNA(k).value = value)

Line 108.

It's the code in the mutations window.
is this "public function NextElement" by any chance?

What are the values of k, DNA(k).value and DNA(k).tipo?
Title: Let's make a stable platform
Post by: Testlund on October 26, 2005, 04:32:05 PM
Quote
I can't make the bloody thing crash period.

I have been running a sim all day with insanely high mutation rates. Nothing I do can put a dent in it yet.
That makes me think there is something else outside the program that is causing it. ..or maybe you are running with other settings then me. Could it matter what kind of operating system one is using? I'm using Win XP Professional with Service Pack 2.

Also, you guys want me to hover the mouse over the values and tell me what it says. Does that mean you don't have the same values as me on the same code? Allmost every letter in the code shows a popup displaying a value. I found it difficult to report about it, but if that's the way it has to be than I'll give it a try. Starting up another sim.....   :tantrum:
Title: Let's make a stable platform
Post by: Numsgil on October 26, 2005, 04:34:31 PM
When you hover your mouse over code, it's telling you what that bit equals at that exact moment.
Title: Let's make a stable platform
Post by: Greven on October 26, 2005, 04:46:38 PM
Quote
It's the developer's curse. Only people who can't fix bugs can ever find them

It is so funny.... AS I have said before! The seed function! Show us the seed value in the in the main window. Then we can report the seed value only and you Num, can find the bug really quick!
Title: Let's make a stable platform
Post by: Numsgil on October 26, 2005, 04:49:35 PM
You aren't the only one. ;)

I'm thinking of implementing some sort of auto-bug reprot that zips the save file of the crash, along with settings, etc. and sends it to my email automatically.
Title: Let's make a stable platform
Post by: Greven on October 26, 2005, 05:22:22 PM
Well it seems to awful much work compared to my simple idea! The seed value, will replicate the excact same simulation, and have the same error, believe me, even on different computers.
Title: Let's make a stable platform
Post by: Testlund on October 26, 2005, 05:39:56 PM
CRASH:

Run-time error 6: overflow.

CODE:

rob(n).mem(refvelscalar) = Sqr(rob(n).mem(refvelup) ^ 2 + rob(n).mem(refveldx) ^ 2) ' how fast is this robot moving compared to me?

HOVERING INFO:

Hovering over first 'rob' as well as '.mem' displays 'rob(n).mem(refvelscalar) = 30509.

Hovering over all '(n)' variables in the code displays 'n= 176'.

Hovering over '(refvelscalar)' displays 'refvelscalar = 695'.

Hovering over next '(rob' as well as next '.mem' displays 'rob(n).mem(refvelup) = -21948'.

Hovering over '(refvelup)' displays 'refvelup = 699'.

Hovering over next 'rob as well as '.mem' displays 'rob(n)refveldx) = -30578'.

Hovering over '(refveldx)' displays 'refveldx = 697'.

Do I make any sence? Is this what you need?
Title: Let's make a stable platform
Post by: Numsgil on October 26, 2005, 05:42:09 PM
Quote
Well it seems to awful much work compared to my simple idea! The seed value, will replicate the excact same simulation, and have the same error, believe me, even on different computers.
It's already implemented!

Or didn't you know that?  It's just no one actually reprots it when they tell a bug.
Title: Let's make a stable platform
Post by: Numsgil on October 26, 2005, 05:43:34 PM
Quote
CRASH:

Run-time error 6: overflow.

CODE:

rob(n).mem(refvelscalar) = Sqr(rob(n).mem(refvelup) ^ 2 + rob(n).mem(refveldx) ^ 2) ' how fast is this robot moving compared to me?

HOVERING INFO:

Hovering over first 'rob' as well as '.mem' displays 'rob(n).mem(refvelscalar) = 30509.

Hovering over all '(n)' variables in the code displays 'n= 176'.

Hovering over '(refvelscalar)' displays 'refvelscalar = 695'.

Hovering over next '(rob' as well as next '.mem' displays 'rob(n).mem(refvelup) = -21948'.

Hovering over '(refvelup)' displays 'refvelup = 699'.

Hovering over next 'rob as well as '.mem' displays 'rob(n)refveldx) = -30578'.

Hovering over '(refveldx)' displays 'refveldx = 697'.

Do I make any sence? Is this what you need?
Yeah, can you see why it would overflow?  If you do than you can be more useful bug hunting ;)
Title: Let's make a stable platform
Post by: Testlund on October 26, 2005, 05:53:43 PM
I have no idea! I know nothing about programming. Something wrong with the numbers, perhaps?
Title: Let's make a stable platform
Post by: Numsgil on October 26, 2005, 05:58:03 PM
Too bad...  Anyway yeah, all that info was helpful.
Title: Let's make a stable platform
Post by: Botsareus on October 26, 2005, 06:17:23 PM
Quote
Too bad... Anyway yeah, all that info was helpful.
Not so too bad after all...

Private Sub Form_Load()
'aha we are working with intager
Dim a As Integer, b As Integer, c As Integer
'lets set the overflow frandly numbers for a spin
a = -21948
b = -30578
'ok now with the works
c = (a ^ 2 + b ^ 2) ^ 0.5 'can overflows for several reasons a.) trys to do a a ^ 2 in a integer memory range...

'ok now the same thing fixed:

c = CInt((CLng(a) ^ 2 + CLng(a) ^ 2) ^ 0.5)
Debug.Print c '31039

'Qustions? , comments? Send it over to microsoft.
End Sub
Title: Let's make a stable platform
Post by: Testlund on October 26, 2005, 06:32:36 PM
Here's another one for ya!

Same error 6 overflow.

Another code:

rob(n).mem(refvelup) = (rob(o).vx * Cos(rob(n).aim) + rob(o).vy * Sin(rob(n).aim) * -1) - rob(n).mem(velup)

Hovering info:

rob(n).mem(refvelup) = 14103

n = 403

refvelup = 699

rob(o).vx = 1370,617

o = 91

rob(n).aim = 3,747893

rob(o).vy = 95642,16

rob(n).mem(velup) = -5

velup = 200

Now I'm going to bed.
Title: Let's make a stable platform
Post by: Numsgil on October 26, 2005, 06:47:29 PM
mem(something) is the memory array.  Defining it as long, among other things, increases the memory consumption of the program dramatically.

Insert a check way at the top of that routine:

if abs(rob(o).vx) > .MaxVel then rob(n).vx = sgn(rob(n).vx) * .MaxVel
if abs(rob(o).vy) > .MaxVel then rob(n).vy = sgn(rob(n).vy) * .MaxVel
Title: Let's make a stable platform
Post by: Greven on October 26, 2005, 06:47:33 PM
Quote
Quote
Well it seems to awful much work compared to my simple idea! The seed value, will replicate the excact same simulation, and have the same error, believe me, even on different computers.
It's already implemented!

Or didn't you know that?  It's just no one actually reprots it when they tell a bug.
Yes I know it is! But when using timer, can you see the seed value?

In SoL I created a file, writing(appending) the seed value to it.
If the program did not crash and exited normally, the program would write "SIM OK" or something. This can actually be refined, so it will remove the seed value for the current sim, and you will end up with a file were all possible error seed values will be in (if you run it enough times).

Do you understand?
Title: Let's make a stable platform
Post by: Numsgil on October 26, 2005, 06:48:50 PM
Show the Timer value in the main title bar on the thing at the bottom? Yaeh, sure, makes sense ;)

I'll go ahead and add it...

In the mean time, why not have everyone run the same seed?  Like 86.  That's a good seed number.
Title: Let's make a stable platform
Post by: Botsareus on October 26, 2005, 06:49:07 PM
CONGRADULATIONS~! YOU ACTUALY FOUND ONE I DID NOT FIX YET IN THE CODE WITCH YOU C!A!N! D!O!W!N!L!O!A!D! from the ftp.

So I will fix it now....


'wrong code:
rob(n).mem(refvelup) = (rob(o).vx * Cos(rob(n).aim) + rob(o).vy * Sin(rob(n).aim) * -1) - rob(n).mem(velup)

'correct code:
Dim tempc As Long
tempc = (rob(o).vx * Cos(rob(n).aim) + rob(o).vy * Sin(rob(n).aim) * -1) - rob(n).mem(velup)
If Abs(tempc) > 32000 Then tempc = 32000 * Sgn(tempc)
rob(n).mem(refvelup) = tempc
Title: Let's make a stable platform
Post by: Botsareus on October 26, 2005, 06:52:53 PM
GRIZ USE THIS!!!!!!!!!!!!!!!!!!!!

rob(n).mem(refvelscalar) = CInt(Sqr(CLng(rob(n).mem(refvelup) ^ 2) + CLng(rob(n).mem(refveldx) ^ 2)))' how fast is this robot moving compared to me?

PLEASE!!!!!!!
Title: Let's make a stable platform
Post by: Greven on October 26, 2005, 06:53:55 PM
Quote
Show the Timer value in the main title bar on the thing at the bottom? Yaeh, sure, makes sense ;)

I'll go ahead and add it...

In the mean time, why not have everyone run the same seed?  Like 86.  That's a good seed number.
Are you making fun of me?

No one should use the same seed number...?

Well, I should not care. It will just be easier for YOU NUM, to please the community with a stable version, at last. It will be quicker, and better instead of people reporting strange bugs, that you can not reproduce...

Well, the story of DB!
Title: Let's make a stable platform
Post by: Numsgil on October 26, 2005, 06:58:07 PM
Uh, no I was being most un-sarcastic.  Showing the current seed is easy enough.

And if everyone runs the same seed, it becomes very easy to find and reproduce all the bugs.

Theoretically all bugs are reproducable under any seed.
Title: Let's make a stable platform
Post by: Botsareus on October 26, 2005, 07:00:38 PM
I FIXED 4 BUGS PEOPLE, IN MY VIRSION, I JUST FIXED ONE MORE JUST NOW, IF YOU PRETEND LIKE I DONT EXSIST I AM LEAVING.
Title: Let's make a stable platform
Post by: Numsgil on October 26, 2005, 07:03:24 PM
Breath bots, breath.  Use the paper bag over there in the corner.

Yeah, that's it.

PY is coordinating all the code changes for the new version.  He isn't around anywhere, is he?
Title: Let's make a stable platform
Post by: Botsareus on October 26, 2005, 07:06:29 PM
heh, well if people would of worked from my virsion to begin with, we would had a lot less HH to talk about, wouldn't we now? Come on sheep , wake up and smell the coffie... atleast now I understand the people in cosmic rift a little better, they are narrow minded, so narrow minded that sony does not care about there own boards at all.

Tell me Num, why don't I have any frands... simple: everyone is to f^$# stupid to be my frand... "The geek loop hole" sounds fomilier. We got a situation here:
If you are not narrow minded then you are worse then everyone else.
You might be better then everyone else but who cares?

Red fobia people , Red fobia...
Title: Let's make a stable platform
Post by: Botsareus on October 26, 2005, 07:10:41 PM
YES!!!!!!!!!!!. NOW , USE MY VIRSION OF THE PROGRAM, ITS ALREADY FIXED IN THERE.....

Griz, sometimes the equations we have here and there are stable enough not to overflow the output thats when we can use Clng , Cint or whatever (hh to you anyway)

Otherwise we need to "cap" (coined a term from Num) the values by doing a lot of "diming more pesky variables "
Title: Let's make a stable platform
Post by: Numsgil on October 26, 2005, 07:21:32 PM
Can you do CInt(some large number) to get a reasonable number that is prevented from being too big?

News to me ;)

If so, is such a number capped at 32000 (the max memory value) or 32767?  Is it capped or is it modded?
Title: Let's make a stable platform
Post by: Botsareus on October 26, 2005, 07:24:49 PM
If you do Cint(You Just won 10 billion dullers) you will get an overflow error. All Cint does is explain to the dum guy doing the math in your box that he is now working with small numbers again, not big numbers.
Title: Let's make a stable platform
Post by: Greven on October 26, 2005, 07:30:36 PM
Quote
I FIXED 4 BUGS PEOPLE, IN MY VIRSION, I JUST FIXED ONE MORE JUST NOW, IF YOU PRETEND LIKE I DONT EXSIST I AM LEAVING.
Bot stop! Please! People dont care if you leave (ok they will), it will be you own loss to leave DB, not theirs.
Title: Let's make a stable platform
Post by: Greven on October 26, 2005, 07:34:56 PM
And Bots you dont have any frands, because I dont know what a frand is! ;)

You scare people by being so agressive! Calm down bots! Actually I can not see why Num isn't putting your fixes into the official version, maybe it is because he is to proud, I dont know. ;)
Title: Let's make a stable platform
Post by: Numsgil on October 26, 2005, 07:34:58 PM
OOps, .MaxVel should be rob(o).MaxVel   :redface:

Top of the routine means right before anything is saved into rob(n).mem(anything at all

Probably a good place is right after the sub Function name that came before.

Code looks like:

Code: [Select]
sub Function name
  'this is the top of the routine

  'some stuff....

Bugg code

end sub
Title: Let's make a stable platform
Post by: Numsgil on October 26, 2005, 07:36:23 PM
Most of Bots' fixes are fixed in 2.4 already.  Maybe done differently, but fixed none the less.

And what's brand spanking new makes no sense to me, or I feel is wrong.  Like radiation...

And what I like I can't figure out the code for, because it's formatted poorly.
Title: Let's make a stable platform
Post by: Greven on October 26, 2005, 07:38:38 PM
Quote
And what I like I can't figure out the code for, because it's formatted poorly.
You seem like a pretty intelligent person Num, :idea:  and then THIS should be you excuse? That does not hold Num! :puke:
Title: Let's make a stable platform
Post by: Ulciscor on October 26, 2005, 07:42:31 PM
Quote
there is this damn pesky real life thing that requres some attention. ;)
Yeah I hate that thing too! So irritating  :angry:
Title: Let's make a stable platform
Post by: Numsgil on October 26, 2005, 07:54:43 PM
I know it sounds crazy, but I can't just look at code and know what it does.  It takes a lot of time to decipher new code.

If it's unreadable, then even more so.
Title: Let's make a stable platform
Post by: Numsgil on October 26, 2005, 07:58:30 PM
Quote
Quote
OOps, .MaxVel should be rob(o).MaxVel   :redface:
so ...
 
if abs(rob(o).vx) > rob(o).MaxVel then rob(n).vx = sgn(rob(n).vx) * rob(o).MaxVel
if abs(rob(o).vy) > rob(o).MaxVel then rob(n).vy = sgn(rob(n).vy) * rob(o).MaxVel
 ?
And now my head exploded.

Post the whole function, and let me look at it.  Then I'll post a fix for it.
Title: Let's make a stable platform
Post by: Numsgil on October 26, 2005, 08:16:31 PM
AH, okay, hold on a sec...
Title: Let's make a stable platform
Post by: Numsgil on October 26, 2005, 08:19:31 PM
Code: [Select]
if abs(rob(o).vx) > rob(o).MaxVel then rob(o).vx = sgn(rob(o).vx) * rob(o).MaxVel
if abs(rob(o).vy) > rob(o).MaxVel then rob(o).vy = sgn(rob(o).vy) * rob(o).MaxVel

rob(n).mem(refvelup) = (rob(o).vx * Cos(rob(n).aim) + rob(o).vy * Sin(rob(n).aim) * -1) - rob(n).mem(velup)
  rob(n).mem(refveldn) = rob(n).mem(refvelup) * -1
  rob(n).mem(refveldx) = (rob(o).vy * Cos(rob(n).aim) + rob(o).vx * Sin(rob(n).aim)) - rob(n).mem(veldx)
  rob(n).mem(refvelsx) = rob(n).mem(refvelsx) * -1

THat should do ya I think...
Title: Let's make a stable platform
Post by: Numsgil on October 26, 2005, 08:33:50 PM
This code gives the bot information about what it's looking at.

refvelup is the relative velocity of the bot you're looking at along the direction you're looking.

if it's negative, than it's comming closer.
Title: Let's make a stable platform
Post by: PurpleYouko on October 27, 2005, 09:17:37 AM
I finally managed to crash the program. Had to leave it running all night in debug mode to get it to break.

It is the same line of code that was reported earlier.

Code: [Select]
   While Not (DNA(k).tipo = 4 And DNA(k).value = 4) And Not (DNA(k).tipo = tipo And DNA(k).value = value)
From reading the thread above I see that a lot of you may need a little direction in bug fixing/detection so I will go through this one step by step.

Now just saying that this line is a problem is not enough to actually debug this. You need to understand the reason why it goes wrong.

Here is the whole routine.

Code: [Select]
Public Function NextElement(ByRef DNA() As block, beginning As Integer, tipo As Integer, value As Integer) As Integer
  'takes the input for the first value in a gene and returns the position of the next statement
  'as defined by tipo and value
  Dim k As Integer
  Dim uboundarray As Long
  
  uboundarray = UBound(DNA())
  If DNA(uboundarray).tipo <> 4 And DNA(uboundarray).value <> 4 Then
    ReDim Preserve DNA(uboundarray + 1)
    DNA(uboundarray + 1).tipo = 4
    DNA(uboundarray + 1).value = 4
  End If
  k = beginning
  
  If beginning > 0 Then
    While Not (DNA(k).tipo = 4 And DNA(k).value = 4) And Not (DNA(k).tipo = tipo And DNA(k).value = value)
      k = k + 1
    Wend
    If Not (DNA(k).tipo = tipo And DNA(k).value = value) Then k = -1
  Else 'beginning wasn't valid
    k = -1
  End If
  
  NextElement = k
End Function

First we have to figure out what is wrong. By hovering the mouse we can see what value is causing the trouble.
You very quickly find that hovering over the first part of the offending code line, it shows "DNA(k).tipo =<Subscript out of range>"
This means that the program is attempting to reference an array element that is outside of the allowed range.
Hold the mouse over k and you will see a value of 3

So how big is the DNA() array anyway? It should be bigger than 3 surely  :blink:  After all it is supposed to hold the entire DNA of the bot.

Go back up the code until you find a line that reads
Code: [Select]
uboundarray = UBound(DNA())Ubound is a function that returns the number of allowable elements in an array so the variable "uboundarray" should hold that value.

Hover the mouse over it and you will see 2  :blink:

Somehow the entire DNA of this robot is only 2 elements long.

We can fix this routine by adding a conditional that kicks it back out of the routine if the value of uboundarray is less than 3 but that only fixes a symptom.

What the heck is the actual problem?

We need to trace it back further than this. What other routine is calling this one?

To find out, click the binoculars on the VB toolbar and type in the name of this routine into the search box. Select "current project" and click "find next". If you keep pressing it, you will switch through every instance of this name in the entire code. You will quickly notive that "NextElement" is called from loads of different places. How to figure out which one called it?
It's actually quite easy. The call contains 4 elements, DNA, inizio and 2 digits. Simply hold the mouse over inizio in each of the calls until you see a value pop up. Only the routine that directly called it will do this so using this technique you can backtrack all the way through the code to find where the values initially came from.

More in a bit. I am still tracing this one myself right now.
Title: Let's make a stable platform
Post by: Zelos on October 27, 2005, 09:27:27 AM
I know it doesnt have to do with this, but ive tried .something and the vb says it dont work, how do you guys do that?
Title: Let's make a stable platform
Post by: PurpleYouko on October 27, 2005, 09:32:12 AM
OK I traced this right back up to routine Updatepos where I found a veggie (robot # 22) with a DNA length of zero.

It isn't really possible to go back any further than this since we have no way of telling how this happened.

I guess there is no option other than to fix the routine where the bug showed up.

Go back there and change

Code: [Select]
If beginning > 0 Then
to

Code: [Select]
If beginning > 0 And beginning < uboundarray Then
That should stop it ever happening again. The routine will simply return the value of the last element in the array when called now. (2 that is)

After making this repair you can even restart the program by going to the "immediate" window and typing in "k=0" then hit enter and press the go arrow in the tool bar. The program will continue without fault.
Title: Let's make a stable platform
Post by: PurpleYouko on October 27, 2005, 09:33:32 AM
Quote
I know it doesnt have to do with this, but ive tried .something and the vb says it dont work, how do you guys do that?

What did you try. We can't help much without specifics
Title: Let's make a stable platform
Post by: PurpleYouko on October 27, 2005, 09:36:22 AM
Quote
btw ... I don't know that I have the tools you speak of in the VB6 I have.
will see about this 'binocular' thing next time I have a chance to play.

If you downloaded VB6.0 then you have these tools. This is the most basic stuff that comes with every VB installation. Nothing extra needed here.

You even get this stuff in a VBA macro code window in Excel, Word or any MS Office application
Title: Let's make a stable platform
Post by: PurpleYouko on October 27, 2005, 10:09:08 AM
Quote
go back where?
to what modual?
First of all, did you understand my instructions about tracing where the call to a specific module comes from?

I want to work with you on this so that you understand but when I have tried moving in baby steps previously I was accused of talking down to people too much.

If I assume that people know stuff then I get complaints from people who don't but if I get too basic then I get complaints from people who know a bit more.

I's a bit of a los-lose situation if you know what I mean.

Perhaps I need to start a debugging for beginners article on the Wiki.
Title: Let's make a stable platform
Post by: Numsgil on October 27, 2005, 10:10:17 AM
Quote
How to figure out which one called it?
It's actually quite easy. The call contains 4 elements, DNA, inizio and 2 digits. Simply hold the mouse over inizio in each of the calls until you see a value pop up. Only the routine that directly called it will do this so using this technique you can backtrack all the way through the code to find where the values initially came from.

More in a bit. I am still tracing this one myself right now.
 ^_^ Didn't know that.
Title: Let's make a stable platform
Post by: Numsgil on October 27, 2005, 10:12:36 AM
Quote
Perhaps I need to start a debugging for beginners article on the Wiki.
Probably worth the effort.
Title: Let's make a stable platform
Post by: PurpleYouko on October 27, 2005, 10:16:45 AM
Quote
Quote
How to figure out which one called it?
It's actually quite easy. The call contains 4 elements, DNA, inizio and 2 digits. Simply hold the mouse over inizio in each of the calls until you see a value pop up. Only the routine that directly called it will do this so using this technique you can backtrack all the way through the code to find where the values initially came from.

More in a bit. I am still tracing this one myself right now.
^_^ Didn't know that.
So how have you been debugging then?  :unsure:
Title: Let's make a stable platform
Post by: Numsgil on October 27, 2005, 10:19:06 AM
Well, I'd led it crash.  Then I'd see the routine that crashed it...

And I'd put a fix in there ;)

Hehe.
Title: Let's make a stable platform
Post by: PurpleYouko on October 27, 2005, 10:23:55 AM
Quote
You mean as you are now? Because you are.
Then you see my problem.

It is like being a lecturer when your class is a mix of kindergarteners and grad students. You can't possibly satisfy everybody with the level of the class.

I think I need to just start at basics and not worry about whether it's too low level for some.

I will see what I can achieve on the wiki
Title: Let's make a stable platform
Post by: Numsgil on October 27, 2005, 10:27:48 AM
While we're at it, a quick blurb of what all the source code files do in 2.37.4 m,ight be nice.

Like:

Physics - Handles all the physics routines such as tie forces and collisions.
Title: Let's make a stable platform
Post by: Ulciscor on October 27, 2005, 10:35:07 AM
Would it be a major hassle to change some of the variable names to things that are more meaningful?

.tipo confuses me oh so much
Title: Let's make a stable platform
Post by: Numsgil on October 27, 2005, 10:37:00 AM
I've actually done that alot in the last few months, as has PY.

Alot of things were/are in Italian because Carlo is Italian.

Check out 2.4's source to see what names have been moved around.  Alot of things are rewritten with new names.
Title: Let's make a stable platform
Post by: Numsgil on October 27, 2005, 10:45:26 AM
But then the comments are only where they're created, not where they're used.

I've always been a fan of longer, more descriptive variable names for more seldom used variables and short but concise and descriptive names for oft used variables.

x23 would be a bad variable name

counter is good if it's incremented in a counter like fashion.

CounterForTheSecondForLoop is probably too descriptive.
Title: Let's make a stable platform
Post by: Numsgil on October 27, 2005, 10:52:24 AM
I think he decided to plop them down in the same routine that's bugging out, so to speak.
Title: Let's make a stable platform
Post by: PurpleYouko on October 27, 2005, 10:52:32 AM
Quote
I still don't know where to go to make that change you suggested!!!!

It's in the place where the original error occured.

The nextElement function in the Mutations module.

here it is again.

Code: [Select]
Public Function NextElement(ByRef DNA() As block, beginning As Integer, tipo As Integer, value As Integer) As Integer
  'takes the input for the first value in a gene and returns the position of the next statement
  'as defined by tipo and value
  Dim k As Integer
  Dim uboundarray As Long
  
  uboundarray = UBound(DNA())
  If DNA(uboundarray).tipo <> 4 And DNA(uboundarray).value <> 4 Then
    ReDim Preserve DNA(uboundarray + 1)
    DNA(uboundarray + 1).tipo = 4
    DNA(uboundarray + 1).value = 4
  End If
  k = beginning
  
  If beginning > 0 And beginning < uboundarray Then  'change this line.
    While Not (DNA(k).tipo = 4 And DNA(k).value = 4) And Not (DNA(k).tipo = tipo And DNA(k).value = value)
      k = k + 1
    Wend
    If Not (DNA(k).tipo = tipo And DNA(k).value = value) Then k = -1
  Else 'beginning wasn't valid
    k = -1
  End If
  
  NextElement = k
End Function
Title: Let's make a stable platform
Post by: PurpleYouko on October 27, 2005, 11:03:46 AM
I'm now up to 105,000 cycles with this sim and only one crash so far.

Now my veggies have started mutating. I'm sure they shouldn't be doing that.
Title: Let's make a stable platform
Post by: PurpleYouko on October 27, 2005, 11:35:07 AM
Griz.

FYI

The bug that I was working on here was reported by Testlund earlier in this thread.

here is a link to his original post.

http://forum.darwinbots.com/index.php?show...dpost&p=1121272 (http://forum.darwinbots.com/index.php?showtopic=857&view=findpost&p=1121272)
Title: Let's make a stable platform
Post by: PurpleYouko on October 27, 2005, 11:54:25 AM
Yup I know what you mean and that is why we now have a somewhat official channel for reporting the bugs.  :)
Title: Let's make a stable platform
Post by: Numsgil on October 27, 2005, 11:54:34 AM
Actually I can't take any credit ;)
Title: Let's make a stable platform
Post by: PurpleYouko on October 27, 2005, 11:57:55 AM
That would be set up by PY and moderated by Ulc.  :D
Title: Let's make a stable platform
Post by: Ulciscor on October 27, 2005, 12:19:20 PM
o-m-g

 :Robot1:
Title: Let's make a stable platform
Post by: PurpleYouko on October 27, 2005, 12:32:04 PM
:cuss:  here Ulc. use this one. Much more expressive.
Title: Let's make a stable platform
Post by: Endy on October 27, 2005, 05:47:38 PM
Just out of curiosity, did the waste/venom theft from vegs bug get fixed?(vegs
gaining pwaste from theft of non-existing waste)

Code: [Select]
cond
start
.tie inc
1 .tienum store
-4 .tieloc store
-1000 .tieval store
stop
end

I haven't been around the net lately to download the more stable vers, or been way too tired to do much of anything(got home at 2:30 pm and slept till 8:30). I'm guessing this is just a logic error since people don't normally think anyone would do such a thing. B)

I think Nums did some work on this, I can at least see the pwaste now in 2.4, but the vegs are now exploding shortly after. The venom side seems fixed in 2.4 at least.

Umm...where's the main bug reporting location? Are you talking about the wiki?
Title: Let's make a stable platform
Post by: Numsgil on October 27, 2005, 07:18:21 PM
I haven't done any work in the VB stuff with venom/waste/etc. for quite a while.

Int eh C++ source, it's all getting squared away as I go.
Title: Let's make a stable platform
Post by: Endy on October 27, 2005, 11:27:30 PM
Quote
Now my veggies have started mutating. I'm sure they shouldn't be doing that.

Theoretically given enough time just about anything in DB can start mutating/evolving. If a veggie happens to absorb a stray -2 shot it will gain waste, potentially enough waste to cause a mrepro.

I remember Wall and Son. It was a kind of freak event but basically the wall absorbed nrg and of course digested it to make waste. It started spinning, shooting, and reproducing randomly. :lol:
Title: Let's make a stable platform
Post by: PurpleYouko on October 28, 2005, 08:49:17 AM
Quote
If a veggie happens to absorb a stray -2 shot it will gain waste, potentially enough waste to cause a mrepro.
Except that on every cycle, a veg converts 1/2 of his current waste directly into energy so it can never build up.
Title: Let's make a stable platform
Post by: PurpleYouko on October 28, 2005, 08:56:34 AM
Well my sim just ran another 5,000,000 cycles overnight without any kind of crash.
Title: Let's make a stable platform
Post by: Numsgil on October 28, 2005, 09:06:00 AM
Veggies might be building up pwatste.  Pwaste acts like residue that can't ever be removed that lowers the effective threshold for the bot.

That is, if pwaste + waste > threshold, bad stuff happens ;)

So if pwaste is, say, 200 in a veggy, and it gets 200 waste, it's already at the threshold.

I don't know if pwaste builds up in veggies or no...
Title: Let's make a stable platform
Post by: PurpleYouko on October 28, 2005, 09:38:41 AM
Veggies don't make pwaste (unless that was something you changed recently)
Title: Let's make a stable platform
Post by: Numsgil on October 28, 2005, 12:00:39 PM
May have without meaning too.  But I don't think so.  I ahven't touched much of waste et al routines.
Title: Let's make a stable platform
Post by: PurpleYouko on October 28, 2005, 12:14:21 PM
I just checked the code and it looks like veggies can build up pwaste if they pick up -2 shots.

Active veggies do too. That is to say, if a veggie actively runs around the screen doing stuff then it will build up pwaste just like any other bot will.

Once there, they have no way to deal with it.
Title: Let's make a stable platform
Post by: Numsgil on October 28, 2005, 12:17:12 PM
I think this is something of a design issue.  I mean, if veggies are actively behaving like bots, maybe they should build up pwaste...
Title: Let's make a stable platform
Post by: PurpleYouko on October 28, 2005, 12:19:53 PM
I don't have a problem with that.

They still have the advantage of not building up regular waste.
Title: Let's make a stable platform
Post by: Endy on November 01, 2005, 10:20:49 PM
Might have an additional cause:
Code: [Select]
 If .nrg + (.Waste / 2) < 32000 Then
    .nrg = .nrg + (.Waste / 2)
    .Waste = .Waste - (.Waste / 2)

If Waste/2 +nrg > 32000 waste remains to be converted to pwaste.

I know nrg can get up pretty high on occasion for vegs, but not sure how likely this is. Probably not a major concern though; more of a handy object lesson why never to use the word never.
Title: Let's make a stable platform
Post by: PurpleYouko on November 02, 2005, 08:56:56 AM
Pwaste is only created from waste when waste is removed from the system by any active means like firing a poop shot or transferring it along ties.

The veg feeding routine doesn't add any so in a normal veggie, the scenario you described should not be a problem.

If you have a very active veggie such as a combat bot with "autotroph" checked then it deserves to fill up with pwaste.

The routine here is just to make sure we don't convert too much energy and overflow the .nrg register.
Title: Let's make a stable platform
Post by: Numsgil on November 02, 2005, 09:35:22 AM
Yes, but since it's not converting it to nrg, it can probably build up above the Bad Waste threshold.
Title: Let's make a stable platform
Post by: PurpleYouko on November 02, 2005, 11:28:24 AM
I guess it could but it would have to come in at a constant rate, and/or the veggie would have to be at or near to maximum energy.
Title: Let's make a stable platform
Post by: shvarz on November 07, 2005, 05:56:48 PM
So, where is this going?  I got some time and want to start running 2.37 through VB.  Do we have an updated 2.37 source with some bugs fixed?  And could you point me to the place with VB download again?  I lost the file somewhere.

EDIT:  never mind, I found the VB6.  Still - is there an updated source for 2.37?  is PY fixing bugs or people decided to give up on that?

EDIT 2: Can't install the VB6.  Says:
Quote
"C:\Windows\System32\Autoexec.nt.  The system file is not suitable for running MS-DOS and Microsoft Windows applications. Choose "Close" to terminate the application"
Title: Let's make a stable platform
Post by: PurpleYouko on November 07, 2005, 07:24:43 PM
Up to now I hav ebeen fixing the bugs as we go along as well as giving instructions how to fix them yourselves.

In the next day or so I will upload the fixed source and the executable to the Darwinbots FTP server.
Title: Let's make a stable platform
Post by: shvarz on November 08, 2005, 11:08:52 AM
Any advice on how to install VB?  Does not work for me...  see above.
Title: Let's make a stable platform
Post by: PurpleYouko on November 08, 2005, 11:13:13 AM
Are you running NT or something?

I have never even heard of Autoexec.nt  :blink:
Title: Let's make a stable platform
Post by: Ulciscor on November 08, 2005, 11:15:30 AM
Not sure if this will help...

Linky (http://support.microsoft.com/kb/324767/en)
Title: Let's make a stable platform
Post by: shvarz on November 08, 2005, 12:23:27 PM
Thanks Ulc,  it did not have exact solution, but it pointed me in the right direction.  Not sure if it works yet, but atl least I was able to install.
Title: Let's make a stable platform
Post by: Numsgil on November 08, 2005, 01:21:05 PM
Autoexec.nt is a file that windows runs when it tries to run DOS files.

Remember autoexec.bat?  If you can find one of those, rename it to autoexec.nt and paste it in your windows/system32 directory everything should be fine for running dos files.

Thing is, VB6 is not a dos file...
Title: Let's make a stable platform
Post by: shvarz on November 08, 2005, 01:24:15 PM
There is a folder called windows/repair, it has a bunch of these essential files, including autoexec.nt.  Just copied it from there to my system32 folder and install went fine.  Not sure why that was happening.  I have XP Pro.
Title: Let's make a stable platform
Post by: Numsgil on November 08, 2005, 01:28:31 PM
XP is based on NT technology...

Just thought you might like to know ;)
Title: Let's make a stable platform
Post by: PurpleYouko on November 28, 2005, 10:13:46 AM
Well people!

I haven't seen any new reports of bugs in 2.37.6 in well over a week now.

Am I to assume that we have an officially STABLE version?  :)

Or are you lot just not telling me that it is still screwed up to save my fellings  :(