« first day (153 days earlier)      last day (2341 days later) » 

12:04 AM
How do compilers work in TIO? If I were to make a language that compiles into LLVM could it be run on TIO?
 
@WheatWizard I'm not sure I know what LLVM is, but as long as you help me set it up, we should be able to run anything that can be run on Linux.
 
Anonymous
@Dennis I whipped up a quick proof of concept for automated pulling/cloning of repositories by authorized users.
 
@Dennis LLVM is compiler infrastructure. I believe that clang and gcc use it so it should work on a linux machine.
 
@Dennis -g just installs it to your bin folder wherever that is. You'll still need dome dependencies but you can remove unneeded ones by removing the node_modules directory and doing npm install --production --ignore-scripts
 
Anonymous
@WheatWizard GCC does not use LLVM
 
12:15 AM
@Mego Ok my bad then
 
Well, TIO has clang too.
 
@Mego well by default
 
#r3TQJ
print("Hello, world!")
 
@Downgoat Not sure I understand. Do I npm install first then remove node_modules or vice versa?
 
(also works in Python)
 
12:17 AM
I would actually be compiling into MIPS. I used the wrong preposition above.
 
@Dennis do npm install first. and then remove node_modules, and then do npm install --production --ignore-scripts
npm install will also build
 
And which install(s) will create dependencies needed after the build, i.e., which needs -g?
 
wait, why can't you reply to your own comments? I wanted to point out that the capitalisation can be adjusted as necessary (which is not obvious), but can't really link my comment to its context
 
@ais523 You can, it's just harder
@DJMcMayhem For example...
 
it doesn't apear in the left corner dropdown
so I assume you have to find the comment's number some other way?
 
12:21 AM
Yeah, by clicking Permalink
 
ooh, by scraping the permalink
 
@ais523 Thank you, this tio.run/nexus/… does not seem to work though, what did I do wrong?
 
you left trailing whitespace on the first line
this works: Try it online!
 
@ais523 Awesome! thanks a lot!
 
this sort of thing can easily become an issue with languages where checksumming the source is a major part of their operation
 
12:25 AM
just out of curiosiry how do you make crc-32 zero? I googled for like 15 seconds but did not find antyhing ;)
 
well #r3TQJ\n has a crc-32 of zero, that's what I normally use for quick programs
 
oh
so it's just the firs line
not the whole source?
 
err, substring, not subset
then that gets rotated to the start of the program
it's any subset of the source
this means that you can choose which parts of the program get checked and which parts don't
as for reversing a CRC-32, it's basically just maths
 
okay, I must have misread it. thank you agian
 
a comment-free hello world would require CRC-32-zeroing the entire source, that's a pain to do if you want it to be ASCII only
 
12:42 AM
@Fatalize neither of hello world given here esolangs.org/wiki/Brachylog seem to work any longer with the last pull of brachylog, I opened an issue on github for this
@Fatalize I'm not sure if hello world should be updated or if it's an issue with brachylog
 
1:31 AM
not sure if it's @Fatalize's fault or something to do with TIO, but none of the Brachylog programs I'm trying are working at all
even really simple stuff like #p by itself
my guess is there's been a breaking change to the language syntax?
 
@ais523 there was a new pull yesterday, for the "version 2" which is a major change from what it used to be before
so it's either a language change or a language bug, we won't know which until maintainer can explain ;)
 
1:49 AM
if it breaks most existing programs, it should probably have a different menu entry on TIO
if it breaks most existing programs by mistake and isn't meant to, though, probably just best to wait for a fix
 
2:10 AM
agreed
@Dennis I think that rprogn2 some how is broken on tio tio.run/nexus/rprogn-2#@6/kkZqTk6@jEJ5flJOiqPT//38A
it works locally here from the jar in git
the command line is similar to your wrapper
I'm not sure what's wrong
 
@AndrewSavinykh I pulled and there were a lot of changes, but it's still not working.
@AndrewSavinykh Eh, your fiddle has an empty command-line argument. It doesn't like that. This works. tio.run/nexus/rprogn-2#@6/kkZqTk6@jEJ5flJOiqPT/PwA
 
