« first day (1896 days earlier)      last day (2947 days later) » 

12:00 AM
@isaacg Could I pull the doc and make a huge improvement?
 
@Downgoat No it doesn't
It goes from code to AST in one step
The RPN stack is because it shunts operators
 
@KennyLau I'm totally open to pull requests
@Downgoat You don't need a tokenizer if everything's 1 character
 
@quartata okay, then have you finished a lexer for pytek?
 
Jolf only has one phase: interpreting. it does parsing and evaluation in the same step >_>
 
12:01 AM
@Downgoat It's just a parser.
It doesn't work in the way traditional interpreters work. We refer to the interpreting in stages instead
Stage 1 takes the code and makes an AST
 
does anyone know any good blog posts on building a language?
 
Stage 2 takes the AST and turns it into a slightly more interpreter-friendly tree of special objects with stuff
Stage 3 is when the tree is traversed and stuff gets run
And yes it all works currently
 
@quartata lexer = the thing that goes over the code
 
@Downgoat I know what a lexer is.
 
12:03 AM
The lexer and the parser are all one stage.
 
okay, you said it was just a parser before
oh wait
 
It is.
 
>_> I'm an idiot
 
Concatenative languages are great
CJam is concatenative
 
JavaScript languages > all other languages
 
12:04 AM
What is concatenative?
 
JavaScript can run on Internet Explorer; how can it not be the best
 
@CᴏɴᴏʀO'Bʀɪᴇɴ The more formal way of saying stack-based
 
oh really? TIL
 
when you can write another language inside a language you've written... that's success
 
Why not postfix?
@Quill I need to do this now
 
12:06 AM
@CᴏɴᴏʀO'Bʀɪᴇɴ That's not a paradigm that's a syntax style
 
@Quill brb writing language inside cheddar
done
 
@quartata oh. then what's pyth and jolf? Procedural?
 
@Downgoat maybe finish cheddar first ;p
 
@CᴏɴᴏʀO'Bʀɪᴇɴ GO DO YOUR HW
 
12:06 AM
@Quill :/
 
AHHHHHHHH SOWEE FORGOT
 
okay, fine
 
WTF IS WRONG WITH ME
 
@CᴏɴᴏʀO'Bʀɪᴇɴ STAHP FORGETTING
 
PRESSING CTRL+W BAI
 
12:07 AM
@CᴏɴᴏʀO'Bʀɪᴇɴ SAME PROBLEM WITH ME, BUT JUST DO IT
bai
 
@EᴀsᴛᴇʀʟʏIʀᴋ you missed it, I was batman in voice chat earlier
how could you miss it
 
Hi batman @Quill
 
@Quill NOOOOOOOOOOOO
 
or were you here this whole time?
 
@Quill i don't believe you.... >_>
 
12:08 AM
I still see Conor…
also why is Riker in small caps?
 
funness
I have come to the small cap side.
 
 
Finishing the Cheddar parser feels like PPCG graduation. I am so damn excited but I don't know what to do with my life anymore...
 
Serial voting on my questions ಠ_ಠ
 
@ZachGates upvotes or downvotes?
 
12:14 AM
Both
@Quill Skype group? :o
 
if anybody sees conor, tell him to get his ass doing hw.
@ZachGates both skype and discord exist.
 
@ZachGates discord
@EᴀsᴛᴇʀʟʏIʀᴋ what are you, his mother?
 
no.
his annoyer.
@ZachGates I always thought your profile pic was you wearing a white and goldish shirt.........
 
@CᴏɴᴏʀO'Bʀɪᴇɴ Yes, procedural
 
Now I realize that is a brick arch.
I just realized codejam starts in ~24 hours.
 
12:20 AM
peanut butter and codejam
 
@EᴀsᴛᴇʀʟʏIʀᴋ Wait.. it isn't??
 
@quartata cool
 
@ZachGates I think arch in the bg?
@CᴏɴᴏʀO'Bʀɪᴇɴ ...
 
....cussing son of a cuss word
 
sowee
you can stays
i no bugs
 
12:24 AM
YAY
 
oh I finished the layouts!
 
@CᴏɴᴏʀO'Bʀɪᴇɴ @CoolestVeto @Downgoat: github.com/RikerW/Small-Caps-keyboard-layout
 
@EᴀsᴛᴇʀʟʏIʀᴋ how do I install it?
 
12:25 AM
read the readme
 
sigh I hate reading docs...
 
it's like one paragraph long
 
@Quill !!!
@EᴀsᴛᴇʀʟʏIʀᴋ please golf
 
one paragraph... more like one word
 
12:26 AM
TL;DR: Put it in ~/Library/Keyboard Layouts/.
 
also can I remove the space after "Fraktur" or will that break it?
 
@Downgoat it shouldn't matter
 
Sᴍᴀʟʟ ᴄᴀᴘs
 
@EᴀsᴛᴇʀʟʏIʀᴋ It's actually a fairly edited photo
 
ʏᴀʏ, ɪᴛ ᴡᴏʀᴋs!
 
