Camelia, the Perl 6 bug

IRC log for #parrot, 2011-07-08

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:00 jay Victory: just created src/classes/Classes.pm with a simple example, and got it into the build and ran a test.
00:00 whiteknight jay++
00:00 whiteknight jay: I'm extremely interested in the idea of efficient larger-than-RAM data structure manipulations
00:01 whiteknight PLA certainly doesn't handle anything like that, and I don't think the basic, vanilla BLAS does either
00:01 jay whomever sent me the link to https://github.com/perl6/nqp/b​lob/master/t/nqp/28-subclass.t gets a ++
00:01 dalek parrot/whiteknight/packfilewrapper: a3f5eaa | Whiteknight++ | src/pmc/packfileview.pmc:
00:01 dalek parrot/whiteknight/packfilewrapper: fix pmc_docs.t failure
00:01 dalek parrot/whiteknight/packfilewrapper: review: https://github.com/parrot/parrot/commit/a3f5eaa4d0
00:01 dalek parrot/whiteknight/packfilewrapper: bce7e07 | Whiteknight++ | src/packfile/segments.c:
00:01 dalek parrot/whiteknight/packfilewrapper: fix conflict
00:01 dalek parrot/whiteknight/packfilewrapper: review: https://github.com/parrot/parrot/commit/bce7e07e0f
00:03 jay whiteknight: we've done some cool things with C++ accessors.  So we can develop algorithms which can work either with regular in-RAM column-major matrices of R, or on our own 'big.matrix' objects, which can be in shared memory and filebacked.  We've done big singular-value decompositions of 160 GB on a stock desktop.  The caching behavior of the memory-mapped files is really very good (much better than database or other chunking solutions to
00:03 jay such problems).
00:04 whiteknight so you would have fixed-width elements arranged column-major in a huge file? Or a sequence of files?
00:04 jay bigmemory.org if you are interested is one starting point.  Actually, I have another set of talk slides that you might be interested in, I'll put it in the same folder.
00:05 jay whiteknight: either one huge file, column-major (necessary for BLAS compatibility) or as separate column-files (which can allow some neat tricks and hacks, since we deal with 'variables' in columns, usually).
00:05 whiteknight so you have a version of BLAS that uses C++ accessors, which fall back to file seeks? Or you're mmapping the whole mess and letting the kernel sort it out?
00:06 jay http://www.stat.yale.edu/~jay/NQR/VLDSemerson.pdf
00:07 cotto_work kid51: I'm already +1.  I've been watching the branch and love where it's going.
00:07 jay No, we have a package of C++ wrapper functions to BLAS libraries (or, one that we're using now).
00:08 jay Rather -- yes -- the kernel sorts it out (we mmap the huge binary files).
00:09 jay Then our C++ wrapper functions handle the accessors.  Ultimately, there is just some pointer to the right place and the kernel deals with it.  As far as I can tell.  !_)
00:10 whiteknight that's awesome
00:10 whiteknight jay++
00:10 jay The core C++ code could stand on its own and be used elsewhere.  The user API would be R-specific, though.  The developer API would be portable.
00:11 lichtkind left #parrot
00:11 plobsing if you're letting the kernel work it out, is there a reason you aren't just using swap?
00:12 whiteknight might not be that much swap
00:12 whiteknight he's talking about 160GB matrices
00:12 jay swap isn't as efficient and most people don't have enough of it.  DIsk space is plentiful, as long as the filesystem supports mmap.
00:12 plobsing if you've got the disk for 160GB files, you've got the disk for 160GB swapfile
00:12 jay Yeah, but end-users don't mess around with unusual swap.
00:13 jay Besides, the caching behavior is far more efficient and less damaging to system performance.
00:14 jay whiteknight: this is why I asked about Parrot's memory allocation.  If I could put my finger on some current mmap call used for FixedIntegerArray or FixedFloatArray, I might get some ideas...
00:14 whiteknight We have a type for mmap
00:15 plobsing the system performance should be the same at the end of the day. I'm not an expert at kernel VM systems, but mmap and swap are handled fairly similarly.
00:15 whiteknight MappedByteArray
00:15 jay plobsing: could be, but in our tests there was quite a difference.  We also support Mac/WIndows/Linux and some Solaris, I think, via BOOST.  Not all swap behaves equally well.
00:15 whiteknight that doesn't do floats, but I'm sure it could be subclassed or tweaked
00:16 jay whiteknight: will I be able to grep it easily, or is there someplace I should look to find it's definition?
00:16 whiteknight jay: if you have the parrot source repo, it's src/pmc/mappedbytearray.pmc
00:17 whiteknight it's a simple type. Still young and marked "experimental". A real-world use case might help us to get it matured and improved
00:17 jay I'll glance at it now...
00:18 jay ah -- you guys are trying to support MINGW I gather.
00:18 whiteknight trying
00:18 jay We've had little gotchas with BOOST across different compilers and have little hacks.
00:19 plobsing jay: swap might have different default heuristics than mmap, but you can change those (eg: using madvise)
00:20 jay plobsing: I'm sure you are right.  But we (in the R world) don't often mess with user-environment things like that.  Would get crazy across platforms, etc...
00:21 dalek parrot/whiteknight/packfilewrapper: b91cc44 | Whiteknight++ | MANIFEST.generated:
00:21 dalek parrot/whiteknight/packfilewrapper: Add generated files to MANIFEST.generated
00:21 dalek parrot/whiteknight/packfilewrapper: review: https://github.com/parrot/parrot/commit/b91cc44649
00:22 plobsing if you're expecting paging (which you are in both cases), you really should look into those heuristics. otherwise you'll be fighting your system.
00:24 jay plobsing: depends on the use case I think.  For example, we found it worthwhile to store both a matrix and the transpose for really big linear algebra problems, so that everything would be column-accesses.  Again, I think we have different "worlds" here.  End-user-friendliness is paramount, and our users aren't remotely computer-savvy in most cases.
00:25 plobsing jay: what I'm talking about is letting the system know what memory you'll be using next and what memory you are done with when doing large matrix multiplies
00:25 plobsing your users don't need to see it
00:25 jay whiteknight: thanks, I see it.
00:26 jay plobsing: maybe I misunderstood, then.  I thought you were recommending use of swap, but that would require user intervention: these problems are larger than default swap settings.
00:27 whiteknight fulltest. t/pmc/threads.t fails. FFFFFUUUUUUUU
00:27 plobsing I was arguing that swap is equivalent to mmap and that any difference has to do with the kernel's VM heuristics, which you should be tuning anyways (your use case should get large benefits)
00:28 whiteknight having a certain amount of control over files and disc locations isn't a bad thing
00:28 whiteknight plus, with ordinary mmapped files, you get persistance between program runs
00:28 jay I don't know anything about tuning VM heuristics, but it sounds like something that Undergraduate X would be able to do.
00:29 jay whiteknight: exactly: we use this persistence, critical for large data sets so you don't have to create or reload: you just mmap and you are good to go, no waiting (essentially).
00:30 plobsing I was only thinking about performance. I can see the user interface angle differs.
00:30 jay That's item #1 in the R community.  The downside is that the R Community can't move as quickly as you guys.  Serious inertia problem.
00:31 dalek rakudo/nom: 31fa9ff | jonathan++ | src/ (2 files):
00:31 dalek rakudo/nom: Only auto-generate an accessor method if the user didn't already provide one.
00:31 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/31fa9ffc75
00:31 dalek rakudo/nom: bf8a6af | jonathan++ | src/core/Parcel.pm:
00:31 dalek rakudo/nom: Allow | to work on a Parcel.
00:31 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/bf8a6af50a
00:31 dalek rakudo/nom: 61aa803 | jonathan++ | src/core/Junction.pm:
00:31 dalek rakudo/nom: First cut implementationg of an auto-threader. Not wired up yet, and plenty of room to optimize this.
00:31 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/61aa8037b0
00:31 dalek rakudo/nom: fe39b76 | jonathan++ | src/ (5 files):
00:31 dalek rakudo/nom: Wire up the auto-threader for single and multi-dispatch. Not heavily tested, but seems to work out with various tests (multi, single, multiple junctions, correct return value, pos and named args, etc).
00:31 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/fe39b76976
00:31 whiteknight jay: heh, I'm always complaining about PArrot
00:31 whiteknight 's inertial
00:32 whiteknight ...let me try to retype that
00:32 jay Just thinking about changing the R codebase from 4-byte integer indexing to longs... argh...  my head aches.
00:32 bluescreen left #parrot
00:32 cotto_work whiteknight: when's merge o'clock?
00:32 whiteknight I'm always complaining about Parrot having an inertia problem
00:32 whiteknight cotto_work: kid51 said he wanted to fulltest
00:32 cotto_work whiteknight: gotcha.  Let me know if he finishes too late for you and I'll be glad to merge it in.
00:33 * cotto_work heads home
00:33 jay From my perspective you guys are fluid.  The problem is that really poses a challenge for newbies like me.  This is my 3rd hack of squaak in two years, and it seems like a different world.
00:33 whiteknight jay: We're trying our best to make the user experience better. Of course, that means the old bad user experience doesn't work anymore
00:33 whiteknight I can understand the frustration
00:34 jay It's summer and I'm my own boss for chunks of hours on end... this is fun.  Less fun during the semester when I can only work for 1-2 hours between teaching and meetings.  Can't be productive like this.
00:34 whiteknight I swear to Kernighan, if t/pmc/threads.t fails for me again I am going to delete the test
00:35 plobsing no love for Ritchie?
00:35 whiteknight jay: Open-source your code. Gather a community. Laugh maniacally while they do the work for you
00:35 jay whiteknight++, plobsing++ thanks for the tips and discussion.  Got to head to the gym to burn some calories.
00:35 whiteknight jay: case-in-point, I don't even know who started parrot, and here I am wasting hours and hours of my life on it
00:36 whiteknight somewhere, some hacker is on a beach laughing and sipping mohitos
00:36 plobsing yeah. I think I may have talked myself into being interrested in doing those VM heuristic tweaks if I knew where I could contribute ;)
00:36 jay whiteknight: willdo, very soon I hope.  Just wanted something that was a little different than squaak!  Getting there.
00:37 jay back in an hour to play with my new class definition...
00:40 dalek rakudo/nom: 265331a | jonathan++ | t/spectest.data:
00:40 dalek rakudo/nom: Two more passing test files.
00:40 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/265331a987
00:40 dalek rakudo/nom: 5f2a810 | jonathan++ | NOMMAP.markdown:
00:40 dalek rakudo/nom: Update nommap.
00:40 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5f2a810dfd
00:41 rurban_ joined #parrot
00:42 preflex left #parrot
00:43 rurban left #parrot
00:44 rurban_ is now known as rurban
00:44 theory left #parrot
00:46 preflex joined #parrot
00:49 logie left #parrot
01:11 dalek parrot/whiteknight/pbc_pbc: 7dcae69 | Whiteknight++ | / (3 files):
01:11 dalek parrot/whiteknight/pbc_pbc: Add a new function Parrot_pf_subs_by_flag to return an array of all subs with the given flag. Replace PackfileView.trigger method with a new PackfileView.subs_by_flag method, to return a list of Subs. The user can use this method to get the subs with the flag they want, and execute them when specifically wanted.
01:11 whiteknight cotto I got you a present
01:11 dalek parrot/whiteknight/pbc_pbc: review: https://github.com/parrot/parrot/commit/7dcae69af9
01:21 cotto ~~
01:21 cotto Oh boy!  I wonder what it is.
01:22 daniel-s joined #parrot
01:27 preflex left #parrot
01:31 preflex joined #parrot
01:32 jay class vector is ResizablePMCArray .... not quite right I take it.  Hints?
01:33 jay I'm in NQP-rx.  Got a trivial subclass example working, so I'm in the ballpark.
01:33 Coke NQP?
01:34 jay well, I thought so.
01:34 Coke class foo is bar {
01:34 Coke }
01:34 Coke aye.
01:34 jay Right, doesn't work.  It apparently needs to find ResizablePMCArray elsewhere?
01:34 jay jay@bayesman:~/Desktop/SVN/Q/nqr$ ./installable_nqr
01:34 jay Parent of 'vector' is null
01:35 jay .... then more stuff ...
01:36 soh_cah_toa i'm not 100% sure, but i don't think you can subclass pmc types
01:36 soh_cah_toa i don't use nqp very much but that just doesn't sound right
01:37 jay I tried ResizableIntegerArray, didn't work either.
01:37 whiteknight you can subclass PMC types, I don't know if NQP has special syntax for it
01:37 soh_cah_toa o rly?
01:37 soh_cah_toa that seems weird but ok
01:38 jay Maybe I should try with PIR, first?
01:39 whiteknight NQP uses a special metaobject called P6object
01:39 whiteknight I suspect the "is" keyword expects the right argument to be registered with P6object
01:41 whiteknight got it, hold on let me put it together
01:42 jay I'm wondering if I need to do some    get_hll_global 'P6metaclass'     or something to declare the availability of these classes?
01:43 whiteknight yes
01:43 whiteknight INIT { pir::get_hll_global__PS("P6metaclas​s").register("ResizablePMCArray"); }
01:43 jay I'm on an old parrotblog page circa 2008.  Googling this stuff is tough.
01:43 whiteknight Add that to the top of your class.pm file, I think that should help
01:43 whiteknight or it will make things worse
01:43 jay whiteknight++ will try
01:43 whiteknight either way, it's another data point
01:44 jay CLoser, now get:
01:44 jay jay@bayesman:~/Desktop/SVN/Q/nqr$ ./installable_nqr
01:44 jay Null PMC access in find_method('register')
01:44 jay current instr.: '' pc -1 ((unknown file):-1)
01:44 jay called from Sub 'main' pc 0 (nqr.pir:22)
01:45 whiteknight weird
01:45 nopaste "coke" at 192.168.1.3 pasted "jay: works fine," (7 lines) at http://nopaste.snit.ch/58548
01:45 Coke whiteknight: I don't think that's needed for straight NQP.
01:45 jay I'm still essentially in a modification of squaak if that helps.
01:46 Coke jay: see that nopaste.
01:46 whiteknight jay: you're on parrot 3.3.0, right?
01:46 whiteknight you may need to do: pir::load_bytecode('P6object.pbc')
01:46 jay coke: I don't think that's the problem, I think we agree the syntax looks fine, but yes, I'm essentially adding to 3.3.0 squaak.
01:46 kid51 whiteknight/packfilewrapper branch: darwin/ppc:  commit 7f7d5322e2: make test PASS
01:46 jay Where should that pir::load.... go?
01:46 whiteknight code generated by NQP doesn't automatically include that library like it should. That's a bug that was fixed relatively recently
01:47 jay Into setup.pir I gather?
01:47 whiteknight jay: in that same INIT block I sent you, above the .register line
01:48 jay same error about Null PMC access
01:48 whiteknight weird
01:49 jay So this is what I have in my Classes.pm file (where I got a trivial subclass example working):
01:49 jay INIT {
01:49 jay pir::load_bytecode('P6object.pbc');
01:49 jay pir::get_hll_global__PS("P6metaclas​s").register("ResizablePMCArray");
01:49 jay }
01:49 jay class vector is ResizablePMCArray {
01:49 Coke jay: that code I nopasted /works/
01:49 jay method foo() {
01:49 jay say('Hello from vector');
01:49 jay }
01:49 jay }
01:50 Coke so something else is going on if that doesn't work for you.
01:50 whiteknight Coke: he is using parrot 3.3.0, might be different
01:51 Coke /works/... on HEAD. (there's a good reason for you to upgrade. ;)
01:51 jay I'm happy to move to 3.5.0 if the differences are trivial, but a few weeks ago 3.3.0 was listed as the most recent stable version.
01:51 whiteknight the next stable version, 3.6.0, is coming out on tuesday. 3.3.0 is the last on
01:51 whiteknight one
01:52 whiteknight Jay: Okay, instead of inheriting, just delegate instead
01:52 whiteknight class vector { has $!array; }
01:52 whiteknight that will get you passed this problem the quickest, without huge debugging effort
01:53 jay Am I playing with something cutting-edge, here?
01:53 Coke I would have expected that code to work on 3.3 too.
01:53 jay whiteknight++  that worked, thanks.
01:53 Coke but Idunno.
01:53 dukeleto jay: every 3 months is a supported, stable release. The next is 3.6.0
01:54 dukeleto jay: it is best to stick with those unless you need something from an unstable release
01:54 Coke so, if you start using HEAD today, that code will be supported with very minor changes in a few weeks.
01:54 jay I'll be fascinated to see if my current code works in 3.5.0 or 3.6.0 without change...
01:56 whiteknight method init is pirflags<:vtable("init")> { $!array := pir::new__PS("ResizablePMCArray"); }
01:58 whiteknight jay: for the most part, it should
01:58 whiteknight changes since 3.3.0 have been mostly internal-only
01:59 jay was that method init for me to use in my class?  That isn't inherited?
01:59 silug left #parrot
01:59 whiteknight jay: That method will populate $!array with a ResizablePMCArray when you create a new vector object
02:01 whiteknight left #parrot
02:01 whiteknight joined #parrot
02:02 jay ok, I'll have to play with it.  Where should I look for stuff like new__PS?  I don't remember seeing that anywhere.
02:02 whiteknight pir:: namespace uses PIR ops directly from NQP code
02:02 whiteknight it's like Q:PIR, but prettier
02:03 whiteknight the __PS is a hint to tell what arguments you are using
02:03 whiteknight the first is the return value, others are the arguments
02:03 whiteknight so pir::new__PS is the new opcode returning a PMC and taking a STRING
02:04 whiteknight it's one of those situations where NQP is clearly a too-thin layer over PIR
02:04 jay ok, so this is really a 'new' plus __PS giving extra help/  I was looking in places like http://docs.parrot.org/parrot/la​test/html/src/ops/core.ops.html and not seeing it.
02:04 whiteknight kid51: ping
02:05 whiteknight jay: exactly. It's the new op. NQP will automatically try to coerce arguments to the correct types, so it can't intelligently pick which op to use from all the variants
02:05 whiteknight there are new__PS, new__PP, new__PPP, etc
02:06 whiteknight in PIR, it's obvious which op you are using because PIR doesn't autopromote types
02:06 jay whiteknight++  yesterday someone would have used this as an argument to just code in PIR.  !_)
02:09 dalek parrot: eee63b0 | Whiteknight++ | api.yaml:
02:09 dalek parrot: Eval PMC is deprecated
02:09 dalek parrot: review: https://github.com/parrot/parrot/commit/eee63b0317
02:09 dalek parrot: 507aa96 | Whiteknight++ | api.yaml:
02:09 dalek parrot: PackFile_* API functions are deprecated
02:09 dalek parrot: review: https://github.com/parrot/parrot/commit/507aa961b7
02:09 kid51 whiteknight: pong
02:09 whiteknight kid51: are we good for a merge? I saw your testing came back clean
02:10 kid51 The only hesitation I have is:  Does anyone other than you understand what the point of this branch is?
02:10 kid51 The diff is large.  The subject matter is above my pay-grade.
02:10 kid51 I didn't see any Trac ticket about this.
02:10 whiteknight kid51: yes, cotto has been following along and reviewing
02:10 cotto kid51, yup
02:10 whiteknight it's spread out over a few tickets
02:11 kid51 Okay.  Since bus factor > 1, okay to merge.
02:11 cotto Bam!
02:11 whiteknight #1969 is probably the most relevant
02:12 whiteknight #2145, and #2140 less so
02:12 whiteknight okay, I just merged to master locally. I'm going to test one more time then push
02:13 cotto whiteknight, how does coverage look?
02:13 kid51 Please remember to add something to NEWS, if appropriate.
02:13 whiteknight I haven't seen coverage reports for it yet. Probably good but not great
02:13 cotto running them now
02:14 whiteknight I took a ticket today for adding temporary file capabilities. I am going to want that to test the write_to_file and read_from_file methods
02:14 whiteknight and the trigger method is not working, because of problems in the packfile API. I'm resolving that in the whiteknight/pbc_pbc branch, but that won't be in before the release
02:14 whiteknight the method just does nothing now, causes no problems
02:16 kid51 Also, please post as appropriate in those various trac tickets.  Thanks.
02:16 whiteknight right, will do
02:16 whiteknight I've got a lot of work to do in this area over the coming weeks. I'll be all over those tickets like brown on poo
02:16 kid51 The pbc_pbc branch:  Do you have a time frame for that?
02:17 whiteknight kid51: it's open-ended. Certainly not before the release
02:17 whiteknight hopefully before 3.7
02:17 whiteknight incoming
02:18 dalek parrot: 50d7baf | Whiteknight++ | / (19 files):
02:18 dalek parrot: fix conflicts in api.yaml. There's plenty of room to deprecate everything
02:18 dalek parrot: review: https://github.com/parrot/parrot/commit/50d7baf59a
02:18 dalek parrot: 19e2d89 | Whiteknight++ | NEWS:
02:18 dalek parrot: +note about PackfileView to NEWS
02:18 dalek parrot: review: https://github.com/parrot/parrot/commit/19e2d89179
02:19 cotto whiteknight, don't forget to nuke the branch.
02:19 whiteknight add one more thing to the list of things needing to be nuked
02:20 whiteknight done
02:22 whiteknight the network viewer on github hasn't updated in 8 hours
02:23 kid51 Y'know, it really annoys me that the results I get from 'git branch -a' differ from the 'Switch Branches' pull-down at https://github.com/parrot/parrot
02:23 ttbot Parrot 19e2d891 i386-linux-thread-multi make error http://tt.taptinder.org/cmdinfo/29577
02:23 kid51 Uh-oh.
02:24 kid51 x86_64, darwin, i386-linux-thread-multi
02:24 cotto that's no good
02:24 whiteknight ....
02:24 cotto whiteknight, are you on x86?
02:24 whiteknight x64
02:25 cotto I"ll fire up my x86 lappy and see if the same thing happens there.
02:26 whiteknight it's Coke's x86_64 darwin
02:27 cotto ah
02:27 kid51 https://github.com/parrot/parrot/commit/​50d7baf59a5d553c29fffe9a4a1266cf6f6801bd was first build failure
02:28 whiteknight Yeah, that's the merge
02:30 cotto looks like a fun one
02:31 cotto looks like make cover is borked too
02:32 whiteknight All the files I touched are building with no warnings (or, no new ones)
02:35 jay Newbie humor: this Dale K guy is pretty damn productive!
02:36 whiteknight :)
02:37 whiteknight I am going to assume buildbot is doing a full realclean and reconfig before building?
02:38 dalek parrot: ff7a667 | Whiteknight++ | src/pmc/eval.pmc:
02:38 dalek parrot: Comment out some stuff in Eval for now
02:38 dalek parrot: review: https://github.com/parrot/parrot/commit/ff7a66781d
02:38 whiteknight let's see what ttbot has to say about that
02:42 ttbot Parrot ff7a6678 i386-linux-thread-multi make error http://tt.taptinder.org/cmdinfo/29689
02:42 whiteknight damnit
02:42 whiteknight kid51: you said you tested it out on darwin?
02:43 bubaflub joined #parrot
02:44 whiteknight Coke: ping
02:45 whiteknight msg Coke: ttbot is giving us a build failure on your x86_64 darwin box. Segfault. Do you think you could get me a backtrace for that?
02:45 aloha OK. I'll deliver the message.
02:45 kid51 whiteknight: I tested the *branch* on darwin/ppc.  Only post-merge am I testing master on that platform.
02:45 whiteknight ok
02:47 dalek parrot: 04f584c | jkeenan++ | MANIFEST:
02:47 dalek parrot: Update MANIFEST for ext/winxed/LICENSE.
02:47 dalek parrot: review: https://github.com/parrot/parrot/commit/04f584c232
02:47 dalek parrot: 1878059 | jkeenan++ | src/pmc/eval.pmc:
02:47 dalek parrot: Merge branch 'master' of git@github.com:parrot/parrot
02:47 dalek parrot: review: https://github.com/parrot/parrot/commit/187805967a
02:47 kid51 whiteknight: master has successfully built on darwin/ppc; now entering make test
02:48 whiteknight okay, that's good
02:48 whiteknight so I have to wonder what is happening differently on Coke's machine
02:48 kid51 There have been a couple of cases like this where Parrot works on darwin/ppc but not on Intel and/or 64-bit
02:48 kid51 But IIRC Coke is the only person regularly submitting reports on Darwin/x86_64
02:49 cotto I'd test on that platform, but that'd require acquiring it first.
02:49 kid51 Sorry ... what is it that you to taptinder on?
02:49 whiteknight same
02:50 kid51 s/to/do/
02:50 kid51 I'm puzzled as to what Coke's taptinder #10 machine actually is.
02:51 whiteknight Okay, I don't think there is anything else I can do without a backtrace. I'm heading to bed, will get this all sorted out tomorrow morning
02:51 cotto whiteknight, 'night
02:51 whiteknight if we have to undo the merge, that will happen tomorrow
02:51 ttbot Parrot 18780596 i386-linux-thread-multi make error http://tt.taptinder.org/cmdinfo/29756
02:51 kid51 By that point, we'll probably have Win32 build failures as well :-(    They often go together with other build failures
02:52 whiteknight good. More data is good
02:52 whiteknight I'll look at it tomorrow. Goodnight
02:52 cotto yes.  More failures at this point would be great.
02:53 whiteknight left #parrot
02:54 bubaflub ~
02:54 kid51 Actually, build is succeeding on taptinder #8, which is: x86_64 MSWin32 MSWin32-x86-multi-thread
02:55 kid51 So far the only build failures being reported on taptinder are from #10: x86_64 darwin i386-linux-thread-multi
02:55 kid51 ... whatever that is! ;-)
02:55 cotto yeah.  That's a strange platform.
02:59 sorear uhm
02:59 sorear i386-linux-thread-multi is not a platform
03:00 sorear that's a perl5 extension ABI token
03:00 sorear how did it get there?
03:01 sorear multi is short for MULTIPLICITY, it means all libperl.so functions take a PerlInterpreter* argument instead of using globals
03:01 cotto tt calls it "archname"
03:01 sorear not related to CPU or OS at all
03:15 kid51 darwin/ppc: master: commit 19e2d89179: make test PASS
03:15 kid51 left #parrot
03:16 pjcj left #parrot
03:17 jay left #parrot
03:49 giwi left #parrot
03:55 silug joined #parrot
04:05 pjcj joined #parrot
04:17 giwi joined #parrot
04:27 soh_cah_toa left #parrot
04:34 giwi_ joined #parrot
04:34 giwi left #parrot
04:34 giwi joined #parrot
04:40 giwi left #parrot
04:40 giwi_ left #parrot
04:40 giwi joined #parrot
04:42 preflex left #parrot
04:45 preflex joined #parrot
04:45 jsut_ joined #parrot
04:49 giwi_ joined #parrot
04:49 giwi left #parrot
04:50 jsut left #parrot
05:02 theory joined #parrot
05:04 logie joined #parrot
05:09 fperrad joined #parrot
05:45 theory left #parrot
05:56 ttbot Parrot d1f74b35 MSWin32-x86-multi-thread make error http://tt.taptinder.org/cmdinfo/30466
05:58 logie left #parrot
06:36 fperrad left #parrot
06:39 fperrad joined #parrot
07:24 pjcj left #parrot
07:40 bubaflub left #parrot
07:45 pjcj joined #parrot
07:48 dalek nqp: 442e0b3 | pmichaud++ | / (5 files):
07:48 dalek nqp: Update nqp:: event and debug logging support.
07:48 dalek nqp: review: https://github.com/perl6/nqp/commit/442e0b3db6
07:48 dalek nqp: 59bc2bb | pmichaud++ | src/stage0/ (6 files):
07:48 dalek nqp: Update bootstrap.
07:48 dalek nqp: review: https://github.com/perl6/nqp/commit/59bc2bbcd0
07:59 fperrad left #parrot
08:12 fperrad joined #parrot
08:25 mj41 joined #parrot
08:30 giwi_ left #parrot
08:41 rurban_ joined #parrot
08:43 mj41 left #parrot
08:43 rurban left #parrot
08:44 rurban_ is now known as rurban
09:13 fahad joined #parrot
09:57 dalek rakudo/nom: aaffbef | moritz++ | t/spectest.data:
09:57 dalek rakudo/nom: two more passing test files
09:57 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/aaffbef820
10:11 dalek rakudo/nom: c514e45 | moritz++ | t/spectest.data:
10:11 dalek rakudo/nom: we pass a fudge pick.t
10:11 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c514e45fcf
10:12 dalek nqp: 1f28be4 | pmichaud++ | src/HLL/Compiler.pm:
10:12 dalek nqp: Fix handling of interactive_ctx so that it doesn't mistakenly grab
10:12 dalek nqp: NQP's setting as its outer (and bring it into the HLL's contexts).
10:12 dalek nqp: review: https://github.com/perl6/nqp/commit/1f28be4c87
10:20 dalek rakudo/nom: 3803bd5 | pmichaud++ | tools/build/NQP_REVISION:
10:20 dalek rakudo/nom: Bump NQP_REVISION so we get the interactive context fix and our
10:20 dalek rakudo/nom: REPL starts working again.  jnthn++
10:20 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3803bd599d
10:30 mj41 joined #parrot
10:33 ligne joined #parrot
10:54 mj41 left #parrot
11:01 jay joined #parrot
11:05 whiteknight joined #parrot
11:05 whiteknight good morning, #parrot
11:09 ligne morning whiteknight.
11:12 jay good morning whiteknight
11:12 whiteknight hello jay
11:13 jay You guys were really doing battle last night with ttbot.  !-)
11:13 mj41 joined #parrot
11:17 fahad what's worng with www.parrot.org ?
11:17 whiteknight fahad: Good question. Must have gone down
11:19 NotFound_b joined #parrot
11:19 fahad next question. downloaded (git clone) and build parrot. what next?
11:19 whiteknight trac is down too
11:19 moritz fahad: start hacking
11:20 NotFound_b whiteknight: PackFile_Segment_new_seg is declared in packfile/pf_private.h but is used in several places out of packfile/
11:20 whiteknight oh, that could be causing the problems
11:20 NotFound_b Breaks C++ builds
11:21 whiteknight that's very likely the cause of the ttbot failure
11:22 NotFound_b compilers/imcc/pbc.c and frontend/pbc_merge/main.c for a start
11:22 NotFound_b Also, my laptop froze in my first attempt to build with C using make -j
11:23 NotFound_b Without -j it builds
11:23 whiteknight it froze?
11:24 NotFound_b It usually freezes when memory usage trashes the swap, don't know why.
11:25 NotFound_b The -j makes me wonder about some missing dependence
11:28 mj41 left #parrot
11:31 whiteknight potential fix incoming
11:31 dalek parrot: cac768d | Whiteknight++ | / (3 files):
11:31 dalek parrot: Some functions from segments.c are used outside the packfile subsystem. They shouldn't be, but they are. Expose them all for now, to try and fix C++ build and ttbot failures
11:31 dalek parrot: review: https://github.com/parrot/parrot/commit/cac768deb0
11:38 mj41 joined #parrot
11:38 ligne whiteknight> that seems to have fixed all the declaration errors, thanks
11:38 NotFound_b whiteknight: Ugly, but builds.
11:44 whiteknight real fix is to find all the places using those functions and stop it
11:44 mj41 left #parrot
11:45 jay Question: I'm trying to read stuff on classes, and stumbled on the following.  The code doesn't look like NQP (thought it is similar) and certainly isn't PIR.  If I'm building my own HLL is this relevant or will it be a distraction?  http://en.wikibooks.org/wiki/Pa​rrot_Virtual_Machine/PMC_System
11:46 jay Ah -- is this C on Parrot?
11:46 whiteknight yeah, that's C. mostly
11:47 whiteknight we use a special markup for defining PMCs. It's basically C with a lot of macros
11:47 jay Ok.  Could be useful at some point, but not yet then.  Thanks.
11:51 NotFound_b jay: is relevant if you want to use custom PMC in your HLL
11:54 whiteknight ttbot hasn't complained yet. That's a good thing
11:55 Coke Coke's #10 taptinder machine is OS X, intel, 10.6.7
11:57 dalek parrot: a02bc2c | NotFound++ | frontend/parrot_debugger/main.c:
11:57 dalek parrot: Don't ignore Parrot_compile_string result,
11:57 dalek parrot: avoid the warning and do something maybe useful with it.
11:57 dalek parrot: review: https://github.com/parrot/parrot/commit/a02bc2c552
12:00 dalek parrot/whiteknight/pbc_pbc: eee63b0 | Whiteknight++ | api.yaml:
12:00 dalek parrot/whiteknight/pbc_pbc: Eval PMC is deprecated
12:00 dalek parrot/whiteknight/pbc_pbc: review: https://github.com/parrot/parrot/commit/eee63b0317
12:00 dalek parrot/whiteknight/pbc_pbc: 507aa96 | Whiteknight++ | api.yaml:
12:00 dalek parrot/whiteknight/pbc_pbc: PackFile_* API functions are deprecated
12:00 dalek parrot/whiteknight/pbc_pbc: review: https://github.com/parrot/parrot/commit/507aa961b7
12:00 dalek parrot/whiteknight/pbc_pbc: 50d7baf | Whiteknight++ | / (19 files):
12:00 dalek parrot/whiteknight/pbc_pbc: fix conflicts in api.yaml. There's plenty of room to deprecate everything
12:00 dalek parrot/whiteknight/pbc_pbc: review: https://github.com/parrot/parrot/commit/50d7baf59a
12:00 dalek parrot/whiteknight/pbc_pbc: 19e2d89 | Whiteknight++ | NEWS:
12:00 dalek parrot/whiteknight/pbc_pbc: +note about PackfileView to NEWS
12:00 dalek parrot/whiteknight/pbc_pbc: review: https://github.com/parrot/parrot/commit/19e2d89179
12:00 dalek parrot/whiteknight/pbc_pbc: ff7a667 | Whiteknight++ | src/pmc/eval.pmc:
12:00 dalek parrot/whiteknight/pbc_pbc: Comment out some stuff in Eval for now
12:00 dalek parrot/whiteknight/pbc_pbc: review: https://github.com/parrot/parrot/commit/ff7a66781d
12:00 dalek parrot/whiteknight/pbc_pbc: 04f584c | jkeenan++ | MANIFEST:
12:00 dalek parrot/whiteknight/pbc_pbc: Update MANIFEST for ext/winxed/LICENSE.
12:00 dalek parrot/whiteknight/pbc_pbc: review: https://github.com/parrot/parrot/commit/04f584c232
12:00 dalek parrot/whiteknight/pbc_pbc: 1878059 | jkeenan++ | src/pmc/eval.pmc:
12:00 dalek parrot/whiteknight/pbc_pbc: Merge branch 'master' of git@github.com:parrot/parrot
12:00 dalek parrot/whiteknight/pbc_pbc: review: https://github.com/parrot/parrot/commit/187805967a
12:00 dalek parrot/whiteknight/pbc_pbc: cac768d | Whiteknight++ | / (3 files):
12:00 dalek parrot/whiteknight/pbc_pbc: Some functions from segments.c are used outside the packfile subsystem. They shouldn't be, but they are. Expose them all for now, to try and fix C++ build and ttbot failures
12:00 dalek parrot/whiteknight/pbc_pbc: review: https://github.com/parrot/parrot/commit/cac768deb0
12:00 dalek parrot/whiteknight/pbc_pbc: 84a34f2 | Whiteknight++ | / (59 files):
12:00 dalek parrot/whiteknight/pbc_pbc: Merge branch 'master' into whiteknight/pbc_pbc
12:00 dalek parrot/whiteknight/pbc_pbc: review: https://github.com/parrot/parrot/commit/84a34f2d1d
12:00 Coke I see i'm green again.
12:04 JimmyZ joined #parrot
12:16 kid51 joined #parrot
12:16 kid51 Is Smolder down again?
12:18 kid51 parrot.org seems to be generally down
12:19 kid51 http://trac.parrot.org/parrot not available
12:19 kid51 same thing for http://parrot.org
12:21 Coke I just restarted smolder after you said that, but didn't realize the other stuff was down too.
12:21 dalek parrot: aa176f8 | NotFound++ | frontend/parrot/main.c:
12:21 dalek parrot: Don't ignore result of imcc_preprocess_file_api
12:21 dalek parrot: review: https://github.com/parrot/parrot/commit/aa176f8b00
12:22 Coke at a guess, it's an issue with the proxy.
12:22 Coke someone should ping #osuosl on freenode.
12:22 kid51 I just filed a ticket with osuosl.org
12:22 Coke (or open a ticket, or whatever.)
12:22 Coke kid51++
12:23 kid51 Have to go to $job now.  Coke if you can speak to them on freenode, that would be great (although it's 5:20 am there)
12:23 kid51 left #parrot
12:25 whiteknight kid51: in case you missed it, looks like the build failures are sorted out again
12:25 whiteknight sorry to have broken things so close to your release
12:26 dalek parrot/whiteknight/pbc_pbc: 8866aaf | Whiteknight++ | / (6 files):
12:26 dalek parrot/whiteknight/pbc_pbc: Add a 2-arg load_bytecode_p_s opcode to return a PackfileView. Added a new packfile API function Parrot_pf_load_bytecode_search to load a bytecode file from a shortname and the system search paths
12:26 dalek parrot/whiteknight/pbc_pbc: review: https://github.com/parrot/parrot/commit/8866aaf4e9
12:32 UltraDM joined #parrot
12:33 smash joined #parrot
12:33 Coke Rohit will be joining us shortly with some questions about parrot's lexicals.
12:33 smash hello everyone
12:34 Coke smash: cheers.
12:34 rohit_nsit08 joined #parrot
12:35 rohit_nsit08 Coke:ping
12:36 Coke Pong.
12:36 Coke So, re-reading your email, looks like you were asking about lexicals and then which objects to prioritize working on, yes?
12:36 rohit_nsit08 Coke: yup
12:36 smash seen chromatic
12:36 aloha chromatic was last seen in #parrot 146 days 18 hours ago saying "All of the core tests did pass for me, FWIW.".
12:37 rohit_nsit08 Coke: also about the strict variant of EcmaScript as well
12:37 Coke I'm not familiar with that.
12:37 Coke url?
12:38 Coke seen pmichaud?
12:38 aloha pmichaud was last seen in #perl6 2 hours 16 mins ago saying "bbl".
12:38 rohit_nsit08 https://developer.mozilla.or​g/en/JavaScript/Strict_mode
12:39 rohit_nsit08 Coke: somewhat restricted version of the same ecmascript
12:39 rohit_nsit08 Coke: and more error reporting
12:40 Coke ha! I think the way you enable it is amusing. (looks like perl)
12:40 Coke I would say since it changes the behavior of the language, it's out of scope, too much work.
12:41 rohit_nsit08 Coke: hmm.. don't have much idea of perl but this seemed to a bit confusing to implement.
12:41 Coke Save it as a stretch goal, but don't worry about it for now.
12:41 rohit_nsit08 ok
12:41 Coke in perl, to enable strictures, you say:
12:41 Coke use strict;
12:42 Coke so to have JS's be:
12:42 Coke "use strict";
12:42 Coke seems like an homage to perl.
12:42 Coke so, back to lexicals - there's some docs in PDD 20 (web site's down right now, have to use a source checkout)
12:42 rohit_nsit08 I have the whole site in pdf form , let me check
12:43 rohit_nsit08 got it
12:44 rohit_nsit08 ya I used it earlier, inner sub has access to outers lexical vairiables
12:44 rohit_nsit08 variables*
12:44 Coke ok. so, when you're generating the PIR, you'd declare a particular .lex to get the lexical value. I think the tricky part is figuring out which parrot .sub's
12:44 Coke correspond to the points in JS when you need a new scope.
12:44 Coke since each parrot .sub might not be a top level JS function.
12:45 Coke I think you just need to pick your :outer's carefully at that point.
12:45 moritz since JS doesn't have block-level scopes, you can compile each function to ecactly one parrot .sub
12:45 jnthn__ Aye
12:45 jnthn__ No need for nested scopes/blocks
12:45 moritz I just don't know if PCT is going to help you with that
12:45 jnthn__ Other than for nested functions
12:46 jnthn__ If you do end up with nested blocks then it's still easy - when you encounter a function, just stick the PAST::Block for that in a contextual like $*CURRENT_FUNCTION
12:46 jnthn__ Or something along those lines
12:46 Coke Sure, if you're doing one .sub per function, that's fine. Didn't know how you were tackling that.
12:47 Coke (see, this is why I wnted to have this conversation here. ;)
12:47 jnthn__ In NQP and Rakudo we have a PAST::Block having two PAST::Stmt nodes. We use the first one for declarations, the second for the code
12:47 jnthn__ So it'd be $*CURRENT_FUNCTION[0].push(PAST::Var ... )
12:47 rohit_nsit08 Coke: hmm that sounds good , any idea about refrence specification type , read this term in the specification . It talks about the resolving name bindings for variables
12:47 Coke I should also note that moritz & jnthn__ are closer to your time zone than I am. ;)
12:47 dalek parrot: 81e8d82 | NotFound++ | src/pmc/hash.pmc:
12:47 dalek parrot: hash entry_type is not a Hash_key_type
12:48 dalek parrot: review: https://github.com/parrot/parrot/commit/81e8d82482
12:48 Coke googling...
12:48 ambs joined #parrot
12:50 Coke hurm. reads like it's a Hash.
12:50 moritz rohit_nsit08: where's your code so far?
12:50 Coke (or, rather, Hash-like)
12:50 Coke corellascript?
12:50 Coke aloha, bad bot.
12:51 rohit_nsit08 I didn't updated the repo for some time, working on object syste
12:51 rohit_nsit08 system*
12:52 moritz rohit_nsit08: you should update the repo multiple times per day
12:52 rohit_nsit08 Coke: it says that reference is a resolved name binding
12:52 daniel-s left #parrot
12:52 jnthn__ Commit early, commit often :)
12:52 moritz rohit_nsit08: if you don't have something running, commit your stuff to a branch... better than losing everything when your computer's hard drive crashes
12:52 Coke aloha, corellascript is https://github.com/rohit-nsit08/corellaScript/
12:52 aloha Coke: Okay.
12:53 daniel-s joined #parrot
12:53 Coke also, measured progress makes it easier to upvote you at review time.
12:53 Coke My apologies for not being a more vocal mentor in this regard.
12:53 rohit_nsit08 moritz: hmm I'll do that from now, actually I did faced this problem last weekend while upgrading to fedora 15 system crashed but I had backup
12:53 Coke rohit_nsit08: yes, it does say that. What is your question? ;)
12:54 rohit_nsit08 Coke: I couldn't get the whole concept of it and how this will reflect in corellascript
12:54 Coke (it looks like if you have a reference type, you can set/get values by name. which is like a parrot Hash.)
12:55 rohit_nsit08 ya basically we are just storing variables in it and extracting when we need a refrence to it
12:55 rohit_nsit08 is it?
12:55 Coke http://www.scribd.com/doc/28271661/​ECMA-262-JavaScript-5#outer_page_44 if anyone else wants to play along.
12:56 bluescreen joined #parrot
12:56 NotFound_b left #parrot
12:57 Coke rohit_nsit08: that is certainly how I'm reading that at first.
12:58 Coke especially since the first sentence in the spec I'm reading is that it's used to "explain the behavior of delete, typeof, and the assignment operators".
12:58 * jnthn__ groks it
12:58 Coke not that it exposes any functionality in particular to the programmer.
12:58 jnthn__ delete foo['bar']
12:59 jnthn__ If you were to do this by syntactic analysis then you'd transform that into an operation on foo that deletes key bar
12:59 rohit_nsit08 Coke: sorry, didn't get that
13:00 jnthn__ But it suggests not to do that, and instead for foo['bar'] result in a reference that incorporates the object foo, the key 'bar' and thus delete has enough information to be able to do its work.
13:01 Coke jnthn__: the fact that this is in the spec indicates that they really expect you to implement it that way, aye, but I suspect that for the GSOC project, if it's easier to do the former way, that that would be fine.
13:01 Coke (I mean, I think the primary goal is "make delete work".)
13:02 rohit_nsit08 yup
13:02 rohit_nsit08 delete and typeof
13:02 jnthn__ Coke: Yeah. Reading between the lines, it feels like they're saying "sure, you probably could implement it by case analysis, but it'd make the spec nastier, plus this issue of functions that don't behave like ones a user could write"
13:03 NotFound That reference way will not be easy to efficiently implement in parrot.
13:03 jnthn__ Case analysis will be more optimal in terms of the generated code. It does require the compiler to do more work to look at the LHS.
13:03 jnthn__ NotFound: Tell me about it... :)
13:03 Coke so, don't try to be perfect to the spec, try to be good enough to run code.
13:03 NotFound I thought about doing it in winxed and gave up.
13:04 jnthn__ NotFound: nqp and 6model have actually defined a container model to try and help with these things.
13:04 jnthn__ NotFound: It's not all the answers, but it helps.
13:04 Coke as for your other question, which types, I see Undefined/Null/Boolean/String/Number/Object, which all have direct mappings to parrot core types.
13:04 rohit_nsit08 Coke: ya they all have direct mapping
13:05 rohit_nsit08 I'm defining a class and than adding attributes to it, than instantiating it to get objects
13:05 rohit_nsit08 and add methods if needed
13:05 Coke do the classes inherit from the core types?
13:06 NotFound Also, delete is an operator, not a functions. I don't see why we should pretend that we don't know its syntax.
13:06 rohit_nsit08 declaring a new Objects by defaults inherit the core Object pmc
13:07 rohit_nsit08 others are also inheriting if their corresponding class exists.
13:08 rohit_nsit08 I'm generating Function and Object objects in the above way . class and than objects
13:08 dalek rakudo/nom: 203aea2 | moritz++ | src/core/Str.pm:
13:08 dalek rakudo/nom: add argumentless Str.comb to make [Coke]++ happy
13:08 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/203aea21a5
13:10 Coke ok. Sounds like you have a plan there.
13:11 Coke moritz++ # \o/
13:12 rohit_nsit08 Coke: as I wrote to u earlier about the two different uses of some Objects in JS like they can be used as a function alone or as constructor ( when using "new") in case of constructor I need to instantiate a new object . my doubt was as to how this will effect the PIR code
13:12 Coke next blog post, it'd be nice if you could compare progress to the original plan. (and try to do that going forward)
13:13 Coke rohit_nsit08: can you give me a short JS example of each one?
13:13 Coke and while you do that, I get my second cup of coffee. be right back. ;)
13:14 rohit_nsit08 Coke: ya I'll do it , and It will be best if u can review my code regularly and comment on it . I'll update corellascript tomorrow and the blog as well
13:14 Coke also, I have a meeting in 15m that goes for an hour, then 1/2 breka, then another 30m meeting. but feel free to bug jnthn__ and others. brb.
13:19 Coke (back)
13:20 NotFound rohit_nsit08: I think the only difference between calling directly and using new is the value of 'this'.
13:22 rohit_nsit08 NotFound: ya "this" is creating the whole diffrence in both of these contexts
13:22 rohit_nsit08 in case of constructor, this is bind to the new object created
13:23 NotFound So the difference can be just the pir generated for operator new.
13:24 rohit_nsit08 NotFound: hmm, can u give me any small example , these are both the cases http://codepaste.net/dyukfd
13:25 rohit_nsit08 I have to make sure that when I have "new" before the function I get a new object  with correct 'this'
13:25 NotFound Uh, I don't know what Function does when called directly.
13:26 rohit_nsit08 when called directly it returns the result of toValue(argument)
13:26 Coke wow, me neither. You don't normally see that.
13:27 rohit_nsit08 Coke : ya even I saw its use during gsoc only :-)
13:27 rohit_nsit08 but specification says it is there
13:27 NotFound I think Function is too complicated for a simple example.
13:28 rohit_nsit08 it is applicable to any case where we have functions as all functions are constructors i guess
13:29 rohit_nsit08 it is usually advised to not use a function intended to be used as constructor as function alone. It only creates problems most of the time
13:29 NotFound rohit_nsit08: yeah, but using Function as example is prone to confusions between functions and Function %-)
13:30 Coke gha, meeting time.
13:30 rohit_nsit08 NotFound: ok, sorry for that example actually I was confused about this exact case
13:31 rohit_nsit08 so used it here also to discuss it
13:31 NotFound rohit_nsit08: it will be better to start with a cleaner example, then looking at the peculiarities of Function will be easier.
13:34 rohit_nsit08 NotFound: was reading about that , when Function is used as a function rather than as constructor it creates and initializes a new Function object so they are equivalent in this case
13:37 NotFound rohit_nsit08: I think that what new should do is: creating an object, set its internal details (prototype mainly) and then call the call or apply methods in the function object using the newly created object as this.
13:37 whiteknight left #parrot
13:38 rohit_nsit08 NotFound: yup, completely agree
13:39 rohit_nsit08 but when  used only as stand alone function , I think 'this' refers to global in case of nested functions and the object whose method that function is
13:40 NotFound I think so.
13:40 NotFound The current 'this' at the calling place.
13:41 rohit_nsit08 even in case of nested functions ?
13:42 NotFound Not sure, I haven't read the specification nor used that in the practice.
13:43 NotFound You can leave that cases untile the more common usages are ready.
13:44 NotFound Uhhhh... no, you probably can't, this is used for a lot of things.
13:45 rohit_nsit08 NotFound: I was also a bit confused about this , read that in case of functions inside function the inner function's this points to global object though it shouldn't but it does
13:46 NotFound Probably it depends on how the outer function is called, plain call or method call.
13:47 rohit_nsit08 this cleared my most of the doubts about "this" http://seanmonstar.com/post/7070680​21/4-ways-functions-mess-with-this
13:49 rohit_nsit08 inner function's "this" is not bound to owning object but to the global
13:53 NotFound rohit_nsit08: I don't think that example exemplfies well. concat is called as plain function, not as method.
13:53 NotFound That is the difference, not the place where it's defined.
13:56 rohit_nsit08 hmm let me have a look
14:02 bubaflub joined #parrot
14:02 rohit_nsit08 what I can see is that when Thing.woops() , concat is called with this.name (this refer to 'I was owned...) and a string . inside concat, this is referring to global object while the original call was Thing.woops . I used to believe that functios inside the functions are also belong to the owning object , is it wrong somewhere?
14:03 rohit_nsit08 concat is called as a plain function, so it's 'this' pointing to global is looking obvious to me
14:03 rohit_nsit08 as well
14:05 nopaste "NotFound" at 192.168.1.3 pasted "this or not this" (18 lines) at http://nopaste.snit.ch/58675
14:05 NotFound rohit_nsit08: look at this variant of the example
14:06 NotFound The this of woops depend on how it's called, not on were it's defined.
14:09 NotFound And if you want to call concat with the current this, you can use its call or apply methods.
14:09 preflex left #parrot
14:12 preflex joined #parrot
14:12 rohit_nsit08 hmm got it , so it doesn't matter where it is defined , calling sets the 'this' vale
14:14 rohit_nsit08 in first case 'this'.name is not defined, shows that being defined in object has no effect when called as plain function
14:15 nopaste "NotFound" at 192.168.1.3 pasted "Example with 'call'" (17 lines) at http://nopaste.snit.ch/58676
14:17 NotFound concat is not a member of Thing, is local on the anonymous function, so we can just use: this.concat(...)
14:17 NotFound can't
14:18 UltraDM left #parrot
14:19 rohit_nsit08 ya I'm getting the logic for what I earlier called 'wierd behaviour' .
14:20 NotFound It looks strange sometimes, but it has logic.
14:20 rohit_nsit08 :-) yup
14:21 rohit_nsit08 NotFound: getting late for dinner timings, gotta go . Thanks for the example , corrected my concept of 'this' . catch u latr bye
14:22 NotFound bye
14:22 rohit_nsit08 left #parrot
14:23 Coke websites are back. osuosl++
14:24 Coke NotFound++ # thank you!
14:25 NotFound Glad to help. I'll enjoy having a javascript implementation.
14:25 Coke msg kid51 websites are back.
14:25 aloha OK. I'll deliver the message.
14:37 daniel-s left #parrot
14:37 Coke I am bemused that 'isparrotfastyet' has trouble even building.
14:38 Coke Unca Coke sheds a tear.
14:44 atrodo Coke> me too
14:55 jay Interesting: as a statistician, I'm less interested in benchmarks than I am in simply being able to do what I need to do.  Speed usually isn't an issue, and if I do have something that takes time (e.g. more than a few minutes) I can usually do it in parallel very easily.
14:56 jay E.g. features trump speed for me.  Which is why I'm here.
15:01 logie joined #parrot
15:14 daniel-s joined #parrot
15:17 daniel-s left #parrot
15:17 dmalcolm joined #parrot
15:20 dukeleto ~~
15:22 Kovensky http://www.ustream.tv/nasahdtv <-- 5 minutes to launch
15:24 dod left #parrot
15:26 alester left #parrot
15:37 alester joined #parrot
15:40 alester left #parrot
15:57 darbelo joined #parrot
15:59 jay left #parrot
16:02 lucian joined #parrot
16:21 Coke left #parrot
16:21 Coke joined #parrot
16:21 ligne left #parrot
16:32 cotto ~~
16:38 Kulag joined #parrot
16:41 rurban_ joined #parrot
16:42 Kovensky left #parrot
16:43 rurban left #parrot
16:44 rurban_ is now known as rurban
16:44 dalek rakudo/nom: 25767e9 | jonathan++ | src/Perl6/ (2 files):
16:44 dalek rakudo/nom: Factor out package redeclaration logic so we'll be able to re-use it for all the various type-y declarators, and make it a bit smarter, e.g. so tadzik++ can declare a Block in Pod.
16:44 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/25767e9395
16:44 dalek rakudo/nom: f5c0a44 | jonathan++ | src/core/Mu.pm:
16:44 dalek rakudo/nom: First cut of clone, though probably not quite deep enough yet for many objects.
16:44 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f5c0a44ff5
16:44 dalek rakudo/nom: bb5852a | jonathan++ | src/Perl6/SymbolTable.pm:
16:44 dalek rakudo/nom: Fix redeclaration detection for nested classes.
16:44 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/bb5852ad2d
16:44 dalek rakudo/nom: 73518c8 | jonathan++ | t/spectest.data:
16:44 dalek rakudo/nom: Run S12-class/basic.t.
16:44 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/73518c8dc5
16:44 dalek rakudo/nom: 9420d14 | jonathan++ | NOMMAP.markdown:
16:44 dalek rakudo/nom: Update nommap.
16:44 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9420d1406e
16:47 dalek rakudo/nom: bf66171 | jonathan++ | src/core/Mu.pm:
16:47 dalek rakudo/nom: Make sure $obj.Mu::new() style delegation works.
16:47 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/bf66171d7b
16:47 dalek rakudo/nom: ca81dd4 | jonathan++ | t/spectest.data:
16:47 dalek rakudo/nom: We now pass S12-construction/new.t - or as much as master does, anyway.
16:47 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ca81dd4ec6
16:56 JimmyZ left #parrot
17:27 theory joined #parrot
17:41 particle left #parrot
17:50 particle joined #parrot
17:51 particle left #parrot
17:52 dalek parrot: 5caaa0f | NotFound++ | / (7 files):
17:52 dalek parrot: add non-null void-return versions of
17:52 dalek parrot: Parrot_pcc_build_call_from_c_args and Parrot_pcc_build_call_from_varargs
17:52 dalek parrot: to avoid the need for unused temporaries and spurious warnings.
17:52 dalek parrot: review: https://github.com/parrot/parrot/commit/5caaa0f5bc
17:53 particle joined #parrot
18:09 fperrad left #parrot
18:09 mj41 joined #parrot
18:10 fperrad joined #parrot
18:15 Eclesia joined #parrot
18:15 Eclesia hi
18:19 cotto_work ~~
18:19 Eclesia ⇐⇒
18:21 mj41 left #parrot
18:26 logie left #parrot
18:35 logie joined #parrot
19:01 Eclesia hi NotFound
19:03 Eclesia NotFound: I'm still having problem with strings. for example  © or →
19:05 NotFound Eclesia: What kind of problems?
19:06 Eclesia NotFound: I'm trying to read a file using rosella. when he found a utf-16 caracters I have a : Invalid character in ASCII string
19:07 Eclesia NotFound: I'm not sure it's winxed or rosella the problem
19:07 Eclesia if it's*
19:08 ambs left #parrot
19:08 NotFound Eclesia: utf-16?
19:10 Eclesia not ascii
19:10 NotFound Eclesia: you probably need to set the encoding in the filehandle: fh.encoding("utf8");
19:11 Eclesia I'm using rossela. so it's hidden. I'll take your advise and handle it myself with a FileHandle
19:12 NotFound You should tell whitenight about that problem.
19:13 Eclesia I will, when he comes back
19:18 fperrad left #parrot
19:18 fperrad joined #parrot
19:22 Eclesia ha, found it. was my fault   :x
19:24 darbelo left #parrot
19:25 smash left #parrot
19:29 Coke left #parrot
19:29 Coke joined #parrot
19:31 ambs joined #parrot
19:32 logie How would a newbie get started contributing? Willing to do whatever dirty work is needed.
19:33 Eclesia logie: definitly in first place → make some doc, a faq and some samples
19:34 Eclesia (But I'm not a contributor, so I have no right to say that :D )
19:35 benabik left #parrot
19:35 logie left #parrot
19:36 NotFound That depends. I started by locating dead C code and deleting it, before being able to write even a short pir snippet.
19:36 loganbell joined #parrot
19:36 cotto_work That wasn't helpful.
19:36 cotto_work I had my reply all typed up.
19:36 loganbell Sorry - disconnected.
19:36 loganbell is now known as logie
19:36 cotto_work ah
19:36 cotto_work great
19:36 cotto_work logie: we have a handful of tickets marked with the tag "newbie" that may be a good way to get familiar with the codebase.
19:36 NotFound logie: That depends. I started by locating dead C code and deleting it, before being able to write even a short pir snippet.
19:36 Kovensky joined #parrot
19:37 logie Can someone who knows perl and a little C, be of any service within this project? Sounds like the best place to start is sort through the tickets marked as newbie and see what I find?
19:37 NotFound At that time there was a lot of dead code, I hope today will not be so easy.
19:38 cotto_work logie: those will be helpful skills
19:38 NotFound logie: a general view of the full ticket list maybe better. I have my doubts about the "newbie" tag.
19:39 logie All the tickets being referenced are the ones in the trac?
19:39 NotFound logie: yes
19:41 logie sounds good, I'll see what I find.. if I have questions just present them here in this forum?
19:41 NotFound logie: yes, or in the parrot-dev mailing list
19:47 Coke left #parrot
19:47 Coke joined #parrot
19:51 lichtkind joined #parrot
19:59 Coke left #parrot
19:59 Coke joined #parrot
20:01 dalek winxed: 4851081 | NotFound++ | winxedst1.winxed:
20:01 dalek winxed: method Token.issinglequoted replacing some instanceof usages
20:01 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/4851081f36
20:03 nnunley joined #parrot
20:09 soh_cah_toa joined #parrot
20:09 Coke left #parrot
20:09 Coke joined #parrot
20:11 darbelo joined #parrot
20:15 Coke_ joined #parrot
20:15 Coke left #parrot
20:16 darbelo left #parrot
20:17 dalek parrot/soh-cah-toa/hbdb: 84b9833 | soh_cah_toa++ | src/hbdb.c:
20:17 dalek parrot/soh-cah-toa/hbdb: Added definition of display_breakpoint() and some operations for adding breakpoints to global list
20:17 dalek parrot/soh-cah-toa/hbdb: review: https://github.com/parrot/parrot/commit/84b9833108
20:17 dalek parrot/soh-cah-toa/hbdb: b153c8d | soh_cah_toa++ | .gitignore:
20:17 dalek parrot/soh-cah-toa/hbdb: Added 'hbdb' to .gitignore since it's a generated binary
20:17 dalek parrot/soh-cah-toa/hbdb: review: https://github.com/parrot/parrot/commit/b153c8de36
20:17 dalek parrot/soh-cah-toa/hbdb: a03f9ec | soh_cah_toa++ | frontend/hbdb/main.c:
20:17 dalek parrot/soh-cah-toa/hbdb: Fixed strcmp() conditional to compare against 0 because the previous method of using the ! operator did not work correctly
20:17 dalek parrot/soh-cah-toa/hbdb: review: https://github.com/parrot/parrot/commit/a03f9ec8b7
20:17 dalek parrot/soh-cah-toa/hbdb: 1268ffe | soh_cah_toa++ | frontend/hbdb/main.c:
20:18 dalek parrot/soh-cah-toa/hbdb: Changed frontend/hbdb/main.c to use headerizer instead of hand-typed function prototypes
20:18 dalek parrot/soh-cah-toa/hbdb: review: https://github.com/parrot/parrot/commit/1268ffe04e
20:19 dalek winxed: 423cf5a | NotFound++ | winxedst1.winxed:
20:19 dalek winxed: new experimental builtins for 4 args get/setattribute
20:19 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/423cf5a600
20:19 fperrad left #parrot
20:23 cotto_work soh_cah_toa: how's the code looking?
20:24 soh_cah_toa cotto_work: eh, i'm having some trouble compiling .pir files. also can't figure out why 'quit' generates a backtrace. working on the former now
20:24 dalek rakudo/nom: 5ea35d9 | Coke++ | t/spectest.data:
20:24 dalek rakudo/nom: This (commented out) test file doesn't exist.
20:24 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5ea35d9e94
20:25 soh_cah_toa pretty much, i'm gonna try and see if Parrot_compile_file() works any better than the imcc_* set of functions
20:32 Coke_ left #parrot
20:32 Coke joined #parrot
20:36 cotto_work soh_cah_toa: have you talked with whiteknight?
20:36 soh_cah_toa no
20:39 dalek rakudo/nom: bafbc15 | Coke++ | t/spectest.data:
20:39 dalek rakudo/nom: Alphabetize & note failure cause.
20:39 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/bafbc155ee
20:45 dalek rakudo/nom: 372e76c | Coke++ | t/spectest.data:
20:45 dalek rakudo/nom: Unskip passing testfile
20:45 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/372e76c8a8
20:54 dalek winxed: 1d88fd0 | NotFound++ | winxedst1.winxed:
20:54 dalek winxed: Indirect attribute setting.
20:54 dalek winxed: Example:
20:54 dalek winxed: var e = new["Exception"]; string s = "message"; e.*s = "Failed"; throw e;
20:54 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/1d88fd0c9f
21:10 bluescreen left #parrot
21:12 jay joined #parrot
21:25 bluescreen joined #parrot
21:43 Psyche^ joined #parrot
21:44 ambs left #parrot
21:48 Patterner left #parrot
21:48 Psyche^ is now known as Patterner
21:49 bluescreen_ joined #parrot
21:51 preflex left #parrot
21:52 perlite left #parrot
21:52 perlite joined #parrot
21:55 bluescreen left #parrot
21:55 preflex joined #parrot
21:56 bluescreen_ left #parrot
21:58 benabik joined #parrot
22:13 dalek rakudo/nom: 458245f | Coke++ | t/spectest.data:
22:13 dalek rakudo/nom: Add some failure comments, running one more test.
22:13 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/458245f6ed
22:18 kid51 joined #parrot
22:19 kid51 ~~
22:29 soh_cah_toa kid51: hey, how's work on the presentation going?
22:29 kid51 Umm, it isn't.
22:30 kid51 But I have 2 weekends to go.
22:30 kid51 And in any case, I can borrow copiously from earlier presentations by dukeleto, cotto and benabik.
22:30 kid51 So I'm not worried about it ... yet.
22:30 kid51 How's Honeybee?
22:31 kid51 Also, between now and FOSSCON I have to serve as Release Mgr for 1st time
22:32 soh_cah_toa ah yeah, me too in september
22:32 soh_cah_toa getting close to getting .pir files to compile properly. i want it to be invoked w/ a pir file but execute the bytecode
22:32 cotto_work kid51: I really think you're over-preparing.  It's not that big of a deal.
22:33 cotto_work It's an hour or two of work dispersed over the week+ before the release, then maybe 4 hours on the day of.
22:33 cotto_work less if you have a faster box to run tests
22:34 cotto_work kid51: speaking of which, do you have access to the right machines?
22:34 kid51 cotto_work: Can you give me the needed access to ftp.parrot.org?
22:34 cotto_work sure
22:35 kid51 Note: We are failing lots of tests on Win32:  http://smolder.parrot.org/app/​projects/report_details/16990
22:35 cotto_work can you nopaste your ssh public key from ~/.ssh/id_dsa.pub ?
22:37 nopaste "kid51" at 192.168.1.3 pasted "id_dsa.pub" (1 line) at http://nopaste.snit.ch/58800
22:37 Kulag left #parrot
22:37 Kulag joined #parrot
22:39 dalek rakudo/nom: e5ed290 | Coke++ | t/spectest.data:
22:39 dalek rakudo/nom: add a reason, pass a test.
22:39 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e5ed29015e
22:39 cotto_work kid51: you should now be able to ssh to parrot@ftp-osl.osuosl.org
22:42 cotto_work kid51: once you have that, head over to #osuosl and ask for an account on parrotvm.osuosl.org .  You'll need that to update docs.parrot.org .
22:44 dalek rakudo/nom: 1483a05 | Coke++ | t/spectest.data:
22:44 dalek rakudo/nom: add a passing test.
22:44 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1483a05560
22:50 dalek rakudo/nom: 2d10e5c | Coke++ | t/spectest.data:
22:50 dalek rakudo/nom: add more failure reasons.
22:50 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2d10e5c568
23:03 dalek Heuristic branch merge: pushed 30 commits to rakudo/podparser by tadzik
23:05 Eclesia left #parrot
23:21 dalek rakudo/podparser: 82b7267 | tadzik++ | src/Perl6/SymbolTable.pm:
23:21 dalek rakudo/podparser: [SymbolTable] Fix lookup of type object with "::" in their names, jnthn++
23:21 dalek rakudo/podparser: review: https://github.com/rakudo/rakudo/commit/82b7267d78
23:21 dalek rakudo/podparser: 93c4425 | tadzik++ | / (8 files):
23:22 dalek rakudo/podparser: Give Pod classes proper names, jnthn++ for making that possible
23:22 dalek rakudo/podparser: review: https://github.com/rakudo/rakudo/commit/93c44255d8
23:26 kid51 is now known as kid51_at_dinner
23:34 dmalcolm left #parrot
23:37 perl joined #parrot
23:41 bluescreen joined #parrot
23:47 Drossel joined #parrot
23:48 Kulag left #parrot

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

Parrot | source cross referenced