« first day (215 days earlier)      last day (742 days later) » 
00:00 - 17:0017:00 - 00:00

00:15
@Downgoat um wat
@Downgoat only for generic properties imo so A.C<D> to call generic function
@ASCII-only ASM has no knoledge of class
so we can't pass just like that
so we need to have list of functoin
@ASCII-only wait wat
@Downgoat yeah
@Downgoat What would A<B> even do
@ASCII-only like var a = A<B>?
I guess that would throw compile bork
if you want class you do: var a = A<B>.class perhaps or something
because class object will need to be more complex
stores lot of RTTI and all
@Downgoat i thought just properties and methods
wat, pls halp confuse
we have to store like hashmap and all of infos right
00:19
@Downgoat no?
list of properties
list of names
that's it
faster + easier
metaclass is reflection?
wait yes that what i mean
yeah but shouldn't be too much infos
@ASCII-only are we going to have a seperate URL type?
URL type?
e.g. HTTPRequest(type: .get, url: URL(from: "http://foo.com"))
00:27
no because pointless
just pass as string
0/10 how
what if i need to get path of URL
we can have both using overload
URL.path(url: String)
hmm idk
ok i guess
why are you asking
Btw what is HTTPRequest class going to be called
is it going to be HTTP(type: .get)
00:28
HTTPRequest
 
