Computer Science Canada

Open Turing - 20-40% Faster Open Source Version of Turing With New Features

Author:  trishume [ Wed Nov 16, 2011 5:07 pm ]
Post subject:  Open Turing - 20-40% Faster Open Source Version of Turing With New Features

Open Turing - Faster, Open Source Turing

Open Turing is an open-source implementation of Turing for Windows. I (Tristan Hume) acquired the source code from Tom West, the last maintainer of the project. It is backwards-compatible with normal Turing.



I have made some improvements to help adoption. These include speed improvements and 3D support.

Also, most of the icons, images, splash screen etc. have been rebranded.

Partial change log:
-Up to a 40% speed increase. (depends on program)
-Built in hash maps
-Basic OpenGL 3D. Beta, no input.
-Command line invocation with turing.exe -run file.t
-New splash and logo
-Huge speed increases in Pic.ScreenLoad (caching)

How To Get It / Contribute

The project is hosted on Github. On the Github page you can find updated and more complete information.

All documentation on contributing, turing internals and how to use the new features will be on the Github page.


The Github Page (You should go here): https://github.com/Open-Turing-Project/OpenTuring
The Download (For the impatient): https://github.com/downloads/Open-Turing-Project/OpenTuring/package.zip


Posted Image, might have been reduced in size. Click Image to view fullscreen.

Author:  huskiesgoaler34 [ Wed Nov 16, 2011 5:21 pm ]
Post subject:  Re: Open Turing - 20-40% Faster Open Source Version of Turing With New Features

Wow! Seems very interesting.

Author:  DemonWasp [ Wed Nov 16, 2011 5:25 pm ]
Post subject:  RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

I haven't taken a thorough look yet, but this seems to be excellent. Well done!

Although I have to say that I was disappointed when the first file I opened contained:
code:
#include <setjmp.h>


How do I look at the original Turing source code on GitHub?

Author:  trishume [ Wed Nov 16, 2011 6:21 pm ]
Post subject:  Re: RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

DemonWasp @ Wed Nov 16, 2011 5:25 pm wrote:
I haven't taken a thorough look yet, but this seems to be excellent. Well done!

Although I have to say that I was disappointed when the first file I opened contained:
code:
#include <setjmp.h>


How do I look at the original Turing source code on GitHub?


What do you mean by "original"? I haven't made many modifications.

Yes, the code is very old and gives thousands of warnings. At least the code is generally well commented.

Although lots of the code is compiled from Turing Plus into C. Meaning it's garbage and confusing with no comments.

Author:  [Gandalf] [ Wed Nov 16, 2011 7:02 pm ]
Post subject:  RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

I've been waiting for this moment a long time. Smile Very nice!

Quote:
What do you mean by "original"? I haven't made many modifications.

I assume the initial commit was the source code you got from Tom West? You can find that source tree here.

Author:  SNIPERDUDE [ Wed Nov 16, 2011 7:45 pm ]
Post subject:  RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

*gasp!* Is that you Gandalf?

Back on topic: I have been waiting for this for so long, I have completely forgotten about it. Tears.

Author:  trishume [ Wed Nov 16, 2011 8:16 pm ]
Post subject:  Re: Open Turing - 20-40% Faster Open Source Version of Turing With New Features

OOPS! Release Snafu!

One of my friends found a bug in my Pic.ScreenLoad caching implementation. I was using a flawed hash map implementation.

I just switched to a battle-tested hash-map that appears to work.

Anyone who has downloaded it so far must re-download if they want Pic.ScreenLoad to work

The new Pic.ScreenLoad caches loaded files because in my experience beginner turing programmers often using pic.screenload every frame in their games, which is slow.
Caching adds a 10000% speed increase.

Interesting Fact: The 20-40% speed increase in general was caused by me turning on optimization in the compiler. The original guy compiled all previous releases of turing in debug mode. Smile

Author:  trishume [ Wed Nov 16, 2011 8:32 pm ]
Post subject:  Re: Open Turing - 20-40% Faster Open Source Version of Turing With New Features

Also, I'm not sure that the initial commit is exactly what I got from Tom, but it is close.

Anyway, If you want to help out, fork the development branch and work on things in the issues tab / anything you want. Then submit a pull request.

Github rules!

Also, check out the other things in the Open-Turing-Project organization. Especially: https://github.com/Open-Turing-Project/turing-editor-qt/tree/master/screenshots

Author:  Tony [ Thu Nov 17, 2011 7:55 pm ]
Post subject:  RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

