« first day (641 days earlier)      last day (1853 days later) » 

12:01 AM
@ASCII-only I mean that by linking the morelinq library, the standard library can no longer be accessed.
It's as if the System namespace ceases to exist.
 
@Pavel yeah that's weird :/
@Pavel so using System -> using MoreLinq behaves like just using MoreLinq?
 
Yeah. If you linke MoreLinq, you can only use MoreLinq.
Mono, .NET Standard, and .NET Core are all almost compatible enough that trying to interop them appears to work until you get random runtime errors.
 
@Dennis Can you update Dirty? Finally have the refactor compatible with where it was up to previously.
 
12:42 AM
@Pavel That changes the error, but it doesn't fix it.
.code.tio(6,36): error CS0012: The type 'Object' is defined in an assembly that is not referenced. You must add a reference to assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
.code.tio(6,21): error CS0012: The type 'IEnumerable<>' is defined in an assembly that is not referenced. You must add a reference to assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
In cs-core. Didn't try the others yet.
 
Well, in cs-core it worked before.
I think this means that there needs to be seperate csopts.txt for csi and for core
 
No, it doesn't work in core.
 
Oh hm
 
Try it online! I didn't make any changes to the arenas.
 
Mm
What if we tried the default version of Morelinq?
I think the beta version is currently really broken
That might be the reason
 
12:47 AM
How do you uninstall with dotnet?
@Οurous Done.
 
@Dennis Using dotnet add package to install one version of a package removes other versions of the package.
It'll still be cached in ~/.nuget/packages, so rm -rf /opt/microsoft/home/.nuget/packages/morelinq/3.0.0-beta-2 to get rid of it entirely.
There might be a better way
I'm pretty sure dotnet remove package keeps the package in cache
 
Tried cs-core with all of these.
/opt/microsoft/home/.nuget/packages/morelinq/2.10.0/lib/netstandard2.0/MoreLinq.dll
/opt/microsoft/home/.nuget/packages/morelinq/2.10.0/lib/net35/MoreLinq.dll
/opt/microsoft/home/.nuget/packages/morelinq/2.10.0/lib/netstandard1.0/MoreLinq.dll
/opt/microsoft/home/.nuget/packages/morelinq/2.10.0/lib/net40/MoreLinq.dll
/opt/microsoft/home/.nuget/packages/morelinq/3.0.0-beta-2/lib/netstandard2.0/MoreLinq.dll
/opt/microsoft/home/.nuget/packages/morelinq/3.0.0-beta-2/lib/netstandard1.0/MoreLinq.dll
/opt/microsoft/home/.nuget/packages/morelinq/3.0.0-beta-2/lib/net451/MoreLinq.dll
 
It didn't work on any of them?
 
System.IO.FileNotFoundException for the netstandard ones, error CS0012 for the remainder.
 
whyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
It might have something to do with your .NET Core being horribly outdated?
I don't have any other ideas.
 
1:03 AM
I tried with dotnet build.
/opt/microsoft/home/csharp/project.csproj : warning NU1701: Package 'System.Dynamic.Runtime 4.0.10' was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETCoreApp,Version=v2.0'. This package may not be fully compatible with your project. [/home/runner/project/project.csproj]
/opt/microsoft/home/csharp/project.csproj : warning NU1701: Package 'System.ObjectModel 4.0.10' was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETCoreApp,Version=v2.0'. This package may not be fully compatible with your project. [/home/
The version mismatch sounds important.
 
$ dotnet add package morelinq
  Writing /tmp/tmp34GNj3.tmp
info : Adding PackageReference for package 'morelinq' into project '/home/pavel/test/test.csproj'.
log  : Restoring packages for /home/pavel/test/test.csproj...
info :   GET api.nuget.org/v3-flatcontainer/morelinq/index.json
info :   OK api.nuget.org/v3-flatcontainer/morelinq/index.json 237ms
info : Package 'morelinq' is compatible with all the specified frameworks in project '/home/pavel/test/test.csproj'.
info : PackageReference for package 'morelinq' version '2.10.0' added to file '/home/pavel/test/test.csproj'.
I think we should give up, the package is cearly broken.
Which is a shame, MoreLinq is usually really awesome.
 
So, should I remove it?
 
Yeah, I don't think we'll be able to get it to work.
 
Should I add the parsed csopts.txt to cs-csc and cs-csi again or did that break anything?
 
@Dennis I think it's just the MoreLinq. Try tio.run/… to see if the other packages work.
 
1:23 AM
.code.tio(5,29): error CS0012: The type 'Object' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Runtime, Version=4.0.20.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
.code.tio(5,21): error CS0012: The type 'Object' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Runtime, Version=4.0.20.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
.code.tio(5,3): error CS0012: The type 'Object' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Runtime, V
 
Welp
I'll have to think of a different way to use libraries for csc then
 
csc might need a different DLL.
 
@Dennis I tried, didn't work
 
1:46 AM
@Dennis Ok. I have a plan.
Run nuget restore in it's directory
Then, msbuild TIO.sln
Then try running mono bin/Debug/TIO.exe
Sorry, might be called Program.exe
 
