Pages: 1
  Print  
Author Topic: Merging unfinished changes  (Read 2972 times)
Offline (Unknown gender) TheExDeus
Posted on: December 09, 2013, 07:18:19 AM

Developer
Joined: Apr 2008
Posts: 1872

View Profile
It seems that all the changes now being made to object system and whatnot have broken ENIGMA. While it's something that usually happens, I don't think we should keep doing that. The guy making the changes could of just finished the whole thing and then it could be merged. Same with many other pull requests.

Although it's possible my current problem is not connected to these particular changes, but who knows. Right now I can compile fine, but the exe is empty (white windows) even when I add a room (blue background by default) and objects. Someone can replicate this?

But this bug aside, we should merge only when functional. That is why I am still waiting for those integration tests from fortevin.
Logged
Offline (Male) Josh @ Dreamland
Reply #1 Posted on: December 09, 2013, 10:38:52 AM

Prince of all Goldfish
Developer
Location: Pittsburgh, PA, USA
Joined: Feb 2008
Posts: 2958

View Profile Email
This is why we need those additional branches. Everyone thinks their changes are finished and work fine. When I point broken shit out, I'm met with "that's been broken."

Back on SVN when we had the testing and stable tags, we updated them maybe monthly. The tags got grossly out of date. But they always worked. We have users now who don't pull except once in a blue moon because they're sick of all the broken shit. We constantly have regressions.

There is a problem with a build bot or regression test suite, which has prevented me from setting one up myself. The problem is simple: No one has written any regression tests. I don't feel like sitting around and creating a script to test every function in the engine. If someone else does, be my guest. Otherwise, just hope that while I'm writing test cases for the new compiler, I'll be inclined to write them for EDL, too.
Logged
"That is the single most cryptic piece of code I have ever seen." -Master PobbleWobble
"I disapprove of what you say, but I will defend to the death your right to say it." -Evelyn Beatrice Hall, Friends of Voltaire
Offline (Male) polygone
Reply #2 Posted on: December 09, 2013, 10:51:25 AM

Contributor
Location: England
Joined: Mar 2009
Posts: 803

View Profile
It's not worth making a stable until after JDI is finished.
Logged
I honestly don't know wtf I'm talking about but hopefully I can muddle my way through.
Offline (Unknown gender) TheExDeus
Reply #3 Posted on: December 09, 2013, 11:52:06 AM

Developer
Joined: Apr 2008
Posts: 1872

View Profile
But make the test cases easy to make and add and others will make them. I am willing to write some myself. Originally there were even some special functions in EDL for them I think. But if it requires bash scripting for each case, then of course no one will write them.

So originally I think the idea was this:
1) Make ENIGMA project which has some code in it and functions to output whether a test was successful or not.
2) Make that project be compiled via CLI whenever a new git commit or pull request is made. Also run that project.
3) Watch program output and whether the project compiled - write Jenkins (or other) compatible output for web interface.
If that would of been set up it would of slowly been made. You don't need 5000 tests cases at once. Even 1 would in most cases tell you if something broke.
Logged
Offline (Unknown gender) daz
Reply #4 Posted on: December 09, 2013, 02:38:35 PM
Contributor
Joined: Jul 2010
Posts: 167

View Profile
It's not worth making a stable until after JDI is finished.
Seems like I'm gonna die before that happens.

3) Watch program output and whether the project compiled - write Jenkins (or other) compatible output for web interface.
If that would of been set up it would of slowly been made. You don't need 5000 tests cases at once. Even 1 would in most cases tell you if something broke.
Great intentions, but that's mostly impossible. How do you test that something got drawn to the screen correctly?

We have users now who don't pull except once in a blue moon because they're sick of all the broken shit. We constantly have regressions.
My last pull was from 11/17 for this reason.
Logged
Offline (Male) Josh @ Dreamland
Reply #5 Posted on: December 09, 2013, 03:56:27 PM

Prince of all Goldfish
Developer
Location: Pittsburgh, PA, USA
Joined: Feb 2008
Posts: 2958

View Profile Email
Quote
How do you test that something got drawn to the screen correctly?
You don't without screen_save or draw_getpixel. Also surface_save. After that, you load up the two images as matrices in memory and use normalized cross correlation. If it drops under a certain threshold, a red flag goes up. If any of those function fails, you have a red flag, anyway.

Quote
Seems like I'm gonna die before that happens.
Oh, ha-ha. You're not going to graduate before that happens. You're welcome to attend mine this Sunday.

Quote
My last pull was from 11/17 for this reason.
You've pulled half a year more recently than some other people I could name.
« Last Edit: December 09, 2013, 03:59:26 PM by Josh @ Dreamland » Logged
"That is the single most cryptic piece of code I have ever seen." -Master PobbleWobble
"I disapprove of what you say, but I will defend to the death your right to say it." -Evelyn Beatrice Hall, Friends of Voltaire
Offline (Male) Goombert
Reply #6 Posted on: December 09, 2013, 04:11:16 PM