This codebase is a DailyWTF goldmine.

https://github.com/Open-Turing-Project/OpenTuring/blob/master/turing/src/run.c#L1697
code:

if (((4 == 4) && ((unsigned long) newPC == 0xFFFFFFFF)) || ((4 == 2) && ((unsigned long) newPC == 65535))) {
                            TLEABT((TLint4) 45);

Author:  2goto1 [ Thu Nov 17, 2011 8:51 pm ]
Post subject:  RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

A few too many Red Bulls can do that

Author:  Zren [ Thu Nov 17, 2011 10:18 pm ]
Post subject:  Re: Open Turing - 20-40% Faster Open Source Version of Turing With New Features

Some Examples as I run through this. They're slightly more comprehensive.

Turing:

var map : int := IntHashMap.New ()

put "HashMap id (First Id is 10001)"
put map

put "Insertion"
var input : int := 100
IntHashMap.Put (map, "key", input)

put "Getting a Value from a Key"
var res : int

put "Valid Key (1)"
put IntHashMap.Get (map, "key", res)
put res

put "Invalid Key (0) (result variable is also set to 0)"
put IntHashMap.Get (map, "blah", res)
put res

put "Removing a Key"
IntHashMap.Remove (map, "key")
put IntHashMap.Get (map, "key", res)
put res

IntHashMap.Free (map)

put "Freed HashMap Id: ", map, " (Note it retains the same value)"


map := IntHashMap.New ()
put "Next HashMap Id: ", map, " (After Freeing the first)"


I particularly dislike how it's PicModule like approach. It also makes you limited to 1000 IntHashMaps.

Author:  trishume [ Thu Nov 17, 2011 10:43 pm ]
Post subject:  RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

Tony that's because everything without an "ed" or "mio" or "mdio" prefix is compiled from Turing Plus into C. Code generated by programs is never pretty. I believe the original turing plus and the compiler have been lost.

In terms of hashmaps that is because the external system does not allow easy OO. I plan on writing an OO wrapper for hashmaps, possibly one that uses #if OPENTURING to fall back on a turing hashmap implementation.

The reason it uses IDs is that it was easy an it prevents people from messing things up. I they were given pointers they could manipulate them and cause segfaults.

I believe that was the original idea for using IDs for pictures and things. If 1000 isn't enough the limit can be changed through some defines, at the cost of more memory usage.

Author:  Tony [ Thu Nov 17, 2011 10:49 pm ]
Post subject:  RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

I don't approve of the "assign by reference" approach. That is
code:

IntHashMap.Get (map, "key", res)

vs
code:

res = IntHashMap.Get (map, "key")


I think I can live with it returning NULL (that is, 0) on missing keys, especially if
code:

function IntHashMap.containsKey(map, key) : boolean

is added.

I'd want to write code such as
code:

var hashed_strings : array 1..2 of string := init("one", "two")
var map : int := IntHashMap.New()
for i:1..2
  IntHashMap.Put (map, intstr(i), i)
end for

% watch this magic
put "number 2 is: ", hashed_strings(IntHashMap.Get(map, intstr(2)))
%> "number 2 is: two"

In this case NULLs (0s) would just throw array-out-of-bound exceptions. Alternatively I can check for the return value just as well as I would need to check the flag.

I would also accept optional by-reference flag variable, if distinguishing NULLs from legitimate 0s is an absolute must.

Author:  Tony [ Thu Nov 17, 2011 10:52 pm ]
Post subject:  RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

re: machine generated code

well that puts many parts of the project into a next-to-unmaintainable status, doesn't it?

Author:  mirhagk [ Sat Nov 19, 2011 6:32 am ]
Post subject:  RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

Perhaps some one should read through the machine generated code, and try to rewrite/comment it. This project could take off but that section of the code needs to be turned into something that people can actually work on.

I'll try to do this, but I can't guarantee anything for the next week or so.

Also I think perhaps the project should turn into 2 branches. One that is a fully 4.1 compatible compiler, with bug fixes, maybe a few new features, speed improvements etc. I'd also like to see a new version arise that is a breaking update. 4.1 programs may or may not run, but we can get rid of a lot of the stuff we don't like, fix things we thing need fixing etc.

Specifically, the number of images/hashmaps/musicfiles or whatever should never be fixed. Obviously you can't allocate an array of a million for each turing program, but I think that an expanding array of pointers to images would be great, as it could be predefined as 1000, and going over that would just mean that it takes a while to load the 1001st image, which isn't an issue as the loading itself will be MUCH more expensive.

Author:  Insectoid [ Sat Nov 19, 2011 8:32 am ]
Post subject:  RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

Quote:
eginner turing programmers often using pic.screenload every frame in their games, which is slow.


You shouldn't reward them for doing this though. This is bad programming. Because it is slow, they have to find another (usually better) way to do it. Not to say caching images is bad at all (it's awesome!). This is just a poor justification.