12:27 AM
nice job m9
 
@EᴀsᴛᴇʀʟʏIʀᴋ ᴛʜɪs ɪs ᴄᴏᴏʟ, ɢʀᴇᴀᴛ ᴊᴏʙ!
 
And you added it to input sources in system preferences?
And did you even see the others?
 
𝕪𝕖𝕤
ℑ 𝔡𝔦𝔡
 
I don't know if anyone else noticed this but this is cool (read demented):
1
A: "Hello, World!"

AdnanBTClang, 53 bytes My newest invention! BTClang is short for Bitcoin language. Although it has nothing to do with bitcoins, it shares some similiarities with this language. Code: 4|$&2h 2|A% 3|Im! 3|%([F 2|!4P 2|"Cv 3|zJO 1|!M 2|!&r Explanation: First of all, each line of the code consists of...

 
12:32 AM
what does Python do if you add two things that can't be added together?
 
ok, that is what Cheddar's behavior will be then
 
Python 3.4.2 (v3.4.2:ab2c023a9432, Oct  6 2014, 22:15:05) [MSC v.1600 32 bit (In
tel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> 3 + ""
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'
>>>
 
what should Cheddar's behavior be for int+string?
 
Check if the string is an int
 
12:34 AM
int.toString() + string
 
add them as ints if it is (or a float)
 
should it do String:int + string?
ok
writing the interpreter is waay more fun then writing the parser...
 
true
 
Coercing to int is nice on paper but it could result in nasty things in practice
 
12:35 AM
I like writing a parser
 
If you do do it like that do it like Perl: + is add and . is concat
 
except for the edge cases
 
+ always tries to coerce to int
. always coerces to string
 
@Downgoat, for primitives you should try and do it like javascript, but for types that inherit Object, throw an error IMO
 
@Quill NO
 
12:35 AM
@Quill oh no no no
 
and why is that
 
JavaScript has the stupidest type casting system
 
please no
 
[] + [] should NOT be ""
 
Array isn't a primitive....
 
12:36 AM
That's true, but helpful for JSFuck
 
@Quill it is (in Cheddar)
 
[] + ![] = false
JS everybody
Also @Downgoat please PLEASE make integers and floats separate types
 
{} + {} = NaN
@quartata why?
 
@Downgoat oh my
 
console.log([] == "") //true
console.log(![] == !"") //false
 
12:38 AM
Because [] is truthy.
 
@CᴏɴᴏʀO'Bʀɪᴇɴ that is dumb. [] should be falsey
 
@QPaysTaxes that's a chrome and V8 thing, not JavaScript spec
 
10000000000000000 == 9999999999999999
true
 
@Downgoat ik
@quartata That's just number types, not just javascript
 
@quartata no, make the default int type bignums
bignums are fucking magic
 
@CᴏɴᴏʀO'Bʀɪᴇɴ That's why integers should be separate from floats
 
@quartata Cheddar will use my ulta-fast BigInt library for large numbers
 
Floats lose precision like that
@Downgoat Has nothing to do with the size.
 
It's because all numbers are floats in JS
They lose precision which causes dumb shit like that
 
12:39 AM
bigint = infinite prescision
 
If they were longs or something that wouldn't happen.
 
I mean, it would happen, just at a very high number instead
 
Please PLEASE do NOT make integers and floats one type
 
@ZachGates check your skype account.
 
@quartata shut up already >_>
 
12:40 AM
Oh, long int instead of long float
 
@RenderSettings Yeah.
 
@quartata bignum = infinite prescision
 
@CᴏɴᴏʀO'Bʀɪᴇɴ You understand why that's a problem right?
 
there is no need to sepearate them
 
bignum = black magic
 
@Downgoat SPELEING
 
@Downgoat Why use a heavy-memory arbitrary precision number when a long can hold both those numbers
 
incidentally, Hoon's atoms are bignums and it's glorious
 
@quartata I really don't care honestly. it doesn't affect my coding, so I don't care. If it were to, then I'd just use a different tool.
 
12:41 AM
@QPaysTaxes ints will convert to bigints once a certain limit has been exceeded
 
>heavy-memory
bro do you even gmp
 
@RenderSettings Yes I do
Still no point in using one when a long is fine
 
@quartata Not false, "false".
 
@Dennis even worse
@QPaysTaxes [] + ![] doesn't produce false it produces the string "false"
 
12:42 AM
> [] + ![]
< "false"
 
haha what
 
@CᴏɴᴏʀO'Bʀɪᴇɴ finished your hw?
 
It makes sense if you actually consider JS's arithemtic process.
 
![] = 0
[] = ""
 
12:42 AM
@Maltysen not even close
@quartata that's not right
 
> {} + {}
< NaN
> ({} + {})
< "[object Object][object Object]"
 
[1,2] + [3,4]
"1,23,4"
rofl
 
@Dennis ALL OF THESE EXAMPLES ARE PERFECTLY FINE, MOVE ALONG CITIZEN
 
@Dennis ok, that one I don't get
 
I think it's [] + false -> "" + false -> "false"
 
12:43 AM
oh, I get it
 
I'm planning on writing a blog post that explains that javascript stuff
 
It coerces the boolean to a string
@Quill You can't defend this kinda stuff. I'm sorry, it's just wrong.
=== is great though
 
@quartata so useful though
 
Not even Perl does this level of coercion, and Perl freaking STORES numbers as strings
 
@Quill Please write it at least unbiasedly, I do not want to read another fucking bunch of vapid nonsense
 
12:44 AM
@quartata I can and will defend this stuff... and then I will eat a pizza
 
@QPaysTaxes Well, it's one of three ways it can store it.
 
@Quill \o/ js pizza shield
 
Depends on the context.
 
How can you attack JS if you stand behind a shield of perl?
 
12:45 AM
@Maltysen (Forgive my terminology. I have no interest in learning JavaScript properly.) {} is a code block in the first example, but a dictionary in the second.
 
That...might be even worst?
 
@Maltysen Really? The last thing I want in production code is having to spend 10 minutes figuring out how something gets coerced and having it explode in my face
 
@CᴏɴᴏʀO'Bʀɪᴇɴ do you mean that from the perspective of a javascript hater or fanboy
 
@Quill fanboy
 
@quartata i'm not saying its good overall, just that its useful (but IMO tink its is good overall)
 
12:46 AM
@QPaysTaxes PascalCase for classes. camelCase for methods
 
Although both terms are derogatory IMO please don't use them in any intellectual debate on JS
 
@CᴏɴᴏʀO'Bʀɪᴇɴ where did he do that?
ohai @Phrancis
 
@quartata There's no such thing. the same shit is thrown around every time
 
12:46 AM
@Maltysen Useful in golfing that's for sure
 
@Dennis why is it different?
 
> Everything Jelly has. 'Nuff said.
3
...
 
@CᴏɴᴏʀO'Bʀɪᴇɴ did you mean like "don't be a biased fanboy" or "don't be a biased hater"?
 
@Quill Be unbiased
 
Oh shit does that form show my real name on my Google account
 
12:47 AM
@Maltysen Because a code block in parens would be a syntax error, so it's assumed to be a dict.
 
@Dennis Code blocks aren't a type; I think that's just what happens when you add dictionaries
 
@Dennis oh that's wicked cool
 
> Number, PIZAAA
who is posting these ._.
 
@Downgoat sowee
 
12:48 AM
@quartata empties eval to undef iirc
 
I only did that one.
 
@QPaysTaxes Because I have a Google+ account for RL shit
And I was using Chrome on an old computer where I don't have a different Google account as default
 
@quartata it only stores the timestamp of posting
 
@Downgoat OK, thanks.
 
Can we see results?
 
12:49 AM
@quartata are you a criminal or something?
and ^^
 
@EᴀsᴛᴇʀʟʏIʀᴋ No...
 
Then why are you so afraid?
Just wondering.
 
@CᴏɴᴏʀO'Bʀɪᴇɴ ^
 
Because his name is "Herbert Tata"
 
@EᴀsᴛᴇʀʟʏIʀᴋ @quartata IF YOU HAVE NOTHING TO HIDE YOU HAVE NOTHING TO BE AFRAID OF
 
12:50 AM
Not a fan of having my privacy invaded, that's all
 
> varyable
hehe
 
mapToFortyTwo haha
 
> {42}
< 42
> {42:42}
X Uncaught SyntaxError: Unexpected token }(…)
> ({42})
X Uncaught SyntaxError: Unexpected token }(…)
> ({42:42})
< Object {42: 42}
@quartata ^
 
Whoever posted "split to array grid of chars and rows". could you explain what that is supposed to mean?
 
@Quill That was mine :D
@Downgoat That was me
 
12:52 AM
@Dennis the second example works fine on chrome
 
string.split`
`.map(x => x.split``);
 
ah, okay
 
@Quill The latest version of Chrome wraps parens around everything you execute in the dev console. It's not supposed to do that.
 
> String how do I get to the bus stop?
ಠ_ಠ
 
It's not golfing, just ES6.
 
12:54 AM
I'd argue using template strings to simplify the parenthesis on the function is golfing
 
@Downgoat where is this from?
 
@Downgoat Anyways, submitted a whole bunch of built-ins
 
(serious ones)
Tell me if you need any explanations
 
12:55 AM
@Maltysen from the Cheddar built-ins reccomendation
 
(they should be fairly obvious)
 
btw is cheddar a golfing lang?
 
No.
 
oh lel, some of my submissions should be ignored then
 
12:56 AM
@Maltysen it is a real big-boy language
 
I feel somewhat guilty because some (very few) of the ideas I'm slipping you are also ideas I'm putting in Pytek...
I'm sorry @El'endiaStarman I've betrayed you
 
> Any interable, my dog is named steve
...
 
OK...
 

« first day (1896 days earlier)      last day (2947 days later) »