Bitcoin Forum
October 19, 2019, 03:51:17 AM *
News: 10th anniversary art contest
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: 20 BTC to create an LLVM (or GCC) implementation for AT (Automated Transactions)  (Read 1101 times)
CIYAM
Legendary
*
Offline Offline

Activity: 1890
Merit: 1003


Ian Knowles - CIYAM Lead Developer


View Profile WWW
May 17, 2015, 12:28:02 PM
 #1

This is not a bounty but will be the reward for someone to create an LLVM (or GCC) implementation for AT (Automated Transactions).

If you have experience in creating LLVM or GCC code at the instruction code level (such as having worked on adding a new CPU instruction
set to either compilers) then please contact myself via PM and include a link to your resume.

The amount will only be paid upon completion and a completion date will need to be set in advance. Once a developer has been found then
this task will be published on CIYAM Open (http://ciyam.org/open).

Funds address: https://blockchain.info/address/1AKRYi1Q2LtEAnEYzjjZXkZRXL33RKA53e

If others want to add to this reward then please send your BTC donation to the above address (note the following signed message to prove
that I own it and the GPG sig for this announcement).

1AKRYi1Q2LtEAnEYzjjZXkZRXL33RKA53e
This address is under my control!
G3YRn7DmQF0Jf5nBaJiw3SfMVroQzFB4N6X1AmNGmUYEaTCbfTOoZExiE2qAqHLdnA4IgIx+D+ccwVsjF3CWCuI=

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (MingW32)

iEYEARECAAYFAlVYibEACgkQZPzMrvJlEZATPACdGmRkLqLhsA4qLWq+a3OOv4Ko
D54AoKSRsG0LK7JbRSrHLngTExRmKjYO
=fqJn
-----END PGP SIGNATURE-----

With CIYAM anyone can create 100% generated C++ web applications in literally minutes.

GPG Public Key | 1ciyam3htJit1feGa26p2wQ4aw6KFTejU
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1571457077
Hero Member
*
Offline Offline

Posts: 1571457077

View Profile Personal Message (Offline)

Ignore
1571457077
Reply with quote  #2

1571457077
Report to moderator
1571457077
Hero Member
*
Offline Offline

Posts: 1571457077

View Profile Personal Message (Offline)

Ignore
1571457077
Reply with quote  #2

1571457077
Report to moderator
2112
Legendary
*
Offline Offline

Activity: 2114
Merit: 1032



View Profile
May 17, 2015, 05:45:47 PM
 #2

Please post a single, concrete example of how you propose to extend C++ to utilize the blockchain-specific functionality of AT. Anyone can make a good guess on how to use the general-purpose computational functionality of AT. But how do you envision the whole GCC/LLVM toolchain integration with the cryptocoin engine? I can't even guess if you think of adding new intrinsics or if you think of a template library.

Just write some simple, "Hello, world!"-class, example. Without such specifics the whole idea is just too vague and open-ended.

Please comment, critique, criticize or ridicule BIP 2112: https://bitcointalk.org/index.php?topic=54382.0
Long-term mining prognosis: https://bitcointalk.org/index.php?topic=91101.0
CIYAM
Legendary
*
Offline Offline

Activity: 1890
Merit: 1003


Ian Knowles - CIYAM Lead Developer


View Profile WWW
May 17, 2015, 05:58:54 PM
 #3

Just write some simple, "Hello, world!"-class, example. Without such specifics the whole idea is just too vague and open-ended.

We have already published much more than "hello world" examples of AT (http://ciyam.org/at) and the first ACCT (Atomic Cross-Chain Transfer) between two separate blockchains (Qora and Burst) has already happened.

Do you seriously think we don't have a product that works?

With CIYAM anyone can create 100% generated C++ web applications in literally minutes.

GPG Public Key | 1ciyam3htJit1feGa26p2wQ4aw6KFTejU
2112
Legendary
*
Offline Offline

Activity: 2114
Merit: 1032



View Profile
May 17, 2015, 08:20:20 PM
Last edit: May 17, 2015, 10:01:41 PM by 2112
 #4

Just write some simple, "Hello, world!"-class, example. Without such specifics the whole idea is just too vague and open-ended.

We have already published much more than "hello world" examples of AT (http://ciyam.org/at) and the first ACCT (Atomic Cross-Chain Transfer) between two separate blockchains (Qora and Burst) has already happened.
I could not find any C++ example in your documentation directory. All examples were tabulated assembly listings. I wanted to see your vision on how C++ will improve the situation for a programming user or a financial service developer. I honestly lack this insight.
Do you seriously think we don't have a product that works?
What I'm seriously thinking is that you are similar to some newfangled hardware microprocessor developers from Europe that I've met in the past. They had their architecture, they had their assembler and simulations. They even had real silicon implementations in structured ASIC. But when no further investments were forthcoming they decided that they need open source GNU toolchain and an IDE based on Eclipse. And that was where they went bankrupt, got acquired and forced to realign their design with real market demands.

Really, instead of posting one-liners, please sit down and write a nice position paper that has your atomic cross-chain transfer recoded in your intended dialect of C++. Something like the listing below will showcase your ideas much better that what you are currently doing.
Code:
; Listing generated by Microsoft (R) Optimizing Compiler Version 17.00.50727.1
.model flat

_DATA SEGMENT
$SG1297 DB 'Hello, world!', 00H
_DATA ENDS
PUBLIC _main
EXTRN _puts:PROC
; Function compile flags: /Odtp
; File c:\users\2112\hello.c
_TEXT SEGMENT
_argc$ = 8 ; size = 4
_argv$ = 12 ; size = 4
_main PROC

; 1    : int main(int argc,char **argv) {

  00000 55 push ebp
  00001 8b ec mov ebp, esp

; 2    : return puts("Hello, world!");

  00003 68 00 00 00 00 push OFFSET $SG1297
  00008 e8 00 00 00 00 call _puts
  0000d 83 c4 04 add esp, 4

; 3    : }

  00010 5d pop ebp
  00011 c3 ret 0
_main ENDP
_TEXT ENDS
END
Edit: I just realized that a code listing example using the venerable Intel x86 architecture is too readable, people are too familiar with it and it was designed to be hand-programmed in assembly and therefore has nice mnemonic register names. To make a fairer comparison with AT I produced the same listing with ARM/THUMB compiler. This should better reproduce the level of confusion and discomfort that one would encounter with a completely new machine architecture like AT.
Code:
; Listing generated by Microsoft (R) Optimizing Compiler Version 17.00.50727.1

  00000 AREA |.data|, DATA
|$SG619| DCB "Hello, world!", 0x0
EXPORT |main|
IMPORT |puts|

  00000 AREA |.pdata|, PDATA
|$pdata1$main| DCD imagerel |$LN5@main|
DCD imagerel |$unwind2$main|

  00000 AREA |.xdata|, DATA
|$unwind2$main| DCD 0x33200011
DCD 0xa8fb02
DCD 0x8802ff02
DCD 0xff03ef00
; Function compile flags: /Odsp
; File c:\users\2112\hello.c

  00000 AREA |.text|, CODE, THUMB

  00000 |main| PROC

; 1    : int main(int argc,char **argv) {

  00000 |$LN5@main|
  00000 b403 push        {r0,r1}
  00002 e92d 4800 push        {r11,lr}
  00006 46eb mov         r11,sp
  00008 b082 sub         sp,sp,#8
  0000a |$M3|

; 2    : return puts("Hello, world!");

  0000a 4806 ldr         r0,|$LN8@main| ; =|$SG619|
  0000c f000 f800 bl          puts
  00010 9000 str         r0,[sp]
  00012 9b00 ldr         r3,[sp]
  00014 9301 str         r3,[sp,#4]

; 3    : }

  00016 9801 ldr         r0,[sp,#4]
  00018 |$M6|
  00018 b002 add         sp,sp,#8
  0001a f85d bb04 pop         {r11}
  0001e f85d fb0c ldr         pc,[sp],#0xC
  00022 |$M9|
  00022 defe __debugbreak
  00024 |$LN7@main|
  00024 |$LN8@main|
  00024 0000 0000 DCD         |$SG619|
  00028 |$M4|

ENDP  ; |main|

END

Please comment, critique, criticize or ridicule BIP 2112: https://bitcointalk.org/index.php?topic=54382.0
Long-term mining prognosis: https://bitcointalk.org/index.php?topic=91101.0
Insert_Bitcoin
Newbie
*
Offline Offline

Activity: 21
Merit: 0


View Profile
May 18, 2015, 02:05:10 AM
 #5

CIYAM can you create some kind of documentation that describes in very simple terms what the hell CIYAM is for? Because from a new user perspective, I go to your website to try get an idea about the project and then you immediately jump into talking about byte code and assembly and I have no clue what you're actually doing. I think this project might have something to do with creating some kind of language for executing smart contracts on oracles and then integrating this language heavily with transactions and Script - but I'm actually not sure. It would be nice if you spent some time making the project more developer friendly: tell us simply what it is for and why it is useful, how we can get the software up quickly, and maybe integrate that with some kind of online debugging system with test coins so people can try it out easily - and I think far more people would use this for R & D.

FYI, I could have completed your bounty program for the cross-chain contract - I actually already have functional code in Python so I understand the concept well but every time I looked at this project I couldn't make heads or tails where to get started. Developers are people too so if the message isn't communicated clearly and simply I usually just close the page. Looking now at your Github, I'm bombarded with shell commands and zero explanation of what a "CIYAM Software Manufacturing Environment" is for. You should probably make a proper read-me to give developers a simple overview before you jump into dependency installation.
CIYAM
Legendary
*
Offline Offline

Activity: 1890
Merit: 1003


Ian Knowles - CIYAM Lead Developer


View Profile WWW
May 18, 2015, 05:59:36 AM
 #6

Creating an LLVM or GCC implementation for any new micro-processor is not something that is going to be able to be "made easy" as it is a very specialised software development area.

Only those who are not completely confused by the documentation on the website that I am really interested in hearing from. I am not trying to be "elitist" but just practical in that only people very familiar with assembly language and writing compiler implementations are going to be able to be suitable candidates for this task.

As for C++ examples - they will be easy enough to create once we actually have a C++ compiler.

With CIYAM anyone can create 100% generated C++ web applications in literally minutes.

GPG Public Key | 1ciyam3htJit1feGa26p2wQ4aw6KFTejU
2112
Legendary
*
Offline Offline

Activity: 2114
Merit: 1032



View Profile
May 18, 2015, 06:15:18 PM
 #7

As for C++ examples - they will be easy enough to create once we actually have a C++ compiler.
So at the start of the project you are in an endless recursion:

1) you need C++ compiler with cryptocoin extensions
2) you want to produce the design documentation for those extensions using the results of (1)

It is a bad PR to do this in public. You seem to be severely underestimating the effort and resources required to retarget GCC/LLVM/Clang. You also seem to be overestimating the possible benefits of having such a toolchain available.

The only way I can imagine such retarget to be successful if it is going to happen within the educational institution, meaning the development isn't going to be done for money but for a degree credit.

Please comment, critique, criticize or ridicule BIP 2112: https://bitcointalk.org/index.php?topic=54382.0
Long-term mining prognosis: https://bitcointalk.org/index.php?topic=91101.0
CIYAM
Legendary
*
Offline Offline

Activity: 1890
Merit: 1003


Ian Knowles - CIYAM Lead Developer


View Profile WWW
May 19, 2015, 07:40:31 AM
 #8

I am well aware of the difficulty of re-targeting a compiler (after having spent a lot of time researching this) and I don't expect that someone will just be doing this "just for the BTC".

It is far more likely to be the kind of thing that a masters or higher student might take on if they happened to have the requisite skills and interest (so the 20 BTC is just an added bonus really).

This is more about research than development at this stage so no there is no concrete plans for using said tool at this stage but I am confident that it could be quite useful in the future as I know I'd rather be writing ATs in C++ than in Assembly.

With CIYAM anyone can create 100% generated C++ web applications in literally minutes.

GPG Public Key | 1ciyam3htJit1feGa26p2wQ4aw6KFTejU
CIYAM
Legendary
*
Offline Offline

Activity: 1890
Merit: 1003


Ian Knowles - CIYAM Lead Developer


View Profile WWW
October 25, 2015, 07:45:19 AM
 #9

As no-one has been in contact in regards to this offer (and it has been months) I have decided to now use the BTC for other purposes.

With CIYAM anyone can create 100% generated C++ web applications in literally minutes.

GPG Public Key | 1ciyam3htJit1feGa26p2wQ4aw6KFTejU
Pages: [1]
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!