2:30 AM
@Pavel v
797047729
{
  "foo": 42
}
 
Awesome
You can use that as a kind of "curated c#"
Replace program.cs with .code.tio
I'll keep packages up to date
 
Is this cs-csc or something else?
 
mono uses CSC for msbuild, so yes.
 
So, this repo would exclusively bundle C# for TIO?
 
Yeah
 
2:35 AM
Would you consider transferring it to github.com/TryItOnline then? You'd have write access, of course.
 
Sure. IDK how though.
 
It's in the Danger Zone in Settings.
 
Thanks
One sec
> You don’t have the permission to create repositories on TryItOnline
 
Right, I have to give you permission first.
You've got mail.
 
Alright, transferred
 
2:43 AM
Alright. Could we rename the repo to cs-core?
 
Ok
Compiler options won't work anymore, btw. Fortunatly, the only options that matter on TIO would be those referencing libraries (which would no longer be required) and those setting the language version (I'll set it to always use latest).
Uh, I don't have a settings button anymore
 
GitHub uses some pseudo-random algorithm to manages access, I think. You have Read access to some, Write access to others, and Admin access to another group...
And by you, I mean the entire setup team.
 
Msbuild does accetps options (msbuild "${TIO_CFLAGS[@]}"), which can chose between debug and relase configuration and some other things.
 
@Pavel Should be back.
 
Ok
(I assume you actually want me to name it cs-csc)
 
2:51 AM
That's a much better idea. >_>
 
Ok
I changed it a bit so it always produces TIO.exe in bin, rather than bin/Debug or bin/Release depending on chosen configuration.
 
Alright, so to use it in the sandbox, which files do I have to copy?
And does nuget need the HOME shenanigans or is that just dotnet?
 
