« first day (1963 days earlier)      last day (2884 days later) » 

10:00 PM
Says who? You don't have to preserve backwards compatibility.
 
@Upgoat done, done, donezel washington
 
@Quill :D
 
Just call the dropped ones deprecated for a few years, then remove them ;)
 
@CᴏɴᴏʀO'Bʀɪᴇɴ Or is it now free to open crates? Because that's what I really want.
 
10:01 PM
AEIOUYMBPNDTSCHXK
 
@El'endiaStarman k one minute
 
@NathanMerrill ?
 
@Upgoat trying to come up with a good order for the alphabet
 
What makes that order better than the current one? I don't see much of a method to it.
 
vowels first. Then "MBP" are phonetically similar, and in the same manner as "NDT"
then "TSC" all can combine with "H", and "S" and "C" also sound similar to "X" and "K"
 
10:03 PM
You could argue M and N are more alike than M and P.
You should stick JG after Y though, since Y doubles as a vowel and and consonant, with J its closest.
 
its a 2x3 grid. its either MBPNDT or MNBDPT
 
Maybe reorder the vowels as well to make E or I closer to Y
 
oh, I didn't think about vowel ordering
what an oversight
 
English vowels are a mess though, so you could probably justify almost any order for them :/
 
UOAIEYJNDTMBPSCHXK
that's the fun is trying to put an order to chaos :)
 
10:07 PM
I dunno. I like arbitrary decisions made by people many generations ago also.
 
^
 
@El'endiaStarman uh... /,? +/?
 
@CᴏɴᴏʀO'Bʀɪᴇɴ What if I want to make spaces optional too? Like, support all of 1,2,3, 1, 2, 3, and 1 2 3.
 
oh, for a split regex?
 
I came up with /[,]?[ ]*/, but it matches nothing too, so multi-digit numbers get split.
 
10:11 PM
["1, 2, 34", "1 2 3", "1,2,3"].map(e => e.split(/, *| +/))
@Upgoat is it possible to include an entire file in node JS? Like a basic script tag in HTML
 
/(,| )[ ]*/
 
/, *| +/
shorter :P
 
@CᴏɴᴏʀO'Bʀɪᴇɴ I guess you could use fs.readFile + eval but I'm not sure. Your better off using module. Export
 
@Upgoat module.export each variable? o_O
 
Maybe just put all the code in one large object and export that
 
10:15 PM
oh, like a closure, thanks!
 
@Upgoat Large objects are always fun
 
@Bálint ( ͡° ͜ʖ ͡°)
 
it is just on my end, or does the image in this meta post preview on mouseover to a picture of a butt?
 
:P
@xnor ?
 
10:16 PM
@Upgoat You know, you could be a bit lees a perv
 
@Upgoat it's as i describe -- clicking through gives the correct image, but the mouseover preview does not
 
I'm not sure what you mean by mouseover preview
 
^
 
10:18 PM
this is new to me
 
this is relevant to my interests
 
maybe it's an extension i have
 
my guess it's with stack.imgur/imgur bug
 
on which browser?
 
chrome
 
10:18 PM
@Upgoat butt that's unlikely
 
ಠ_ಠ
 
@xnor no, it don't
 
anyone wanna help make the getting/quick start guide for cheddar? :3 I have no time
 
Thanks @PhiNotPi and @CᴏɴᴏʀO'Bʀɪᴇɴ. That did the trick.
 
@Upgoat That's not an excuse
 
10:20 PM
@El'endiaStarman ?
@Bálint yes it is
just a bad one
 
@Bálint ^^ and ¯\_(ツ)_/¯ you walked into it
 
@Upgoat ( ͡☯ ͜ʖ ͡☯)
 
what is that thing ._.
 
> they are ignored by the parser and act like comments, ignored by even the parser
please english correctly
> they are ignored by the parser and act like comments, ignored by even the parser
 
hhow 2 enrish im goat
 
10:21 PM
apparently hover zoom is the culprit
and probably caching
thanks everyone, i had forgotten that the mouseover preview is not a chrome default
 
@avocadjuic you should probably change your name, as avocad meme has been killed by mods
 
were you looking at a butt earlier?
 
@Upgoat Allowing linefeeds in strings is cool and everything, but that literally makes the code look like trash
 
@Upgoat wait really?
 
@Bálint multiline strings
 
10:22 PM
@CᴏɴᴏʀO'Bʀɪᴇɴ Yeah, that
 
@Bálint you don't like those?
 