@Dennis Oh I'm so sorry, you are completely right, use some old browser tab where I tried something else
I wonder if tio somehow can make it more prominent - the presence of an argument that is. just an idea....
but, hey, it led me to downloading eclipse for the first time in my life and debugging through java code - it's time well spent, I learned something new ;)
and with that only eight most stubborn languages left
 
Anonymous
2:30 AM
@AndrewSavinykh In a minute, I can give you a Cinnamon Gum HW program
 
Anonymous
I just need to finish setting it up locally so I can use the compressor
 
@Dennis awesome! added it
@Mego appreciated, let me know when ready ;)
 
@AndrewSavinykh This isn't exactly golfed, but I know absolutely nothing about BLC. I found a BF interpreter though and tacked on a Hello World program.
 
@Dennis works for me. Thank you so much!
 
@Dennis yay!
4 left. With woefully I'll settle on printing any predefined character, because two words feels like too much to ask ;)
 
Anonymous
Cinnamon Gum really hates exclamation marks
 
Anonymous
 
With two newlines.
Just sayin' since it probably matters for the test suite.
 
Anonymous
I can fix that easily
 
Anonymous
2:57 AM
 
Anonymous
I forgot to use echo -n
 
Anonymous
And so an extra newline snuck in
 
Oh, so it's just plain Bubblegum with a " in front.
Well, and an encoded !.
 
Anonymous
Basically yeah
 
Cinnamon Gum is weird. Delicious, but weird.
 
Anonymous
2:59 AM
The first character determines the processing mode. " isn't a defined mode, so it defaults to outputting the code verbatim. The only issue is, ! is a special character in CG, so it has to be escaped.
 
3:49 AM
@Dennis What is required to add a language to TIO? Is there any restriction on what language a preexisting interpreter has to be written in?
 
@MistahFiggins It has to be available for Fedora 24 and free of charge, so anything that requires Windows, Mathematica, etc. is out. Other than that, I'll do my best to get it working.
 
Java ok?
 
Sure.
Preferably Java 8.
 
Alright. I have documentation, onto the interpreter!
 
@Dennis No, it does not matter, I trim them. With the variety of languages we have 100% consistency is not something I can achieve in the time I'm willing to spend ;) But thank you for your concern
@Mego Excellent, I'll add it!
 
3:59 AM
is there any way to send a program to TIO that isn't valid UTF-8?
 
For some interpreters, yes. So far, if I needed to pass a specific byte stream to an interpreter, I went though Bash.
 
Grime and snails are the last two. For some languages where printing hello world is a quest in itself I settled in printing the @ sign, which has a nice and round ascii code of 64
glypho and woefully in particular ;)
but I don't mind
hopefully we'll find out what's going on with brachylog in the next week or two, it's upsetting my sense of balance, it's the only test not working
I wonder if I should use this tio.run/nexus/brachylog#@2/lWf1w5/RHnXNqH25b8Khx7///Rqb/owA as the test
 
4:54 AM
@Dennis snails. tio.run/nexus/…
Those code and input are example files
from github
they work from the command line
any idea why they don't work on tio?
expected output 1
files are boggle.pma boggle_yes.in
in the examples subfolder
damn!
wrong language
 
I was just about to say that.
 
sorry again
 
np
 
5:28 AM
@Dennis Would you prefer code that reads and outputs to files as opposed to the console?
 
I can work with either one, but standard streams are preferred.
 
@Dennis I'm using an InputStreamReader to read from a FileInputStream created using a filename, so it shouldn't be too hard for someone to change
 
Input from a file is fine. Output is a bit of extra work, but also not a problem.
I prefer not to alter the interpreter itself, as it tends to cause problems with updates.
 
Although maybe i should be using something else, because you can't "peek" at the next character like Scanner can with hasNextFoo()
So I should output to stdOut (console)?
 
If I get to choose, yes. But I'll make it work with whatever you end up doing.
 
5:42 AM
I haven't got to output yet, it should be easy to change something that isn't there yet ;)
 
5:52 AM
@Dennis So it would be more convenient for you if I used stdIn for the input? It's an easy change...
 
It really doesn't matter. If anything, reading input from a file is more convenient, as it is stored in a file anyway.
So it's java [whatever] .code.tio < input.tio "$@" vs java [whatever] .code.tio input.tio "$@".
 
okeydokey
 
 
1 hour later…
7:03 AM
@Dennis Can you please pull Brachylog?
 
