Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

AppGameKit Classic Chat / Huge compile times with 1.08

Author
Message
easter bunny
11
Years of Service
User Offline
Joined: 20th Nov 2012
Playing: Dota 2
Posted: 29th Nov 2012 03:03
I have a program that I wrote with v1.07, It is 4500 lines of code and took about 5 seconds to compile, but now with v1.08, It takes 27 seconds, does anyone know why? and is there any way I can fix it?
On the other hand, the program itself runs MUCH faster
baxslash
Valued Member
Bronze Codemaster
17
Years of Service
User Offline
Joined: 26th Dec 2006
Location: Duffield
Posted: 29th Nov 2012 10:33
v108 is a Beta and may not be fully optimised yet. I know that I had an unreleased version prior to 108 that would compile over 5000 lines in under a second

Optimising the compile times is certainly on the agenda but I can't make any promises on what it might be reduced to.


this.mess = abs(sin(times#))
JimHawkins
14
Years of Service
User Offline
Joined: 26th Jul 2009
Location: Hull - UK
Posted: 29th Nov 2012 15:18
In the old days it could take 25 minutes to compile a program. Time for a cup of tea or open a beer!

-- Jim DO IT FASTER, EASIER AND BETTER WITH AppGameKit FOR PASCAL
baxslash
Valued Member
Bronze Codemaster
17
Years of Service
User Offline
Joined: 26th Dec 2006
Location: Duffield
Posted: 29th Nov 2012 15:21
The software I used to work on would spend entire weekends rendering a wireframe view of a building (long before I worked on it)


this.mess = abs(sin(times#))
Ancient Lady
Valued Member
20
Years of Service
User Offline
Joined: 17th Mar 2004
Location: Anchorage, Alaska, USA
Posted: 29th Nov 2012 16:09
Quote: "In the old days it could take 25 minutes to compile a program."

This assumes that you are compiling on your own computer.

I know you haven't forgotten the days of typing punch cards (slowly, oh so slowly so as not to make a typo) and submitting 1000+ card decks to the nice person behind the counter and waiting for yours to run on some remote main frame and then wait for the printout. Now those were the days! (of frustration and utter pain if your deck was dropped!)

Cheers,
Ancient Lady
AGK Community Tester
Marl
12
Years of Service
User Offline
Joined: 19th Nov 2011
Location: Bradford, UK
Posted: 29th Nov 2012 19:08 Edited at: 29th Nov 2012 19:13
If we're going for long jobs...

At my old school - a long time ago - The computer program that worked out the classroom assignments for the following year was claimed to take the entire six week summer holiday to run.

I then got a job as programmer and looking back, decided this was unlikely and probably just a "mine's longer than yours" boast by the teachers at the time.

Still; "mine's longer than yours" even if it's not true

Quote: "...and waiting for yours to run on some remote main frame and then wait for the printout...."


...Only to find a single character in the wrong column caused a missed declaration and resulted in a 200 page printout of errors.

Oh the good old days
Ancient Lady
Valued Member
20
Years of Service
User Offline
Joined: 17th Mar 2004
Location: Anchorage, Alaska, USA
Posted: 29th Nov 2012 21:41
Quote: "200 page printout of errors"

Yup, and boy don't I not miss it.

Cheers,
Ancient Lady
AGK Community Tester
Hodgey
14
Years of Service
User Offline
Joined: 10th Oct 2009
Location: Australia
Posted: 29th Nov 2012 22:43
You guys make me feel like a child. The worst I've experienced is maybe a minute.....in DBP when someone asked me to help them debug 6000+ lines of code for a school project. I hope it went well for them.

JimHawkins
14
Years of Service
User Offline
Joined: 26th Jul 2009
Location: Hull - UK
Posted: 29th Nov 2012 23:20
I think the trouble is that people expect everything to be interactive in real time. Patience is a lost quality.

What happens at compile time is trivial: what happens when the program runs is surely the vital thing. I'd rather have a super-duper multi-pass compiler that took an hour and suggested all the ways I might have screwed up than a jack-the-lad compiler that did it in one second and sat there sniggering!

-- Jim DO IT FASTER, EASIER AND BETTER WITH AppGameKit FOR PASCAL
easter bunny
11
Years of Service
User Offline
Joined: 20th Nov 2012
Playing: Dota 2
Posted: 30th Nov 2012 00:35
My experience of compiling is from 2 to 5 seconds never more then 10 (exept with this one)

There are 10 types of people, those who understand binary and those who don't
gbison
13
Years of Service
User Offline
Joined: 15th Dec 2010
Location: USA
Posted: 30th Nov 2012 01:27 Edited at: 30th Nov 2012 01:27
Quote: " I'd rather have a super-duper multi-pass compiler that took an hour and suggested all the ways I might have screwed up than a jack-the-lad compiler that did it in one second and sat there sniggering!"


Much agreed Jim! This and a good ide keep me programming....

"The greatest trick the devil ever pulled, was to convince the world he didn't exist."
Ancient Lady
Valued Member
20
Years of Service
User Offline
Joined: 17th Mar 2004
Location: Anchorage, Alaska, USA
Posted: 30th Nov 2012 03:56
I might add that the v1084 compiler does not really always compile when you tell it to.

I found I had to manually delete the <proj>.byc file between compiles using the yellow gear. Otherwise, it didn't actually recompile, no matter how the main.agc file changed. (This was very annoying while trying to test something as an AppGameKit Community Tester.)

Cheers,
Ancient Lady
AGK Community Tester
Daniel TGC
Retired Moderator
17
Years of Service
User Offline
Joined: 19th Feb 2007
Location: TGC
Posted: 30th Nov 2012 09:32
That's a weird error Ancient Lady. Try disabling your virus software, it's entirely possible that it's preventing a re-write to your program files folder.

Or do what I do and maintain your project files under your personal folder group, for example. "c:\users\daniel\programming\agk\project x".

I can't say I've had any times the byc file has not recompiled, though sometimes if the change is small enough there's no change in file size.
Funnell7
12
Years of Service
User Offline
Joined: 8th Sep 2011
Location: UK, England
Posted: 30th Nov 2012 11:04
Quote: "I might add that the v1084 compiler does not really always compile when you tell it to."


This happened to me on several occasions and I managed to track it down (or at least I think I have). It only does this on projects where I have renamed the project folder after the first complie. I think the IDE gets confused with multiple byc/exe files. For all projects which have not undergone a project folder name change, this issue has never happened...
lilpissywilly
AGK Developer
13
Years of Service
User Offline
Joined: 10th Sep 2010
Location: Office Chair
Posted: 30th Nov 2012 11:50 Edited at: 30th Nov 2012 11:51
It reminds me of using 3D Studio(came on 14 floppy's) on a 40 mhz 386 (fast at the time) and the rendering times of a textured sphere would take 30-50 minutes. Heaven forbid you tried something more complicated

My hovercraft is full of eels
BatVink
Moderator
20
Years of Service
User Offline
Joined: 4th Apr 2003
Location: Gods own County, UK
Posted: 30th Nov 2012 12:57
It looks to me like the extra time is after compile, when it is attempting to broadcast (I haven't found a way to compile and run without broadcasting from the IDE?)

Back in the day, if somebody wanted time out, they would just compile a program. That gave them a nice long coffee break.

My longest "build" was a 40 second scene in Truspace version 1(!) which took 3 days. It was only a few words moving around the screen


In the 90s I wrote a program to work out all combinations of 8 pawns on a chess board, all on a different line horizontally, diagonally and vertically. It was a little demo of recursive functions. The routine took 5 hours, the same thing now takes around 10 seconds!

Van B
Moderator
21
Years of Service
User Offline
Joined: 8th Oct 2002
Location: Sunnyvale
Posted: 30th Nov 2012 13:13
The longest compile times I have to put up with are in XCode, but when I finish stripping out OpenFeint I'm hoping that will come down, it currently takes about 40-60 seconds to compile and transfer etc.

Back in the day, in the long long ago, I used to run POV raytrace scripts, rendering like 320x200, a few spheres or something, and it would take hours, sometimes I had to leave my ST on overnight just to be presented with a dodgy render the next morning .

I got a fever, and the only prescription, is more memes.
Ancient Lady
Valued Member
20
Years of Service
User Offline
Joined: 17th Mar 2004
Location: Anchorage, Alaska, USA
Posted: 30th Nov 2012 16:22
Quote: "it's entirely possible that it's preventing a re-write to your program files folder."

I don't think it is the antivirus software. I just ran a test in v1076 and saw some strange behavior. I completely deleted the executable and files created when built in the v1084 IDE. Then I opened the v1076 IDE and compiled. The <proj>.byc file was time stamped as created yesterday, the last time I built it in v1084 (even though the file had been deleted), with a modification time consistent with when I built it today. Then I swapped two lines and compiled. The modification time for the <proj>.byc and SourceCode.agc files changed and the creation time for the SourceCode.txt file changed. The SourceCode.agc had a creation time consistent with the first time the project was compiled today.

It is possible that the <proj>.byc file was changing, but my file manager is only displaying the creation time. Wierd. I just had the file manager display 'date', 'date created' and 'date modified'. I don't know how it decides which to use in the date column. For .byc and .agc, it uses created. For .txt it uses modified.

Quote: "
renamed the project folder after the first complie"

No renaming involved for this test project.

Cheers,
Ancient Lady
AGK Community Tester
AgentSam
12
Years of Service
User Offline
Joined: 14th Mar 2012
Location: Virtual Space
Posted: 1st Dec 2012 16:12
Quote: "BatVink: It looks to me like the extra time is after compile, when it is attempting to broadcast (I haven't found a way to compile and run without broadcasting from the IDE?)"


I added a feature request on the issues list for this six months ago:
http://code.google.com/p/agk/issues/detail?id=366

Hasn't been implemented yet, as far as I can tell.

Cheers,
AgentSam
xCept
21
Years of Service
User Offline
Joined: 15th Dec 2002
Location:
Posted: 1st Dec 2012 18:12 Edited at: 1st Dec 2012 18:13
You can run the app directly without broadcasting by first building it (F4) and then running it (CTRL+F5). This is the method I always use as it can speed up run time significantly. However, I do wish there was a direct command to "Compile and Run" rather than only "Compile, Broadcast, and Run" as that would save one manual step.
AgentSam
12
Years of Service
User Offline
Joined: 14th Mar 2012
Location: Virtual Space
Posted: 4th Dec 2012 02:45 Edited at: 4th Dec 2012 12:26
Quote: "
You can run the app directly without broadcasting by first building it (F4) and then running it (CTRL+F5).
"


If you do TIER 1 development using the included CodeBlocks IDE, then that will propably work...

However, I do not use the default TIER 1 AppGameKit IDE, nor do I wish to go back to using it just for "compile without broadcast".

Details of the case...

For TIER 1 development, I use a fairly old (and fast), yet very flexible and highly customizable third party editor called EditPlus.
(See, http://www.editplus.com/)

So, I execute the compiler from within EditPlus as an external command-line application.

Therefore, I would much prefer to have good documentation on all available TIER 1 compiler parameters - in addition to the parameter that turns off app broadcasting.

The command I execute (as a user-tool from within the editor) to compile and run a TIER 1 project, is:

This command requires that the initial directory is set to be the same as the source code directory; the user-tool configuration does this for me automatically.

This will first compile, then run (and broadcast) the resulting EXE (and BYC) - which, weirdly enough, is always named after the folder in which it resides, and not after the source code file.

Some extra info about EditPlus ... you may skip this.

Just to mention a few of the EditPlus features, that I find most useful:

- Code Folding
- Syntax Highlighting
- Context Sensitive Help
- Cliptext (auto-completition)
- Integration with Version Control Systems
- Macros (keystroke recording)
- Customizable hotkeys
- Search and Replace across multiple files
- Split Window (for additional views of the current document)
- Column Markers
- Code Markers (Bookmarks)
- Word Highlighting (highlight all instances of selected word)
- Brace Matching / Highlighting
- Function List (list of all functions defined in source)

Some notes about this setup:
Creating the syntax highlighting definition files was easy, as was creating a set of customized autocompletition files. But, getting the context sensitive help to work was really tricky and required major changes to the AppGameKit documentation files. Those changes will have to be reapplied everytime a new version of AppGameKit is installed.

In any case, there are alternatives to the default IDE. And the alternatives often provide a far richer feature set!

Here's a screenshot of what EditPlus looks like with these customizations:
http://www.codefield.com/AGKTalk/AGKTier1_SC0001.png
It's rather old-school; no toolbars visible. Vertical screen-real-estate is more important. Everything you need is behind hotkeys.

Here we have the cliptext window, editor window, function list and documentation open, with word highlighting enabled.

Cheers,
AgentSam - The grumpy old software engineer

Login to post a reply

Server time is: 2024-03-19 10:29:15
Your offset time is: 2024-03-19 10:29:15