PDA

View Full Version : awful - script interpreter



Super Vegeta
04-07-2013, 07:41 PM
awful has been released on 2014-02-01. You can download the interpreter (Windows (x86) and Linux (x86 and ARM)) from my homepage. For the documentation, tutorial, and any other info you may need, see the wiki. Any suggestions are welcome.
Direct download: win32 (http://svgames.pl/file/awful-win32) linux (http://svgames.pl/file/awful-linux)
Homepage: http://svgames.pl
Wiki: http://svgames.pl/wiki
Repo: https://github.com/suve/awful/

--- Original post below ---
It's been a while since I posted anything new here... Being creative seems to get harder as time flies. Since lately I've found it a lil' bit difficult to motivate myself to work on games, I've decided to try something else to give my brain a little something to grind on. After tossing ideas around, I decided to try and make another script interpreter, since I've done that already and had some minor experience. And so, after a few weeks awful was born. After few more weeks, it actually stopped looking like a horribly bad idea.

Sample script in awful:
http://svgames.pl/trash/pgd-awful.png

The interpreter is still "very alpha", with exceptions flying everywhere and crashes occurring spontaneously. As such, currently, no binaries are released. However, you can play with the interpreter using a CGI form I've set up on my RasPi. So far the development has been focused more on CGI, but eventually I'd want to add audio/video capability via some crude SDL wrapper and make a joke game using this language. Currently I'm fighting my way to properly implement arrays, I hope to get this done soon. The binaries will be released when I feel satisfied with the overall set of features and stability. Some time after that, sources may eventually follow.

Darkhog
04-07-2013, 10:16 PM
Hm, you got one thing quite accurate - name of language describes quite well its syntax ;). Can't judge code quality though, probably is beyond anything I could write, but language syntax... well I refer you to name of it here.

Ñuño Martínez
16-07-2013, 09:23 AM
Yes, it's pretty ugly. But seems you have something interesting here. I like the COBOL-style operators; it remembers me the good old times.

Let us see the next "bug correction" update. ;)

Super Vegeta
15-10-2013, 08:03 AM
So, yeah, some time has went by. The project has been sitting idle for a few months, but recently I've picked it up again and began tinkering. After remodelling some internals workings a bit and implementing a few important elements, like arrays and dictionaries, I think I can update the thread.
http://svgames.pl/trash/awful-sieve.png
(Yes, I know the loop should go to :sqrt $LIMIT.)

Above is example code for the Sieve of Eratosthenes, demonstrating the use of arrays and user-defined functions. I've also updated the manual to include the relevant info. Of course, the documentation is still far from complete, but I think it's enough to get one started, and given the fact that the interpreter is still yet to be released as a downloadable version... Well, let's say I'm currently more focused on extending and improving the code, rather than writing the manuals.

So, if anyone's interested, the links from the first post are still valid.
Manual, to learn the syntax: http://pi.svgames.pl/?awful
Playground, to wreak havoc with your scripts: http://pi.svgames.pl/form.cgi

Super Vegeta
21-01-2014, 01:04 PM
http://svgames.pl/trash/awful-benchmark.png
I did a small benchmark today. awful is far from being the demon of speed, but still, I'm content with the results. If everything goes fine, I should be able to release the binaries, along with some docs, by the end of the month. Stay tuned! :)

AirPas
21-01-2014, 05:49 PM
interesting
could you show what compiler options used for both fpc and gcc ?

Super Vegeta
24-01-2014, 09:51 AM
I used no commandline options, simply specified input and output file (and -lm where needed for gcc). Whatever optimisations were applied by the compilers (if any), they are enabled by default.

Also, if anyone would like to spare some time, please take a look at http://pi.svgames.pl/wiki, where I'm writing the documentation for awful and share any thoughts you may have.

Super Vegeta
31-01-2014, 11:26 PM
http://svgames.pl/trash/awful-dl-en.png
I pleased to announce public release of awful v.0.4.0 (rev. 31). The interpreter is available for Windows and Linux (x86 and ARM) at my homepage. Documentation and any other info you may need can be found on the wiki. Any suggestions are welcome.
Homepage: http://svgames.pl
Wiki: http://pi.svgames.pl/wiki