@Fatalize Done.
 
Thanks!
@AndrewSavinykh I have made a big update to Brachylog. I have fixed a slight problem and the esolang page so the Hello World program should now work properly. @ais523 If you want the previous version of Brachylog on TIO, you could ask Dennis to add it as e.g. Brachylog v1. I have made a release right here (it shouldnt' be hard for him to do, there were no changes in terms of how it works with TIO)
 
@Fatalize Thank you, it seems to be fixed now ;)
 
@AndrewSavinykh The wiki has not been updated yet, I will ping you when I have updated it. For now if you want to know the changes made, you pretty much have to read the source code :/
 
@Fatalize Will the update break many existing permalinks?
 
7:15 AM
@Dennis Pretty much all of them
(The answers don't work anymore anyway)
 
Uh, would it be better to reserve the old URL for v1 then and give the new version a different URL?
 
Possibly. Does that mean that the new version would need a different name, and the old one keep "Brachylog"?
 
No, name and ID/URL are independent. We could name the old version Brachylog v1 with ID brachylog, and the new one Brachylog with ID brachylog2.
 
Cool. Let's do that then
 
Anonymous
7:24 AM
That was really fast
 
If you already know how the language works, it's pretty quick.
 
@Dennis Amazing, Thanks! Even if you know it, that's still really fast
@ais523 Update: Dennis has put both versions on TIO, so you can keep using the V1 if you like
 
Seems to be working. tio.run/nexus/brachylog#@6@S5JBklZNfkvP/v6GxsbmxueH/KAA works in v1 but not v2, tio.run/nexus/brachylog2#@/9wx5Ly//8B works in v2 but not v1.
 
Yep, it does!
(Also btw, yes I was partly inspired by your code page)
 
That looked familiar, yes. :)
 
7:32 AM
@Dennis what language name did you use for brachylog and brachilog v1 in the backend
 
brachylog2 and brachylog.
 
@Dennis I could have figured out from the urls, thinking slower than typing, thanks
 
7:52 AM
@Dennis Can you please pull Brachylog (yet again)?
wait
didnt commit
Ok done
 
@Fatalize Done.
 
Thanks yet again
 
np
 
8:27 AM
Nice!
 
 
8 hours later…
4:36 PM
@Dennis nimi just pointed out that TIO seems to use an old version of haskell
 
5:14 PM
@flawr Do you happen to know if 8.0.2 is backwards compatible with 7.8.4?
 
@Dennis I think it should but I'm not entirely sure. I'm trying to find out.
 
@Mego sorry :P
FWIW I usually use space for the mode if I'm doing constant output, but it's not like CG is meant for that anyways
 
It seems not entirely: ghc.haskell.org/trac/ghc/wiki/Migration/8.0 but these are some very minor changes, and I don't think these affect the programs currently linking to TIO when it comes to codegolf.
 
As long as it doesn't break the interpreters written in Haskell...
 
6:20 PM
@Laikoni @flawr @nimi TIO's Haskell interpreter now uses GHC 8.0.2 and the full Haskell platform.
Pre-existing interpreters that are written in Haskell will keep using 7.8.4 for now, which is the latest version in the Fedora repos.
 
6:31 PM
@Dennis check this out monitor.tryitonline.nz
it runs every 15 minutes, but I can make a longer intervals if 15 minutes causes any problems
 
Nice! CPU load is currently at 1.6 though, so a longer interval might be better.
If you share the code for this, I could run the tests directly from the arena, so there would be no need to SSH, sandbox would get called only once, and I could use nice to give the tests lower priority.
I could also detect if there were any changes to the interpreter or any system updates since the last run, and only test interpreters that need to be tested.
 
@Dennis the code is on github.com/AndrewSav/TioTests the only problem is that I did not mess with SSH, I'm calling backend.tryitonline.net/run
I could not call arena directly since I don't have ssh key for your user
which is fair enough
 
Yes, I meant the backend establishes an SSH connection with the arena.
 
I made time interval 30 minutes for now
 
6:47 PM
I think that's still too short. The tests took 7 minutes.
 
@Dennis how long would you like it? An hour? Two hours?
 
@AndrewSavinykh Interpreters aren't updated very frequently, so I'd say once a day should be enough for now. 07:00 UTC seems the most quiet time of the day, so that would be a good time to start the tests.
 