I wouldn't mind delving into this. People have been waiting for years for open-source Turing. Hopefully, we can convince teachers who still use Turing (it's still not a bad language to learn on) to move on to this updated version. This has the potential to completely revive the language.

Would it be too much to ask for code to be re-written with platform portability in mind? I know this is far, far away from compiling into an OS X binary but if Windows-specific code is encountered that isn't too difficult to modify to run on other OSs, why not? Maybe I'll make that my project.

Author:  DemonWasp [ Sat Nov 19, 2011 11:20 am ]
Post subject:  RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

The use of maps (and lists, sets, etc) can and should be a lot easier:

Turing:


var map1 : map from string to int
var map2 : map from string to my_record_type
var map3 : map from string to list of array 0..2 of int

% Two main possibilities for operations. First, the "Turing" way, which is pretty much the C way:
Map.Put ( map1, "key", value )
Map.Get ( map1, "key" )
Map.Remove ( map3, "key" )
Map.RemoveValue ( map3, value )
Map.Contains ( map2, "key" )
Map.ContainsValue ( map1, 5 )
% ...etc

% Second, we use notation seen elsewhere, largely in arrays, but also in integers; comparisons use subject-verb-object order, like English:
map1 ( "key" ) := value
map1 ( "key" )    % like an array
map3 remove "key"
map3 -= "key"
map3 removeValue value
map2 contains "key"
map1 containsValue 5

% E.g.
if player_map contains "foo" then
    dead_player_map put "foo"
end if


Author:  trishume [ Sun Nov 20, 2011 1:59 pm ]
Post subject:  Re: Open Turing - 20-40% Faster Open Source Version of Turing With New Features

Yes, HashMaps do suck right now. For the pass by reference, I (or someone else) could add a version that returns zero for nonexistent keys and an exists function.

In terms of syntax. I know there could be a nice syntax, but that would require heavy modification of machine generated code.

For commenting the VM and parser, I don't think it is worth it.

It would be more worthwhile to just use a JIT library to create a readable, friggin fast, cross platform VM.

The current VM is technically cross-platform but there is so much device dependent grapics and other code that would have to be rewritten.

Author:  trishume [ Sun Nov 20, 2011 2:08 pm ]
Post subject:  Re: RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

Insectoid @ Sat Nov 19, 2011 8:32 am wrote:
Quote:
eginner turing programmers often using pic.screenload every frame in their games, which is slow.


You shouldn't reward them for doing this though. This is bad programming. Because it is slow, they have to find another (usually better) way to do it. Not to say caching images is bad at all (it's awesome!). This is just a poor justification.

I wouldn't mind delving into this. People have been waiting for years for open-source Turing. Hopefully, we can convince teachers who still use Turing (it's still not a bad language to learn on) to move on to this updated version. This has the potential to completely revive the language.

Would it be too much to ask for code to be re-written with platform portability in mind? I know this is far, far away from compiling into an OS X binary but if Windows-specific code is encountered that isn't too difficult to modify to run on other OSs, why not? Maybe I'll make that my project.


I'm not rewarding them, it just makes it easier for beginners. The compsci teacher at our school doesn't teach the faster method and few people find it in the docs.

Yes, beginners would be better off with Pic.FileNew but try would also be better off using test driven development and factory patterns and whatnot. It's just too complicated.

If you want to work on porting it, use Qt, it's amazing. Check out my turing-editor-Qt project. Porting the actual interpreter would mostly involve rewriting all the files with an mdio prefix to use Qt or some other cross-platform thing (SDL,OpenGL)

Author:  mirhagk [ Sun Nov 20, 2011 6:07 pm ]
Post subject:  RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

I'm actually working on porting this to C# right now. Kinda the opposite direction, but I figure if it's not platform independent might as well be clean and efficient code for what platforms it does work on.