1 hour later…
01:44
@ASCII-only if you have time, can you help figuring out where CURLOptions is deifned in: github.com/curl/curl
we need for HTTP lib
@ASCII-only btw do we want to have entry {} and exit {} blocks to run startup and shutdown code for VSL?
@Downgoat CURLoptions?
@Downgoat no
so exit block will always run and can be used to maybe close a
@ASCII-only ;_; y not
0/10 very useful for app development
like if you are making app
entry and exit will always be start/end of global code
@ASCII-only global code?
VSL will be able to be distribute across multiple files
not doing basically kills encapsulation
yeah
but i mean like global code of main file
01:47
To be clear: Default execution is top-down, but if there is a public func main(args: String[]) with exact param list then that is entry point with args
:| why
@ASCII-only 0/10 do not reccomend
@ASCII-only because now you have lot of global variable
e.g.:
only in the file
@Downgoat ok fair enough
main.vsl:
let tapsecritstring = "tap secrit ssn is 1G2O3A4T5S"
print tapSecritString
now all files in same module have variable tapsecritstring
D:
@ASCII-only also are we having anonymous closure:
@Downgoat *in same file
01:49
var a = 3
{
    var a = 2
    print a /// 2
}
print a // 3
@ASCII-only well that would be if let was mark with private, no?
at least this is how other languages do it
@Downgoat hmm i was gonna make that closure syntax
@ASCII-only closure syntax?
maybe if it is found by itself execute it?
do we really want?
imo not very useful
@Downgoat myFunction{var a = 2; print a}
01:50
and can be sign of spagetti code
@Downgoat very useful
@ASCII-only oh yes 10/10 definetly need that will remove so 0 ambiguity
as in foo({? + ?}) is closure
@ASCII-only no like that is not any function it is like C
@ASCII-only wait wat i thought we do lambda syntax instead
@Downgoat that too but imo we should have closure too
01:51
what is diference
so you can do {? + ?}, {$1 + $2}, or (a, b) -> a + b
oh, so closure = lambda - args
@Downgoat no difference just how you write it
@Downgoat pretty much
ono ambiguity detect:
wait actually
hm
@ASCII-only ono that is not good
@Downgoat ??????????????????/
01:53
@ASCII-only so like perl 6 wildcard thing in fucntion
@ASCII-only multiple ways to do one thing = very bad
O_o
you mean like:
@EvilSheep ...
foo(goat: ? + ?)
0/10 very hard to parse
wait nvm
actually if you can parse I am down for that
wait easy to parse
what am i thinking
01:54
@ASCII-only ಠ_ಠ
@Downgoat imo multiple ways is better, sometimes it's clearer in another form, plus people will have their own preferences
@ASCII-only do note doing will cause ambiguity with command chain
@ASCII-only sorry bad wording, multiple syntax for same exact thing is bad
I think we should spend some time working out solid lambda spec later sometime
@EvilSheep no it won't
@EvilSheep same exact thing?
@ASCII-only example: foo goat?bar:foo
is it:
foo(goat?, bar: foo)
or:
foo(goat?bar:foo)
@EvilSheep this
since arglists need commas
@EvilSheep this is foo goat?, bar: foo
also i don't think is valid
what does goat? do
01:58
goat as optional:
var a: String = "goat"
var b: String? = a?
I could alternatively do var b: String? = a as String?
btw are we doing !.?
yeah but how are you passing goat? as argument
oh that brings me another question
what do we want syntax for function parameter that don't need name
normal?
overloading
????????
02:01
pls wat confuse
as in foo(bar, asdf) is valid
overloading mean same name but different signature
as long as arg types match overload, function call is valid
we need to disambiguate?
@ASCII-only wat
wat
pls vrey confuse ;_;
@EvilSheep pls what confus
02:06
@ASCII-only what about param names?
@EvilSheep ???
example:
func create(goat name: String) { ... }
func create(dog name: String) { ... }
now I can do create(goat: downgoat)
or create(dog: "Biscuit")
btw for string comparaisions, what type of comparision do we want to do: demo.icu-project.org/icu-bin/scompare
oh you want default overload?
02:08
we will have all available but need default string comparison type
@ASCII-only no but how to disambiguate
we also want consistency
then you need goat: foo
yes so we should have syntax for senario when param name is optional
?????????????????????????????????????????????????
ono wat confuse
like if I don't want to require param name
@EvilSheep pls example
02:10
swift does:
func goat(_ foo: String)
buuuuttt
in swift, _, is a very special variable which we're not doing
we have ? instead
also vars starting with $ are also special in a way
@ASCII-only no like arg is required but you don't need to do param name
so basically default overload
@ASCII-only normal ids can't have $ right? only special variable
@EvilSheep i mean we're using ? for perl whatever
02:12
@ASCII-only yeah kinda sorta
@EvilSheep you can't declare $ variable, it is used to access variable in parent scope
example?
@ASCII-only so is OK to use $ in mangling or is that potential bork
var a = 3
if DEBUG {
    let a = 2
    print $$a /// 3
}
print a // 3
I thought we not do weird closure like that
@EvilSheep as long as not scope.$varname is fine
02:13
only in some senario we allow
@EvilSheep oh yeah
suggestion:
lazy var variableFetchedFromServer = {
    // Psuedo code as examp,le
    let req = HTTPRequest(type: .get, url: "https://tap/secrit", blocking: false)
    return req.responseString
}
that way lazy var is initalized to that block
lazy var?
variable that is lazy initalize
no that is closure which is lazy anyway
02:15
wat
lay?
pls explain
actually wait nvm take back example
@EvilSheep sorry
:OOOOOOO FISH IS CAPRINE CONFIRM????? :OOOOOOOOOO!!!!!!!!
lazy var variableFetchedFromServer = {
    // Psuedo code as examp,le
    let req = HTTPRequest(type: .get, url: "https://tap/secrit", blocking: false)
    return req.responseString
}()
fix example ^
idea: closure = lambda - args
10/10 would actually be pretty cool idae
would be really good for async code
I mean closure could still have args
but not like lambda
;_; y u not star vsl
@EvilSheep ?
on github
@EvilSheep i thought it was that already
@EvilSheep done
02:18
:D
see it's on starboard now
@ASCII-only yes, it just took me a minute to see the light :P
@EvilSheep ono stahp ur evil shep, not posible for eivl shep to see light
@EvilSheep so basically you can do lazy var r = random()?
@ASCII-only yeah
lazy var is variable that is initalized only when requested and not reinitalized again
02:20
oh
then make everything lazy instead :P
like haskell
i was thking about that
though for normal fields that is not really possible
in VSL we have to check that all fields are initalized once class is constructed because of type-saftey and optionals, etc. etc.
hmm true
idk
making lazy would be nice
especially if .map(...).filter(...).map(...) was 1 iteration
@ASCII-only btw I had idea: super useful: function which does map + filter
@Downgoat ?
@Downgoat why not just do filter
@ASCII-only because lazyness would make it one iteration
@ASCII-only because filter does not change values
basically a map but if returned value is nil the result value is drop from array
02:22
@Downgoat well yeah? they're generators anyway so lazy already
@Downgoat what to call, mapilter?
flap
@ASCII-only but would do multiple iteration still
@ASCII-only 10/10 quality name. Also using this would promote penguin and bird to use VSL too :P
@Downgoat how
@Downgoat hmm true
@ASCII-only btw wat is generated syntax
@Downgoat no other language has this i don't think is usefol either
@ASCII-only 0/10 very useful. Like 4th most popular swift array function
02:35
@Downgoat if has yield then is generator
@Downgoat pls link
03:04
@ASCII-only are we going to have generator lambda/function
@Downgoat yeah
okay problem
what is we want yield for parent function
example:
func magicGenerator() {
    let lambda = () => { yield whatever; }
    lambda();
}
is lambda generator or is func a generator
what if want that yield to do for parent function, magicGenerator
@Downgoat lambda
1 min ago, by Downgoat
what if want that yield to do for parent function, magicGenerator
@Downgoat yield* lambda()
03:08
wat
0/10 very confuse
@Downgoat how confuse
imo generator is wrong approach they don't really fit with VSL scripting-style/complication style
@ASCII-only wat is *
yield* yield every element in iterable
@Downgoat yield splat basically
03:09
I think we should do Iterable
js use syntax
actually nvm
hm
@Downgoat yeah
ok
do note: doing yield like that will be slow for compilation
@Downgoat why
03:11
because we have to transverse entire function
to check for yield
and then traverse again for transformation
asm has no representaiton of a generator
@Downgoat transform to what
btw traverse is done during parser
@ASCII-only wat
parser encounter yield -> set function "generator" flag to true somehow
:O could you do that?
that would be useful
ok later really busy
03:15
would make implementnig generator 1000x much easier
 
