Perl 6 - the future is here, just unevenly distributed

IRC log for #perl11, 2016-07-13

| Channels | #perl11 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
02:07 bulk88 willthechill im preparing a patch that fixes the ivsize problems in rperl in 04.t
02:36 willthechill bulk88: awesome!  :-D
02:36 willthechill please make sure you are using the newest github code
02:36 willthechill I changed most/all of t/*
02:36 willthechill recently
02:36 willthechill some small tweaks, some major refactorings
04:27 bulk88 the branch I pushed, here is its test results on Win32 http://paste.scsys.co.uk/526837 not that bad
04:27 bulk88 willthechill ^
04:29 travis-ci RPerl build errored. bulk88 says 'rperltypes.pm fix Win32 IV type code
04:29 travis-ci https://travis-ci.org/wbraswell/rperl/builds/144357485 https://github.com/wbraswell/rperl/commit/c8c1be290bd8
04:32 willthechill okay looking now
04:34 willthechill apparently sourceforge is crashed, that is why the build is errored
04:34 willthechill I guess I need to create a github mirror and move the 1 tarball over there instead of relying on sourceforge
04:37 willthechill bulk88: as for your paste of results, "143/3646 subtests failed" is pretty good, we are definitely getting there!  :-D
04:42 travis-ci RPerl build errored. bulk88 says 'rperltypes.pm fix Win32 IV type code
04:42 travis-ci https://travis-ci.org/wbraswell/rperl/builds/144357485 https://github.com/wbraswell/rperl/commit/c8c1be290bd8
04:43 willthechill weird, I wonder why we got that same message twice?
05:01 bulk88 i dont get it
05:03 willthechill okay I fixed the build error issue
05:03 willthechill https://travis-ci.org/wbraswell/rperl
05:03 willthechill it is building now
05:03 willthechill I had to create a new github repo
05:04 willthechill https://github.com/wbraswell/pluto-mirror
05:04 willthechill sourceforge is down
05:04 willthechill *partially down
05:04 bulk88 i see you pushed a bad commit to GH
05:06 willthechill me?
05:07 bulk88 https://github.com/wbraswell/rperl/commit/5ec2d5ed59bbfdb8bc11411a6054b3b339b0eb99
05:08 willthechill oh yes, bad commit MESSAGE, you got me there!
05:08 willthechill I was confused
05:08 willthechill now we actually have people working on RPerl!  :-)
05:08 willthechill it is a good problem to have.
05:08 willthechill haha
05:09 bulk88 do you want me to detangle the master branch?
05:09 bulk88 commit "Windows, Merge bulk88's IV Work" is useless if you rebase and put commit "Travis, Change Pluto Download Server To Github" ahead of "Merge pull request #55 from pablrod/feature/abs_cpp_support"
05:11 bulk88 willthechill ^
05:12 willthechill oh crud did I mess it up?
05:13 bulk88 yes
05:13 willthechill dang it I'm sorry
05:13 willthechill yes please help
05:13 willthechill D:
05:14 willthechill so my local repo was behind the github repo
05:14 willthechill then I made the changes to .travis.yml (and some nominal change to Learning.pm apparently)
05:15 willthechill then I did git add -A and git commit -a
05:15 willthechill then I tried to push to master but it said denied
05:15 willthechill so I did git pull origin master
05:15 willthechill and it said "merging via recursive strategy" or something very similar
05:15 willthechill then I thought it was pulling in your code (when it was really pablo's code)
05:15 bulk88 IDK how to use git on the command line
05:16 willthechill so when I did another git add and git commit, I typed in the (wrong) message about merging in your code
05:16 willthechill then it let me do git push origin master
05:16 bulk88 I force pushed a cleaned master
05:16 willthechill it did not deny me that second time
05:16 willthechill okay what does that mean?
05:18 bulk88 do a pull or "remote update", you will then have to do a reset hard of your local master to the origin/remote master
05:18 willthechill um I don't know how to do that
05:19 willthechill I know how to do `git pull origin master`
05:19 bulk88 the head commit on your master should be
05:19 bulk88 SHA-1: ca813c5e675bfcda09f48dda196baba9893f103f
05:19 bulk88 * Travis, Change Pluto Download Server To Github
05:19 willthechill what if I just create a new local directory and do a fresh clone from the github repo?
05:20 bulk88 IIRC (and I might be guessing) git pull does a merge on your local repo, of new stuff from the remote repo
05:20 bulk88 then the next commit you create, then push, has ugly spaghetti emrging
05:20 bulk88 rather than a linear history
05:21 bulk88 http://blog.xebia.com/wp-content/uploads/2010/09/git-merge-hell-smaller.png what happens when you use "pull" all the time
05:30 willthechill okay I'm just going to do a fresh git clone in a new empty local directory, yes?
05:32 bulk88 timtwtdi
05:33 willthechill well is it OKAY for me to just to a fresh git clone in a new empty local dir?
05:33 bulk88 YES
05:33 willthechill okay great
05:33 willthechill thank you!
05:35 willthechill so now the latest stuff on github includes both pablo's code as well as my new .travis.yml code?
05:36 bulk88 YES
05:36 willthechill sweet
05:36 willthechill bulk88++
05:36 bulk88 I can flatten the merge of pablots code if you want
05:37 willthechill um well I still don't know what that means
05:37 willthechill I can't see what you see
05:38 willthechill did I do something to mess up pablo's code?
05:38 willthechill or did he do something messy on his end?
05:41 bulk88 you shoudlve fast forward or reset master to the tip of his branch
05:42 bulk88 so his work isnt a branch but just linear history of RPerl
05:42 bulk88 I can flatten that branch out if you want ti
05:43 willthechill okay but first I want to understand a bit more clearly
05:44 willthechill what was the actual occurrence that created disharmony?
05:44 willthechill was it because he was doing development while I was also doing development, and his branch got behind the master branch, then when I merged in his changes it messed something up?
05:55 travis-ci RPerl build passed. Will Braswell says 'Travis, Change Pluto Download Server To Github'
05:55 travis-ci https://travis-ci.org/wbraswell/rperl/builds/144362833 https://github.com/wbraswell/rperl/compare/5ec2d5ed59bb...ca813c5e675b
05:57 bulk88 basically
05:59 willthechill okay so how do we prevent this same exact thing from happening every time pablo (or somebody else) wants to write some RPerl code?
06:02 bulk88 http://tinypic.com/r/53k13r/9
06:02 bulk88 there are later commits on left side
06:02 bulk88 so the branch should have started earlier
06:03 bulk88 there the green is
06:03 bulk88 willthechill use git log to see if the graph/flowchart is sane or not
06:04 bulk88 to prevent this, p5p has a no left side commits merge rule
06:05 bulk88 if you push a merge commit and there is stuff on the left side parent, the push is rejected by the remote git repo
06:05 willthechill okay that sounds cool but I guess I still don't know to actually prevent it with my current tools which are github and CLI git
06:06 bulk88 rebase, cherry pick, and reset hard are my 3 favorite tools
06:07 willthechill okay give me an example of how pablo and I can work together without causing problems?
06:09 bulk88 always remote update/git pull, your master branch before committing
06:09 bulk88 do a git pull --rebase
06:10 willthechill okay so I can make changes in my local repo, then do `git pull --rebase` and it will not delete my new not-yet-added-or-committed changes?
06:10 bulk88 this way your local commits ontop of master will be "pushed up" instead of kept horizontally with a merge commit at the top
06:11 bulk88 IDK about incommiuted changes
06:11 bulk88 I always have ot stash and pop  uncomitted work
06:11 willthechill I don't know anything about stash and pop in git
06:11 bulk88 okay drugs are hitting me
06:11 * bulk88 is drossxy
06:11 willthechill okay goodnight, talk to you tomorrow my friend!  :-)
06:12 bulk88 https://git-scm.com/docs/git-stash
06:15 ribasushi willthechill: generally if you start reordering your *local* work automatically on any pull it will fix 99% of your problems
06:15 willthechill reorder?
06:16 ribasushi git config branch.autosetuprebase always  <--- is your command to make it permanent for the repo
06:17 ribasushi willthechill: ok... you have to understand a *little* bit of git for the statement to actually make sense
06:17 ribasushi I can summarize if you have 5ish minutes to listen
06:17 travis-ci RPerl build passed. bulk88 says '07_type_gmp.t fix broken skip
06:17 travis-ci https://travis-ci.org/wbraswell/rperl/builds/144363134 https://github.com/wbraswell/rperl/compare/c6268e5948ad^...b4076b46a35c
06:18 willthechill okay sure
06:20 ribasushi so git fundamentally is a "filesystem snapshot manager", on top of which something resembling an scm is built
06:20 ribasushi every individual commit in a git repo is "the file tree contents as they appeared at the time of this commit"
06:21 ribasushi the actual history is strictly metadata - just like any element in a linked list is independent from anything else, yet knows a *little* bit about its surroundings
06:21 willthechill okay
06:22 ribasushi the way git synchronizes repositories is where it gets tricky, as "merging a linked list" is not a sensible concept
06:22 ribasushi so when you say `git pull`
06:22 ribasushi you are essentially saying: grab the current linked list from the other place (`git fetch`)
06:23 ribasushi then plaster it on top of mine (`git merge`)
06:23 ribasushi if one of the lists is a subset of the other - the merge won't do anything visibly
06:23 willthechill okay
06:24 ribasushi but if they are not (both had work done) - by default git strives to preserve *both* graphs, as it deems the metadata of the local *and* of the remote important
06:24 ribasushi so you get these weird merges - this is how it can preserve both DAGs without compromising the underlying thing it reporesents
06:24 ribasushi with me so far?
06:26 willthechill yes
06:26 willthechill so the "recursive merge" when I did `git pull origin master` was the bad part
06:26 willthechill ?
06:26 ribasushi now - for us meatbags - the metadata of who did which commit in what succession is not interesting
06:27 ribasushi so the workflow on "diverging linked lists" ( or histories in plain language ) is as follows:
06:27 ribasushi - get a list of diffs representing my work since the first point of divergence
06:28 ribasushi - force-update my local copy to be an exact version of the remote one
06:28 ribasushi - start applying the list of diffs I created earlier in the same order, *on top* of the (formerly remote, now local) history graph
06:29 ribasushi - whenever there is a conflict - ask the operator to resolve it, rinse repeat
06:29 ribasushi ^^ this is how you get a linear history
06:29 ribasushi the entire dance is automated by the command I showed you at the start of this conversation
06:29 willthechill okay so how does your git config command solve this issue?
06:30 ribasushi currently when you 'git pull' it does the "get both DAGs, and if they are not a subset of each other - create an artificial merge point that was never there before"
06:31 ribasushi after that command when you do `git pull`, it will actually imply `git pull --rebase`, which in turn means "do the 4 step dance riba showed above"
06:32 ribasushi hmmm though I am actually wrong - this config won't affect already existing branches
06:32 willthechill okay cool, so if I had always done `git pull --rebase` instead of just `git pull` then I would have never had this issue?
06:32 ribasushi so on your existing repo you will still have to `git pull --rebase`
06:32 ribasushi correct
06:32 ribasushi well *almost* correct
06:32 ribasushi `git pull --rebase` only makes sure that *your* changes will not become non-linear
06:33 ribasushi it will not do anything if someone else put something in the repo incorrectly - it will keep piling on top of that
06:33 willthechill okay so I also need to get pablo and the other RPerl devs to also do `git pull --rebase` every time?
06:33 ribasushi correct, generally it is the healthier way to work
06:34 willthechill okay so usually my workflow is:
06:34 ribasushi I think this is even becoming default in some "more recent version of git"
06:34 willthechill 1.  make changes to local files
06:34 willthechill 2.  git add -A
06:34 willthechill 3.  git commit -a
06:34 willthechill 4.  git push origin master
06:34 willthechill that's it
06:34 willthechill where do I add `git pull --rebase`?
06:34 ribasushi ok
06:34 ribasushi in this scenario there is nothing to add
06:35 ribasushi except sometimes 4. will fail (because the remote already advanced ahead of you, with other people done and pushed work)
06:35 ribasushi if 4 fails => then you do a `git pull --rebase`
06:35 ribasushi and if that fails half-way - you carefully read the instructions in the error message
06:36 ribasushi ( it's not tricky nor terse )
06:36 ribasushi willthechill: also are you a GUI person, or CLI for life?
06:38 willthechill okay gotcha, so if I had done `git pull --rebase` instead of `git pull` when #4 failed, then I would have avoided the problems caused by my end?
06:38 ribasushi you got it/
06:38 ribasushi you got it.
06:38 willthechill I use Github as my GUI
06:38 willthechill I wish Github had the "snake"
06:38 willthechill or more tools in general
06:38 willthechill oh well
06:38 willthechill :/
06:38 ribasushi right - there are *local* graphers
06:39 ribasushi which you can use before you push work
06:39 willthechill the only time I've ever seen the RPerl snake is when bulk sends me screenshots
06:39 ribasushi this way you can inspect "how does it look" before you make it public
06:39 ribasushi git log --all --decorate --graph --color --format=short <--- the text version (just run in your repo, it is safe)
06:39 willthechill I guess I need to start doing that, now that more devs are coming onboard
06:39 ribasushi or `gitk` is the proper GUI one
06:40 ribasushi I use it all the time as a secondary check for myself
06:41 willthechill cool CLI graph
06:42 ribasushi aight I got to go
06:42 ribasushi hope that was more helpful than confusing
06:42 willthechill yes helpful!  :-)
06:42 willthechill thanks!
06:42 willthechill ribasushi++
06:43 willthechill gitk is cool, I see the GUI snake / graph now!
07:03 travis-ci RPerl build passed. bulk88 says '07_type_gmp.t fix broken skip
07:03 travis-ci https://travis-ci.org/wbraswell/rperl/builds/144370394 https://github.com/wbraswell/rperl/compare/ca813c5e675b...b4076b46a35c
07:07 willthechill yay
10:29 ashevchuk joined #perl11
10:38 punter joined #perl11
10:38 travis-ci perl11/cperl#1294 (master - 4b3817e : Reini Urban): The build passed. https://travis-ci.org/perl11/cperl/builds/144378714
12:42 punter joined #perl11
14:32 ashevchuk joined #perl11
14:35 ashevchuk joined #perl11
14:39 ashevchuk joined #perl11
14:42 bulk88 willthechill how to do you run individual tests again?
14:42 bulk88 C:\sources\rperl>perl -Ilib -e"use RPerl::Algorithm::Inefficient; RPerl::Algorithm::Inefficient::cpp_load()"
14:42 bulk88 isn't working for me
16:41 punter joined #perl11
17:50 ashevchuk joined #perl11
18:19 ashevchuk joined #perl11
19:28 punter joined #perl11
19:56 punter joined #perl11
20:39 mako joined #perl11
20:43 mako bulk88: thx for modifying 'perltypes.pm'. Mapping 'long long' to 'i64' seems to work on win32 sys with strawberry perl 5.24 (64bit).
23:45 mako joined #perl11
23:45 mako joined #perl11

| Channels | #perl11 index | Today | | Search | Google Search | Plain-Text | summary