Ñuño Martínez
04-02-2014, 12:37 PM
I can't see where to download it from. The Download page has a lot of games but I can't see awful.

Super Vegeta
04-02-2014, 05:15 PM
Bah. Guess I need to re-think the navigation. Going to a section opens a sub-menu beneath the main menu. In Download, you go to Programs, awful is there.

Maybe just change the order of menus and make the sub-section menu go above main?

SilverWarior
04-02-2014, 05:39 PM
Why not just change main menu acordingly (simulate tree like structure). You would always expect aditional filters if any directly under the Download text itself.
Also adding Download links on game/program description pages would be usefull.

I must admit that I also couldn't get to programs download link. Even after reading your post it took me some time to figure it out.
The problem is that both main menu and submenu shape is the same therefore they seem to be of equal importance and look more like two seperate section of the main menu.

Ñuño Martínez
06-02-2014, 09:14 AM
Yes, you should rethink it. SilverWarrior's suggestion should work. Now it's quite confusing.

I'll take a look.

Super Vegeta
27-02-2014, 02:43 PM
As I'm still slowly improving this project, I have published today yet another release - v.0.4.3 (rev. 34). Since v.0.4.0 I've had some optimisation done, fixes in the parser, and a native UTF-8 type introduced.

If anyone's interested enough to take a look, please share any opinions and suggestions, I'd appreciate those.

Super Vegeta
16-03-2014, 03:14 PM
Version 0.5.0 / revision 36
Added support for file handling and some hash routines. As usual, you can use the links in the first post to obtain the new release.

Super Vegeta
13-04-2014, 04:56 PM
Version 0.5.2 / revision 38
The project is one year old today! It's been exactly a year since I wrote the first lines of code. So, to celebrate, another release.

http://svgames.pl/trash/awful-chart.png
Above chart illustrates improvements in interpreter performance. Tests performed:
fibon: calculate the 1M Fibonacci number (of course, the variable wraps around a zillion times)
hypotenuse: calculate distance from (0,0) for each point between (-350,-350) and (+350,+350)
prime: search for prime numbers in <1,1M> range using the Sieve of Eratosthenes
quicksort: fill an array with 1M random values and sort them.
Each test was performed 12 times; shortest and longest times were discarded, the rest used to calculate average time.

Super Vegeta
02-06-2014, 07:15 AM
After a lot of tinkering, I was finally able to integrate DokuWiki (http://dokuwiki.org/) into my site. I'd be happy if anyone could spare a while, browse through some pages and report any errors found. Also, somewhen in this week awful r.39 should be released.
http://svgames.pl/trash/awful-wiki.png
Go to wiki -> click (http://svgames.pl/wiki)

code_glitch
02-06-2014, 06:01 PM
Hey super, I quite like what you've done with the site and I must say the performance gains look really good. Is there any news on whether the source code will be released at some point? I have my own scripting languages for my projects and they have a similar name but in contrast mine are pretty satanic compared to just terrible... Did I mention how loops break, ifs and branching is a multi-line deal, there are no comments, quotes break often and other such features? :D

Looking at awful, if the source was opened I'd be very tempted to make the move...

Super Vegeta
07-06-2014, 12:54 PM
I'd like to eventually make the project open source, but the soonest this can happen is somewhere during the summer - right now I have a lot of work due to the end of semester at uni - y'know, assignments, projects, exams... Of course, I could just pack the files and hurl them out, but well, there's some cleaning up to do and a lot of comments to add.

Super Vegeta
09-10-2014, 10:52 PM
Version 0.5.5 / revision 41
Project re-released under zlib w/acknowledgement license. Massive code overhaul. Fixed GET/POST/COOKIE parsing in CGI unit and HTTP header manging. Fixed output straight to stdout by :arr-print when in CGI mode. Added argument number info to expression and changed eval() accordingly. Made eval() heavily use file includes. Fixed many smaller bugs.

If anyone's interested, you can view it on GitHub: https://github.com/suve/awful/