jemc changed the topic of #ponylang to: Welcome! Please check out our Code of Conduct => https://github.com/ponylang/ponyc/blob/master/CODE_OF_CONDUCT.md | Public IRC logs are available => http://irclog.whitequark.org/ponylang
prettyvanilla_ has quit [Remote host closed the connection]
prettyvanilla has joined #ponylang
prettyvanilla has quit [Remote host closed the connection]
prettyvanilla has joined #ponylang
<SeanTAllen> yeah looks like it won't caught up for quite some time
<SeanTAllen> day 2 of delaying the release
prettyvanilla has quit [Remote host closed the connection]
amclain has quit [Quit: Leaving]
Praetonus has quit [Quit: Leaving]
mvzink has quit [Ping timeout: 268 seconds]
mvzink has joined #ponylang
mvzink has quit [Ping timeout: 250 seconds]
jemc has quit [Ping timeout: 248 seconds]
mvzink has joined #ponylang
mvzink has quit [Ping timeout: 252 seconds]
mvzink has joined #ponylang
jemc has joined #ponylang
mvzink has quit [Ping timeout: 248 seconds]
mvzink has joined #ponylang
mvzink has quit [Ping timeout: 260 seconds]
jemc has quit [Ping timeout: 260 seconds]
mvzink has joined #ponylang
mvzink has quit [Ping timeout: 260 seconds]
graaff has joined #ponylang
mvzink has joined #ponylang
mvzink has quit [Ping timeout: 258 seconds]
mvzink has joined #ponylang
mvzink has quit [Ping timeout: 248 seconds]
mvzink has joined #ponylang
mvzink has quit [Ping timeout: 260 seconds]
mvzink has joined #ponylang
mvzink has quit [Ping timeout: 248 seconds]
mvzink has joined #ponylang
mvzink has quit [Ping timeout: 248 seconds]
mvzink has joined #ponylang
mvzink has quit [Ping timeout: 258 seconds]
mvzink has joined #ponylang
mvzink has quit [Ping timeout: 260 seconds]
mvzink has joined #ponylang
mvzink has quit [Ping timeout: 260 seconds]
mvzink has joined #ponylang
mvzink has quit [Ping timeout: 258 seconds]
mvzink has joined #ponylang
mvzink has quit [Ping timeout: 260 seconds]
mvzink has joined #ponylang
mvzink has quit [Ping timeout: 260 seconds]
mvzink has joined #ponylang
_andre has joined #ponylang
mvzink has quit [Ping timeout: 258 seconds]
mvzink has joined #ponylang
mvzink has quit [Ping timeout: 248 seconds]
titi has joined #ponylang
mvzink has joined #ponylang
mvzink has quit [Ping timeout: 250 seconds]
titi has quit [Ping timeout: 258 seconds]
mvzink has joined #ponylang
mvzink has quit [Ping timeout: 248 seconds]
mvzink has joined #ponylang
mvzink has quit [Ping timeout: 248 seconds]
mvzink has joined #ponylang
mvzink has quit [Ping timeout: 260 seconds]
nitbix has joined #ponylang
<nitbix> hello! does anyone know if there is a way to write a Bool to a Writer without using an if?
<nitbix> Writer doesn't have a .bool() and Bool doesn't have a .u8/16/32/64/etc()
mvzink has joined #ponylang
dinfuehr has quit [Ping timeout: 260 seconds]
mvzink has quit [Ping timeout: 258 seconds]
dinfuehr has joined #ponylang
titi has joined #ponylang
mvzink has joined #ponylang
<malthe> nitbix: bool has string(), returning "true" or "false"
<malthe> what do you want it to write?
<nitbix> malthe: I would like a 0/1 integer value
mvzink has quit [Ping timeout: 260 seconds]
mollymorphic has joined #ponylang
nitbix has quit [Quit: Lost terminal]
mvzink has joined #ponylang
mvzink has quit [Ping timeout: 250 seconds]
mvzink has joined #ponylang
mvzink has quit [Ping timeout: 252 seconds]
mvzink has joined #ponylang
jemc has joined #ponylang
runehog has joined #ponylang
amclain has joined #ponylang
<SeanTAllen> preserving bytes is a good thing.
Matthias247 has joined #ponylang
titi has quit [Ping timeout: 258 seconds]
graaff has quit [Quit: Leaving]
mollymorphic has quit [Quit: leaving]
mollymorphic has joined #ponylang
jtfmumm_ has joined #ponylang
bbhoss_ has joined #ponylang
kushalp_ has joined #ponylang
strmpnk_ has joined #ponylang
FrozenFox has joined #ponylang
Fuuzetsu_ has joined #ponylang
_andre has quit [*.net *.split]
Fuuzetsu has quit [*.net *.split]
DarkFox has quit [*.net *.split]
bbhoss has quit [*.net *.split]
strmpnk has quit [*.net *.split]
irx[m] has quit [*.net *.split]
SeanTAllen has quit [*.net *.split]
jtfmumm has quit [*.net *.split]
kushalp has quit [*.net *.split]
otremblay has quit [*.net *.split]
Fuuzetsu_ is now known as Fuuzetsu
jtfmumm_ is now known as jtfmumm
_andre has joined #ponylang
kushalp_ is now known as kushalp
otremblay has joined #ponylang
bbhoss_ is now known as bbhoss
strmpnk_ is now known as strmpnk
irx[m] has joined #ponylang
SeanTAllen has joined #ponylang
FrozenFox has quit [Changing host]
FrozenFox has joined #ponylang
FrozenFox is now known as darkfox
darkfox is now known as FrozenFox
cquinn has quit [Read error: Connection reset by peer]
cquinn has joined #ponylang
srenatus[m] has quit [Ping timeout: 258 seconds]
_whitelogger has joined #ponylang
titi has joined #ponylang
<mollymorphic> I'm curious about the rationale for using ASCII encoding for pony source. I can imagine reasons but it seems to buck the general trend for compilers of moving towards more modern encodings.
<jemc> mollymorphic: I wasn't around when that particular decision was made, but from my perspective, I'd like to see Pony move toward adopting UTF-8 as the "standard" encoding for Pony source
<jemc> I can only imagine the rationale revolved around a simplification of the compiler implementation
<mollymorphic> Ya, I was working my way through the docs and I came across that tidbit n was a little surprised because I'd hope or expect that form a new language
<mollymorphic> ASCII simplifies a lot of things, but I'd be curious about the exact tradeoffs considered
<mollymorphic> I've been confronted with similar decisions and still aren't sure how the work of moving to say UTF-8 from unicode balances against just supporting it from the begining, so it'd be informative for me :3
<mollymorphic> *from ASCII
<malthe> is `if some_bool then 1 else 0 end` the most succint way to coerce a bool to an int?
_andre has quit [Quit: leaving]
<SeanTAllen> poor poor travis
<jemc> malthe: yes, though I'd say that "coercing a bool to an int" in a *general sense* (like in a standard library) is not terribly straightforward
<SeanTAllen> ive seen what you do with utf-8 in source code mollymorphic, so i'm probably now in the ascii camp.
<jemc> malthe: for example, some conventions might use zero to express false, while others might use negative numbers to do the same
<malthe> definitely. I was just asking because I was unsure if there was some fancy way or not.
<malthe> but explicit is good here I think
<jemc> no fancy way that I know of
<malthe> i.e. something akin to U8(some_bool)
<jemc> I use that `if` expression form when I'm interfacing with expressing booleans to FFI or binary protocols
<mollymorphic> SeanTAllen: hey, if I want to use my own form of hungarian notation where identifiers are prepended with an emoji indicating my mood at the time of writing I should be able to :p
<SeanTAllen> in nitbix case, he was asking about that if because he's going to be doing it a lot. we work together so i know the context. he was trying to save a branch that would get executed hundreds of thousands of times a second
<SeanTAllen> while saving bytes on diesk
<SeanTAllen> *disk
<jemc> regarding UTF-8 source code, I can definitely see the argument for programmers wishing to write code in their native language, whether that can be expressed in ASCII as english can, or not
<mollymorphic> ya, well it
<malthe> SeanTAllen: wouldn't llvm optimize that branch away
<malthe> can't imagine it wouldn't know how to do that
<mollymorphic> *it's also just nice in terms of interop, though I think restricting source-level tooling stuff to ASCII isn't a huge deal
<mollymorphic> I'm mostly concerned about enabling writing in other languages
<malthe> isn't utf8 more for string literals?
<jemc> malthe: I was about to say the same, I would imagine LLVM could optimize away a simple if expressio like that, though I haven't personally tried compiling and looking at the LLVM IR to see
<mollymorphic> tho I'm considering writing a fuzzer for ponyc so ascii might make my job slightly easier
<malthe> although some people like compilers to be stupid and predictable.
<jemc> malthe: it would also involve whether for example, russian programmers (who use a entirely non-ascii alphabet) could have method names in their native languages
<SeanTAllen> i dont understand how llvm is going to optimize away taking an unknown boolean and writing out 1 or 0 for it based on the value of the boolean.
<SeanTAllen> ooo fuzzer
<SeanTAllen> do it mollymorphic
<malthe> why does every emacs upgrade break everything
<mollymorphic> SeanTAllen: I want to - I read a paper that piqued my interest re: interpreting the results of fuzzers and I kind of want to try it out
<mollymorphic> the problem with basic fuzzers is they produce tons of examples of crashing programs but the examples can be quite large (larger than needed to demonstrate the bug) and it's hard to tell how they overlap with eachother or known bugs
<jemc> SeanTAllen: I don't think it's farfetched at all, but I haven't tried it yet
<SeanTAllen> i didnt say it was farfetched jemc, just that i dont understand how it would do it
<mollymorphic> so it'd be fun to write something that tries to reduce test cases to their smallest expression, and then lumps the bugs together in related groups
<SeanTAllen> mollymorphic: have you looked at... umm. damn it. brain freeze
<SeanTAllen> what is that...
<mollymorphic> are you thinking of an existing fuzzing tool?
<SeanTAllen> concolic testing
<SeanTAllen> i learned about it via https://github.com/aggelgian/cuter
<SeanTAllen> if you haven't it might inform your thinking for your fuzzer
<SeanTAllen> it certainly got me thinking
<mollymorphic> I'm passingly familiar with the concept
<mollymorphic> I'll look into it more
<mollymorphic> SeanTAllen: I think depending on the representations involved, couldn't a conditional branch be avoided? I dunno if it'd really do much in that case tho
<jemc> IIRC Bool is represented in LLVM as a U1 or U8 (can't remember which, or if it is platform dependent)
<jemc> so, for example, if x is a U1 in the C expression `if(x != 0) 1 else 0`, then the expression could be trivially simplified as `x`
<jemc> I'm far from a expert on LLVM optimizations though, so I don't know offhand whether such an optimization would actually be done
<mollymorphic> could it tho? the optimizer would have to know 0 and 1 are the only values
<SeanTAllen> in nitbix's case, its in the context of serializing a boolean that is part of a larger object to disk
<mollymorphic> if x = 2 they wouldn't be equivalent
<jemc> mollymorphic: for a U1, the only two possible values would be 0 or 1 - U1 is a shorthand for unsigned 1-bit value
<mollymorphic> ah right
<SeanTAllen> that's interesting jemc
<jemc> U1 doesn't actually exist as a type in Pony, but it does in LLVM
<mollymorphic> right, but that's what the issue is at hand, how the type is represented internally
<mollymorphic> if it's a u1 LLVM can know the invarients, that it will only b 0 or one and could at least in theory optimize it away
<mollymorphic> for a different type it would need more information
<mollymorphic> I wish I knew more about LLVMs optimization pipeline
* mollymorphic pontificates
<SeanTAllen> jemc do you think travis will ever be ok? they aren't having a good few days. poor poor travis.
<jemc> SeanTAllen: dunno - maybe time to discuss again the switch to a different CI provider
<jemc> for hosted I prefer CircleCI
<jemc> for self-hosted I like ConcourseCI
<jemc> I'm currently working on getting a public CI going for my pony packages
<jemc> (using a self-hosted ConcourseCI)
<jemc> that is, I'm using it to run every latest ponyc version against every latest version of the particular package
jemc_ has joined #ponylang
jemc has quit [Ping timeout: 258 seconds]
titi has quit [Ping timeout: 258 seconds]
amclain_ has joined #ponylang
amclain has quit [Ping timeout: 260 seconds]
Matthias247 has quit [Read error: Connection reset by peer]
jemc_ has quit [Ping timeout: 260 seconds]
jemc_ has joined #ponylang