Competition: Cash prizes offered for finding bugs

This forums is for OS project announcements including project openings, new releases, update notices, test requests, and job openings (both paying and volunteer).
User avatar
JamesM
Member
Member
Posts: 2935
Joined: Tue Jul 10, 2007 5:27 am
Location: York, United Kingdom
Contact:

Competition: Cash prizes offered for finding bugs

Post by JamesM »

The competition is now open! Cash prized paid via paypal for the most bugs and bugfixes as detailed below: USD$ 70, 50 and 30 for first, second and third place respectively. Please help me to make this product worthy of being released.

In other news, horizon is now in the LLVM2.8 release notes ;)

Thanks, and happy hacking! :)


Hello all,

I've been rather inactive for the past few months, so for those who don't know me I'm a moderator here and have been around for quite a while.

Over the past year (since leaving the Pedigree development team) I've been working on a project of my own - initially helped by froggey and AlexExtreme - this project has its first release scheduled for December 1st.

The project is called "Horizon", and is a bytecode compiler built atop LLVM. It compiles a safe, efficient bytecode to LLVM bitcode which is then compiled to machine code. This is done both ahead-of-time and just-in-time - I have set up a faux-posix environment which provides just enough functionality for LLVM, libstdc++ and boost to run on bare metal.

The bytecode is designed to allow hobbyist OS developers easy access to the new and exciting area of single-address-space OS development, pioneered by Inferno but brought to our attention by project such as Singularity, JNode and Cosmos.

More information can be found on the project wiki page, which also contains links to the user-facing and developer-facing Doxygen documentation.

Horizon aims to sacrifice some of the safety aspects of Java and C# (which Cosmos and JNode are based on), such as exception handling, to be faster. In fact, the tests in my master's thesis on Horizon showed Horizon as being faster than the equivalent C code for Dhrystone (the compiler was able to reason better about Horizon's bitcode and optimise away the main loop). This is obviously only one benchmark and a poor one at that, but at the time Horizon could only run integer operations, which reduced the number of benchmarks I could run!

How does this affect me? Where's this money?

I want to release a quality product. I have a suite of regression tests, but I'm only one person. I can't find all the bugs I might want to. So I'm making a competition in which hopefully I might enlist some of your help, and you might get some compensation in return.

I will be offering three prizes: $70, $50 and $30. These are USD obviously, and the conversion rate will be whatever PayPal decides to give me on the day from the equivalent in GBP.

The competition will run for 4 weeks from October 1st, subject to a full set of rules which will be published, and will consist of a points system.

* You get one point for successfully finding a bug (the definition of which will be set in the rules - i.e. it must not be a duplicate and must cause a segfault or an assert to fire), documenting it and adding it to the tracker.
* You get three points for successfully fixing a bug, including providing a regression test and patch.

You don't have to have found a bug in order to fix it - i.e. you can poach others' bug reports! :)

The prizes will be awarded to first, second and third place when ranked by number of points over the competition period. Ties will be arbited by adding prizes up and splitting them equally.

I'll put the rules up more towards the time, but I'd like to know if people are actually interested - it would be a massive help to me, and I'd much appreciate any help you could give, even if you couldn't care less about the money!

What do I need to compile Horizon?

A linux box. That's it. You don't need a crosscompiler, your native g++ will do. Oh, and it won't work with cygwin, due to the way the baremetal stuff is written (it emulates linux).

Project website is at http://www.quokforge.org/projects/horizon
Any questions to [email protected] , or
IRC on freenode.net, #horizonos .

Cheers!

James
Kelden
Posts: 6
Joined: Tue Aug 03, 2010 7:41 pm

Re: Competition: Cash prizes offered for finding bugs

Post by Kelden »

Ever since hearing about singularity ive thought that llvm was more suited to that concept. I am very interested in contributing to a project like this. Prize money is just icing on the cake!
Kelden
Posts: 6
Joined: Tue Aug 03, 2010 7:41 pm

Re: Competition: Cash prizes offered for finding bugs

Post by Kelden »