I started this because I was trying to alter some code to add support for as many images as memory could hold, but it was WAY too difficult to work with, as the code is very inconsistent and messed up. I started rewriting some of it, but since C doesn't have native support for a lot of the normal constructs, and because the code uses strings in some places and character pointers in others, I decided using a cleaner language might be a good idea. I'm like 30% of the way through converting the MIO project to C#, it's going pretty quickly.

If anyone is interested in the code when it's done (it's A LOT cleaner) let me know. I'll also release the program, and I'm looking into making a web based interface for it as it's easy to do in C#.

Author:  trishume [ Mon Nov 21, 2011 5:57 pm ]
Post subject:  Re: RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

mirhagk @ Sun Nov 20, 2011 6:07 pm wrote:
I'm actually working on porting this to C# right now. Kinda the opposite direction, but I figure if it's not platform independent might as well be clean and efficient code for what platforms it does work on.

I started this because I was trying to alter some code to add support for as many images as memory could hold, but it was WAY too difficult to work with, as the code is very inconsistent and messed up. I started rewriting some of it, but since C doesn't have native support for a lot of the normal constructs, and because the code uses strings in some places and character pointers in others, I decided using a cleaner language might be a good idea. I'm like 30% of the way through converting the MIO project to C#, it's going pretty quickly.

If anyone is interested in the code when it's done (it's A LOT cleaner) let me know. I'll also release the program, and I'm looking into making a web based interface for it as it's easy to do in C#.


Are you planning on porting the compiler/VM to C# as well? Otherwise I don't see the point.

It can run in mono on other systems. The bad thing is that the VM will likely be slightly slower than normal turing.

The best way to improve turing's speed would be to use something like libjit: http://www.gnu.org/software/dotgnu/libjit-doc/libjit_3.html

That would give a massive speed increase but would take a lot of effort.

Author:  trishume [ Mon Nov 21, 2011 6:01 pm ]
Post subject:  Re: Open Turing - 20-40% Faster Open Source Version of Turing With New Features

Or even use LLVM to do JIT, or even full compilation. See this:

http://llvm.org/docs/tutorial/index.html

Author:  mirhagk [ Mon Nov 28, 2011 3:26 pm ]
Post subject:  RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

The code is SOOOO terrible. Is it common practice in C to allocate memory for a string, then change one of the characters to a 0 to create a substring? (specifically getting the name without the .t). What it means is that when free is called, only up until the 0 will be freed correct? So a few bytes would be lost each time it's run. It's minor, but memory leaks like this sometimes add up.

Author:  DemonWasp [ Mon Nov 28, 2011 4:08 pm ]
Post subject:  RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

@mirhagk: No, free() doesn't check the values of the entries in the array (by strlen() or otherwise). I gather that information is tracked by malloc()/calloc()/realloc() for later use ( see http://stackoverflow.com/questions/1518711/c-programming-how-does-free-know-how-much-to-free ). Creating substrings by assigning '\0' to an element is not uncommon -- I've seen evidence of it in serialized data structures used in professional games. As long as you know nobody cares about the original data, you may as well work on it in-place.

Author:  mirhagk [ Mon Nov 28, 2011 7:21 pm ]
Post subject:  RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