@Upgoat Also, Cheddar is finished?
 
@CᴏɴᴏʀO'Bʀɪᴇɴ I like them, but not in production code
 
@Bálint Yeah, you're supposed to use \n but I've allowed it, as I'm giving the user the power in cheddar, and with great power comes great responsibility. So I expect the user knows what they're doing
@avocadjuic yes, v0.0.301-alpha is finished
though still not at a v0.1-alpha, I need code to recursively copy a class instance (and then yeah I can release it)
 
@Bálint I get ya, but it's still nice to have
 
10:23 PM
@Upgoat To make a quick start guide, I need to learn it, where can I do that?
 
@Upgoat "We desgined the language..." You and who?
 
@Bálint idk everyone in cheddar-lang orginization
i also had lots of input from people in here
 
@Upgoat So you
 
no?
@Bálint mainly him, me, conor, and mars/somebody.
 
10:25 PM
 
I am on left
 
Can I change access for "members" in GH organization? I don't wanna give other members write access to install repo because that has private keys
 
@Upgoat ?
 
myvar ::= String
I love this
 
:D
 
10:28 PM
@Upgoat Create teams.
 
@avocadjuic btw, do you still want Rennet on cheddar-lang org?
@mınxomaτ I do except if I create a new team I'll have to modify permissions again, correct?
 
@Upgoat [] + 1 + 2 + 3 = [1, 2, 3]
 
Yeah
You'd have to either way
 
@Upgoat No
 
@Bálint Idk how that would work but I'll see if I can do that
 
10:30 PM
@Bálint BNF is pretty
 
@MᴀʀsUʟᴛᴏʀ do you have it cloned or can I delete it now?
 
Adding something to an array would mean literally adding it to the array
 
@Upgoat I still have it locally
 
okay, so it's okay if i delete it?
 
@Upgoat Yes
@Bálint Not necessarily a good idea
The closest I would go is probably Ruby-style reopening/editing classes
 
10:32 PM
@Upgoat In one of the tutorials, I foun this: '10 + 10 = #{10+10}'
In a another one, I found this: '10 + 10 = \{10+10}'
:30363493 No, both of them refers to string interpolation
 
@Bálint oh, that's not updated, can you give a link to where you found that?
 
Make the second one lazily-evaluated
 
> If you don't like using false, you may use the alex variable which is preinitialized to false.
 
10:35 PM
# is the correct one
@Bálint Never do that
 
@MᴀʀsUʟᴛᴏʀ I've changed it to \ do you think I should change it back
 
You don't know if cQuery reassigns it
 
@Bálint that was a joke, lemme delete it
 
@Upgoat Whyyyyy D:
 
10:36 PM
okay... changing back
 
IDK, Ruby uses #, JS uses $, C# also (kinda) uses $: `$"foo{bar}" IIRC
 
PHP uses nothing
 
Maybe $ could be lazy evaluation? "Random number: ${rand()}"
 
If I remember correctly
 
Are you guys talking about string interpolation?
 
10:38 PM
@Upgoat Is the language loosely typed? What does [1, 2, 3, 4] + " Hello" equals to?
 
@RenderSettings Yes
@Bálint Nothing IIRC
Operator error
 
@MᴀʀsUʟᴛᴏʀ I don't think there's really a need for lazy evaluation syntax. I'm thinking of having a seperate class for lazy evaluation which will support arbitrary prescision math etc. like mathematica
 
@Upgoat Nice
 
@MᴀʀsUʟᴛᴏʀ I needed to read like 3 more sentences, to get to that part :P
I'm stupid sometimes
^Don't star this
 
^ Not the best way to get people to not star a message
 
10:40 PM
Saying dont star this is how to get stars in this room for some reason
2
 
@Upgoat @MᴀʀsUʟᴛᴏʀ It works
 
@Upgoat I was kinda working on a Mathematica clone, not sure if it'll help
 
@Upgoat That kerning...
 
I should make a language framework so it's easy and quick to make a lang considering how many languages are being made
 
@Upgoat I love how you explicitely mention, that there are no best or worst practises, then you put a "best practise" box on the control flow page :P
 
10:43 PM
@Upgoat Jison?
 
@MᴀʀsUʟᴛᴏʀ but that only does lexing
@Bálint :|
 
@Upgoat Not necessarily
 
2 days ago, by Quill
how do get mod diamond? I tri for 1 wek and no diamon
@Quill try for a few more days, apparently... :)
 
@Upgoat Can you change it to "tip"?
 