It checks out fine now, however seeing as it is only supported on 64bit systems I will not be participating come the 1st :(. Good luck, perhaps I will check this out again in the future.
User avatar
JamesM
Member
Member
Posts: 2935
Joined: Tue Jul 10, 2007 5:27 am
Location: York, United Kingdom
Contact:

Re: Competition: Cash prizes offered for finding bugs

Post by JamesM »

Kelden wrote:It checks out fine now, however seeing as it is only supported on 64bit systems I will not be participating come the 1st :(. Good luck, perhaps I will check this out again in the future.
Alas! I'm only supporting 64-bit targets, and as for this OS the host == target, it can only be built on 64-bit systems. Sorry about that! maybe use a 64-bit VM? or is your chipset still 32-bit?

Thanks for looking into it, anyway!

James
User avatar
Mohanty
Member
Member
Posts: 28
Joined: Fri Jul 30, 2010 9:15 am
Location: India
Contact:

Re: Competition: Cash prizes offered for finding bugs

Post by Mohanty »

Hi Genious, Keep it up, I m also very interested to know more about it. But i can not help, becz i am also using 32-bit chip........

Any way i will try to know more about that.....

best of luck.............
User avatar
JamesM
Member
Member
Posts: 2935
Joined: Tue Jul 10, 2007 5:27 am
Location: York, United Kingdom
Contact:

Re: Competition: Cash prizes offered for finding bugs

Post by JamesM »

As a followup, the competition will be going ahead from this monday, the 4th October, and will run for 4 weeks.

Another post on Sunday.

Thanks for the interest those who replied; I'd really appreciate anyone's help, no matter how small!

James
User avatar
JamesM
Member
Member
Posts: 2935
Joined: Tue Jul 10, 2007 5:27 am
Location: York, United Kingdom
Contact:

Re: Competition: Cash prizes offered for finding bugs

Post by JamesM »

Bump, competition now open. See the edit in the top post.

Bugs count as internal faults, incorrect LLVM code generated, obvious other bugs.

Bugs that include compiler FIXMEs or TODOs are valid too, as I want them documented.

Duplicate bugs are not counted, and whether a bug is valid or not is up to myself only (I'm not going to try and steal points from you - it's just so that anyone gaming the system can be stopped).

Cheers!

James
User avatar
JamesM
Member
Member
Posts: 2935
Joined: Tue Jul 10, 2007 5:27 am
Location: York, United Kingdom
Contact:

Re: Competition: Cash prizes offered for finding bugs

Post by JamesM »

Noone entered, which is bad for my product but good for my wallet!
jal
Member
Member
Posts: 1385
Joined: Wed Oct 31, 2007 9:09 am

Re: Competition: Cash prizes offered for finding bugs

Post by jal »

So what's the latest status, given we're a half year futher?


JAL
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re: Competition: Cash prizes offered for finding bugs

Post by Solar »

JamesM wrote:Noone entered, which is bad for my product but good for my wallet!
Every good solution is obvious once you've found it.
User avatar
JamesM
Member
Member
Posts: 2935
Joined: Tue Jul 10, 2007 5:27 am
Location: York, United Kingdom
Contact:

Re: Competition: Cash prizes offered for finding bugs

Post by JamesM »

jal wrote:So what's the latest status, given we're a half year futher?


JAL
Like Solar quoted ;)

I started a new job, I haven't had much time to work on Horizon. When I left it, the bytecode compiler was fully functional, with a full language description and documentation. The high-level-language I was building along with it was at the AST->bytecode compilation stage, with tests still being written.

Horizon is pretty well tested.

My current project is a fork of that, applying some of the techniques I used with horizon to Python in an attempt to reach a larger audience.

EDIT: Current status of that:

Code: Select all

[20:40:08] ~/Code/FastPy/build $ ./fastpy hello_world.pyc
   0 LOAD_NAME                       0
   3 LOAD_CONST                      0
   6 CALL_FUNCTION                   1
   9 POP_TOP                         
  10 LOAD_CONST                      1
  13 RETURN_VALUE                    
module __main__
@? = function __main___main {
?:
    %2 = load-global "print"
    %3 = call %2 ("Hello, world")
    %4 = return None

}
function __main___main() : nuint

/tmp/libjit-dump.o:     file format elf64-x86-64


Disassembly of section .text:

00007fd484fd9034 <.text>:
    7fd484fd9034:       55                      push   %rbp
    7fd484fd9035:       48 8b ec                mov    %rsp,%rbp
    7fd484fd9038:       48 83 ec 10             sub    $0x10,%rsp
    7fd484fd903c:       4c 89 3c 24             mov    %r15,(%rsp)
    7fd484fd9040:       ba 10 fd f7 00          mov    $0xf7fd10,%edx
    7fd484fd9045:       be 01 00 00 00          mov    $0x1,%esi
    7fd484fd904a:       bf 60 f0 f7 00          mov    $0xf7f060,%edi
    7fd484fd904f:       b8 08 00 00 00          mov    $0x8,%eax
    7fd484fd9054:       49 c7 c3 80 ac 43 00    mov    $0x43ac80,%r11
    7fd484fd905b:       41 ff d3                callq  *%r11
    7fd484fd905e:       48 8b f8                mov    %rax,%rdi
    7fd484fd9061:       48 89 45 f8             mov    %rax,-0x8(%rbp)
    7fd484fd9065:       b8 08 00 00 00          mov    $0x8,%eax
    7fd484fd906a:       49 c7 c3 90 bf 43 00    mov    $0x43bf90,%r11
    7fd484fd9071:       41 ff d3                callq  *%r11
    7fd484fd9074:       bf 60 07 f8 00          mov    $0xf80760,%edi
    7fd484fd9079:       4c 8b d8                mov    %rax,%r11
    7fd484fd907c:       4c 8b f8                mov    %rax,%r15
    7fd484fd907f:       b8 08 00 00 00          mov    $0x8,%eax
    7fd484fd9084:       41 ff d3                callq  *%r11
    7fd484fd9087:       33 c0                   xor    %eax,%eax
    7fd484fd9089:       4c 8b 3c 24             mov    (%rsp),%r15
    7fd484fd908d:       48 8b e5                mov    %rbp,%rsp
    7fd484fd9090:       5d                      pop    %rbp
    7fd484fd9091:       c3                      retq   

end

Hello, world
Still a way to go!
jal
Member
Member
Posts: 1385
Joined: Wed Oct 31, 2007 9:09 am

Re: Competition: Cash prizes offered for finding bugs

Post by jal »

JamesM wrote:the bytecode compiler was fully functional
I have a question about that: a while ago (a year probably? time flies) there was a discussion on this forum on using bytecode for developing platform agnostic hardware drivers, and iirc LLVM was rejected because its bytecode lacked some features needed to be used for that. Did you run into anything like that?

Ah, yes, this was the post I had in mind.

JAL
User avatar
JamesM
Member
Member
Posts: 2935
Joined: Tue Jul 10, 2007 5:27 am
Location: York, United Kingdom
Contact:

Re: Competition: Cash prizes offered for finding bugs

Post by JamesM »

Short answer? No.

Longer answer? LLVM is extremely portable, however with C and C-like languages the IR is not expressive enough to cover some of the more technical features, for example:

* Proper union support
* Typedefs and enumerations
* Alignment information

The last is the most important - Clang and llvm-gcc both convert pretty much all structs into byte-arrays and back again to deal with alignment.

The IR that these frontends generate is not portable because it already has things like sizeof(void*) and native alignments baked in.

This doesn't mean that the IR itself isn't portable - it just isn't for C-like languages. I didn't run into this because my bytecode isn't C-like and lacks some of the more "unique" features to C, such as variable alignment and structure packing (the frontend relies on LLVM to pack and align appropriately instead of baking in explicit information).
anftr
Posts: 7
Joined: Wed Apr 10, 2013 12:10 pm

Re: Competition: Cash prizes offered for finding bugs

Post by anftr »

JamesM wrote:The competition is now open! Cash prized paid via paypal for the most bugs and bugfixes as detailed below: USD$ 70, 50 and 30 for first, second and third place respectively. Please help me to make this product worthy of being released.

Is this still active?
Competition?
Are there final times?
Mikemk
Member
Member
Posts: 409
Joined: Sat Oct 22, 2011 12:27 pm

Re: Competition: Cash prizes offered for finding bugs

Post by Mikemk »

anftr wrote:
JamesM wrote:The competition is now open! Cash prized paid via paypal for the most bugs and bugfixes as detailed below: USD$ 70, 50 and 30 for first, second and third place respectively. Please help me to make this product worthy of being released.

Is this still active?
Competition?
Are there final times?
OP wrote:The competition will run for 4 weeks from October 1st

Please read dead threads before reviving them. This is from October 2010
Programming is 80% Math, 20% Grammar, and 10% Creativity <--- Do not make fun of my joke!
If you're new, check this out.
Post Reply