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
<mcguire> @bbhoss, isn't 8 spaces the emacs default? (I feel like turning on selectric mode when I see an 8 space tab.)
<SeanTAllen> wrong channel mcguire
<SeanTAllen> or no?
<SeanTAllen> did i miss something?
<mcguire> Uh, bbhoss's comments at 05:45:54 PM: hey y'all. this is likely not ponylang-related, but I'm trying to use ponylang-mode with emacs and the indentation size is way too big. can one of y'all point me towards the place to change that?looks like it's 8 spaces right now
<mcguire> nm, figured it out. somehow tab-width was reset :)
<mcguire> Of course, I'm not sure why I'm using '@'.
<mcguire> Oh, hey, while I've got you here, I was looking at Parameterize Array.find and Array.rfind on a comparator #659
<mcguire> I added a find_with method to Array, that takes a predicate. By default, it should behave the same as find: https://gist.github.com/tmmcguire/2c7c122ce01a1561a2664a748fc1bbd8
<mcguire> But when I comment out find and rename find_with, I get a compiler error:
<mcguire> ponyc: src/libponyc/pkg/package.c:950: package_hygienic_id: Assertion `t->frame->package != ((void *)0)' failed.
<mcguire> Makefile:515: recipe for target 'test' failed
<SeanTAllen> i did miss something. man, how did i miss that?
<SeanTAllen> bbhoss: check out the suggested config in the read me
<SeanTAllen> mcguire: when you asy "rename find_with, what do you mean?"
aturley has quit [Ping timeout: 260 seconds]
<shepheb> looks like it works with those make flags. not sure if this is just sufficiently new gcc or that everyone else is using clang or what
<shepheb> still getting illegal instructions post-compile, though.
<shepheb> maybe that's a separate issue.
<mcguire> SeanTAllen, I commented out the find method and renamed my find_with method to find. find_with, with the default lambda predicate should behave the same as find, right?
amclain has quit [Quit: Leaving]
jemc has quit [Ping timeout: 276 seconds]
<SeanTAllen> looking at it now mcguire
<SeanTAllen> ok mcguire, its a bug in the sugar for lambda. if you use an object literal directly its ok.
<SeanTAllen> need to look into it more
juanjoc has quit [Quit: Leaving]
<SeanTAllen> wow mcguire. amazing bug!
<SeanTAllen> awesome
<SeanTAllen> totally incredible
<SeanTAllen> thanks
<SeanTAllen> what os are you on mcguire ?
jemc has joined #ponylang
Candle has quit [Ping timeout: 276 seconds]
jemc has quit [Ping timeout: 244 seconds]
Candle has joined #ponylang
copy` has quit [Quit: Connection closed for inactivity]
trapped has joined #ponylang
tm-exa has joined #ponylang
tm-exa has quit [Quit: Computer has gone to sleep]
tm-exa has joined #ponylang
tm-exa is now known as tm-away
tm-away is now known as tm-exa
DanC_ has quit [Ping timeout: 244 seconds]
DanC_ has joined #ponylang
Praetonus has joined #ponylang
tm-exa_ has joined #ponylang
tm-exa has quit [Ping timeout: 252 seconds]
_andre has joined #ponylang
copy` has joined #ponylang
srenatus has joined #ponylang
juanjoc has joined #ponylang
malthe has quit [Ping timeout: 276 seconds]
<shepheb> I've opened https://github.com/ponylang/ponyc/issues/693 to give a more specific look at the "illegal instruction" errors I'm having.
<shepheb> since the Makefile LTO problems are sorted out.
malthe has joined #ponylang
<SeanTAllen> mcguire: your bug is fixed
<SeanTAllen> shepheb: can you test #693 against latest master?
michael_campbell has joined #ponylang
cquinn_ has joined #ponylang
copy`_ has joined #ponylang
bb010g_ has joined #ponylang
<shepheb> SeanTAllen: rebuilding now.
<shepheb> this Arch x86_64 machine is faster than my RasPi but it's really just a single core 2GB RAM virtual machine on my Windows gaming "console"
<shepheb> so it's not /that/ fast
<shepheb> SeanTAllen: still getting the illegal instruction in make test; trying against my app.
<shepheb> yep, no change.
<shepheb> I'm working on something more minimal, but that may take a while to binary-search
srenatus has quit [*.net *.split]
copy` has quit [*.net *.split]
bb010g has quit [*.net *.split]
c355e3b has quit [*.net *.split]
cquinn has quit [*.net *.split]
eyepatchnhook has quit [*.net *.split]
strmpnk has quit [*.net *.split]
tlockney__ has quit [*.net *.split]
copy`_ is now known as copy`
cquinn_ is now known as cquinn
<SeanTAllen> ok
<shepheb> also running with lldb
<SeanTAllen> thanks
<SeanTAllen> lastest master fixed another illegal instruction crash
<SeanTAllen> figured it was worth it
eyepatchnhook has joined #ponylang
tlockney__ has joined #ponylang
c355e3b_ has joined #ponylang
srenatus has joined #ponylang
strmpnk has joined #ponylang
c355e3b_ has quit [Changing host]
c355e3b_ has joined #ponylang
srenatus has quit [Changing host]
srenatus has joined #ponylang
c355e3b_ is now known as c355e3b
<shepheb> whoops, I added that stack trace to the wrong/right bug.
<shepheb> that is, the new SIGILL bug #693, not the original #690 with the LTO errors.
TwoNotes has joined #ponylang
jeremyheiler has quit [Ping timeout: 248 seconds]
<shepheb> let me know if I should still invest in a minimal repro. I can put the code somewhere if you like, too. it's a silly project for hacking on Pony, an emulator for a made-up 16-bit computer, the DCPU-16 from Notch's aborted game 0x10c.
gornikm has quit [Ping timeout: 248 seconds]
jeremyheiler has joined #ponylang
gornikm has joined #ponylang
bb010g_ is now known as bb010g
aturley has joined #ponylang
<SeanTAllen> anything helps
<shepheb> code now pushed here https://github.com/shepheb/pony-dcpu
<shepheb> there's a lot of it, relative to tracking down this bug, though.
copy` has quit [Quit: Connection closed for inactivity]
jemc has joined #ponylang
c355e3b has quit []
c355e3b has joined #ponylang
tm-exa_ has quit [Quit: Computer has gone to sleep]
tm-exa has joined #ponylang
copy` has joined #ponylang
<TwoNotes> What is a good example of how to create a 'val' class containing a Map?
Praetonus has quit [Quit: Leaving]
<TwoNotes> That is, the constructor has to populate the Map from supplied data (an Array, a JsonObject, or a File) but then 'freeze' the Map into a 'val' so that the final object can be shared across actors.
<shepheb> usually one would use recover for that
<shepheb> it means the incoming parameter has to be sendable, though
<shepheb> or something like a file
<TwoNotes> Yhe tricky one is that "File" is not sendable. But then, I am not incorportating the File iostelf into the final object!
<shepheb> from my own experience working with JSON objects in Pony, they should definitely be val all the time.
<shepheb> alternatively
<TwoNotes> I parse the file as JSON, and then use that to populate the Map.
<shepheb> you can create a Map trn and add things to it, then consume it into a val.
<TwoNotes> Yes, that part Ive got
amclain has joined #ponylang
<TwoNotes> But writing a constructor that takes a File as a parameter...
<shepheb> what's wrong with that?
<TwoNotes> Pretty sure the ocmpiler wants the constructor of a val to have sendable parameters
<shepheb> not sure about that one
<TwoNotes> I know there are cases where parametrs to a constructor havce to be val
<TwoNotes> well, have to be Sendable
<TwoNotes> which File is not
<jemc> TwoNotes: you'll probably have to have a separate intermediary step that reads the File and generates an immutable result in either the Array or JsonObject format
<jemc> well, I don't know if you would *have to*, but from what little I know about your issue, I think that's how I would approach it
<TwoNotes> So do the File reading in a separate fun, than then calls the constructor with already 'safe' values?
<jemc> right
<TwoNotes> ok
<TwoNotes> I am makeing this val class containing a bunch of reference information to be shared by many actors, so it has to be val. The referernce info can come from various sources, but is ummutable thereafter.
<TwoNotes> This sounds ilke the "class factory' idea from Java.
<TwoNotes> There is an error message "this capture violates capabilities". What exactly does that mean? ponyc does not provide the usual supporting info for that error
<TwoNotes> It is happening on a statement "let a = b as Type"
<TwoNotes> Ah, I see now - the supporting info is tagged as "Error", like it was a separate error report, when actually it is showing the two conflicting declarations in support of the "violates capabilities" message.
<TwoNotes> Those should be indented with an "Info:" tag instead
graaff has joined #ponylang
<jemc> the `this capture violates capabilities` error typically means you are trying to pattern `match` (or cast with `as`) to a type with a different runtime cap than the corresponding type in the union you are casting from
<jemc> so, trying to match a `(Foo val | String val)` as a `String ref` for example - that would violate capabilities
<TwoNotes> When I looked at the next to "Error" messages I figured that out. But I was not looking at them because they were marked "Error" instead of "Info".
<TwoNotes> I think the compiler is just mislabelling those supporting messages
<TwoNotes> I got used ot the pattern of one Error message followed by a couple of Info messages that point out the source of the conflict
tm-exa has quit [Quit: Computer has gone to sleep]
aturley has quit [Ping timeout: 276 seconds]
aturley has joined #ponylang
aturley has quit [Ping timeout: 246 seconds]
Matthias247 has joined #ponylang
aturley has joined #ponylang
graaff has quit [Quit: Leaving]
tm-exa has joined #ponylang
<mcguire> SeanTAllen, thanks! Glad you enjoyed it. I'll keep an eye out for more awesome, incredible, amazing bugs for you. :-)
<SeanTAllen> mcguire: did i mention its fixed?
<SeanTAllen> yes, yes i did
<TwoNotes> What viewpoint does a primitive fun have? There is no receiver.
<jemc> TwoNotes: in pony, there's always a receiver - we currently don't have any functions where there is no `this`
<TwoNotes> But the funs in a primitive?
<TwoNotes> what is 'this' in that case?
<jemc> it's whatever cap your function has - if you specify `fun tag`, then `this` is a `tag` - if you specify `fun val`, then `this` is a `val`, etc
srenatus has quit [Quit: Connection closed for inactivity]
<jemc> in all cases, if you don't specify a cap and just say `fun`, then the default is `fun box`
<TwoNotes> Ah ok
<jemc> it just happens that `this` in a `primitive` is never very useful because you can't have fields to access
<jemc> so there's not a big difference whether it's `box`, `val`, or `tag`, as there's no fields to read or viewpoint-adapt
<TwoNotes> Yes, but I do get error messages due to mismatched caps, so I am trying to figure out the mistake
<TwoNotes> ok, so the error message I am seeing is from something else, not the viewpoint of the fun
<TwoNotes> If I have an iso reference to a class object, does that mean any reference i make to a field within it has to be a tag, in order to preserve the 'only one copy' rule?
juanjoc has quit [Quit: Leaving]
<mcguire> SeanTAllen, you did mention that, and yes, you did fix it. Thanks!
_andre has quit [Quit: leaving]
<jemc> TwoNotes: the table for viewpoint adaptation is here: http://tutorial.ponylang.org/capabilities/combining-capabilities.html
<jemc> notably, a `val` field can be easily read from an `iso` object reference
Praetonus has joined #ponylang
trapped_ has joined #ponylang
trapped has quit [Read error: Connection reset by peer]
trapped_ is now known as trapped
copy` has quit [Ping timeout: 264 seconds]
<TwoNotes> Hm, a commit I just pushed to GitHub is not showing on the web interface.
<jemc> TwoNotes: I've had other colleagues reporting responsiveness issues with github as well
<jemc> today, that is
<TwoNotes> Hmm. I'll do local backups and try again later.
copy` has joined #ponylang
<TwoNotes> But my I18n code now can load from JSON files
<TwoNotes> *And* the result is all 'val'! I learned a lot doing that
<TwoNotes> @githubstatus on Twitter reports they are working thru a backlog caused by a backend server being down
Scramble1ams has quit [Ping timeout: 248 seconds]
Scramblejams has joined #ponylang
<TwoNotes> GitHub has caught up. Here is the I18n project. https://github.com/pdtwonotes/secretary/tree/master/packages/localize
aturley has quit [Ping timeout: 244 seconds]
TwoNotes has quit [Quit: Leaving.]
Praetonus has quit [Quit: Leaving]
trapped has quit [Read error: Connection reset by peer]
tm-exa has quit [Quit: Computer has gone to sleep]
Matthias247 has quit [Read error: Connection reset by peer]
felixonmars has quit [Ping timeout: 248 seconds]