6 hours later…
08:47
I get an error when I try to run ./vsl
module.js:327
    throw err;
    ^

Error: Cannot find module 'babel-runtime/helpers/classCallCheck'
    at Function.Module._resolveFilename (module.js:325:15)
    at Function.Module._load (module.js:276:25)
    at Module.require (module.js:353:17)
    at require (internal/module.js:12:17)
    at Object.<anonymous> (/Users/#######/cloned/VSL/lib/vsl/parser/vslparser.js:7:24)
    at Module._compile (module.js:409:26)
    at Object.Module._extensions..js (module.js:416:10)
    at Module.load (module.js:343:32)
 
3 hours later…
11:49
@KritixiLithos Oh no again?
@KritixiLithos try npm -i babel-runtime
Also ping Downgoat
the build works
it's just that running the vsl script that errors
@KritixiLithos yeah but did you try updating (npm -i as above)
The Usage of npm is printed
@KritixiLithos i meant npm -i babel-runtime
Running that command gives me ∧∧
11:54
ok wat
@KritixiLithos oh yeah npm install babel-runtime
done, but I still get the same error when running npm -i babel-runtime
And @Downgoat here's a ping
@KritixiLithos yeah that was wrong sorrt
what happens when you do ./vsl -p now
module.js:327
    throw err;
    ^

Error: Cannot find module '../../scope/type'
    at Function.Module._resolveFilename (module.js:325:15)
    at Function.Module._load (module.js:276:25)
    at Module.require (module.js:353:17)
    at require (internal/module.js:12:17)
    at Object.<anonymous> (/Users/#######/cloned/VSL/lib/vsl/parser/nodes/interfaceStatement.js:31:13)
    at Module._compile (module.js:409:26)
    at Object.Module._extensions..js (module.js:416:10)
    at Module.load (module.js:343:32)
same error, basically
@KritixiLithos No
now this is a VSL error
@Downgoat ono another error
@KritixiLithos add .js after type in that file
(in interfaceStatement.js)
how do you guys even run vsl?
:P
11:59
it usually works
just sometimes me Downgoat breaks it
wait, I think I have to git pull
@ASCII-only There are two interfaceStatement.jss, which one do I edit?
@KritixiLithos VSL/vsl/parser/nodes/interfaceStatement.js
the one not in lib
I changed '../../scope/type' to '../../scope/type.js'
Do I need to build after every change?
12:15
so what exactly does building it do?
turn the ES6 JS into ES5 JS under /lib
kritixi@14:14:26:~/cloned/VSL$ ./vsl -p
module.js:327
    throw err;
    ^

Error: Cannot find module 'minimist'
    at Function.Module._resolveFilename (module.js:325:15)
    at Function.Module._load (module.js:276:25)
    at Module.require (module.js:353:17)
    at require (internal/module.js:12:17)
    at Object.<anonymous> (/Users/#######/cloned/VSL/lib/cli/vsl.js:30:17)
    at Module._compile (module.js:409:26)
    at Object.Module._extensions..js (module.js:416:10)
    at Module.load (module.js:343:32)
crap forgot to add
just npm install minimist and run
it works!!! \o/ \o/ \o/
@ASCII-only Btw can you change the type to type.js in the git repo?
@KritixiLithos yeah later
12:41
btw I like the repl
@KritixiLithos ty, that was all Downgoat's work though
 
2 hours later…
14:44
@ASCII-only ono brb unborkifiying
15:27
@ASCII-only do we want to have a reference opreator. i.e. foo(&variable) created a Pointer<>
@ASCII-only btw do we want override decorator or override as native syntax
e.g.:
override func goat() { ... }
imo thatl ooks better
but we can change if change mind
C++11 does it like this now:
virtual void foo() override;
although obviously it's not necessarily to add override
just gets the compiler to whine if it's not overriding
15:48
@ASCII-only do we want async which will automatically bring to seperate thread
We have \detach()
then you can use await across thread and have really awesome async ability
Supposed to kind of mirror \yield()
would also be kinda sorta simple to implement
16:08
ftpWeirdServerReply 10/10 quality response
@ASCII-only do we want seperate HTTP, FTP, SSH, etc. libraries or all info one library?
Or we could have one low-level library that does all. And then high level easy to use wrapper libraries for HTTP, FTP, SSH
if you want more ability you can use low-level one
@Downgoat this is called a socket
it's really great, they have this thing called the "interblag" that runs on them
information superhighway
@quartata By "low-level one" I mean libcurl
I am doing binding but 0/10 enum is making hard
I made simple request function:
public func curlRequest(with params: [CURLOption: OpaquePointer]) -> CURLEasyCode {
    let curl: CURL = curlEasyInit()
    var res: CURLEasyCode

    for (k, v) in params {
        curlEasySetopt(curl, k, v)
    }

    res = curlEasyPerform(curl);

    curlEasyCleanup(curl)

    return res
}
16:24
I think you have a stray semicolon there
ono ;_; eivl semicolon begone
though 10/10 bindings are super nice in VSL
@ASCII-only do we want nullptr for a Null pointer?
or is var ptr: OpaquePointer = .null work
I like = .null personally
16:51
@KritixiLithos you can now install vsl just be doing npm i -g vsl
also installs globally
I don't need to pull from GH or anything before doig that?
oh wait, you didn't push anything, nvm
@Downgoat I do that under the VSL/ dir, yes?
@KritixiLithos you can run anywhere
it is like apt-get install
but from npm
it works when I run it with sudo
:D
:D
@ASCII-only btw can you add func foo() internal(foo)
where foo is an ID
foo will specify linkage
huh wow VSL is fast
only take 0.02s
00:00 - 17:0017:00 - 00:00

« first day (215 days earlier)      last day (742 days later) »