<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>
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]
<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.
<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!