Note, that the last run UTC date was displayed incorrectly
it was 18 hours not 5 hours, I used wrong format code, now fixed
so 07:00 real UTC?
which will be appx in 12 hours?
 
7:02 PM
Yes, I took that from the server logs.
 
@Dennis, okay than. I mean it's more like an experiment, so if you can make it run locally, that would awesome, and only run the changed languages. Although I have a suspicion that the dotnet thing may put you off
 
I have very limited experience with C#, but running things locally should be a lot easier anyway.
 
@Dennis Thanks a lot!
 
@AndrewSavinykh The hello world tests are great. I'll be able to use them both for automated testing and as an example for the languages on Nexus. Thank you for the time and effort you put into this.
 
7:50 PM
@Dennis I didn't know any of those interpreters were written in Haskell! Can you name some examples?
 
8:01 PM
@Dennis that actually what took the most time. C# is just a glue/ducttape thing
@Dennis note that there are a few cases when they are not hello world. When it was too difficult for me to actually get the language to print hello world ;)
or impossible
 
8:18 PM
@flawr Emmental, Grime, and Whitespace are implemented in Haskell. They're compiled though, so upgrading Haskell may not be a big deal.
@AndrewSavinykh Yes, I figured. Since it's JSON, I should be able to use them with pretty much any language, and in particular JavaScript for the frontend.
 
Anonymous
For languages with test suites, you could use them
 
@Dennis I need to write something that pulls language.js, parses it and checks for missing languages. I'll add this to my todo list
 
Anonymous
(e.g. run python3 setup.py test in the Seriously directory)
 
Well I'm kinda dumb...
"Why isn't this code doing anything??"
*looks at interpreter for 5-10 min*
"Oh. It's just supposed to push things onto the stack, it doesn't print them..."
 
@MistahFiggins we have all been there ;)
 
Anonymous
8:24 PM
The curse of stack-based languages without implicit output :P
 
Earlier I "learned" that when you make a new Scanner, it doesn't automatically keep the same delimiter...
 
@MistahFiggins surprising, right? gets you every time ;)
 
Hmm... For those familiar with eclipse, does it use spaces to separate command line arguments?
If so, I'm irked
Because I want spaces in my regex
Looks like it :|
 
last time I checked eclipse were an IDE for java. I usually start IDEs by double clicking on them, not via command line ;)
 
8:39 PM
There's a way to specify which arguments you run a program with, and I think Eclipse automatically separates them with spaces
:P Darn Eclipse...
... Just wow today. An infinite loop because I wasn't decrementing a variable...
On the other hand, the interpreter is almost done
 
9:21 PM
@Dennis Ok, there may be bugs still, but for the most part, the interpreter is done...
If you could add it to TIO, that would be great
 
10:11 PM
@MistahFiggins I'll add it asap.
 
Thanks!
The name is technically Del|m|t, but I used "Delimit" in certain spots because it didn't allow for it
 
Yeah, I got that. Filenames appear to be static; I can work with that. The comment at the top says starting delmiiter btw.
 
Ok thanks! I will fix that comment
 
10:39 PM
@MistahFiggins Seems to be working. tio.run/nexus/…
 
@Dennis "requested language cannot be found. try a hard refresh" ...meaning?
 
Anonymous
 
What is a hard refresh
computer, or just chrome
I tried chrome
 
Anonymous
ctrl+f5
 
Yay, thank you Dennis!
 
11:29 PM
@Dennis Found a bug, Fixed on Github. Will it automatically update on TIO or do you have to update it?
 
@MistahFiggins I have to pull and recompile. Just a sec.
 
Thanks
 
Done.
 
I left in a testing println
lol
 
Let me know when you push the fix.
 
11:42 PM
No I did on the last one, no new push needed. Thanks!
 
@Dennis Can you put the list of languages into a separate js, so I could parse it as a json?
that is without `for (var id in languages.practical.byId) {
var language = languages.practical.byId[id];
languages.all.byId[id] = language;
languages.practical.nameIdPairs.push([language.name, id]);
}`
and all the rest
 
11:58 PM
@AndrewSavinykh Can the var languages = at the very top stay or woyld that also interfere with JSON?
 

« first day (153 days earlier)      last day (2341 days later) »