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
<jemc> (with the latest ponyc master - not sure what version you're running)
<polypus74> yeah it'll compile but then when you try to add (3 + MyType) it won't work. btw i was actually doing something a bit more complicated with an interface (tried a bunch of variations), but there is no way of overriding F64's add function it looks like.
<jemc> polypus74: as I said (3 + MyType) doesn't work because there's no way to know which numeric type you meant
<jemc> it basically evaluates as `3.add(MyType)` - how could you know which type 3 was (and thus, which method to call)?
<polypus74> with haskell you can do this just defining an add method on MyType and then also supplying a numeric conversion function, i.e. polymorphic literals. i'm starting to grok pony's type system though. a smalltalkish double dispatch solution might be pretty cool, but would need standard lib support and would have a performance penalty.
aturley has joined #ponylang
aturley has quit [Ping timeout: 252 seconds]
SilverKey has quit [Quit: Halted.]
<polypus74> so in arithmetic.pony under trait Real, fun add(y: A): A => this + y, which implementation of + is actually being called? also what is compile_intrinsic?
<jemc> polypus74: not sure why they're written in that recursive way, but the implementation is handled by the `special_case_operator` function in `libponyc`: https://github.com/ponylang/ponyc/blob/e3d96e83521fb7762d2a0eae255d443cfa9b33f7/src/libponyc/codegen/gencall.c#L40
<jemc> `compile_intrinsic` methods are also handled by `libponyc` with a special case implementation
jemc has quit [Quit: WeeChat 1.4]
jemc has joined #ponylang
<polypus74> ok ty jemc. guess the recursion is to constrain rhs to same. what i don't get is how the constraint on the operands being the same type is being enforced, because the the Real[A: Real[A]] only seems to constrain the rhs?
<polypus74> and the return type
<jemc> polypus74: so `Real[A]` is a trait that it can do those operations with A as the rhs and return type
<jemc> and `U64`, for example, has the trait `Real[U64]`
<jemc> (transitively via several intermediate traits)
<jemc> therefore `U64` has `fun add(x: U64): U64`
aturley has joined #ponylang
aturley has quit [Ping timeout: 276 seconds]
<polypus74> ok, i see. in float.pony, F64 is FloatingPoint[F64] which implies Real[F64]... and like you said
AndChat61364 has quit [Ping timeout: 276 seconds]
aturley has joined #ponylang
aturley has quit [Ping timeout: 268 seconds]
polypus74 has quit [Remote host closed the connection]
SilverKey has joined #ponylang
aturley has joined #ponylang
aturley has quit [Ping timeout: 260 seconds]
bb010g has joined #ponylang
aturley has joined #ponylang
aturley has quit [Ping timeout: 250 seconds]
amclain has quit [Quit: Leaving]
aturley has joined #ponylang
SilverKey has quit [Quit: Halted.]
aturley has quit [Ping timeout: 240 seconds]
sylvanc has quit [Ping timeout: 260 seconds]
sylvanc has joined #ponylang
copy` has quit [Quit: Connection closed for inactivity]
jemc has quit [Ping timeout: 268 seconds]
SilverKey has joined #ponylang
SilverKey has quit [Client Quit]
trapped has joined #ponylang
rurban has joined #ponylang
aturley has joined #ponylang
aturley has quit [Ping timeout: 276 seconds]
nyarum has joined #ponylang
aturley has joined #ponylang
aturley has quit [Ping timeout: 250 seconds]
nyarum has quit [Quit: Leaving.]
nyarum has joined #ponylang
nyarum has quit [Quit: Leaving.]
aturley has joined #ponylang
aturley has quit [Ping timeout: 260 seconds]
nyarum has joined #ponylang
_andre has joined #ponylang
nyarum has quit [Ping timeout: 250 seconds]
nyarum has joined #ponylang
<doublec> That vug video is great
<jonas-l> and so heavy :)
<doublec> yeah, I'm only 15 minutes and it's cleared so much up already.
<doublec> but is indeed rcap heavy :)
nyarum has quit [Ping timeout: 276 seconds]
aturley has joined #ponylang
aturley has quit [Ping timeout: 260 seconds]
juanjoc has joined #ponylang
trapped has quit [Read error: Connection reset by peer]
trapped has joined #ponylang
copy` has joined #ponylang
<SeanTAllen> excellent
<SeanTAllen> i was very confused for a lot of it, because its stuff i kind of get but not really yet, but i think it is enough for me to start writing a chapter for the Pony Book and I can use that to learn more
aturley has joined #ponylang
aturley has quit [Ping timeout: 276 seconds]
<doublec> I've finished watching it now - very worthwhile.
aturley has joined #ponylang
SilverKey has joined #ponylang
SilverKey has quit [Quit: Halted.]
SilverKey has joined #ponylang
* ohir needs downloadable link of said video
<jonas-l> but it requires to log into groups.io
<ohir> jonas-l: nope, this is a html stub to stream
<ohir> I am logged in at files
<ohir> ok, looks like I got at it after noscript timkering
<ohir> tin*
<ohir> jonas-l: thank you anyway :)
jemc has joined #ponylang
rurban has quit [Quit: Leaving.]
amclain has joined #ponylang
aturley has quit [Ping timeout: 260 seconds]
aturley has joined #ponylang
aturley has quit [Ping timeout: 250 seconds]
<jemc> thanks for sharing the video link - will definitely give it a watch later today :)
aturley has joined #ponylang
TwoNotes has joined #ponylang
SilverKey has quit [Quit: Halted.]
ericdc has joined #ponylang
ericdc has quit [Client Quit]
rurban has joined #ponylang
yonkeltron has quit [Ping timeout: 244 seconds]
jemc has quit [Quit: WeeChat 1.4]
<SeanTAllen> its on youtube now as well: https://www.youtube.com/watch?v=Vq1vRfv-A6g
<TwoNotes> Marked private
SilverKey has joined #ponylang
jemc has joined #ponylang
<SeanTAllen> public now
rurban has quit [Quit: Leaving.]
aturley has quit [Ping timeout: 252 seconds]
SilverKey has quit [Quit: Halted.]
aturley has joined #ponylang
SilverKey has joined #ponylang
gsteed has joined #ponylang
SilverKey has quit [Quit: Halted.]
SilverKey has joined #ponylang
puzza007_ has joined #ponylang
puzza007 has quit [Ping timeout: 244 seconds]
puzza007_ is now known as puzza007
trapped has quit [Ping timeout: 276 seconds]
juanjoc has quit [Ping timeout: 276 seconds]
gsteed has quit [Quit: Leaving]
nyarum has joined #ponylang
<SeanTAllen> and youtube pulled it down `¯\_(ツ)_/¯
<jemc> ?
<jemc> did they give a reason?
<sylvanc> this is... annoying
<jemc> heh - "untargetted, unwanted, repetitive"
<jemc> sylvanc: I think they're criticizing your public speaking!
<sylvanc> ouch :(
<jemc> if it makes you feel any better, I think we all felt quite the opposite :)
<sylvanc> :)
<jemc> thanks for taking the time to go through all that material - I think having this video around will be a big help to folks asking about generics
<jemc> SeanTAllen: I think that it was probably flagged for having a screen view that doesn't change much the whole time
nyarum has quit [Quit: Leaving.]
<sylvanc> it changes! different source and... stuff...
<jemc> I wonder if putting a title slide would help
<SeanTAllen> i'm going with the "asshole" explanation for flagging
_andre has quit [Quit: leaving]
rurban has joined #ponylang
<SeanTAllen> its on vimeo now: https://vimeo.com/163871856
SilverKey has quit [Quit: Halted.]
rurban has quit [Quit: Leaving.]
<TwoNotes> Actually, what you said was more informative than the video. Put it on Soundcloud insteadf.
<TwoNotes> Plus screenshots as slides on the vug file section if really necessary
<jemc> I think the video is nice - and vimeo is much better than youtube about not taking videos down unless they really should be
Matthias247 has joined #ponylang
TwoNotes has quit [Quit: Leaving.]
Matthias247 has quit [Read error: Connection reset by peer]
status402 has joined #ponylang
<status402> Is releases.ponylang.org still in active use?
<jemc> status402: we haven't done a release recently because we're working on our CI release infrastructure
<jemc> for now you should build from source, but we are actively working on getting the release pipeline running
<status402> Ah, okay. I was just wondering because I keep running into issues building on Fedora23, so for now I'm settling for just using 0.1.7
<jemc> I run on Fedora 22, so I may be able to help you with your build issues if you like
<jemc> the latest release is so long ago that it even has some syntax incompatibilities (order of terms in a type declaration), which is annoying if you're reading the tutorial or other peoples' code
<status402> Well, the problems start at even being sure of which llvm version I ought to be running. dnf defaults to 3.7.0 at the moment, and theres a Copr source for 3.8
<jemc> llvm 3.6 through 3.8 is supposed to work with github master, but someone found that 3.7.0 specifically has an API breakage that they fixed in 3.7.1: https://github.com/ponylang/ponyc/issues/456#issuecomment-179835893
<jemc> I'm still running LLVM 3.6.2, for other reasons
<jemc> I'd suggest trying 3.8 first
<status402> Okay. Few moments. I'll try it.
<jemc> I don't know about Fedora 23, but Fedora 22 doesn't have the pcre2 package
<jemc> I had to install it from source using the instructions in the README for other linux distros - https://github.com/ponylang/ponyc/blob/master/README.md#debian-jessie
<jemc> since Fedora 23 is the latest version, it would be useful to know which steps you have to go through so I can add them to the README
<status402> I have pcre2 and as I recall I didn't need to go look for it.
<status402> I just checked and pcre2 is in the repos for F23.
<status402> Okay, when running make config=release in a clone of the github repo, I get an error during the "Linking ponyc" step, and it seems like a lot of flags for ld can't be found.
SilverKey has joined #ponylang
SilverKey has quit [Client Quit]
<status402> jemc, is something going wrong here? Should I even be seeing anything ld related?
<jemc> are you building with gcc or clang?
<status402> It's supposed to be with clang, but for some reason I'm using the GNU linker. And I can't quite decode what the makefile is passing in as options
<jemc> you could try building with gcc - I'm not sure why it would be using the wrong linker, but yes, the makefile is written by hand so there is room for human error
<jemc> `env CC=gcc CXX=g++ make config=release`
gsteed has joined #ponylang
SilverKey has joined #ponylang
<status402> Even when I try to use gcc, it seems like it's expecting to use the gcc linker, ld, but it's giving it llvm flags.
<status402> Okay, I think I have located the problem. The Copr version of llvm 3.8.0 inexplicably doesn't provide an llvm-config command, making it effectively useless to the Makefile, which then falls back to 3.7.0
<jemc> ah, weird
<jemc> I'm not sure why you would provide LLVM without llvm-config *shrug*
<status402> I'm too tired to fix it, but once I have a usable set of install steps for 23, I'd be happy to submit a PR, if you want it in the README
<status402> *Fedora23
<jemc> that would be excellent - sorry for the trouble you're having
<status402> It's okay. I'll be patient with it. But I have to get some sleep first. Will report back/send PR when I've worked out the issues.
status402 has quit [Quit: Leaving]
SilverKey has quit [Quit: Halted.]
gsteed has quit [Quit: Leaving]
aturley has quit [Ping timeout: 268 seconds]