What is needed to allow CG-Send-Binary for contests


Currently CG-Send-Binary is enhanced to allow the original source code and file name to be included (https://github.com/Agade09/CG-Send-Binary/issues/1).

Do you have any additional requirements or suggestions to allow it for contests?

Background: CG is missing support for the great D Programming Language, with no definite answer whether it will be added, when it will be added or when a definite answer can be given. The plan is therefore to add support for D using CG-Send-Binary.

Kind regards

hi. did u solve problem with big size binary?

CG-Send-Binary is not allowed because source code must be legible and there is no guarantee that is easy and quick enough to make sure any included source code is representative of the binary. So this is a dead end.

You have already been given a clear answer multiple times regarding D support, in that it is not currently supported and will not be for the near future, and there is unfortunately nothing you can do about it. The staff does not need the “how”, but the time and corresponding priority among everything else to address it.

In the mean time, please stop harassing everyone about it and be patient. If there was a viable workaround, it would have been done already. Thanks for your understanding.

1 Like

@reCurse as long as you aren’t an employee of CG i see your answers as your own personal opinion. You are free to write anything you want, so am I.

Any constructive feedback would be very appreciated. My gut feeling is, you could help us in this topics.

@zelyony i haven’t heard anything from @TwoSteps until now. I will wait some more days and then ping him again.

Yes I am not speaking as a representative of CG but as a member of the community. It is obnoxious for a community to see someone poking the exact same subject repeatedly, when he has already received multiple clear answers from the staff that he refuses to acknowledge for whatever reason.

You clearly refuse to take anything but “yes we will do so immediately” for an answer. That’s the problem.

  1. Found a company
  2. Sign a contract with CG to get help for your recruiting
  3. Ask for D support (as a paying customer you probably have higher chances than as a private person)
  4. Use D on CodinGame

Other than that I don’t see any way to get D in the near future, no matter how much you are pushing.
CodinGame adds new features from time to time, but repeatedly asking doesn’t speed it up from my experience (e.g. release mode compilation).

@eulerscheZahl your last tipp regarding CG-Send-Binary was quite fruitful. A the moment the resulting CPP file is a blackbox for CG and also for the community. The idea is to add the source code also to the CPP file, therefore CG has a benefit and also the community. Now there is s.th. you can look at and discuss.

I do not know the history what exactly was the reason to disallow CG-Send-Binary for contests. By understanding the reasons, it might be possible to find also here a solution.

The light integration of D would just involve 30 minutes of work by copying 2 .so of the LLVM based compiler to the C++ environment (to reduce the executable size).

I am paraphrasing information coming directly from CG at the time this tool was disallowed.

Just quote the rules, article 8:

Cheating is forbidden, under penalty of disqualification from the CodinGame Contest. Cheating means:

  • (…)
  • Obfuscating your code as well as creating obstacles to its reading and understanding.

@JBM thanks a lot. With adding the source code maybe this is mitigated.

There is no guarantee that the source code in a comment corresponds to the binary.

@dbdr I fully agree with you. Wheter the source code does what it claims you can validate by copying it from the comment, compiling it, use CG-Send-Binary and test it on CG.
I agree, the way is cumbersome, but the source code is available and you can validate it within 10 minutes.

My final answer on this, i’ll let the thread die after this one.

CG-Send-Binary will still be flagged as a cheat, even with the source code in the file. CG won’t take the time to compile the code to check the binaries base85 hashes.

Since very few users will use CG-Send-Binary for D (CG-Send-Binary was used by maybe 10 people on all CG life …), CG will not add D binaries/compiler/runtime in their “big jail” just to support a hack-feature like this.

Maybe CG will support D in a near future, but it will be with the complete feature.

Of course you can say that i’m not a CG staff member and ignore my answer.

But if i were a CG dev, your attitude would push me to implements every other languages than D, just for the troll. Think about it when CG will announce the TypeScript support :smiley:

1 Like

there is nothing wrong with trying to solve a problem without harming anyone.
but trolls harm. don’t be evil.

We will probably support TypeScript since it’s required for Work.

As a codingamer, I hope we will add D after C++ O3 :slight_smile:

1 Like

I’m a prophet :tada:

As long as we don’t support officially D, we won’t allow D submissions with such work-arounds.


@_CG_SaiksyApo as @Magus said in the other thread, TypeScript is already supported by CG:

I’d like to see Typescript added but we can “already” do Typescript on codingame. Just write your typescript code, use any online “typescript => javascript” interpreter you can find, and just copy/paste the result. Of course you can do it yourself.

Adding an already supported language because you will use it internally, while another highly demanded language (which is also included in GCC) is postponed as “hopefully in the future” is sad to hear.

On the other hand, thank you for your openess what the plan of CG is.

That’s roughly the same thing you could do with every language tho. Haskell is transpiled in C-- before ending up in a binary for instance (C-- is a subset of C), Monkey X could be aswell said as “supported” if you go this way.

The key thing that every CG staff is saying since the beginning is “We won’t add any workaround to support a language in a cheesy way”.

Also I think you misread :

We will probably support TypeScript since it’s required for Work

that meant they need it for Codingame Work which is the actually the part of Codingame sold by the company (probably to support tests for the famous frameworks Angular and React). So it’s not for internal use but to adapt what they sell to the demand (IMHO, as I’m not part of the company)

TS isn’t supported natively, so is D, but both can actually be transpiled.

Btw, I voted for Prolog if it can disambiguate my position toward D or TS, ahah !