<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>
`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.
<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>
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.