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
The_Brofessor has quit [Quit: Textual IRC Client: www.textualapp.com]
The_Brofessor has joined #ponylang
amclain has quit [Quit: Leaving]
aturley has joined #ponylang
aturley has quit [Ping timeout: 252 seconds]
bb010g has quit [Quit: Connection closed for inactivity]
<SeanTAllen> New Pony Pattern: Performance - Limiting String Allocations -> http://patterns.ponylang.org/performance/limiting-string-allocations.html
The_Brofessor has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
aturley has joined #ponylang
aturley has quit [Ping timeout: 250 seconds]
bb010g has joined #ponylang
aturley has joined #ponylang
aturley has quit [Ping timeout: 276 seconds]
The_Brofessor has joined #ponylang
aturley has joined #ponylang
aturley has quit [Ping timeout: 248 seconds]
jemc has quit [Quit: WeeChat 1.4]
jemc has joined #ponylang
The_Brofessor has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
srenatus has joined #ponylang
aturley has joined #ponylang
aturley has quit [Ping timeout: 240 seconds]
jemc has quit [Ping timeout: 250 seconds]
trapped has joined #ponylang
copy` has quit [Quit: Connection closed for inactivity]
aturley has joined #ponylang
mcguire has quit [Ping timeout: 268 seconds]
Guest26443 has quit [Ping timeout: 250 seconds]
mcguire has joined #ponylang
tm-exa has joined #ponylang
jtfmumm- has quit [Ping timeout: 250 seconds]
aturley has quit [Ping timeout: 276 seconds]
Fuuzetsu has joined #ponylang
Fuuzetsu is now known as Guest52926
tm-exa has quit [Quit: Computer has gone to sleep]
tm-exa has joined #ponylang
tm-exa is now known as tm-away
aturley has joined #ponylang
tm-away is now known as tm-exa
aturley has quit [Ping timeout: 260 seconds]
lispmeister has joined #ponylang
aturley has joined #ponylang
aturley has quit [Ping timeout: 260 seconds]
aturley has joined #ponylang
aturley has quit [Ping timeout: 264 seconds]
lispmeister has quit [Quit: Textual IRC Client: www.textualapp.com]
_andre has joined #ponylang
M-hrjet has quit [Remote host closed the connection]
aturley has joined #ponylang
aturley has quit [Ping timeout: 264 seconds]
M-hrjet has joined #ponylang
Praetonus has joined #ponylang
aturley has joined #ponylang
aturley has quit [Ping timeout: 248 seconds]
jemc has joined #ponylang
aturley has joined #ponylang
copy` has joined #ponylang
<aturley> hey all, i put together a little library for dealing with iterators. https://github.com/aturley/itertools-pony
<aturley> i'd love to get some feedback.
<jemc> aturley: very cool, thanks for sharing!
<jemc> (we really need to get a package manager going soon so third party libraries are easy to share and use)
<jemc> aturley: do you think it would be useful to add an optional `offset` parameter to the `Limit` iterator?
<jemc> (so that you could, for example, limit to 5 items starting with the 2nd item)
<shepheb> has anyone tried integrating that general-purpose package manager that was linked in here last week? I'm forgetting what it was called.
<jemc> gx, you mean?
<jemc> I have not
<aturley> +1 for the package manager.
<jemc> I think the biggest stumbling block currently is the lack of consensus around some of the design questions raised here: https://github.com/ponylang/ponyc/issues/247
<aturley> sean and i were talking about that the other day.
<aturley> jemc: as far as limit goes, i think my intuition would be that this sort of functionality could be added with another iterator operation.
<aturley> er ... offset i mean.
<jemc> sure, however you want to design it - it's your package :)
<aturley> heh ...
<aturley> well, yes, but i'd like it to work for people.
<aturley> also, i'm full of bad ideas.
<jemc> I thought it was somewhat related, although perhaps the combination of the two might be called something like Window instead of Limit
<aturley> let me think on that one.
<jemc> another thought about iterator tools (although this might be more than you want to get into) some of these might make sense as iterator tools: https://github.com/ponylang/ponyc/pull/553
<jemc> particularly things like `map`
<jemc> just throwing out ideas, though - feel free to prioritize your own time and efforts, of course :)
<shepheb> jemc: wow, that's a heck of a thread.
<shepheb> reading...
<shepheb> also, does anyone else find it distressing that this is not a solved problem after 60 years of computing?
<shepheb> it just doesn't seem like it should be as big a mess as it has become. NPM seemed like they had it down, and then it exploded a couple weeks ago because unpublishing things is a bad idea.
<aturley> jemc: yeah, i was trying to decide if i should add `map` and `filter` ...
<shepheb> also NPM sidesteps the diamond problem by allowing multiple versions loaded in different places - that's fine if you're just calling static functions. but you definitely dont' want to be generating some data structure with one version of a library and consuming it with another...
<aturley> i was holding off on adding anything that took a function.
<aturley> until i got some feedback on what i had.
<shepheb> Google adopted one-version-to-rule-them-all internally, to avoid the diamond problem. but that makes upgrading hard.
<shepheb> I hadn't thought about it, but Pony's stronger typing and strict, shadow-free namespacing probably avoids the SomeType (from version 1.0) being passed to functions expecting SomeType (from version 2.1)
<shepheb> since those types can be considered different, since they were defined separately.
amclain has joined #ponylang
<jemc> shepheb: yes, I think andymcn was picturing supporting multiple versions of each library alongside eachother, by considering types to be distinct and separate
<jemc> I think the main non-consensus points revolve around what should go in pony source code and what should go in external meta-files (like a bundle description)
<jemc> there are some folks who believe in everything being in the pony source files, and some folks who believe in separating info like the source for fetching the dep in a separate meta-file
<jemc> pony as it exists now doesn't need any meta-files and I think that's a point of pride for some of the pony devs, but I think there's also something to be said for separating concerns.
<jemc> *shrug*
aturley has quit [Ping timeout: 250 seconds]
aturley has joined #ponylang
juanjoc has joined #ponylang
michael_campbell has quit [Ping timeout: 264 seconds]
Matthias247 has joined #ponylang
tm-exa has quit [Quit: Computer has gone to sleep]
_andre has quit [Quit: leaving]
tm-exa has joined #ponylang
<SeanTAllen> jemc, aturley -- #553 is going to get a lot more love and go on Seq
<SeanTAllen> i think the best way forward is for a package manager is for someone to write one and take it out of the theoretical. aint gonna be me though. i already have enough to do.
<SeanTAllen> i mentioned package manager to aturley the other day and he looked at my like i had wounded him greatly
srenatus has quit [Quit: Connection closed for inactivity]
<shepheb> I'm getting problems with the LTO plugin missing while building on Arch Linux (64-bit against LLVM 3.7.1)
<SeanTAllen> what's the LTO plugin?
<SeanTAllen> where are you getting LLVM from?
<shepheb> pacman
<shepheb> LTO is some kind of linker magic
<shepheb> I haven't run across this on my Arch Linux on RasPi
<shepheb> but this is a quite different GCC build, so who knows.
<SeanTAllen> is that LLVM from pacman?
<shepheb> yep
<SeanTAllen> when someone has time, we are going to see if we can just use llvm downloads from them
<SeanTAllen> because packagers for distros seem to do awful things
<shepheb> the ponyc Makefile has stuff about LTO in it
<shepheb> and I wonder if it's miscomputing that I have support for it
<shepheb> but I can't figure out how to tell which branches are being followed here
<SeanTAllen> which llvm-config-* 's do you have in your PATH?
<shepheb> I commented out the big ifeq block at the top of the Makefile, hand-computer OSTYPE = linux, AR = gcc-ar, and lto := no and now it works
<shepheb> so it seems like it's determining I have LTO support when I don't
<SeanTAllen> intersesting.
<shepheb> well, sort of working
<SeanTAllen> sort of?
<shepheb> I ran make test config=release
<shepheb> it got way farther than before when it was spamming LTO-related errors
<shepheb> now it got down to the main tests and crashed for an illegal instruction
<shepheb> I only have the main llvm-config binary. should I be looking somewhere else?
yawnt has left #ponylang [#ponylang]
<SeanTAllen> what does llvm-config --version print?
<shepheb> 3.7.1
TwoNotes has joined #ponylang
<mcguire> @shepheb LTO = Link Time Optimization.
<mcguire> If you do "ponyc -V4" (or "--verbose=4"), it should print out the command line when linking the program.
<mcguire> This is what I get:
<mcguire> cc -o ./anagrams -O3 -march=native -mcx16 -fuse-ld=gold ./anagrams.o -L"/home/mcguire/soft/pony/git/ponyc/build/release/" -Wl,-rpath,"/home/mcguire/soft/pony/git/ponyc/build/release/" -L"/home/mcguire/soft/pony/git/ponyc/build/release/../../packages" -Wl,-rpath,"/home/mcguire/soft/pony/git/ponyc/build/release/../../packages" -L"/usr/local/lib" -Wl,-rpath,"/usr/local/lib" -Wl,--start-group -l"rt" -Wl,--end-group -lponyrt -lpthread -ldl -lm
<mcguire> No lto 4 me.
<mcguire> Ubuntu - Something.
<TwoNotes> LTO depends on info from gcc. Maybe LLVM that Pony uses doesn't do that
<Praetonus> shepheb: Which commit are you on? I recently fixed lto related stuff occuring on Archlinux and some other distros
<shepheb> cc -o ./dcpu -O3 -march=native -mcx16 -fuse-ld=gold ./dcpu.o -L"/home/braden/src/ponyc/build/release/" -Wl,-rpath,"/home/braden/src/ponyc/build/release/" -L"/home/braden/src/ponyc/build/release/../../packages" -Wl,-rpath,"/home/braden/src/ponyc/build/release/../../packages" -L"/usr/local/lib" -Wl,-rpath,"/usr/local/lib" -Wl,--start-group -l"rt" -Wl,--end-group -lponyrt -lpthread -ldl -lm
<shepheb> Praetonus: master as of a couple of hours ago
<shepheb> possibly I'm missing some packages I don't know to install to get real LTO support? I don't understand much about linkers and such.
<shepheb> (using the compiled ponyc for another program than the test suite compiles "successfully" but then throws illegal hardware instruction at runtime
<Praetonus> What is the output of 'whereis LLVMgold' for you?
<shepheb> LLVMgold: /usr/lib/LLVMgold.so
<shepheb> it's using my native /bin/ar - that seems wrong.
<shepheb> shouldn't it be setting AR=gnu-ar?
<shepheb> er, gcc-ar
<Praetonus> Is it a debug or a release build?
<shepheb> release
<shepheb> trying a debug build to see what happens
<shepheb> seems like no LTO errors? we'll see how it goes
<shepheb> no LTO errors, still illegal instruction at runtime of the test suite
<Praetonus> Everything is working fine for me on Archlinux. Could you open an issue with a debugger call stack or something like that?
trapped has quit [Read error: Connection reset by peer]
trapped has joined #ponylang
TwoNotes has quit [Quit: Leaving.]
<Praetonus> shepheb: Looks like the linking problem is with gcc only. I guess gcc and clang don't have the same command line flags for LTO. I'll look into it
<shepheb> I can switch to clang if that will help, I guess
<Praetonus> I got it. The problem is that gcc and clang don't use the same LTO plugin. For now you can fix it for gcc by using 'lto=yes LTO=""' in the make command line
tm-exa has quit [Quit: Computer has gone to sleep]
bbhoss has joined #ponylang
<bbhoss> 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?
<bbhoss> looks like it's 8 spaces right now
<bbhoss> nm, figured it out. somehow tab-width was reset :)
<shepheb> Praetonus: maybe I did it wrong, but I still got loads of those errors.
<shepheb> lto=yes LTO="" make test config=release
<shepheb> maybe I'm doing it wreong
<Praetonus> shepheb: The LTO options are Makefile flags so it should be 'make test config=release lto=yes LTO=""'
Matthias247 has quit [Read error: Connection reset by peer]
trapped has quit [Read error: Connection reset by peer]
Praetonus has quit [Quit: Leaving]