« first day (644 days earlier)      last day (1850 days later) » 

05:04
@Pavel v
Microsoft (R) Build Engine version 15.6.0.0 ( Thu May 10 16:15:27 UTC 2018) for Mono
Copyright (C) Microsoft Corporation. All rights reserved.

/usr/lib/mono/msbuild/15.0/bin/Roslyn/Microsoft.VisualBasic.Core.targets(73,5): error MSB6006: "vbnc" exited with code 255. [/home/runner/TIO-VB.vbproj]
@Pavel Please add #!/usr/bin/env sh to vbnc.
Passed that hurdle, but now I got another error.
/home/runner/Application.vb(3,9): error BC30451: 'Console' is not declared. It may be inaccessible due to its protection level. [/home/runner/TIO-VB.vbproj]
Hmmmmmmm
No repro
What should Hello World look like?
The current HW should still work
Sorry, but I have to go to bed. If you fix it (or tell me figure out what I have to fix), I'll try again tomorrow morning, before work.
Alright, I'll try to figure out why it's not working
05:15
This is my wrapper.
#!/usr/bin/env bash

ln -fst . /opt/cs-csc/{Properties,TIO-VB.vbproj,packages/,packages.json,vbnc}
ln -f .code.tio Application.vb

msbuild /verbosity:quiet "${TIO_CFLAGS[@]}" /property:VbcToolPath=. >&2
mono bin/TIO.exe "$@" < .input.tio
@Dennis Actually, figured it out.
Implicit imports that aren't always enabled
I'll think about that for a bit
05:35
@Dennis Fixed on my end. Visual basic "cheats" and gets some import statements added automatically by default, but these imports aren't present with msbuild since the configuration in the vbproj file overrides those defaults. I just checked which import statements are included automatically by vbc and added them to the vbproj file.
Also, now that I know MSBuild supports specifying namespaces automatically imported into every file you compile, I will be using that more than could be considered reasonable in my own code from now on.
 
3 hours later…
08:18
hi.. can we make a version of tryitonline called timeitonline?
that allows 60 seconds, say of CPU time
and separates out compilation time?
In fact @user202729 points out you can just do something like gcc something; time ./bin
08:33
@Anush So if the program sleeps forever, it will never be terminated?
09:10
@Adám sorry I don't quite get that. Do you mean that TIO can't kill a job?
@Anush no. he means that sleep time isn't CPU time
@Adám oh you mean that if you measure CPU time something could sleep forever.. I feel there is a practical solution to that :)
@ASCII-only got it
I think we should work through all these minor complaint and get a system set up
make fastest-code great again! :)
@Anush great fast
@Anush What about interpreted languages?
@Adám Is your concern startup time?
@Anush Yes (and tear-down time too, if relevant).
09:14
@Adám that seems to be no different in TIO as it is when I run it on my home PC
@Anush One could possibly subtract the CPU time of an empty program.
@Adám reading the fastest-code challenges on ppcg, I see that is normally just ignored
presumably as it's a small part of the overall time for fastest-code challenges
@Anush I think you're onto, but yes, there are issues to work out. Even if measuring CPU time, one (virtual server CPU) may be able to get more done in the same time compared to another. You'd have to be able to lock down which (type of) CPU is being used. On your local machine, you don't have that issue.
09:36
Yes.. that would be a config task I assume
@Anush Then it would be necessary to have multiple of every (selectable) CPU type, otherwise a single server could get hammered.
@Adám I wasn't thinking you could select the cpu type
the question is, what cpus do they currently have?
I would just allocated the most common cpu
allocate
I mean the system would allocate the most common cpu type to timeit code
@Adám interesting.. I assume Dennis can do the relevant configuration
grr
try cat /proc/cpuinfo
that works
I have to go..bye for now
09:55
@Anush Cool, and it seems to always return Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz, so that's promising.
10:12
Occasionally the server is changed, so it' spossible for a submission to be valid at one time and invalid at another time.
@user202729 Well, the challenge (or the submissions) could state the TIO CPU.
 
4 hours later…
13:47
@Dennis Would you mind setting PynTree to SBCS? Thanks in advance.
14:01
@Anush That idea isn't new, but this isn't possible with the hardware TIO is currently running on. Each core of one of DigitalOcean's standard plans is a shared virtual core/hyperthread. Even on the (considerably more expensive) CPU-optimized plans, you only get dedicated hyperthreads.
For a reliable timing service, we'd need at the very least dedicated physical cores, preferably a dedicated server.
And someone has to pay for all that
And since you can't time two different submissions at once, I'm not sure one of these servers would be enough.
@Pavel Indeed. The current droplets already cost 45 USD per month.
.oO ( TIO v1 ran on a single 5 USD droplet. )
I'll try mcs and vbnc when I have a little more time.
@Dennis mcs doesn't work
@Dennis How much do you get in TIO donations during a typical month. (My guess < 1€.)
Also for vnbc all you need to do is remove /property:VbcToolPath=/opt/cs-csc
14:16
In steady donations, 21 USD per month on Patreon.
@Dennis Why does that matter? Isn't the reported CPU usage for what TIO consumes only?
@Adám Actually the patreon alone reports 21$/month
ninja'd
I wonder if TIO could qualify as a nonprofit
@Dennis So about a tenth of the running costs?
@Adám What?
14 mins ago, by Dennis
@Pavel Indeed. The current droplets already cost 45 USD per month.
21÷45=0.46
@Pavel But doesn't TIO use multiple droplets? Nvm, I read it wrong.
@Dennis Would it be inappropriate if Dyalog contributed? (I personally think TIO is very valuable to us.)
5
14:24
@Adám Many open source projects and free services are mainly funded by donations from corporations. Although TIO isn't legally a non-profit (yet), it is both those things.
@Dennis OK, I'll suggest a running donation to the management.
:)
@Pavel Most likely. I'd have to talk to a lawyer.
@Adám Yeah, the current droplets combined. That wasn't very clear. TIO is currently running on three 15 USD droplets.
@Dennis Maybe we can pay for a drop(let) in the (Digital)Ocean…
About mcs: you could symlink /usr/lib/mono/*/mcs.exe to /some/dir/csc.exe and set /property:CscToolPath=/some/dir
I'm pretty sure /usr/lib/mono always has exactly one copy of mcs.exe, but that changes depending on version.
This is untested btw
@Adám As in cover the costs or pay for and give access?
14:32
@Dennis It was mostly a pun, but I did mean the former. Wouldn't the latter just complicate your life?
It would. That's why I'm asking. ;)
@Pavel If I still have time, I'll try that. Most likely with ln -fs "$(which mcs)" csc.
@Dennis Nope, see, that doesn't work. It works for vb(n)c because VbcToolPath looks for a script, but for some odd reason CscToolPath looks for a binary that can be run with mono instead,
$ file `which mcs`
/usr/bin/mcs: POSIX shell script, ASCII text executable
Ah, and msbuild calls that file directly.
Yep
@Dennis Would you mind pulling PynTree and maybe updating its encoding if you have enough time? Thanks.
14:55
@HyperNeutrino Pulled. How do I pass a file using the SBCS to the interpreter? The codepage variable doesn't seem to get used after setting it.
15:11
Oh right. I forgot to take input properly :P
will do later
@Dennis Should work now. First command line argument is input specifications; f means file and u means utf-8 (just like in Jelly).
OK, I'll take a look when I get back home.

« first day (644 days earlier)      last day (1850 days later) »