Camelia, the Perl 6 bug

IRC log for #parrot, 2013-07-14

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
01:29 rurban1 joined #parrot
02:19 rurban1 joined #parrot
03:00 rurban1 joined #parrot
03:35 benabik joined #parrot
03:54 preflex_ joined #parrot
05:02 mtk joined #parrot
05:05 rurban1 joined #parrot
06:05 rurban1 joined #parrot
06:14 zby_home joined #parrot
06:20 dukeleto joined #parrot
06:21 dukeleto ~~
06:21 sorear ~~
06:29 Mike-PerlRecruiter_ joined #parrot
06:33 dukeleto sorear: how goes it?
06:33 dukeleto sorear: i hear that you have a new coworker that I know, xenoterracide
06:34 sorear dukeleto: you know-know Caleb or just from #perl6?
06:34 sorear these rumors are accurate
06:35 dukeleto sorear: i hung out with him a bunch at YAPC::NA
06:36 dukeleto sorear: i am very interested in working on a real-time GC for Parrot with you
06:37 dukeleto sorear: that is essential for Parrot on RTEMS
06:41 dukeleto sa1: ping
06:43 sorear yeahhhh...
06:43 sorear I've a million things to do for work, a million things I want to do for rakudo/jvm, and I may have promised to set up a new evalbot for diakopter
06:44 PacoAir joined #parrot
06:44 dukeleto sorear: can you help me in the right direction? How would you proceed to add an RTGC to Parrot if you had all the time you needed?
06:45 dukeleto sorear: you understand these things much better to me, but I may be able to follow your advice and occasionally ask you to bail me out :)
06:45 dukeleto s/better to/better than/
06:46 dukeleto sorear: with a plan from you, it would be a SMOP...
06:46 sorear dukeleto: step 1: read parrot & try and understand the GC interface
06:47 dukeleto i am somewhat of the pluggability of the GC, but yes, making the GC "interface" my bedtime reading material is on the way...
06:47 dukeleto s/somewhat/somewhat familiar/
06:53 sorear incremental collectors are generally done as variations on the tricolor theme
06:54 sorear all objects are either "black" (will not be touched again this cycle), "grey" (will be retained, but the references haven't been processed), or "white" (not yet seen)
06:55 sorear maintain the following invariant: a black object can never point to a white object
06:55 sorear the fundamental quantum of marking is to take a single grey object, turn it black, and grey all the white objects it points to
06:55 sorear do this enough times and eventually you'll have no more grey objects, then you can free all the white objects
06:56 sorear and turn the black objects white
07:01 sorear dukeleto: is a TPF CLA good enough?
07:08 rurban1 joined #parrot
07:09 dukeleto sorear: good enough for what?
07:09 dukeleto sorear: how does a RTGC make guarantees about running time? i.e that a mark/sweep iteration will only take less than X ms ?
07:12 sorear dukeleto: good enough to contribute
07:12 sorear dukeleto: i understand there used to be this "PaFo" thing with its own CLA, but I also understand PaFo is going away
07:12 dukeleto sorear: that legal nonsense doesn't concern you
07:13 dukeleto sorear: some silly entity needs to own the IP of Parrot, it might change names, but something like that will always exist
07:14 dukeleto sorear: my thoughts are that we should get Parrot CI on RTEMS working, then start a RTGC branch
07:14 dukeleto sorear: then we will actually have the ability to test the RTGC
07:15 dukeleto sorear: that is the way I think, anyway
07:15 sorear dukeleto: the fundamental difference between a nonincremental GC and an incremental GC is that the nonincremental GC treats the grey set as the stack of invoked but not yet returned "mark" procedures, while the incremental GC is stackless and reifies the grey set as an explicit stack or queue
07:15 dukeleto sorear: i can work with the RTEMS dudes to make that happen
07:16 sorear this allows the incremental GC to stop processing and return to the application after, for instance, marking 100 objects
07:16 dukeleto sorear: ah
07:16 dukeleto sorear: so parrot currently has an incremental *and* generational GC, correct?
07:16 dukeleto sorear: that is what I understand, anyway. Trying to very things
07:17 sorear dukeleto: I know you have gms2, other than that I'm not sure
07:17 dukeleto sorear: yes, gms2 is default
07:17 sorear if you already have incremental, real-time on the GC per se won't be hard
07:17 Psyche^ joined #parrot
07:17 sorear but I didn't think you had incremental
07:17 dukeleto sorear: do you have any good recommendations for books or articles about RTGC, which stress applications instead of theory?
07:18 dukeleto sorear: i will have to verify that
07:18 sorear I think "Non-Stop Garbage Collection for Haskell" is the only one I've read
07:18 sorear (and I'm quoting that from memory, so you should probably start with the SPJ papers list and look for some close amtch)
07:19 * sorear suspects there is going to be some insane thing in IMCC or the strings system or elsewhere that prevents real-time operation, even if the GC can handle it
07:21 dukeleto sorear: I will kill that thing with extreme prejudice-fire
07:22 sorear I see gms, ms2, ms, and inf
07:23 sorear none of those is incremental
07:23 dukeleto sorear: ok, thanks
07:23 dukeleto sorear: so should i attempt to make parrot do incremental, on the way to real-time ?
07:24 Psyche^ joined #parrot
07:26 Psyche^ joined #parrot
07:31 sorear dukeleto: looks like the last time parrot had an incremental GC, it was unceremoniously ripped out in 2009 by some "Jesse Taylor" dude
07:31 sorear 813e4f34
07:31 dukeleto sorear: quite interesting
07:31 sorear how much guarantee do I have that if I add a new one, it'll *stay* in?
07:32 dukeleto sorear: well, I can assure you that I will protect anything that is required for an RTGC
07:33 dukeleto sorear: Parrot being real-time is essential to it being relevant in the future and I am working, slowly but surely, in that direction
07:34 dukeleto sorear: interesting that it doesn't mention any github issue or anything. And I don't even recognize the name...
07:38 dukeleto sorear: that looks like a "refactoring" branch
07:39 dalek parrot/m0: 98b8b60 | (Martin Vorländer)++ | / (2 files):
07:39 dalek parrot/m0: Change some dependency rules to make them work with MMS/MMK (VMS make utilities).
07:39 dalek parrot/m0:
07:40 dalek parrot/m0: The VMS make utilities always need an action if they determine that a target is
07:40 dalek parrot/m0: older than a denpendency element.
07:40 dalek parrot/m0:
07:40 dalek parrot/m0: Besides, rules like
07:40 dalek parrot/m0:
07:40 dalek parrot/m0: some/header.h : some/source.c
07:40 dalek parrot/m0:
07:40 dalek parrot/m0: some/source.c : some/file.dump
07:40 dalek parrot/m0: $(PMC2CC) some/source.pmc
07:40 dalek parrot/m0:
07:40 dalek parrot/m0: don't reflect the building process, as both the C and header file are generated
07:40 dalek parrot/m0: by the $(PMCCC) call.
07:40 dalek parrot/m0: review: https://github.com/parrot/parrot/commit/98b8b603ce
07:40 dalek parrot/m0: 86b7619 | dukeleto++ | / (2 files):
07:40 dalek parrot/m0: Merge pull request #865 from mvorl/depend-h_c_dump
07:40 dalek parrot/m0:
07:40 dalek parrot/m0: Change some dependency rules to make them work with VMS.
07:40 dalek parrot/m0: review: https://github.com/parrot/parrot/commit/86b7619bde
07:40 dalek parrot/m0: 6b79c78 | dukeleto++ | / (2 files):
07:40 dalek parrot/m0: [doc] Add a note about VMS make to our changelog
07:40 dalek parrot/m0: review: https://github.com/parrot/parrot/commit/6b79c78f21
07:40 dalek parrot/m0: 5dbd17b | dukeleto++ | README.pod:
07:40 dalek parrot/m0: [doc] Update readme with some more helpful pointers
07:40 dukeleto failed merge detection
07:40 dalek parrot/m0: review: https://github.com/parrot/parrot/commit/5dbd17bc84
07:40 dalek parrot/m0: 0286c71 | coke++ | README.pod:
07:40 dukeleto blarg
07:40 dalek parrot/m0: fix typo
07:40 dalek parrot/m0: review: https://github.com/parrot/parrot/commit/0286c7152b
07:40 dalek parrot/m0: ebd9b7e | (Kent Fredric)++ | config/ (2 files):
07:40 dalek parrot/m0: Always use redirection and *NEVER* perldoc -d  ( github #520 )
07:40 dalek parrot/m0:
07:40 sorear dukeleto: it has a git-svn-id line, which means it predates our use of github
07:40 dalek parrot/m0: perldoc -d $path is limited because perldoc SETUID's to `UID=nobody` if
07:40 dalek parrot/m0: `UID=0`, which basically guarantees that `perldoc -d $path` will not be
07:40 dalek parrot/m0: able to write anywhere in the working directory.
07:40 dalek parrot/m0:
07:40 dalek parrot/m0: Though using redirection may be limited on some platforms, any competing
07:40 dalek parrot/m0: solution should change the code executed depending on platform.
07:40 dalek parrot/m0:
07:40 dalek parrot/m0: On UNIX as UID=0, -d should **always** be avoided because of perldocs
07:40 dalek parrot/m0: inherent defects.
07:40 dalek parrot/m0: review: https://github.com/parrot/parrot/commit/ebd9b7e9a1
07:40 dalek parrot/m0: 05d8871 | dukeleto++ | config/ (2 files):
07:40 dalek parrot/m0: Merge pull request #973 from kentfredric/master
07:40 dukeleto sorear: yes, i did "git log -p" on the sha1 and I seem to have created the branch for the dude to refactor on
07:41 sorear what kind of "refactor" is removing an incremental GC?
07:41 dukeleto sorear: the "gc-refactor" branch
07:46 sorear dukeleto: http://trac.parrot.org/parrot/ticket/980
07:50 dukeleto sorear: looks like the old incremental GC was thrown away in the attempt to give the GC a public/private api and to move forward on GMS
07:50 dukeleto sorear: not sure of the correctness of that, but it happened
07:50 dukeleto sorear: thanks for finding that. i will read the old incremental code and see if I can salvage anything
07:56 sorear i've got a frew ideas of my own
08:08 rurban1 joined #parrot
08:12 dalek parrot/m0: ecbfb08 | dukeleto++ | src/m0/c/ops.c:
08:12 dalek parrot/m0: Correctly give an error message only when PC is invalid
08:12 dalek parrot/m0: review: https://github.com/parrot/parrot/commit/ecbfb0835e
08:16 sorear who killed dalek?
08:20 dukeleto $me->sleep()
08:23 dalek joined #parrot
08:23 Coke joined #parrot
08:25 p6eval joined #parrot
08:26 Util joined #parrot
08:52 patspam joined #parrot
09:13 rurban1 joined #parrot
10:07 dalek nqp/cached-serialization: a1783a1 | (Pawel Murias)++ | src/ (2 files):
10:07 dalek nqp/cached-serialization: Add a QAST::CompUnit.serialize_sc, which serializes the sc on the first use, and subsequently returns that value.
10:07 dalek nqp/cached-serialization: review: https://github.com/perl6/nqp/commit/a1783a18a1
10:14 rurban1 joined #parrot
10:34 dalek nqp: 655b7da | (Solomon Foster)++ | src/HLL/sprintf.nqp:
10:34 dalek nqp: Refactor a tad.
10:34 dalek nqp: review: https://github.com/perl6/nqp/commit/655b7da2f6
11:14 rurban1 joined #parrot
12:15 rurban1 joined #parrot
12:16 dalek nqp/cached-serialization: 2bb2232 | (Pawel Murias)++ | src/ (2 files):
12:16 dalek nqp/cached-serialization: Serialize the sc only when explicitly told to.
12:16 dalek nqp/cached-serialization: review: https://github.com/perl6/nqp/commit/2bb2232b9c
12:17 kid51 joined #parrot
12:40 dalek rakudo/nom: ebb29be | jonathan++ | src/vm/jvm/runtime/org/perl6/rakudo/RakOps.java:
12:40 dalek rakudo/nom: Implement type checking return values.
12:40 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ebb29bed98
12:58 dalek nqp: 754bc44 | jonathan++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
12:58 dalek nqp: Tweak nqp::backtrace() to give VM coderef back.
12:58 dalek nqp:
12:58 dalek nqp: This is what the usage of it in Rakudo expects. Gets us passing a
12:58 dalek nqp: good bit more of S32-exceptions/misc.t.
12:58 dalek nqp: review: https://github.com/perl6/nqp/commit/754bc4426e
13:10 mtk joined #parrot
13:17 rurban1 joined #parrot
14:18 rurban1 joined #parrot
14:37 rurban1 joined #parrot
15:24 kid51 joined #parrot
16:16 dukeleto joined #parrot
16:16 dukeleto sa1: pong
16:17 sa1 dukeleto: hello
16:19 dukeleto sa1: tell me all the details
16:19 dukeleto sa1: why you are stuck, what you have tried, what you think might work but haven't tried
16:19 dukeleto sa1: everything :)
16:19 dukeleto sa1: bring me up to date, while I get my parrot+rosella+libgit2 environment to where you are
16:20 dukeleto sa1: are you working on the master branch?
16:20 sa1 dukeleto: no, switch to the structview branch
16:20 dukeleto Util: are you ok on the next release?
16:20 dukeleto Util: you are the only person signed up to do releases, which worries me
16:20 dukeleto sa1: ah, ok
16:20 sa1 dukeleto: the test harness still has some problems. But run the test directly
16:21 dukeleto sa1: we are targetting the 0.19 release of libgit2, correct?
16:21 dukeleto sa1: what command-line, exactly, are you running the test directly with?
16:21 sa1 dukeleto: right.
16:21 dukeleto sa1: i want to reproduce exactly what you are doing
16:21 sa1 dukeleto: winxed t/winxed/001_load.t
16:22 sa1 dukeleto: There should be 2 errors.
16:23 sa1 The first one http://pastebin.mozilla.org/2592456
16:25 sa1 The second one is the dead coroutine error mentioned here: https://github.com/letolab​s/parrot-libgit2/issues/8
16:25 sa1 But like in that issue, I believe its a solvable one.
16:27 dukeleto dead coroutines! How exotic.
16:27 dukeleto too few positional arguments: 0 passed, 1 (or more) expected
16:27 dukeleto # Called from 'get_sv' (src/Git2/Repository.winxed : 11)
16:27 dukeleto sa1: that bug in on Repository.winxed line 11
16:28 dukeleto sa1: just for reference, plobsing wrote StructView
16:28 dukeleto sa1: so definitely listen to him first, *then* me
16:28 dukeleto sa1: he taught me everything I know about it :)
16:28 sa1 dukeleto: I don't get the too few positional arguments error
16:29 dukeleto Initializer too short (4) for struct type `struct' with 3 elements
16:29 dukeleto # Called from 'get_sv' (src/Git2/RefCache.winxed : 16)
16:30 sa1 dukeleto: Yes.
16:30 sa1 I don't see where 4 and 3 came in.
16:31 sa1 The RefCache struct has 2 elements
16:31 dukeleto sa1: it is trying to tell you "I WANT 4 BUT YOU GAVE ME 3"
16:31 sa1 Yes, but why would it want 4?
16:31 sa1 And I gave it 2, not 3
16:32 dukeleto sa1: it doesn't count the first argument
16:32 sa1 Changing that does not change the errors
16:32 dukeleto sa1: maybe it does
16:33 sa1 dukeleto: Yes, but the error didn't change
16:33 sa1 on adding or removing a element
16:33 dukeleto sa1: that is bad. Means something is not getting recompiled
16:34 sa1 Of course, first thing I thought.
16:34 sa1 Did run clean and make some times
16:34 dukeleto sa1: if you create a syntax error and run it, does it still work?
16:37 sa1 dukeleto: I get compile errors, yes.
16:38 dukeleto sa1: ok. that is an (in)sanity check :)
16:41 sa1 dukeleto: Let me push out some more things to structview branch.
16:43 dukeleto sa1: sounds good
16:44 sa1 Only minor errors I should have pushed before giving it to you to test. :)
16:47 dukeleto sa1: no worries
16:47 dukeleto sa1: still getting my env up and running
16:50 sa1 Yes, done
16:58 rurban1 joined #parrot
17:00 dukeleto sa1: ok
17:01 dukeleto sa1: what is your current plan? What are you totally stuck on? What can you make progress on right now?
17:01 dukeleto sa1: this is a good time to stop and write documentation. Give your coding brain a break
17:01 dukeleto sa1: and think like somebody that has *no clue* what the insides look like
17:02 dukeleto sa1: how do we make it easy for people to read our docs and find what they need
17:02 dukeleto sa1: good docs is what seperates interesting code that nobody uses from usable software
17:02 sa1 dukeleto: Current plan is improving setup.winxed
17:02 sa1 unifying the buildsystem
17:03 sa1 dukeleto: Yes, I will start writing some docs.
17:03 dalek parrot: 226d49d | dukeleto++ | config/ (2 files):
17:03 dalek parrot: Revert "Always use redirection and *NEVER* perldoc -d  ( github #520 )"
17:03 dalek parrot:
17:03 dalek parrot: This reverts commit ebd9b7e9a12f65beebdc61d7e428e11fffc6a2fc.
17:03 dalek parrot: review: https://github.com/parrot/parrot/commit/226d49da93
17:04 dukeleto sa1: great
17:04 dukeleto sa1: let me poke around and fix the structview thing
17:04 dukeleto do we have a msg bot in here anymore?
17:13 dukeleto sa1: do you need me for anything right else?
17:14 sa1 dukeleto: No, not at the moment.
17:14 dukeleto sa1: any questions, concerns, suspicions or preminition ?
17:14 dukeleto sa1: ok :)
17:14 dukeleto sa1: you are doing good work
17:14 dukeleto sa1: keep on going!
17:15 sa1 dukeleto: I had questions regarding the license btw.
17:15 dukeleto sa1: the Github people are watching our work :)
17:15 dukeleto sa1: speaketh your question
17:15 sa1 Is not LGPL better than GPL for our purpses?
17:15 sa1 purposes*
17:15 dukeleto sa1: one of the libgit2 devs that works for Github lives in Portland :)
17:15 dukeleto sa1: the short answer is "meh"
17:16 dukeleto sa1: there is no LGPLv3
17:16 dukeleto sa1: licenses are very complex
17:17 dukeleto sa1: gplv3 protects us from a companie patenting what we do in parrot-libgit2 and then suing us
17:17 dukeleto s/companie/company/
17:17 dukeleto sa1: gplv3 has a patent clause, nothing else does
17:17 dukeleto sa1: not that i am worried about it
17:17 dukeleto sa1: that is just my default these days
17:18 dukeleto sa1: i am open to people using it under other licenses
17:18 dukeleto sa1: so it really is a non-issue
17:18 dukeleto sa1: keep writing docs and don't worry about licenses for a bit longer. Ignorance is bliss :)
17:18 sa1 Yes, after it works well and people use it, then it may be an issue
17:19 dukeleto sa1: i am very open to giving people additional licensing, but that is a case-by-case basis
17:19 dukeleto sa1: in my opinion, that keeps the spirit of free software
17:19 rurban1 joined #parrot
17:19 dukeleto sa1: i am a free software pragmatist, i guess
17:20 sa1 Right, it is a good view.
17:21 dukeleto sa1: so if a company said "we really need parrot-libgit2 under the MIT license, here is a pile of money to fund parrot-libgit2 development", I would say "Yes"
17:21 dukeleto Free software isn't free to write.
17:22 sa1 Yes, that is good. Other people I know personally have tried the same approach.
17:47 Maddingue joined #parrot
18:27 Maddingue joined #parrot
18:30 Mike-PerlRecruiter_ joined #parrot
19:25 Hunger joined #parrot
19:29 benabik joined #parrot
19:37 Maddingue joined #parrot
20:27 Maddingue joined #parrot
21:06 mtk joined #parrot
21:13 Maddingue joined #parrot
21:15 sivoais joined #parrot
21:58 Maddingue joined #parrot
22:43 Maddingue joined #parrot
23:28 sivoais joined #parrot
23:29 Maddingue joined #parrot
23:45 sivoais joined #parrot

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

Parrot | source cross referenced