Developer
Location: Cappuccino, CA
Joined: Jan 2013
Posts: 3110

View Profile
Quote
It seems that all the changes now being made to object system and whatnot have broken ENIGMA.
You are going to have to be a little more specific, I added event inheritance, you can turn that off in Build->Settings. Aetherspawn accidentally committed an infinite loop to my object writing code, which I have since fixed. I changed instance system variables to be controlled by scalars. Fundies moved the preprocessor and everything to %APPDATA%/Roaming/ENIGMA, so please be a little more specific.

Quote
You don't without screen_save or draw_getpixel. Also surface_save.
Fuck all that shit, we should deprecate the getpixel functions in favor of draw_get_pixel_grid() that returns a ds grid of all the pixels, same for sprite and background. Speaking of I also plan to add texture_save which makes all the other background_save and sprite_save calls much easier.

Quote
Seems like I'm gonna die before that happens.
He's merging it right now and in the process of fixing the 500 JDI errors when parsing the STL

Anyway, Harri, please tell me what happened.
Logged
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.

Offline (Male) cheeseboy
Reply #7 Posted on: December 10, 2013, 12:11:39 AM

Member
Location: The internet
Joined: Mar 2011
Posts: 106

View Profile
http://awesome-toons.org:8010/waterfall I started on build tests but was unable to get the git poller to work and got bored. Josh should really set this up on the main server.
Logged
Offline (Male) Goombert
Reply #8 Posted on: December 10, 2013, 01:45:47 AM

Developer
Location: Cappuccino, CA
Joined: Jan 2013
Posts: 3110

View Profile
Oh that was the other thing, I forgot to mention his build bot.
Logged
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.

Offline (Unknown gender) TheExDeus
Reply #9 Posted on: December 10, 2013, 04:13:50 AM

Developer
Joined: Apr 2008
Posts: 1872

View Profile
Quote
Anyway, Harri, please tell me what happened.
Quote
Right now I can compile fine, but the exe is empty (white windows) even when I add a room (blue background by default) and objects. Someone can replicate this?
Basically it almost seemed that the data from the project was not written to IDE_EDIT. But I checked and it did. So whatever the project I open and compile I still get the white window which is usually open when not even a room is present. I guess this is because of the changes done for compile directory (move from enigma-dev to appdata?)? Dunno. Maybe I just need new jar's. I used the newest ones available in the wiki links.

If anyone can upgrade to newest from scratch and not replicate my problem, then I will try something else.
Logged
Offline (Male) Goombert
Reply #10 Posted on: December 10, 2013, 04:23:38 AM

Developer
Location: Cappuccino, CA
Joined: Jan 2013
Posts: 3110

View Profile
No you're right, it's totally fucking broken. The purpose of that was the ticket on the tracker about moving the preprocessor, it was to help get ENIGMA on the Ubuntu Software Center and create proper Linux packages. The side effect of cheeseboy doing this, was Windows becoming a broken mess.
Logged
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.

Offline (Male) polygone
Reply #11 Posted on: December 10, 2013, 07:55:19 AM

Contributor
Location: England
Joined: Mar 2009
Posts: 803

View Profile
Robert I think the way to fix the extension shit is by removing ALL the generated files in SHELL, ie api_switchboard, the enigma_ files, .eobjs and preprocessor folder. Because well it magically started working for me now and the only change that I can think of is that I removed those files so hopefully that resolves the issue.

Harri you need to do the same ^ , I am going to make an announcement topic telling people to delete the files when it is confirmed that is the problem. Unfortunately this is one of those changes that was always going to break shit, better to get it out the way with at this stage.
Logged
I honestly don't know wtf I'm talking about but hopefully I can muddle my way through.
Offline (Male) Goombert
Reply #12 Posted on: December 10, 2013, 08:55:46 AM

Developer
Location: Cappuccino, CA
Joined: Jan 2013
Posts: 3110

View Profile
I already did that and it is making no difference.
Logged
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.

Offline (Male) polygone
Reply #13 Posted on: December 10, 2013, 09:35:57 AM

Contributor
Location: England
Joined: Mar 2009
Posts: 803

View Profile
hmmm it's magically working for me now for some reason. You sure you got all the files?

EDIT: I just copied API_Switchboard.h back into SHELL and the error reproduces. Must be the issue.
« Last Edit: December 10, 2013, 09:56:38 AM by polygone » Logged
I honestly don't know wtf I'm talking about but hopefully I can muddle my way through.
Offline (Male) Goombert
Reply #14 Posted on: December 10, 2013, 10:39:24 AM

Developer
Location: Cappuccino, CA
Joined: Jan 2013
Posts: 3110

View Profile
Yup, deleting API_switchboard.h seems to fix it, I must have missed that one. Haven't tested Box2D or other extensions yet though.
Logged
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.

Pages: 1
  Print