/usr/bin/nuget installs things locally, so we're good.
@Dennis TIO.csproj, packages.json, packages/*, and Properties/AssemblyInfo.cs
I think you don't need to copy any of them, symlinks should work just fine.
 
3:07 AM
If you've ever wondered why C# is so closely tied to Visual Studio, this is why. We didn't even get a CLI to msbuild or nuget until a couple years ago, so your options were VS or juggle csc flags and download libraries yourself.
 
@Pavel Not sure which, but I need more files. * works.
 
Hmm
Might need obj
 
Wait, no, I'm doing something wrong.
@Pavel That would actually break it if it's a symlink.
 
Oh yeah, that one gets written to
 
Do I need the sln?
 
3:11 AM
Shouldn't need it, no
msbuild TIO.csproj should work
Can't hurt tho
 
It works now. Forgot to link .code.tio to Program.cs, so that file was missing. :/
Do I msbuild as part of the setup process, or just nuget restore?
Build succeeded.
    0 Warning(s)
    0 Error(s)
Is there anything more satisfying?
 
I think you should msbuild and run the program that comes with it as a test, but only the restore is required I believe.
The included Program.cs makes sure that MoreLinq and Newtonsoft.Json function properly.
 
TIO needs more tests than just Hello World...
7
 
Yep
 
C# (Visual C# Compiler) makes even less sense than before.
 
3:21 AM
True
 
Yay!
 
@Dennis On a related note, does TIO currently have the ability to run a languages' included test suite if one exists?
 
@Οurous Yes. It's the Hello World button.
That's all the tests you get.
 
@Pavel For some reason the first two things that went through my head were "Oh that's neat" and then "Oh wait. Hmm maybe I should have the canonical HW program run the unit tests instead of executing normally".
 
3:28 AM
Oh, you mean like unit tests that the language author bundles?
 
Yes.
 
@Pavel Yeah.
 
@Οurous Not at the moment, no.
 
We forgot to remove MoreLinq from .net core's setup.
 
3:44 AM
Corrected.
 
Editing git history is weird
Did you just delete a commit without affecting the one that came after it?
 
git reset HEAD^^
git checkout files/dotnet/{csopts.txt,project.csproj}
git add .
git commit
git push -f
 
4:18 AM
I want to take a moment and point out that Newtonsoft.Json is the most popular nuget package by a factor of 10 with several hundred thousand downloads, and it's docs incorporate an ancient meme in the webpage design: newtonsoft.com/json/help/html/…
s/thousand/million
 
4:37 AM
@Dennis Pushed cs-csc to include Math.NET. As a side effect, the F# stdlib got added as a dependency (since that's what it's written in).
 
@Pavel Uh, that makes the Hello World a lot slower.
Debugging output for Hello World:
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.

Build started 5/25/2018 4:43:47 AM.
Project "/home/runner/TIO.csproj" on node 1 (default targets).
PrepareForBuild:
  Creating directory "bin/".
  Creating directory "obj/x86/Debug/".
ResolveAssemblyReferences:
  No way to resolve conflict between "FSharp.Core, Version=4.3.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" and "FSharp.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a". Choosing "FSharp.Core, Version=4.3.1.0
 
@Dennis Mm, you're right. It's not that bad, I think?
Wait, that's not the HW output, is it.
That's the test program output.
 
Nope.
 
The HW should copy nothing.
 
msbuild disagrees.
 
That's the same link.
 
Oops
Point being, it should only copy if it's actually used
Wait, it changed
 
@Dennis Why?
(I realize that my message can't be understood without clicking the reply link)
 
@Dennis Oh, I got confused because the HW got cached
From back before we made the change
 
@user202729 Because it doesn't test basic things like taking input or importing a library.
 
4:58 AM
Obviously importing library and taking input are language-specific.
 
That doesn't mean there shouldn't be tests for it.
 
@Dennis Ok. How much do you think half a second matters? It's not so little, but Math.NET is a popular library. It's basically the C# equivalent of numpy+sympy.
The /v:q flag might be a good idea. (verbosity:quiet)
 
Probably not. 43 KB is way too much debugging information though. The perceived slowness on my machine is probably network latency.
 
Hence, /v:q
 
$ tiodryrun -v -l cs-csc
Testing 1 language on arena localhost...
Arena localhost responded after 2.798 seconds.
cs-csc
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/Microsoft.Common.CurrentVersion.targets(2067,5): warning MSB3276: Found conflicts between different versions of the same dependent assembly. Please set the "AutoGenerateBindingRedirects" property to true in the project file. For more information, see go.microsoft.com/fwlink/?LinkId=294190. [/ho
That's better.
"Minimal" is still 25 KB, so I'll go with quiet.
 
5:07 AM
Hmm, might be possible to stick an fsproj in the same directory and use the same libraries for F# and C#
 
Almost three megabytes. Nice.
 
For Hello World.
 
5:22 AM
I see the commit on Github, but the live version of TIO is still using the default verbosity.
 
Synced the repo, not the wrapper. >_<
Fixed.
 
Thanks
 
5:53 AM
Jetbrains Rider recently stopped working for me, and all I can say is: When did MonoDevelop become good? I'll definitely be using it from now on.
The "Update all packages" button that isn't present in VS or Rider is certaintly useful.
Tommorow, I'm going to try to get F# in there as well, so it can also use the libraries.
 
 
8 hours later…
1:59 PM
@Dennis Would you mind pulling Add++ please?
 
2:29 PM
@Dennis Could you look into adding PynTree to TIO please? Run by using python3 pyn_tree.py /path/to/file.name (no other arguments yet), Hello World is P"Hello, World!". Thanks!
 
 
2 hours later…
4:11 PM
@Dennis Whenever you're on, take a look at the fs branch of cs-csc that I just pushed.
If you switch to it, C# will continue to behave the same, but you'll be able to adjust the F# wrappers to also benefit from the libraries.
It would be the same as C#, just replace TIO-CS.csproj with TIO-FS.fsproj, Properties/AssemblyInfo.cs with Properties/AssemblyInfo.fs and link .code.tio to Program.fs
If everything works fine, I'll merge fs into master
I might be able to do the same thing for VB, but it'll have to wait until I'm at a computer that has VB.
Amyway, I've got to go to English class so I might not be on for an hour.
 
 
4 hours later…
7:59 PM
Dur, you would need to change the cs wrapper to use TIO-CS.csproj instead of TIO.csproj
Both still make bin/TIO.exe
 
8:39 PM
@Pavel How would I check that it's working?
 
8:51 PM
Apart from the Hello World, I mean. What should work now and didn't work before?
@cairdcoinheringaahing Done.
@HyperNeutrino tio.run/#pyn-tree
 
9:29 PM
@Pavel Could TIO.csproj and TIO.fsproj not coexist?
/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets(2067,5): warning MSB3276: Found conflicts between different versions of the same dependent assembly. Please set the "AutoGenerateBindingRedirects" property to true in the project file. For more information, see go.microsoft.com/fwlink/?LinkId=294190. [/home/runner/TIO-CS.csproj]
I tried the branch. C# and F# both print Hello World, but they both print a warning.
 
@Dennis They could, but it would prevent them from being in the same solution, so I couldn't manage packages for them simultaneously easily.
 
@Dennis Thanks!
 
@Dennis The included Program.fs. It prints a crap-ton of warnings, I'm working on it.
 
By the way, since Mono's msbuild now uses csc by default, I'm thinking I should replace C# (Mono C# compiler) and C# (Visual C# Compiler) with C# (Mono). I fear people might pick the wrong compiler (mcs), then wonder why nothing is working.
@Pavel Do you happen to know if csc should be backwards compatible with mcs?
@Pavel I get one warning with Program.fs, same as with Hello World.
 
Oh, cool. I get dozens locally.
@Dennis Yeah, should be. The compiler is the same as the official microsoft one, and Mono includes no extensions.
The #if MONO directive would stop working since csc doesn't define MONO, but I don't think anyone used that.
The C# preprocessor is much more limited than C's
 
10:17 PM
@Pavel Please let me know when you merge the branches so I can update everything at once.
Also, could you rename the repo to cs-mono? That will be the main identifier after the change (cs-csc will redirect).
 
10:42 PM
Ok
I've got a job interview to get to, so I can do that in around two hours.
 
11:26 PM
No rush.
And good luck!
 

« first day (641 days earlier)      last day (1853 days later) »