@Upgoat What do you mean?
 
10:44 PM
@MᴀʀsUʟᴛᴏʀ idk, maybe release some mashup of CheddarExec and CheddarLexer. Both do so much of the heavy-lifting in Cheddar, I'd feel bad for anyone making a language without them or an equivalent
 
Also, I think if you make a language that's extensible enough, you won't need a framework
 
true I was planning on custom literals in Cheddar which essentially allow to redefine the entire language.
@LuisMendo ?
 
@Upgoat Do you mean something like define in C?
 
Languages have more bitwise functions than we think..

Let all the bitwise operations be represented by a number from 0 to 15, where the most significant bit is f(F,F), and then f(F,T), then f(T,F), lastly f(T,T).

"and" would be 0001, "or" would be 0111

and = &, *
or = |, + (in some langs)
xor = !=
xnor = ==
0010 = >
0100 = <
implies (1011) = >=
1101 = <=
any more?
 
@Upgoat Too large for my taste :-) At least that's how it's shown on my browser
 
10:46 PM
Anyone fluent in JS: I will give +50pt bounty is someone makes me code to: Recursively copy a class instance in JavaScript.
@LuisMendo O_o it's supposed to be responsive. Screenshot?
 
@Upgoat I go at it
 
:D
 
@Upgoat instance.__proto__
 
@Quill what does that do
 
@Upgoat ??????
 
10:47 PM
@Upgoat Just an eval quine
 
@Upgoat Prototype of object
 
@Upgoat gets the iterable prototypes
 
@Upgoat Basically copy an object?
 
@Upgoat Screenshot:
 
@MᴀʀsUʟᴛᴏʀ basically in Cheddar's for loops. The expression eval function is destructive so I can't re-execute it to run the for loop again which is kinda a problem
 
10:48 PM
I'm working on overloading the base boxed constructors for a blog post at the moment, it's pretty cool stuff
 
@Upgoat D:
 
@MᴀʀsUʟᴛᴏʀ yeah but it must preserve the prototype, and proto, and all that fun stuff
 
I wonder whether other languages have cool features that I can write blog posts about
 
@Upgoat ES6 allowed?
 
@LuisMendo of you meant that part. Yeah, I should make that look better
@MᴀʀsUʟᴛᴏʀ yeah, even ES7
@Quill Cheddar pls!
I need advertising
 
10:49 PM
yeah but it doesn't have cool inbuilts I can abuse
 
yeah it does
 
I suppose Object.create(objectToCloneHere) would probably work
 
@Upgoat like?
 
0000: 0
0001: *
0010: >
0011: [ (left)
0100: <
0101: ] (right)
0110: != (xor)
0111: | (or)
1000: nor (no known equivalent)
1001: == (xnor)
1010: not right (no known equivalent)
1011: >=
1100: not left (no known equivalent)
1101: <=
1110: nand (no known equivalent)
1111: 1
 
@MᴀʀsUʟᴛᴏʀ oh shit that looksl ike it works, thank you so much, lemme test it
 
10:52 PM
Oh wait
that sets the original object as prototype
So they're not exactly identical
 
@MᴀʀsUʟᴛᴏʀ not recursive :(
 
@Upgoat The easiest way is probably to make eval non-destructive
 
@MᴀʀsUʟᴛᴏʀ yeah but that would make it a lot slower too
.shift is around 80x faster than [0]
 
Or have an interpretable copy of the code somewhere so you can reuse functions/blocks
 
@MᴀʀsUʟᴛᴏʀ what do you mean
 
10:54 PM
Wait you can't
Wouldn't replicating an object be more costly than the performance difference between .shift and [0]?
As long as it isn't recursively destructive though, you can probably shallow clone it
 
@MᴀʀsUʟᴛᴏʀ if you wanna give it ago: ide.c9.io/vihanb/cheddar go to interpreter/states/for.es6 and you'll see "Somehow copy" which says what needs to be copied and i have no idea how to do it
 
i.e. construct it however you construct a normal one, then copy properties across
@Upgoat Uh not right now (1. no laptop, 2. at school, no c9, 3. at school, no time)
 
So, if you create an object, the object itself will contain every variable of it
 
Perhaps I could on-demand request the items? Perhaps just send a delegate class which gets the statement as requested by the thing
@MᴀʀsUʟᴛᴏʀ D:
 
Then {object}.__proto__ is a another object, wich contains every prototype of it (constructor, attached functions, etc.)
Copying an oject is just filling these up
 
11:01 PM
14 mins ago, by Quill
@Upgoat instance.__proto__
 
@MᴀʀsUʟᴛᴏʀ :/ I tried that, I set two bounds which keep track of the evaluations pointer in the call stack but it didn't work
@Quill what does this do?
 
@Upgoat open the chrome dev console and see
 
> instance.__proto__
< ReferenceError: Can't find variable: instance
 
@Upgoat That's the list of prototypes of an object
 
that returns the item.constructor.constructor()?
 
11:02 PM
@Upgoat a = new XMLHttpRequest(); a.__proto__
It's just an object with the prototypes of the main object
 
so it doesn't clone it D:
 
No, but you need this to clone it
 
1
Q: Are the two sets equal

Liam{}is the empty set. You may use () or [] if you choose. We aren't going to rigorously define "set", but sets all satisfy the following properties: Sets follow the usual mathematical structure. Here are some important points: Sets are not ordered. No set contains itself. Elements are either i...

 
I can use new foo.constructor which does the same thing
 
@Upgoat The two arent the same thing
 
11:07 PM
why/how not?
 
The constructor is a prototype, but the prototypes aren't constructors
{object}.constructor is just a shorter path
{object}.__proto__ contains the prototypes too
Example:
function A() {
   this.a = 1;
   this.b = 2;
}
 
 
A.prototype.hello = function() {console.log(this.a)}
 
O.o oh
:| but how 2 clone
 
You remember object.create?
That returns an object, wich then contains the original one
So cloning an object is as simple as
newObject = Object.create(oldObject).__proto__
boom, clone
 
11:11 PM
wat relly ok lemme see if its really work
 
Bálint & Quill combo special, served with a side of cheddar
 
Object.create is a way to create an object, wich extends a another one
@Quill High five, team work
It's pretty much abusing the nature of Object.create
I still haven't figured it out what it want to do, but I assume it's about extending an object
 
@Bálint not recursive :(
> b = magic(a)
> a.a[0].a[0]
< "goat" = $4
> b.a[0].a[0]
< "goat" = $4
> a.a[0].a[0] = "sheep"
< "sheep" = $5
> b.a[0].a[0]
< "sheep" = $5
where magic is your copy function
 
maybe some usage context will help out
 
okay, basically it doesn't copy recursively
 
11:15 PM
@Upgoat Hacky cloning:
 
pls sho
 
0
Q: Golf all the 16 logic gates with 2 inputs and 1 output!

Leaky NunFor example, the gate A and B is a logic gate with 2 inputs and 1 output. There are exactly 16 of them. Your task is to write 16 programs/functions which implement all of them separately. Your functions/programs may share code. They are valid as long as they output truthy/falsey values, meani...

 
var newObject = JSON.parse(JSON.stringify(oldObject))
 
oh god no
doesn't work in many cases too
can't do classes
 
@Upgoat Are for...in-s allowed?
 
11:17 PM
:/ no, I think i'll just refactor to be non-destructive
 
YOu can do it recursively, but you need to loop trough the elements of the object
@Upgoat If you can solve me this problem, I can solve your problem
 
ok
 
@Upgoat And if I use hasOwnProperty?
 
idk, for ins are slow anyway
 
11:35 PM
function clone(source){
    var result = Object.create(Object.prototype, source.__proto__);
    Object.keys(source).forEach(prop => result[prop] = source[prop]);
    return result;
}
grabs the prototype and enumerable properties of the source
If you have ES7 support, you can use Object.entries there instead of Object.keys
 
Python people: why does this not work?
[lambda a,b:(i>>a*2+b)&1for i in range(16)]
 
@Quill is recursive?
 
it copies the properties directly, I don't know that it would need to be recursive, but I can modify
 
yes pls
 
function clone(source){
    var result = Object.create(Object.prototype, source.__proto__);
    Object.keys(source).forEach(prop => result[prop] = (source[prop] instanceof Object ? clone(source[prop]) : source[prop]));
    return result;
}
 
11:44 PM
@Quill OH MY GOD WORKS :D :D: D: D: D: D: D:D :D :D :D :D :DD what question do you want your bounty reward on
@Quill do you have website or something you want me to link to credit you
@Quill that is very golfed for a code reviewer :D
 
ermahgerd quill's name is so shiny
Language Learning, eh? Cool
 
@quartata It's cause he got married.
 
@Quill halp, how do i set breakpoint in node's shit debugger
 

« first day (1963 days earlier)      last day (2884 days later) »