last day (18 days later) » 

2:37 AM
😀
@DestructibleLemon We're gonna need atleast 1 repo if we're gonna get anywhere
 
So how do we do this, first we write lang1 in lang2, then we write lang2 in lang3, and so on?
 
ok, so first things first, the initial interpreter
@ATaco wrong way round
lang0/bf/whatever we pick
in lang[k], write a compiler from lang[k+1] to lang[k]
 
Ah, so we write lang2 in lang1, then lang3 in lang2...
 
the only interpreter will be for bf
 
2:41 AM
The problem with that is that bf doesn't do io other than STDIN and STDOUT
 
it will be a derivative with one more command
instead of it being one input, it works like this
! inputs a line into the line variable
, reads one from the line variable and advances one forward
 
That, doesn't sound very useful.
When we can just read \n
 
but this is needed for interactive io
. outputs as usual
if you read eof with ! you get infinite 255?
read eof from a line and you get 0
hi wheat
did I invite you to this project?
do you want to join?
 
I don't see why it's needed for interactive io.
 
2:46 AM
When , is called, ask the client for a line, buffer the rest of it. When the buffer is empty, repeat untill EOF
 
hmm
good point
you should have explained this sooner
 
You should just be psychic, gawd.
 
anyway, when exactly is input buffered?
wait I think it is implied
nvm
so, first we have to write the interpreter
also it should have a decent semi-optimising parser*
 
local buffer = {}

function io()
	if #buffer == 0 then
		for s in io.read():gmatch"." do
			buffer[#buffer+1] = s
		end
	end
	if #buffer == 0 then
		return 0
	end
	return table.remove(buffer,1):byte()
end
Psudo Lua implementation
 
ok, that is the next thing. what language should interpreter be in?
 
2:49 AM
JS?
 
I like python
 
I do not like python
 
don't you know python though?
 
Not well enough.
 
ok, lets have a vote
I vote python
 
2:50 AM
Look it's basically 1v1 I might as well vote Lua
 
I am the owner so my vote breaks ties
anyway, I was also thinking about maybe machine code could be lang0
 
The funny thing about that is, for all intents and purposes I can't write Python
 
probably not though
@ATaco well, it's pseudocode like 70% of the time
plus imports
anyway I want to write the parser. should I put a decent effort into this?
 
.If you can write JS, we should be using JS.
 
I cannot
 
2:54 AM
I vote C#
 
so, it looks like the room has made popular our project?
@Phoenix you aren't even a part of the project
 
Can I join?
 
Languages I am confident to write in for this project are: Java, Lua and JS.
 
Java wouldn't be bad.
 
2:55 AM
@ATaco well, there is going to be literally two files in python if I choose python
or two programs
 
There will be one in Lua.
 
but the second one is minor anyway
 
Write it in bash
 
actually there should be only one
it depends on whether we want the bf compiled codes on the repo or not
 
Actually I should find out what this project is before joining
 
2:57 AM
Look, you can write the program in Python if you want, but know that i won't be able to help with it.
 
So, you're planning to chain together a ton of compiled to eventually compile BF?
 
kind of
@Phoenix each of the compilers themselves is compiled to bf
@ATaco ehh, I mostly just need people to contribute to compilers
hmmm I just realised I'm not very good at a lot of things, again
like deciding how input should work for the bf interpreter
@ATaco I need your help deciding on something: how should the bf interpreter take the program as input? if you take it by a file path, it doesn't work as well if you wanted to give input that has just been made?
hmm, I guess I can figure out how to use EOF?
maybe an exclamation mark will be EOF, just so that the programs look surprising
,[.>,]!
5 seconds earlier: quick, cat something!
ok no one is here any more ;_;
 
3:23 AM
I am
 
actually that program was not golfy enough!
,[.,]!
 
0/10 fails on null bytes
 
0/10 null bytes would be eof anyway
0/10 stop whinging about how the language works
 
Why are you guys starting with BF, that sounds awfully hard...
 
EOF is -1
 
3:29 AM
OK, so if you're compiling to BF, what are you compiling to BF? Do you have a second language yet, or are you just trying to implement !?
 
,+[-.,+]!
 
@ETHproductions its kind of just new langs and what not
@ETHproductions you get higher and higher level
 
Sorry, are you compiling down a chain (i.e. compiling BF to CJam to Jelly to whatever) or up a chain (i.e. Jelly to CJam to BF)?
That is, is BF the last lang in the chain, or the first?
 
@ETHproductions everything compiles to bf
also how the hell does re.sub work it doesn't even replace anything what the heck
 
Are you sure...?
TIO example?
 
3:50 AM
nvm
it was me being stupid
 
I just want to understand what you're trying to do right now
Are you working on writing a compiler from another lang to BF?
 
well, I have the preprocessing done, now to make the parser
@ETHproductions nope, bf interpreter
which I haven't done before, unless you count Turtlèd as similar, but I won't use that as experience because that was bad
 
Ah. That shouldn't be too hard, unless you're adding a bunch of extra features
 
the algorithm I am going to use will work like this: for strings of [\-+<>]+, the parser writes down which cells are affected and by how much
 
hmm, what does that accomplish?
 
3:53 AM
and then how much it moves to the side
@ETHproductions it makes it more efficient
and also I get more parser building experience?
 
 
2 hours later…
5:57 AM
I have almost completed the parser, and then the executor should be simple from there
 
 
5 hours later…
10:47 AM
Ok I have pushed the interpreter and a readme to the repo
 
 
12 hours later…
11:06 PM
@Phoenix do you want me to invite you?
 
halo
wat is compierl chain
 
well, so lang0 is InterBF, brainfuck but with interactive IO
then, taking the highest lang[k], make a compiler for new lang[k+1] to lang[k]
when you do this a bunch of time, you can write a program at the top, and chain it through the languages to bf
if you want to join I will invite you
again, @Phoenix you expressed interest in this, do you want me to invite you?
@Downgoat if you want to join, I need your github account
 
No I changed my mind
 
@DestructibleLemon vihanb
 
11:10 PM
k
 
@DestructibleLemon oh so basically code -> Lang1 -> Lang2 -> ... -> LangN -> output?
 
I would be going to class now, but my online timetable is being annoying and saying I'm not registered ಠ_ಠ
@Downgoat nope, code -> langk, ->... lang0 -> interpreted by python
 
ono ;________; wai python
 
because this is what I can program
but it is still bf so it doesn't matter
 
ono ;_;
 
11:14 PM
why ono? it is just the language I picked to program in. you do not have to consider it for the purposes of this task
 
that mean i have to program in python if i contribute
 

  last day (18 days later) »