Camelia, the Perl 6 bug

IRC log for #parrot, 2012-06-14

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:21 whiteknight wowsers
00:21 whiteknight kid51++
00:39 whiteknight Ha! I think I've found my pointer error
00:41 whiteknight My calculation for the amount of free space in the buffer was wrong, based on the old buffer architecture
00:45 dalek parrot/whiteknight/io_cleanup1: a651df2 | Whiteknight++ | src/io/ (2 files):
00:45 dalek parrot/whiteknight/io_cleanup1: Fix my broken calculation for the amount of space in the buffer available for writing. This fixes at least one segfault (maybe more) and at least one broken test.
00:45 dalek parrot/whiteknight/io_cleanup1: review: https://github.com/parrot/parrot/commit/a651df2b48
00:45 whiteknight And as an added bonus, All the extra assertions I jammed in there help with quality assurance
01:07 whiteknight blah
01:07 whiteknight blah blah blah
01:08 whiteknight our IO PMCs are horribly inconsistent
01:09 whiteknight $S0 = h.'readline'()
01:09 whiteknight if h is closed and is a FileHandle, this throws an exception. A closed/disconnected socket returns 0. A closed StringHandle reads like normal
01:10 whiteknight We would expect StringHandle to be usable in place of a FileHandle at least, maybe a socket too. This is extremely useful for testing
01:11 whiteknight Actually, StringHandle throws an exception before it's been opened the first time, but is perfectly readable after it's been opened then closed
01:12 whiteknight so that's even better
01:13 whiteknight Oh, better still!
01:13 whiteknight the Socket.readline() method returns 0 if the socket is closed, but if you pass a socket to Parrot_io_readline it throws an exception because you cannot readline a socket
01:14 whiteknight so we're at what, 5 completely different behaviors depending on type and state?
01:14 whiteknight Children, repeat after me while I say the F word
01:15 whiteknight If anybody wonders why I'm rewriting this damned system, this is the reason why
01:47 whiteknight whatever. Bed.
02:46 alvis joined #parrot
03:06 dalek m1: dea1c43 | jimmy++ | t/fib.m1:
03:06 dalek m1: add a fib test
03:06 dalek m1: review: https://github.com/parrot/m1/commit/dea1c43274
03:23 dalek m1: c2e1ae2 | jimmy++ | benchmark/fib.m1:
03:23 dalek m1: add benchmark/fib.m1
03:23 dalek m1: review: https://github.com/parrot/m1/commit/c2e1ae27e6
03:26 dalek m1: 61b19c8 | jimmy++ | t/fib.m1:
03:26 dalek m1: change 28 to 22, so when make test, m0 won't hang
03:26 dalek m1: review: https://github.com/parrot/m1/commit/61b19c8d36
03:29 dalek m1: 80f20fa | jimmy++ | t/fib.m1:
03:29 dalek m1: remove debug code
03:29 dalek m1: review: https://github.com/parrot/m1/commit/80f20faccd
03:39 cotto I lolled then I realized that holy mackerel, there's a fib running on top of M0.  jimmyz++
03:43 crab2313 joined #parrot
03:44 JimmyZ joined #parrot
03:45 JimmyZ cotto: fib(28) eats all my memory and hangs
03:45 JimmyZ :P
03:45 cotto I'm so proud.
03:46 cotto c-m0 or p5-m0?
03:46 JimmyZ cotto: c-m0
05:23 dalek m1: 6d544a2 | jimmy++ | src/gencode.c:
05:23 dalek m1: reduce allocated memory in M0
05:23 dalek m1: review: https://github.com/parrot/m1/commit/6d544a2a91
06:04 brrt joined #parrot
06:41 dukeleto JimmyZ++ # nicely done on fib.m1
06:44 cotto srsly
07:01 brrt joined #parrot
07:30 dngor joined #parrot
07:47 dalek m1: e4ece94 | jimmy++ | src/gencode.c:
07:47 dalek m1: remove redundant m0 code, and some clean up
07:47 dalek m1: review: https://github.com/parrot/m1/commit/e4ece94094
08:19 lucian joined #parrot
08:20 kjs joined #parrot
08:37 kjs dukeleto: ping
08:39 dalek m1: 1534c85 | kjs++ | / (9 files):
08:39 dalek m1: add types to returning values.
08:39 dalek m1: review: https://github.com/parrot/m1/commit/1534c851c4
08:39 dalek m1: 93fdf74 | kjs++ | / (3 files):
08:39 dalek m1: comment out functions to remove warnings. add a test for returning strings.
08:39 dalek m1: review: https://github.com/parrot/m1/commit/93fdf74085
08:39 dalek m1: e13af4e | kjs++ | / (3 files):
08:39 dalek m1: some cleanup. refactoring. comments.
08:39 dalek m1: review: https://github.com/parrot/m1/commit/e13af4e3bf
08:39 dalek m1: 1320284 | kjs++ | / (6 files):
08:39 dalek m1: improve return test. improve code slightly.
08:39 dalek m1: review: https://github.com/parrot/m1/commit/132028403e
08:39 dalek m1: 1451181 | kjs++ | src/ (4 files):
08:39 dalek m1: cleaning up in the parser a bit. a block isa expression, but only wrap when necessary.
08:39 dalek m1: review: https://github.com/parrot/m1/commit/1451181699
08:39 dalek m1: 1323f0e | kjs++ | / (2 files):
08:39 dalek m1: fix a bug. Note to self: don't try to be too cheap with registers.
08:39 dalek m1: review: https://github.com/parrot/m1/commit/1323f0ed06
08:39 dalek m1: 1ace92b | kjs++ | src/gencode.c:
08:39 dalek m1: Add some comments to gencode_funcall.
08:39 dalek m1: review: https://github.com/parrot/m1/commit/1ace92bcc6
08:39 dalek m1: 41fd16c | kjs++ | / (2 files):
08:39 dalek m1: clarify code a bit. clean up test.
08:39 dalek m1: review: https://github.com/parrot/m1/commit/41fd16c31e
08:39 dalek m1: 058ea3e | kjs++ | src/gencode.c:
08:39 dalek m1: fix another bug in returning values.
08:39 dalek m1: review: https://github.com/parrot/m1/commit/058ea3eb32
08:39 dalek m1: 462e624 | kjs++ | t/funcall.m1:
08:39 dalek m1: add a fancy test file with nested function calls.
08:39 dalek m1: review: https://github.com/parrot/m1/commit/462e624704
08:39 dalek m1: 3e50bc5 | kjs++ | src/gencode.c:
08:39 dalek m1: fix a comment.
08:39 dalek m1: review: https://github.com/parrot/m1/commit/3e50bc588c
08:39 dalek m1: 49bc986 | kjs++ | src/gencode.c:
08:39 dalek m1: add a few comments.
08:39 dalek m1: review: https://github.com/parrot/m1/commit/49bc986dc2
08:39 dalek m1: bb635e2 | kjs++ | src/gencode.c:
08:39 dalek m1: fix conflicts i hope
08:39 dalek m1: review: https://github.com/parrot/m1/commit/bb635e2f5d
08:51 szbalint joined #parrot
09:10 dalek m1: f6c2295 | jimmy++ | t/return2.m1:
09:10 dalek m1: added a new test for return
09:10 dalek m1: review: https://github.com/parrot/m1/commit/f6c2295c5d
09:18 dalek m1: cecf5e4 | kjs++ | src/gencode.c:
09:18 dalek m1: remove a line thats commented out.
09:18 dalek m1: review: https://github.com/parrot/m1/commit/cecf5e47ed
10:15 mtk joined #parrot
10:22 brrt joined #parrot
11:00 brrt left #parrot
11:31 preflex_ joined #parrot
11:33 JimmyZ joined #parrot
11:34 kjs hi JimmyZ
11:34 JimmyZ dukeleto, cotto: kjs++ actually
11:34 JimmyZ hello kjs
11:35 kjs hi there. I had some conflicts this morning, I'm not sure what I did
11:35 kjs but it seems to be fixed now
11:35 JimmyZ kjs: yep
11:35 kjs did you see anything of that/
11:36 JimmyZ kjs: it's trivial  ;)
11:36 kjs i didnt' think so :-)
11:37 kjs JimmyZ: return2.m1 fails for me, but it's due to the unuse_reg; if i turn that off it works
11:37 JimmyZ kjs: fails for me too. that's why I commit it
11:38 kjs ah. I think the TAP protocol has special keywords for that
11:38 kjs like SKIP or something
11:38 kjs or TODO
11:38 JimmyZ kjs: I'm +1 to TODO
11:38 kjs but it's interesting that it fails.
11:38 kjs the unuse_reg system is not easy!
11:40 kjs JimmyZ: you commented out some code in gencode_return, indicating it was not needed
11:43 JimmyZ kjs: yeah, I wanted revert this commit
11:43 kjs i already fixed it
11:43 JimmyZ kjs: but now it's not needed
11:43 kjs JimmyZ: I agree there's code generated that shouldn't be there always
11:44 kjs but it needs to be fixed in a different way. It's not so important if dead code is generated now. We can optimize that later
11:44 JimmyZ kjs: yeah, I just got confused by the m0 code
11:45 kjs it's from the m0_poke_caler exampler
11:45 kjs -r
11:46 dalek m1: 758fb57 | jimmy++ | src/gencode.c:
11:46 dalek m1: add more unuse_reg
11:46 dalek m1: review: https://github.com/parrot/m1/commit/758fb5750f
11:47 JimmyZ kjs: I was a bit discouraged by the fib(28) ;)
11:47 kjs I was ENcouraged!
11:47 kjs it worked!
11:47 kjs well, fib(22)
11:48 kjs that's a good sign, as it's "complex" code
11:48 JimmyZ kjs: yeah, fib(22) was ENcouraged
11:48 kjs did you try to run with perl-m0?
11:48 JimmyZ kjs: yeah, worse
11:49 kjs ha! does fib(28) work in Perl 5 code?
11:50 JimmyZ kjs: fib(28) works when I gave c-m0 1.4G memory
11:50 kjs well it's a lot of m0_chunks I suppose
11:50 kjs however, is there no way to take advantage of tail recursion?
11:51 JimmyZ kjs: gc_alloc op east many memory
11:51 JimmyZ kjs: perl-m0 didn't seem to work with fib(28)
11:52 kjs JimmyZ: I mean, if you calculate fib 28 with perl 5 code
11:52 JimmyZ kjs: but perl-m0 didn't eat memory
11:52 kjs not m1 or m0 code, but written in Perl 5
11:52 kjs (or perl 6 :-)
11:53 JimmyZ kjs: I tried, fib(28) in perl5 is very fast, but fib(35) is not so good ;)
11:54 kjs mm ok.
11:54 kjs well perhaps gerdr-m0 does a better job
11:54 kjs i don't know why it is
11:55 dalek m1: da93887 | kjs++ | t/return2.m1:
11:55 dalek m1: TODO a test as it doesn't work yet.
11:55 dalek m1: review: https://github.com/parrot/m1/commit/da938876d3
11:55 kjs what about parrot?
11:56 kjs JimmyZ: I think, not sure, but SKIP and TODO directives only work if you write "not ok" rather than "nok" in the output.
11:58 JimmyZ kjs: parrot is slow, many years ago
11:58 JimmyZ *was
11:59 kid51 joined #parrot
11:59 kjs but it would run fib(28)?
12:00 JimmyZ kjs: sure
12:00 dalek m1: 4aebbe9 | jimmy++ | t/return2.m1:
12:00 dalek m1: fix test
12:00 dalek m1: review: https://github.com/parrot/m1/commit/4aebbe9c53
12:01 dalek m1: 2645b68 | kjs++ | examples/life.m1:
12:01 dalek m1: add examples folder. add life.m1. Stolen from Lua distribution. Need to convert into M1.
12:01 dalek m1: review: https://github.com/parrot/m1/commit/2645b68b27
12:06 dalek m1: 1b908a4 | jimmy++ | examples/benchmarks/fib.m1:
12:06 dalek m1: re-add fib.m1 to benchmarks, I don't know why it lost
12:06 dalek m1: review: https://github.com/parrot/m1/commit/1b908a4179
12:07 JimmyZ git--
12:07 kjs JimmyZ: probably my fault
12:07 kjs i'm not very handy with git
12:09 JimmyZ kjs: git removes without a commit
12:09 kjs I'm using github for mac
12:09 kjs as a client
12:09 kjs no command line
12:10 kjs so i might have messed a few thing up
12:11 dalek m1: e517f59 | kjs++ | examples/life.m1:
12:11 dalek m1: start to convert game of life to M1. Many things to do, and many bugs to fix .
12:11 dalek m1: review: https://github.com/parrot/m1/commit/e517f59f18
12:13 kid51 kjs: ping
12:13 kjs kid51: pong
12:14 kjs kid51: did you get that file you requested?
12:14 kid51 I don't think your attachment made it to github:  https://github.com/parrot/parrot​/issues/791#issuecomment-6326104
12:14 kjs no i dont know how to attach it. didnt see a button so i replied to the email. didn't that work?
12:14 kid51 Apparently not.
12:15 kjs will copy paste the contents as a comment?
12:15 kid51 github issues--
12:15 kjs *will I ?
12:15 kid51 Yes, just paste your comments in the GUI
12:15 kid51 If you precede the contents of config_lib.pir with 3 backticks
12:15 kid51 ```
12:15 kid51 and follow them with 3 backticks
12:15 kid51 ```
12:16 kid51 ... your code paste will appear in monospace font.
12:16 kjs at the beginning and end on sep lines?
12:16 kid51 IIRC it works either on those lines or before or after those lines.
12:16 kid51 There is a preview button.
12:16 kid51 I admit, I don't know how to fix your problem, but seeing the results of configuration might give someone else a clue.
12:17 kid51 IIRC 2-4 years ago we frequently got 'dyld' configuration errors on Darwin.
12:17 kjs ok the bacticks dont seem to work
12:18 kjs ok this doesn't look great.
12:19 kid51 Well, if worse comes to worse, you could send email to parrot-dev with output as attachment.
12:19 kid51 Or to me individually, and then I could paste into gui
12:19 kjs how long do nopaste snippets hang around?
12:19 kjs i could send a link to that
12:19 kid51 Several days at least.
12:19 kid51 Yeah, try that.
12:19 kjs aloha, nopaste?
12:19 aloha kjs: nopaste is is http://nopaste.snit.ch (works with the script in $_PARROT/tools/dev/nopaste.pl)
12:19 kid51 I'm at YAPC and have to get ready for this day's meetings,
12:20 nopaste "kjs" at 89.101.178.50 pasted "no zlib on mac :-(" (293 lines) at http://nopaste.snit.ch/144067
12:20 kid51 So I'll check in later in the day.
12:21 kjs kid51: I commented again with the link
12:21 kjs http://nopaste.snit.ch/144067?tidy=on&amp​;hl=on&store=on&submit=Format+it!
12:23 crab2313 joined #parrot
12:33 dalek m1: d86e4a3 | kjs++ | src/gencode.c:
12:33 dalek m1: need to invoke gencode_block() rather than exprlist for if, while and do-while.
12:33 dalek m1: review: https://github.com/parrot/m1/commit/d86e4a36a6
12:43 crab2313 joined #parrot
12:51 jashwanth joined #parrot
13:09 Psyche^ joined #parrot
13:11 JimmyZ crab2313: what's your problem?
13:11 crab2313 JimmyZ: m1's Makefile missed a CFLAGS
13:12 JimmyZ crab2313: are you on linux?
13:12 crab2313 JimmyZ: yes
13:12 crab2313 JimmyZ: and I try -m32 on a 64-bit machine
13:12 JimmyZ crab2313: what CFLAGS?
13:12 crab2313 JimmyZ: m1$(EXE):
13:13 JimmyZ crab2313: feel free patch it
13:13 crab2313 patch or pull request?
13:13 JimmyZ pull request :)
13:14 JimmyZ if you like
13:14 kjs joined #parrot
13:14 kjs_ joined #parrot
13:26 dalek website: jharper1++ | Small Progress in Security Sandbox
13:26 dalek website: http://www.parrot.org/content/s​mall-progress-security-sandbox
13:46 isBEKaml joined #parrot
14:05 whiteknight joined #parrot
14:05 whiteknight good morning, #parrot
14:06 isBEKaml whiteknight: o/
14:06 whiteknight hello isBEKaml
14:06 isBEKaml high activity on #parrot recently. :)
14:10 dduncan joined #parrot
14:20 whiteknight yes, it makes me very happy to see so many people hacking
14:24 dalek m1: 5117a8d | kjs++ | src/gencode.c:
14:24 dalek m1: unuse_reg(rhs) is invoked later. Should never be done before the usage of a reg.
14:24 dalek m1: review: https://github.com/parrot/m1/commit/5117a8d6ad
14:27 kjs_ joined #parrot
14:28 kjs joined #parrot
14:29 dalek m1: 78db1b1 | kjs++ | src/ (3 files):
14:29 dalek m1: add a commandline flag for switching off reg. optimizer.
14:29 dalek m1: review: https://github.com/parrot/m1/commit/78db1b1d9c
14:31 kjs JimmyZ: I added a "-r" option to switch off unuse_reg().
14:31 JimmyZ kjs: great
14:31 kjs return2.m1 test fails becaus of that I think
14:32 kjs so there are some issues with this system.
14:44 dalek m1: 607010c | kjs++ | src/gencode.c:
14:44 dalek m1: refactor common code.
14:44 dalek m1: review: https://github.com/parrot/m1/commit/607010c3aa
14:45 isBEKaml_ joined #parrot
14:49 mtk joined #parrot
14:52 dalek m1: eb72f0a | kjs++ | src/gencode.c:
14:52 dalek m1: refactoring of math ops code generation.
14:52 dalek m1: review: https://github.com/parrot/m1/commit/eb72f0adeb
14:53 isBEKaml whiteknight: Yes, I'm super stoked to see so much activity on this channel, really. Makes me want to get into something parrot-y tonight. :)
14:55 dalek m1: aab86a4 | kjs++ | src/gencode.c:
14:55 dalek m1: ... and actually remove old code.
14:55 dalek m1: review: https://github.com/parrot/m1/commit/aab86a47f1
15:02 whiteknight isBEKaml: please do!
15:04 dalek m1: 231ea72 | kjs++ | / (2 files):
15:04 dalek m1: add a comment to show off use of nested c comments. add a little bit text to design doc.
15:04 dalek m1: review: https://github.com/parrot/m1/commit/231ea72540
15:12 dalek m1: f07569b | kjs++ | src/gencode.c:
15:12 dalek m1: small fixes; unuse a reg. and fix a location of a return statement.
15:12 dalek m1: review: https://github.com/parrot/m1/commit/f07569b0ca
15:18 JimmyZ kjs: I wanted to rename use_reg to alloc_reg and unuse_reg to free_reg ;)
15:18 kjs JimmyZ: I'd like to _fix_ use_reg and unuse_reg first :-)
15:19 JimmyZ kjs: +1
15:19 kjs ... but if you prefer the name change, by all means, go ahead
15:19 JimmyZ kjs: I'm not hurry.
15:20 kjs perhaps the system is too buggy. i'm not sure
15:20 kjs return2 test isn't working because of it
15:20 JimmyZ kjs: yeah
15:20 kjs JimmyZ: also, I've tried return getstring() ; basically, returning the return value of another funtion
15:21 kjs and that doesnt work either. not sure if related to usereg system though
15:21 kjs JimmyZ: so the whole function calling, an returning values code seems a bit wonky at the moment.
15:24 JimmyZ kjs: yeah, I realized it too.
15:26 JimmyZ kjs: looks like m0 is a blocker now
15:27 kjs JimmyZ: I don't want to blame M0 too quickly...
15:27 kjs it's more than likely that M1 is generating random stuff.
15:27 kjs I must admit, I don't fully grasp the function invocation and returning
15:28 kid51 joined #parrot
15:30 kjs JimmyZ: it's a bit bizarre; sometimes it works, sometimes it doesnt', so it's likely to be a coincidence if it does; apparently, some registers have the right value, and in other cases they dont
15:30 dalek m1: 21c71fd | jimmy++ | src/gencode.c:
15:30 dalek m1: added a unuse_reg
15:30 dalek m1: review: https://github.com/parrot/m1/commit/21c71fd32d
15:31 dalek m1: 8421ee6 | jimmy++ | / (3 files):
15:31 dalek m1: Merge branch 'master' of github.com:parrot/m1
15:31 dalek m1: review: https://github.com/parrot/m1/commit/8421ee6ca6
15:35 * JimmyZ sleeps
15:39 benabik ~~
15:50 whiteknight hello benabik
15:50 benabik o/ whiteknight
15:56 kid51 joined #parrot
15:58 isBEKaml joined #parrot
16:07 kid51 joined #parrot
16:14 dalek m1: b579c94 | kjs++ | src/ (4 files):
16:14 dalek m1: refactoring of chained assignments (a = b  = c = 42.)
16:14 dalek m1: review: https://github.com/parrot/m1/commit/b579c94477
16:16 kid51 kjs: ping
16:16 kjs kid51: poing
16:17 kid51 Is the email address listed for you in CREDITS the best place for you to get mail?
16:17 kjs it's a different one than my "daily" one
16:17 kjs but i check it when hacking on parrot related tings
16:17 kid51 k
16:18 kid51 I will send you a diff of my config_lib.pir vs. yours
16:18 kjs ok
16:18 kid51 Two different versions of parrot on darwin.
16:18 kid51 old vs young
16:18 kid51 But I think you may pick up some things relevant to those config errors/warnings
16:19 kjs ok , thanks!
16:19 kid51 I'm at YAPC, so I can't stay continuously on channel here, but I will either send email or post to that ticket.
16:19 kjs no rush
16:19 kjs hows YAPC?
16:23 kid51 mail sent; going to other building now to hear Tom Christiansen (for the first time)
16:33 dalek m1: 091ec31 | kjs++ | t/assignchain.m1:
16:33 dalek m1: add another test to assign chain.
16:33 dalek m1: review: https://github.com/parrot/m1/commit/091ec31c28
16:52 dukeleto ~~
16:52 kjs hi dukeleto
16:53 dukeleto kjs: howdy!
16:53 kjs how are things
16:53 dukeleto kjs: not sure yet. I will tell you after my first cup of coffee :)
16:54 kjs :-)
16:54 dukeleto kjs: it is awesome to see all the activity on m1!
16:54 kjs dukeleto: Yes I'm quite happy with the progress
16:54 dukeleto it is coming along really fast. Awesome to watch.
16:54 kjs we're running into some problems now though
16:54 kjs and I'm not sure if it's M1 or M0
16:54 dmalcolm joined #parrot
16:55 PacoAir joined #parrot
16:55 kjs function calling and particularly returning values seems to be the most difficult and error-prone part
16:56 kjs dukeleto: I saw you had a "test_suite" branch on M1
16:58 dukeleto kjs: yeah
16:58 dukeleto kjs: i didn't merge stuff, becaue the tests weren't passing on my machine
17:00 brrt joined #parrot
17:00 brrt hello!
17:06 dalek m1: 84972ea | kjs++ | src/semcheck.c:
17:06 dalek m1: remove exprlist as it is not necessary.
17:06 dalek m1: review: https://github.com/parrot/m1/commit/84972ead65
17:08 benabik Does winxed not support natively typed attributes?
17:08 benabik Hm.  Does parrot suppose natively typed attributes?  (i.e. non-PMC)
17:09 dngor joined #parrot
17:10 brrt i have no idea
17:10 brrt try it out
17:10 benabik It does not.  Sad.
17:10 benabik Parrot doesn't, I mean.
17:15 brrt makes sense, in a way
17:15 benabik Not really.
17:15 brrt its hard to do untyped attributes safely
17:15 jashwanth joined #parrot
17:15 brrt and if you provide a type, why not make it a full-fledged pmc
17:16 benabik Because a PMC is very heavyweight to store an int.
17:16 * brrt has no idea what the size of an pmc is
17:17 benabik Well given that the pointer to the PMC is the same size as the integer...
17:17 brrt true enough
17:20 Coke this might be possible in a post-6model universe.
17:34 tuxit joined #parrot
17:45 brrt1 joined #parrot
17:51 cotto ~~
17:52 lucian joined #parrot
17:52 moritz if your write your own PMC in C, then it can be typed
17:52 moritz (I guess that much is obvious)
17:55 brrt thats really elegant, writing your pmc in c  :-p
17:56 brrt anyway, repeating my incorrectly placed question
17:56 brrt are there any examples of extending classes in winxed?
17:57 whiteknight joined #parrot
17:59 brrt maybe the riight person to ask... whiteknight, do you know any examples of extending classes in winxed?
17:59 whiteknight What kinds of classes, classes defined in winxed or PMCs defined in parrot core?
18:00 brrt defined in winxed
18:00 whiteknight (unfortunately, the two are different subtly)
18:00 brrt ... oh, wait
18:00 brrt haha, i'd like to extend StringHandle actualloy
18:00 brrt but never mind that
18:00 whiteknight Do yourself a favor and has-a a StringHandle instead of is-a one
18:01 whiteknight save yourself a lot of hassle
18:01 dalek m1: 248dec4 | kjs++ | / (3 files):
18:01 dalek m1: fix some code on returning. add a test on void return.
18:01 dalek m1: review: https://github.com/parrot/m1/commit/248dec4c36
18:01 brrt alright :-) i'm not so hell-bent on that stringhandle anyway
18:01 brrt but suppose I want to extend a winxed-class A with class B
18:01 brrt how?
18:02 moritz when you talk about "extend", do you mean subclassing?
18:02 brrt .. yes, thats what i mean
18:02 whiteknight class Foo : Bar { }
18:03 brrt php-lingo eating my brain apparantly
18:03 brrt ok, how do I call a Bar method in Foo?
18:03 moritz (it's Moose lingo too)
18:04 dalek m1: e107001 | kjs++ | src/semcheck.c:
18:04 dalek m1: return function's return type for funcalls.
18:04 dalek m1: review: https://github.com/parrot/m1/commit/e107001dd3
18:05 whiteknight brrt: Once you override, you inherit all the same methods and properties
18:05 whiteknight unless you override a Bar method in Foo, then calling it is a little tricky
18:05 whiteknight There isn't an easy super() yet
18:06 brrt ah, i see
18:06 brrt javascript style Bar.<funcname>.apply(self, arguments), does that work?
18:06 whiteknight no
18:06 whiteknight not exactly.
18:08 brrt ok
18:08 whiteknight I'm looking for an example fo ryou now
18:08 whiteknight you can ask the object for it's Class, and then ask the Class for the parent hierarchy
18:08 moritz in nqp you'd do something like pir::find_method(Bar, 'methodname').(self, arg1, arg2)
18:09 moritz maybe something like that would work in winxed too?
18:09 whiteknight yeah, that probably would too
18:09 brrt thats similar enough
18:09 whiteknight I think Winxed could really benefit from a super() method of some variety
18:10 brrt oh, by the way
18:10 brrt those pull requests i made, they are probably invalid now?
18:10 whiteknight brrt: I'll look at them tonight
18:11 brrt no i mean, i don't actually expect them to 'work'
18:12 whiteknight ok
18:12 brrt as i deleted my fork on github and made a new one
18:13 brrt i still have the old repositiory
18:13 brrt oh, by the way, you know what we should have?
18:13 brrt a search function for docs.parrot.org
18:14 moritz brrt: I find a copy of parrot's source and the ack command to be more useful than docs.parrot.org
18:14 PerlJam ack++
18:14 moritz a search function might change that
18:15 brrt i seriously need to check this ack tool out
18:15 moritz cpanm App::Ack
18:16 moritz and then   ack 'perlregex'
18:16 brrt great
18:16 moritz or  ack -Q '$string'
18:16 moritz and it skips .git directories for you, for example
18:16 PerlJam brrt: I'm shocked that there is someone here who hasn't used ack.
18:16 moritz and .svn
18:16 PerlJam brrt: shocked I say!
18:16 brrt i used grep mostly
18:16 brrt and git-grep
18:17 moritz well, with grep I always write   grep -r 'foo'  and then wait for two minutes
18:17 moritz until I notice it tries to read from STDIN, because I forgot the directory name :-)
18:17 PerlJam brrt: ack is one of those tools that once you start using it, you wonder how you got along without it.
18:18 PerlJam moritz: that same thing happens to me every time I try to use grep these days
18:18 moritz PerlJam: though it happened even before I knew about ack :-)
18:19 PerlJam (in fact, it happened last night before I came to my senses and installed ack on a particular system)
18:19 brrt1 joined #parrot
18:20 brrt1 back!
18:20 * Coke cannot live without ack, especially on his win7 dev box for work.
18:20 moritz can somebody please revive slavorg? I'm tired of playing opbot all the time :-)
18:20 brrt1 moritz: i have that very same thing
18:22 brrt1 ooh, that is a nice tool
18:23 whiteknight moritz: do you have any idea who runs slavorg?
18:24 moritz whiteknight: no
18:24 Coke someone will have to dig through the logs, I'm sure someone said it somewhen.
18:27 whiteknight well, if we can't fix slavorg, maybe we need to commission a new bot
18:28 Coke parrot: writing new code since 2001, even when we don't have to. ;)
18:28 whiteknight the good thing is that IRC bot software and bot frameworks are already done. All we need is somebody to set one up
18:28 kid51 joined #parrot
18:30 Timbus joined #parrot
18:30 brrt oh another fun question! walking way ahead of myself as usual
18:31 moritz I'm asking the #london.pm folks; they used to have a slavorg instance too
18:31 brrt but is there anyway to both get at and modify the grammars' of compilers from compreg?
18:32 moritz compreg($lang).parsegrammar
18:33 moritz or
18:33 moritz compreg($lang).parsegrammar($newgrammar)
18:35 brrt ooh, shiny
18:37 bluescreen joined #parrot
18:37 slavorg joined #parrot
18:37 whiteknight that's if the particular compiler has a .parsegrammar method
18:37 whiteknight winxed is recursive-descent, so you can't really do that
18:37 whiteknight but NQP does have it
18:38 moritz well, it works for HLL::Compiler based grammars
18:38 whiteknight right, yes
18:38 brrt any idea why i'm asking?
18:38 brrt :-)
18:38 whiteknight of which NQP was the best example for a while
18:39 slavorg joined #parrot
18:40 moritz slavorg: trust brrt
18:41 moritz opbots: names
18:41 moritz opbots: trust brrt
18:42 moritz hm, works in london.pm, just very, very slow
18:43 moritz slavorg: trust Timbus
18:44 slavorg But I already trust brrt
18:44 slavorg But I already trust brrt
18:44 slavorg But I already trust timbus
18:45 moritz slavorg: you are slow
18:56 Coke aloha, slavorg?
18:56 aloha Coke: slavorg is a bit flaky with nickname changes and sometimes needs a good kick
19:00 brrt left #parrot
19:01 benabik hah
19:23 dduncan joined #parrot
19:52 dalek rakudo/nom: a3407de | moritz++ | src/core/ (2 files):
19:52 dalek rakudo/nom: generialize cmp candidate from Pair to Enum
19:52 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a3407dee05
19:55 dalek m1: 61e5ff9 | kjs++ | src/semcheck.c:
19:55 dalek m1: minor fixes.
19:55 dalek m1: review: https://github.com/parrot/m1/commit/61e5ff944c
19:55 dalek m1: be64b4d | kjs++ | src/ (3 files):
19:55 dalek m1: allow parsing multi-dim arrays. also fix AST.
19:55 dalek m1: review: https://github.com/parrot/m1/commit/be64b4dad3
19:55 kid51 joined #parrot
20:12 dalek parrot: 5185a3a | jkeenan++ | lib/Parrot/Pmc2c/Attribute.pm:
20:12 dalek parrot: This should have been deleted as part of Issue #789.
20:12 dalek parrot: review: https://github.com/parrot/parrot/commit/5185a3a4f3
20:24 dalek Heuristic branch merge: pushed 29 commits to parrot/pmc_emitter_document by jkeenan
20:25 dduncan joined #parrot
20:42 dngor joined #parrot
20:56 dalek m1: b6174a5 | kjs++ | src/gencode.c:
20:56 dalek m1: need to think a little bit more about multi-dimensional arrays. This commit provides some documentation about how the AST is constructed.
20:56 dalek m1: review: https://github.com/parrot/m1/commit/b6174a5799
21:10 dalek m1: 654475b | kjs++ | src/gencode.c:
21:10 dalek m1: add a comment about setting pointer to parent in handling indexes..
21:10 dalek m1: review: https://github.com/parrot/m1/commit/654475b3ed
21:41 darbelo joined #parrot
22:00 kjs joined #parrot
23:13 whiteknight joined #parrot
23:20 whiteknight good evening, #parrot
23:46 whiteknight Blah. I love it that Parrot_io_socket_handle unconditionally returns 0 to signal failure
23:46 whiteknight er, I mean success
23:47 whiteknight 0 means success, when most other functions use 1 for success and 0 or less for failure

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

Parrot | source cross referenced