alright lol just making sure. I did however note it took about 20 lines of code to do what would essentially be two or three in a modern language. The code did waste a lot of variables for temporary variables which were only used once, right after being found (they could've just put it on one line, and not created an extra variable)

Author:  Tony [ Mon Nov 28, 2011 7:39 pm ]
Post subject:  RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

linecount doesn't directly map to performance, as it largely depends on what a compiler does with them. A good enough compiler might crunch out those 20 and 2 line versions into identical op codes.

Author:  mirhagk [ Mon Nov 28, 2011 7:42 pm ]
Post subject:  RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

Yes that is true, and while 20 lines of code may be just as efficient to run, it makes it WAY less efficient to develop. So unless those 20 lines of code are more efficient it'd be better to go with the cleaner solution.

Author:  Tony [ Mon Nov 28, 2011 8:05 pm ]
Post subject:  RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

Yup, you're right there. Though considering that the project comes with unreadable machine generated code, there are more crippling problems than "long to read" implementations.

Author:  mirhagk [ Mon Nov 28, 2011 8:26 pm ]
Post subject:  RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

Lol yes that sure is true. Almost makes ya wonder whether it'd be faster/better to just rewrite it from scratch lol. I actually added support for expanding lists of resources (pictures,sprites etc), but because they code was so ugly, my contribution became even uglier, and I didn't want to even look at the beast I had created lol.

Author:  ttm [ Mon Nov 28, 2011 8:51 pm ]
Post subject:  Re: Open Turing - 20-40% Faster Open Source Version of Turing With New Features

Of course it'd be better; almost everything turns out better/faster when you rewrite it a decade later.

Author:  mirhagk [ Tue Nov 29, 2011 8:31 am ]
Post subject:  RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

That's simply not true, many pieces of software were written decades ago, yet rewriting them would produce something less than par.

BTW has anyone made a command-line version of the turing compiler yet? I could do some pretty cool things if there is one.

Author:  Tony [ Tue Nov 29, 2011 12:40 pm ]
Post subject:  Re: RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

mirhagk @ Tue Nov 29, 2011 8:31 am wrote:
That's simply not true, many pieces of software were written decades ago, yet rewriting them would produce something less than par.

[citation needed]

Author:  mirhagk [ Tue Nov 29, 2011 1:45 pm ]
Post subject:  RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

Okay tony I'll give you that, I'm just saying if someone were to rewrite Firefox, or apache, or really any huge evolving application, they would likely fail. A lot of work has gone into them over the years, and even though the core pieces might be ancient, and the language used might by ancient, it doesn't mean the thing itself is useless. It's not because Turing is old. it's because it's been out of development for years.

Author:  Tony [ Tue Nov 29, 2011 2:49 pm ]
Post subject:  RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

Why would someone fail? Is there some necessary technology that no longer exists?

2001 -- the huge evolving application that is Internet Explorer 6 was released. Firefox's 2004 release didn't fail.

nginx is 9 years younger than Apache, yet it's arguably better for implementing newer approaches.

In general, many software issues (in design, performance, security, etc.) tend to not show up until the software is implemented and in use. Subsequent patches might fix the issue, but is the root of the problem is deep enough (e.g. in the design layer), then patching is ugly and subpar. Taking things learned into account, one (by definition) would be in a better position to write the project, than were those who first implemented it.

Author:  mirhagk [ Tue Nov 29, 2011 4:33 pm ]
Post subject:  RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

Yeah lol, sorry I just meant that there is often a lot of work, and while rewriting it is probably better, it'd be a LOT of work.

Author:  trishume [ Tue Nov 29, 2011 5:15 pm ]
Post subject:  Re: Open Turing - 20-40% Faster Open Source Version of Turing With New Features

Donald Knuth. His code is so old that he designed tape search algorithms, but his code is still used today.

Author:  mirhagk [ Wed Nov 30, 2011 7:20 am ]
Post subject:  RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

Good news everybody, I convinced my school to switch to Open Turing. Now all of the students will have an easier time doing final projects.

Author:  SNIPERDUDE [ Wed Nov 30, 2011 5:13 pm ]
Post subject:  Re: RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

mirhagk @ November 30th 2011, 7:20 am wrote:
Good news everybody, I convinced my school to switch to Open Turing. Now all of the students will have an easier time doing final projects.

That's pretty cool

Author:  mirhagk [ Wed Nov 30, 2011 6:59 pm ]
Post subject:  RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

Yeah, with any help I can get the teacher to keep the school's version up to date, so anybody who is working on updating/making it better, you can know that there are people who are using it, and will thank you greatly.

Author:  trishume [ Wed Nov 30, 2011 7:01 pm ]
Post subject:  Re: Open Turing - 20-40% Faster Open Source Version of Turing With New Features

My new editor with autocompletion, themes and stuff will be done soon. That will be a major revision.

For difficulty: when I rage quit (for now) trying to write a compiler, I did a line count.

Open Turing is around 200,000 lines of code. Granted, most of that code is inefficiently generated C code.

Author:  ProgrammingFun [ Wed Nov 30, 2011 8:01 pm ]
Post subject:  Re: RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

mirhagk @ Wed Nov 30, 2011 7:20 am wrote:
Good news everybody, I convinced my school to switch to Open Turing. Now all of the students will have an easier time doing final projects.
This has just encouraged me to talk to the head of Computer Science at my school...

Author:  trishume [ Wed Nov 30, 2011 8:29 pm ]
Post subject:  Re: Open Turing - 20-40% Faster Open Source Version of Turing With New Features

I don't want to tick off my school's computer science teacher by calling for 1000 updates.

When I'm done the new editor. I will talk to him.

Autocompletion is almost as important a feature for new programmers as fast speeds.

Author:  Tony [ Wed Nov 30, 2011 8:34 pm ]
Post subject:  RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

maybe if the master wasn't composed of 1000 unlabeled point-releases...

Author:  Amarylis [ Wed Nov 30, 2011 8:41 pm ]
Post subject:  Re: RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

mirhagk @ Wed Nov 30, 2011 7:20 am wrote:
Good news everybody, I convinced my school to switch to Open Turing. Now all of the students will have an easier time doing final projects.



Any tips on how I could convince my school to do the same? Just getting Turing itself in my school was apparently heck >.< The IT took it off because he couldn't find any license for it a while ago....



As for Open Turing itself, keep up the good work! I'm very much so fond of how it is right now compared to how Turing 4.1 is, and I am also very much so thankful that you gave the C++ solution to it, it's done wonders for my learning of C++

Author:  trishume [ Wed Nov 30, 2011 9:40 pm ]
Post subject:  Re: RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

Tony @ Wed Nov 30, 2011 8:34 pm wrote:
maybe if the master wasn't composed of 1000 unlabeled point-releases...


I don't know what you mean by "unlabelled." There are lots of commits but they all have messages.

Author:  Tony [ Wed Nov 30, 2011 9:44 pm ]
Post subject:  RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

http://learn.github.com/p/tagging.html

Author:  mirhagk [ Thu Dec 01, 2011 7:50 am ]
Post subject:  Re: RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

Amarylis @ Wed Nov 30, 2011 8:41 pm wrote:
mirhagk @ Wed Nov 30, 2011 7:20 am wrote:
Good news everybody, I convinced my school to switch to Open Turing. Now all of the students will have an easier time doing final projects.

Any tips on how I could convince my school to do the same? Just getting Turing itself in my school was apparently heck >.< The IT took it off because he couldn't find any license for it a while ago....


I'd suggest starting out by saying that Turing 4.1 is what, 4 years old now, without any updates. Open Turing is an open sourced version of it. Then you can tell him about the speed difference, which can be up to 40% faster. (One of my students has a game that shows this well, in 4.1 he gets 30FPS and huge lag every time he places an item, in OpenTuring he gets 40FPS and pretty much no lag). If you want you can wait till the release of the editor, because that is a pretty major improvement as well.

Author:  trishume [ Thu Dec 01, 2011 7:52 pm ]
Post subject:  Re: RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

Tony @ Wed Nov 30, 2011 9:44 pm wrote:
http://learn.github.com/p/tagging.html


I see, originally I was going to use tagging but I couldn't decide which commit should be 1.0. Then I forgot about it.

Once I merge ttm's bug fix into master I'll tag it 1.0.

But then I also have to decide which version number system to use Sad

My thinking: increment version number when new features are added but not for bug fixes (too many 'o them.)

Major features get a big version jump (I.E 1.5 for the new editor, 2.0 if I ever finish my compiler.)

For the compiler, I have a parser that recognizes almost all constructs and checks syntax.

Author:  Tony [ Thu Dec 01, 2011 8:33 pm ]
Post subject:  RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

major.minor[.build[.revision]]
http://en.wikipedia.org/wiki/Software_versioning#Sequence-based_identifiers

Author:  Amarylis [ Thu Dec 01, 2011 8:39 pm ]
Post subject:  RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

Versioning makes so much more sense to me now O.O

Author:  Dan [ Fri Dec 02, 2011 6:27 am ]
Post subject:  RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

You may also want to look into creating some unit tests for OpenTuring: https://en.wikipedia.org/wiki/Unit_testing

It's importatnt for an open source software to get the process for devlopers worked out before much coding begins or everything will quickly become a mess. You should work to create a document outlining the practices and rules devlopers will follow including style guides for code, how code reviews will be performed, what test cases must accompany code and when and were it is appropriate to commit code.

It may also be a good idea to come up with a clear set of short term goals for the project. Are you just about fixing the bugs and imporving the performece of Turing or do you plan to also make addtions? How important is backwords compatability? Will you also be updating the Turing documenation? What if any support will you provide the comunity and how will it be given?

Making changes to the syntax of Turing should not be taken lightly or done at a whim. Before adding new features you may want to have a discussion about were to take the langue, how best to implment the syntax of new features and if that syntax is consistent with the old goals and implmention of turing.

Author:  mirhagk [ Fri Dec 02, 2011 7:40 am ]
Post subject:  RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

Like I mentioned before, it might be an idea to keep two branches going, one will be a totally 4.1 backwards compatible program, maybe with new features and additional speed, and the other will break backwards compatibility slightly to add new features/change the way old features work. Kind of like how languages keep developing the last major version after a new major version is made.

Author:  trishume [ Fri Dec 02, 2011 8:17 am ]
Post subject:  Re: Open Turing - 20-40% Faster Open Source Version of Turing With New Features

Sure I will use standard version numbers.

I will not update all version numbers in the executable though (unless someone implements a version auto-update script to change the version in the .res files.
Find-replacing every time I fix a bug would take a lot of work.

The thing about Unit Tests is that the codebase is 200,000 lines of largely incomprehensible code. The code coverage of any unit tests that we could write would be so terrible it would not be worth doing.

Coding style guidelines would take a lot of effort. Which I don't have time to do. Simple Rule: Make it look like the code in the MIO module.

Don't worry about syntax and language feature changes for now. The parser, coder, etc.. are huge, ugly and hard to modify. Currently, my compiler (what I have) uses a parser generator (easy syntax mods) and a clean C++ AST. So language mods will be fairly easy with my compiler.

Author:  Dan [ Fri Dec 02, 2011 11:00 am ]
Post subject:  Re: Open Turing - 20-40% Faster Open Source Version of Turing With New Features

trishume @ 2nd December 2011, 8:17 am wrote:

The thing about Unit Tests is that the codebase is 200,000 lines of largely incomprehensible code. The code coverage of any unit tests that we could write would be so terrible it would not be worth doing.


Which is why the first task should be cleaning up the code base.


Edit:

Quote:

Don't worry about syntax and language feature changes for now. The parser, coder, etc.. are huge, ugly and hard to modify. Currently, my compiler (what I have) uses a parser generator (easy syntax mods) and a clean C++ AST. So language mods will be fairly easy with my compiler.


I have not had a chance to look to closely at the repo. Which parser generator is being used and were are the language grammar file for it in the repo?

Author:  Tony [ Fri Dec 02, 2011 12:38 pm ]
Post subject:  Re: Open Turing - 20-40% Faster Open Source Version of Turing With New Features

trishume @ Fri Dec 02, 2011 8:17 am wrote:

Find-replacing every time I fix a bug would take a lot of work.

- a minor bug fix does not necessary warrants a new release
- version number should be defined in a single place

trishume @ Fri Dec 02, 2011 8:17 am wrote:

The thing about Unit Tests is that the codebase is 200,000 lines of largely incomprehensible code.

You can start by unit-testing any new code.

Author:  trishume [ Fri Dec 02, 2011 4:58 pm ]
Post subject:  Re: Open Turing - 20-40% Faster Open Source Version of Turing With New Features

Dan, Cleaning the codebase would quite possibly be harder than rewriting it. That's why I'm working on the compiler. And no, I don't have the grammar files. They are probably with the turing plus code that originally generated the C.

Also, I noticed on the DWITE site it says there is a bug in the command line execution. Care to tell me what it is so I can fix it?

Tony, I will see what I can do about centralized version numbers (you could always do it yourself.) And if I add any major new features I will consider unit testing them. Most of my additions have been library interfaces, like OpenGL so not much to unit test.

I apologize for my non-enterprizey programming practices. I currently have a develop as fast as possible mentality. Brought about partially by my having many different things to do (iPad apps, application essays, Google Code-In, programming contests, maintaining our school's website, etc.) and by my ruby (do it fast and with little effort) backround.

I'm sure other people have things to as well or I would be getting a lot more pull requests on github. Neutral

Author:  ProgrammingFun [ Fri Dec 02, 2011 6:56 pm ]
Post subject:  RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

I think that along with github, this project deserves its own website (I would be willing to host a subdomain on my site but I think that CompSci.ca would be more appropriate, if not just openturing.org).

I would be willing to create the site provided that it is developed on WordPress (so that I won't need FTP access for most setup). What do you think?

Author:  trishume [ Fri Dec 02, 2011 8:05 pm ]
Post subject:  Re: Open Turing - 20-40% Faster Open Source Version of Turing With New Features

Personally I think the github page with the read me is fine.

If someone wants to make it I can also host it. Or we could use github pages. (I.E openturing.github.com)
My domain is http://tristan.hume.ca/

Also I made a short url for the github page: http://git.io/opent
Yes, I know OpenT was something completely different.

Author:  Amarylis [ Sat Dec 03, 2011 1:52 pm ]
Post subject:  RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

Okay, so I'm trying to make it so .t files open with Open Turing as a default (as opposed to opening with Turing 4.1). Apparently my computer fails to recognize Open Turing's .exe as an actual program to open things with. Can anyone please help me? I really rather do enjoy Open Turing a lot more Razz

Author:  trishume [ Sat Dec 03, 2011 2:15 pm ]
Post subject:  Re: Open Turing - 20-40% Faster Open Source Version of Turing With New Features

I believe there is an option in preferences. If the option to associate .t files doesn't work I can try and if it.

Author:  Amarylis [ Sat Dec 03, 2011 2:22 pm ]
Post subject:  RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

Okay, that worked! Thank you.

Author:  ProgrammingFun [ Sun Dec 04, 2011 7:50 am ]
Post subject:  Re: Open Turing - 20-40% Faster Open Source Version of Turing With New Features

trishume @ Fri Dec 02, 2011 8:05 pm wrote:
Personally I think the github page with the read me is fine.

If someone wants to make it I can also host it. Or we could use github pages. (I.E openturing.github.com)
My domain is http://tristan.hume.ca/

Also I made a short url for the github page: http://git.io/opent
Yes, I know OpenT was something completely different.

I can make it in my free time, it would be up to you to choose your domain or github as it is primarily your project.

Author:  trishume [ Wed Dec 14, 2011 3:58 pm ]
Post subject:  Re: Open Turing - 20-40% Faster Open Source Version of Turing With New Features

I have fixed a few bugs and bumped the version number to 1.0.1.

The download link is the same but it now is for the new version.

Change log:
- Structure completion (Ctrl+Enter) now works on "body" and "pervasive" functions/procs as well as ones marked with an asterisk (pervasive shorthand)
- Fixed the double click bug ( in the main distro )
- Syntax highlighting for new features.

So download v1.0.1 if you want the fixes. Same link.

Author:  Raknarg [ Thu Dec 15, 2011 2:53 pm ]
Post subject:  RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

Just wanted to point out that Time.Date doesn't seem to work. I don't know about any of the other functions, but I know taht one crashes turing.

Author:  trishume [ Thu Dec 15, 2011 7:00 pm ]
Post subject:  Re: Open Turing - 20-40% Faster Open Source Version of Turing With New Features

Thanks for the tip. I'll look into that.

About 50% of the bugs in Open Turing that aren't in normal Turing are my fault and 50% are the fact that OT started from 4.1.2 which was not fully tested.

Author:  Colin [ Tue Feb 28, 2012 5:09 am ]
Post subject:  RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

I remember hearing about Open-T a while back.. but I thought it just died off. This is pretty sweet that it has finally come around. I put it to the test by attempting to load one of my large turing projects... and the whole IDE crashed :S ... Well there's bound to be bugs. I'll have to play around with it some more. The OpenGL should be fun to play with.

Author:  shadowtrinity [ Fri Mar 02, 2012 2:10 pm ]
Post subject:  RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

@Colin Open-T is another project. Open Turing, may be another open source project, but I believe there is no relation. Also, I think this project was going to nicknamed Open-T, but do to the fact that someone has already used it, the name stayed the same.

Author:  shadowtrinity [ Fri Mar 02, 2012 2:12 pm ]
Post subject:  RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

As a second note anyone have any good ideas to add to Open Turing. Specifically a new design or idea to fix the bad splash screen and odd icons that open turing has.

Author:  Raknarg [ Mon Apr 02, 2012 12:17 pm ]
Post subject:  RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

Hey, I have a suggestion, if it's still being worked on.

One thing that annoys me in turing is that arrays dont work like strings do. For isntance, you could say:

var b : string := a (1 .. 3)

but you cannot do something like

var a : array 1 .. 3 := a (1 .. 3)

IF that could be included, I would be happy.

Author:  Raknarg [ Thu Apr 05, 2012 1:47 pm ]
Post subject:  RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

Also, functions should be able to result arrays of undefined length, I'm sure other languages do that

Author:  TRUEAnonymous [ Tue May 01, 2012 3:44 pm ]
Post subject:  RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

Seems interesting, but i think the old Turing is just as fast as i need

Author:  vahnx [ Fri Jul 13, 2012 3:22 pm ]
Post subject:  RE:Open Turing - 20-40% Faster Open Source Version of Turing With New Features

I love 1.2. I'm glad someone is finally continuing Turing.
Edit: Bummer, not sure why some of my Holtsoft Turing code wont run. Must have removed something important :p


: