« first day (19 days earlier)      last day (938 days later) » 
00:00 - 23:0023:00 - 00:00

00:18
@Downgoat BTW why are you working on Crayon :( it's so verbose
ಠ_ಠ
idk its somehting easy to wokr on
:( :( :(
00:37
ok i can work on VSl
but idk how to bison
Oh bison is done
I can push
But it still has too many (19) conflicts :(
Well, done-ish
all operators are there :D
ok i figured out what shift-reduce mean so i can halp reduce conflict maybe
@Downgoat :D yay
link to c9 :3?
You can work on class and trait etc, brb uploading to c9
@Downgoat wait need to upload first
00:44
ok
i have no idea how to JIT interpreter though
dont u have to convert to machine code for JIT?
Yeah we need to do that later
But we need the implementation details first
like how exactly do we get pointers to all our objects for the gc
@Downgoat here I need you to press ctrl+d a lot because by browser is annoying and captures keyboard shortcuts
@ASCII-only wat ok
@ASCII-only i think i borked someting
@Downgoat Because I need to test but bison uses EOF
@Downgoat ;_;
btw im geting chat rate limited, can we talk in C9 chat?
@Downgoat Okay
@Downgoat :( halp you're not responding on c9
00:53
sorry :(
@Downgoat ping
01:10
@Downgoat why did you make everything xor ;_____________;
wat
FUCK
stupid find-replace
ok i fi
:D yay
Also btw there's Monokai for c9 if you don't use it already
ik
its great
ok
so what can i do to halp :3
Decisions
Go up like 20 messages
on SE chat or C9
01:19
SE
30 mins ago, by ASCII-only
@Downgoat ;_;
i went 20 message up .___.
is goat being stupid again >_>
yesterday, by ASCII-only
We need 1. implementation details 2. trait/class/interface/function syntax - what is allowed in them? e.g. we should probably have getters/setters in class/interface/trait, nested functions should be allowed
@Downgoat Whoops sorry didn't count
I think we should use cheddar class syntax/interface syntax
Ok
pls press ctrl+d on c9? i have basic class parsing just i have no idea if it works
don't think I added astify for it either whoops
@Downgoat
01:46
hai
ok did
:( terminal borked for me
nvm it's back
halp what is cst
conret syntax tree
ok i see y so many conflict
e -> e o e is like definition of ambiguity
no
this is shift reduce meaning very few conflict
see parser.output
shift reduce is weird
it's a parser where left recursion is recommended over right recursion
01:54
ik
but e -> e o e | * e will cause shift/reduce conflict
* e?
Also where is that
@Downgoat According to this we have an AST
@ASCII-only idk
@ASCII-only * is wildcard
@ASCII-only i am refering to nested expression
expression can be shift: e o (e o e) or reduce (e o e) o e
example?
btw that is what precedence is for
I fix cast precedence by changing like 10 chars
yea
wait so bison does associativity??
Yes
It even borks on 1..2..3 (which is invalid weird siamese range)
btw idk if i mentioned but i think we should have Dart string interpolation (like perl's too, i guess) e.g. '$foo plus $bar is ${foo + bar}'
02:08
> Use const for variables that you want to be compile-time constants
^ good idea
Yes
also final
will do later
@Downgoat halp what would ast look like
ok
will try to do again
Program
 |- StatementExpression
    |- Plus
        |- Property
            |- Foo
        |- Times
            |- 3
            |- 4
example for 3 * 4 + foo
wow
Why no Number
dart looks like cool lang
@ASCII-only yeah u can have number
i just omited so faster to type
Is that not what the parser does right now
02:11
no
????????????
or at least not as AST shows
wat how
also press ctrl+d again
oh
idea:
type? is nullable and [type name] is optional arg from dart
that seems like good idea
and {} is named arg (these are like babel as well)
02:13
O_o
example?
You remember stuff like function ({foo : number = 1}) right?
wat
pls no tell me youre doing that in VSL
In babel you would pass functionName({number: 100})
@Downgoat Yes
WAT WHY
DIS MAEK NO SENSE
i mean you aren't passing named param
In VSL (and dart) it is functionName(number = 100)
@Downgoat ???????????
02:14
u are passing object
oh
I reccomend func(argOne: 1, argTwo: 2)
looks neat
@Downgoat The first one is function declaration
functionName(number = 100) this?
This is function call
wat why
Or we can do it like C# and make all arguments nameable and arguments with defaults optional
02:15
I think u should do like swift:
func name(int val: param = 1) is decleration. and to call you can do name(5) or name(param: 2)
Hmm ok
unless you are doing val: int
for type
So like C#
anything with default value is both optional and nameable?
dpes dart compile to JS?
they have striking resemblance
It can
02:17
@ASCII-only i if has default value, yeah its optional, but not sure what you mean by "Nameable"
Dart has VM, mobile and web (JS) backends
@Downgoat you can do argName: argValue for any args with default value
@Downgoat idk the actual terminology
@ASCII-only you should be able to do that on args even if they dont have default value specified
so just make it bork if not all arguments specified?
only if arg doesn't have default
02:20
dart look like cool language brb learning
@Downgoat Does that mean you're porting cheddar to DartVM
no
syntax just look cool
multiple statements bork :(
;____: ono
idk how to detect if top level or not
02:23
gaot wil try halp
wait
is this maybe tokenizer bork?
No
everything is fine
just idk how to detect if program is top level
wat dis mean?
so every time it parse a statement it prints tree
look at c9
also how is the tree not ast
you have redundant BinaryExpresion thing
but otherwise yea astt
@Downgoat but the article you link to say binaryexpression node is fine
02:29
ik, this is ast but binary expression is not needd
yeah too lazy to make it print differently
wow it took me way to long to figure out what vsl meant when you said it in the crayon room :P @Downgoat
I'm tired
@ETHproductions IIRC you live in east coast so its 10-11:00 for you?
ya, 10:38
O.o wow thats late
i go to sleep at around 8:30 so i can getup at 5:00 for school :P
02:41
5:00 seems really early to me
Of course, I wouldn't know 'cause I've been homeschooled my whole life
:O
you wake up at 5?!11!1!!!!
@ETHproductions idk if good or bad. i mean you dont have to deal with bad teacher
today french teacher say i didnt turn in homework and she wont fix zero, but i have audio recording of her affirming I did, and timestamped phtoographic evidence
Most of my courses are self-taught
so like online?
@Downgoat Wait, what? How did you get an audio recording and photographic evidence?
02:44
phone is very useful
@Downgoat Yeah, that and a few books
@ETHproductions she got fired from my preivous school but when I heard i she came back to current school i learned to get evidence of all work
I can understand that
administration at public schools couldn't give less shits about campus quality/students/teachers
can you give your evidence to someone else?
02:46
> oh, the bathroom stall's door fell off and there's no soap, paper towel, or toilet paper? its ok, well just put money into staff restroom
@ETHproductions ill have too see
i have appointment with forign language director
@Downgoat I really hate administrations like that
yeah, like bush administration :P
idk if im allowed to make jokes like that
I don't really mind, but someone else might
I'm gonna work on crayon docs now
@ETHproductions Self-taught? Is stuff marked?
@ASCII-only There's a curriculum that schedules most of it
> This project contains more than 30,000 files. Features that operate across multiple files may be disabled or behave as if the project is empty.
Thanks Brackets, that's babel's fault :P
03:02
@ETHproductions D: brackets can't exclude folders?
Also is that not Node's fault
and this is why you usually have a /lib folder with source files
IIRC babel has 1:1 source file number to build file number ratio (at least by default)
@ASCII-only it's the node_modules folder with 30000 files
@ETHproductions That's what I thought, can't you just move source to /lib?
If babel is the only dependency maybe just write in ES5
Excluding node_modules, there's 15 files in the project: 5 in the main directory, 5 in /src, and 5 in /lib
Wait what are /src and /lib for
/src is for es6, /lib is for transpiled
That's how downgoat set it up
03:06
Then why not just open /src
I think I will
That's where the entire project is anyway
I was trying to open the /docs folder though, which doesn't show up, so I must be on the wrong branch (master vs. gh-pages)
@ETHproductions :P
I'm still a n00b at git :P
03:09
You know how to switch branches right?
yeah
what the heck, brackets still gives me that error when I open only /docs
...
wat
hmm, now it doesn't give it to me anymore
Solution: don't use brackets :P
What would you suggest then for Windows?
03:14
Depends what you're looking for
If you just want a decent editor with directory support Sublime should do (Atom is really slow for me but you could try that as well - Atom has plenty of linters IIRC)
Never bothered to check what plugins Sublime has but name a plugin you need and I can see if Sublime has it
I'm just gonna stick with brackets for now because working is generally faster than meta-working
Meta-working?
i.e. just doing work is generally faster than figuring out the best way to do the work
For example, xkcd.com/1319
But you don't need to write a program, it's already there :P
@Downgoat pls ping when you're back
@ASCII-only no no, I mean deciding which is the best text editor for the job takes longer than just doing the job
Maybe this will sum it up better: xkcd.com/1445
03:26
Not the best text editor for the job - the best text editor overall
well, that too
I don't really want a buggy editor
I'm going to go type some docs now, and if I see more bugs I'll switch to Notepad++
If there are bugs in that, I'll use notepad
 
12 hours later…
15:20
@ETHproductions use vim :D
itll take a minute to learn but its really powerful
you can really save yourself a lot of tome
16:09
> tome
I like brackets for now though, so I'm going to stick with it
ok, whatever you like best
Though brackets cant do python
I'm not doing python, I'm doing node
@Downgoat wait, why not?
Idk
brackets pretty much is only good for front-end (html, css, js)
otherwise most other langauges it breaks on
That's what I do most of the time
JSLint doesn't like "export" :P
Use JSHint with es harmony enabled iirc
16:27
There, got it
Works like a charm :)
@Downgoat Have you done anything more on your local Crayon repo?
nope, not yet at least
good, I've added a bunch of stuff and I'll push in a little bit
ok, cool
 
4 hours later…
20:47
@Downgoat wait wat it says you have three of the same terminal open
@ASCII-only yea
21:15
@Downgoat pls work on design thing?
crap wrong heyboard (im attempting to learn dvorak to compensate for hooves)
@ASCII-only design thing?
@Downgoat what is a heyboard
@Downgoat sketchboard
@Downgoat is that not going to make you have >100% more spelling mistakes
@ASCII-only ;_;
What you need is Dragon Gaot NaturallySpeaking
wait that doesn't translate from GaotSL to english nvm
GaotSL = Gaot Speaking Language
should we work on function/class/interface/trait grammar @Downgoat
ok
"func" identifier arglist? identifier? (=> expr | { code })
21:23
ok
what will code be
also what is the identifier before the =>
@Downgoat
room topic changed to VSL: ide.c9.io/somebody1234/vsl (no tags)
;_; dvorak is hard
@ASCII-only oh, that is recursion name
e.g.
oh
wait wat
func fibonacci num f => num < 2 ? 1 : f(n - 1) + f(n - 2)
f is TCO
21:44
TCO?
taill call optimized
@Downgoat but why have identifier why not just have special variable
you can do that too
identifier is weird syntax
you'd have to check if it's used (i.e. if space should be allocated for var) which will be slow since AST searching is slow
@ASCII-only yea tru
21:51
@Downgoat ?
@Downgoat but we don't search ast, at compile time we build a variable map, if it's not compiled but jitted instead we just try to look up the variable
@Downgoat confus levle Infinity + 1 atm
._.
I think you are very tired :P
No I actually have no idea what you mean
Somehow I'm not tired at all
;_; oh no does that mean i need to go see doctor
@Downgoat pls explain
@ASCII-only ;_; i am guessing yes
depends on how much coffee you have had
:OOOOOOOO
yea you need to see doctor
22:03
ok apart from that pls explain what you mean when you say we need to check if it's used ;______________;
and my laptop needs to see doctor too its internet keeps dropping out
@ASCII-only :D so you can go in one trip
gas = saved
@ASCII-only i.e. functions are probably going to take up lots of memory
if you put function in a VSL variable, you are taking memory for that
you should see if f is actually used
???
1. what
btw, i add stuff to sketchboard
22:05
2. we should use special variable IMO, no variable check needed
the special variable will reference function of origin implicitly
:O that's a lot of stuff on sketchboard
what is transverse ast
Do you mean traverse
so optimizer collapses constant literals?
@Downgoat
@ASCII-only yes
ok the thing in the chain still says transverse
halp what is visit
i added note
:O wow so fast where did your hooves go
still don't understand, looks like it says nothing about execution flow
Also IMO not everything should be a VSLObject, primitives are much better as primitives instead of super wrapped primitives
22:21
@ASCII-only they need some wrapping however
They'll need references and defined behavior for VSL ops
No
Well not really
we just have a sequence of machine code ops that do VSL ops
If you want to modify the primitive prototypes this will be replaced with a VSL function
Um
I kinda wanted to compile objects directly to bytecode
since it will be way easier to self-host later
@ASCII-only wait what
i thought you said we're not doing VM
@Downgoat ;_; i am not computer, computer doctor is in different place than person doctor
yeah we're doing codegen
anyway, i did thing for VSL on sketchboard
were we not
@Downgoat :D yay
22:36
wait can you do abstract class in C++
22:49
ok added even more to sketchboar
CRAP its 4:00
@Downgoat What happens at 4
it mean 3/4 of day is gone and gaot hasn't accomplished anything
well i guess we got VSL progress
anyway ive made a good base for VSL structure
see sketchboard
@Downgoat whoops sorry for distracting you
00:00 - 23:0023:00 - 00:00

« first day (19 days earlier)      last day (938 days later) »