Parrot 2.4.0 "Sulfur Crest" Released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | GSOC Students: trac.parrot.org/parrot/wiki/GSoCersStartHere | Priorities: fix io_ops mess in corevm/coretest, review and update documentation before release
Set by moderator on 8 June 2010.
Coke returns, having missed ps 00:01
cotto_work same for r47496
"returns stats as required by enum which" isn't entirely helpful
dalek rrot: r47494 | NotFound++ | trunk (2 files):
some more functionality in ByteBuffer
00:02
rrot: r47495 | mikehh++ | branches/gc_massacre/src/gc/gc_ms2.c:
add missing documentation
rrot: r47496 | mikehh++ | branches/gc_massacre/src/gc/gc_ms.c:
add missing documentation
rrot: r47497 | NotFound++ | trunk/src/pmc/bytebuffer.pmc:
drop const that upset some compiler
kudo: 4ae2183 | jonathan++ | src/core/Cool-str.pm:
Fix dodgy split signatures.
kudo: 4578afc | jonathan++ | src/pmc/ (8 files):
Apply patch from cognominal++ to remove now unrequired need_ext from our PMCs.
kudo: 5e6fa97 | jonathan++ | src/metamodel/ClassHOW.pir:
Add a (most likely accidentally) missing :load, which gets perl6.pbc loadable
mikehh cotto_work: yeah I see your point - was just trying to fix codetest failures - let me think about it 00:04
cotto_work which I appreciate, btw
bacek_at_work aloha 00:11
whiteknight hello bacek_at_work 00:12
cotto_work aloha, bacek_at_work
Coke bacek_at_work: hio 00:13
mikehh bacek_at_work: hi
purl hola, mikehh.
cotto_work waits for a combinatorical explosion 00:15
davidfetter powerset(boom!) 00:17
00:42 cotto_work joined 00:56 abqar joined
dalek rrot: r47498 | NotFound++ | trunk (2 files):
ByteBuffer set_integer_keyed_int
01:08
rrot: r47499 | NotFound++ | trunk/src/pmc/bytebuffer.pmc:
empty lines after =item
bacek_at_work NotFound, we need byte-level granularity of data in ByteBuffer. Not "word" level. 01:20
cotto_work I was thinking that too 01:21
use the lowest byte of value and throw an exception if it's >255 01:22
or <0
which looks not unlike an ice cream cone to me 01:23
chromatic Or a sideways fire flower!
cotto_work I suppose that also brings endianness into the mix. Whee. 01:27
Coke has anyone opened a TT on the dynop loading order issue? 01:47
(someone in rakudo land is tripping over it, want to give him a ticket reference. I don't see one...)
chromatic I thought we had one, courtesy of duke. 01:48
Coke doesn't look like it. 01:50
probably ended up mailing list only. 01:51
bacek_at_work trac.parrot.org/parrot/ticket/1663
?
Coke ah, fperrad. 01:52
cotto_work dynops ticket is trac.parrot.org/parrot/ticket/1663 01:55
dynops ticket?
purl dynops ticket is trac.parrot.org/parrot/ticket/1663
cotto ohai 02:11
02:16 TiMBuS joined 02:20 szabgabx__ joined 02:34 tcurtis joined 02:47 gbacon joined 02:48 janus joined 03:04 plobsing joined 03:23 LoganLK joined 03:32 JimmyZ joined 03:35 mikehh joined 04:13 fperrad joined 04:14 fperrad_ joined
dalek rrot: r47500 | jimmy++ | trunk/src (2 files):
random consting
04:26
rrot: r47501 | tcurtis++ | branches/gsoc_past_optimization (4 files):
Add .match and .transform methods to PAST::Node when PAST/Pattern.pbc is loaded.
tcurtis That commit message is inaccurate. Be prepared for abuse of tools/dev/mk_manifest_and_skip.pl in a moment. 04:28
04:42 Khisanth joined
dalek rrot: r47502 | tcurtis++ | branches/gsoc_past_optimization/MANIFEST:
regen manifest. Also, the previous commit was inaccurate. .match and .subst methods are added to PAST::Node.
04:43
TT #474 closed by jimmy++: [PATCH] improved parrot.spec for SUSE 04:44
TT #474: trac.parrot.org/parrot/ticket/474
05:30 snarkyboojum joined 05:44 Essobi joined 05:56 snarkyboojum joined 06:03 uniejo joined
Coke who is gp aaaat zimt.uni-siegen.de ? 06:18
cotto is he sending stuff to parrot-dev? 06:19
06:19 uniejo joined
Coke trying to join -members. 06:20
dalek rrot: r47503 | tcurtis++ | branches/gsoc_past_optimization (5 files):
Make codetest happy and more importantly implement global matching.
06:21
moritz Coke: zimt.uni-siegen.de sounds like gerd 06:25
cotto he has a different address listed in CREDITS though 06:27
same school apparently
moritz gp = gerd pokorra maybe? 06:28
cotto plausble
plausible
purl, gerd?
purl gerd is gastroesophageal reflux disease (or something that makes you want to vomit, c.f. the Perl debugger internals) or Gerd Pokorra
cotto I guess I don't get to complain about "cotto" being a kind of salami. 06:29
06:31 he joined
Coke seen drforr? 06:45
purl drforr was last seen on #perl 6 hours, 10 minutes and 59 seconds ago, saying: purl, paste enema 06:47
07:23 baest joined 07:44 cognominal joined
mikehh NotFound: ping 08:10
08:12 ttbot joined
dalek rrot: r47504 | plobsing++ | branches/dynop_mapping:
creating branch to deal with dynop opnum mapping issues
08:32
mikehh plobsing: ping 08:33
plobsing mikehh: pong 08:34
dalek TT #1676 created by mikehh++: t/pmc/io.t fails make corevm/make coretest 08:35
TT #1676: trac.parrot.org/parrot/ticket/1676
mikehh plobsing: I just created a ticket for the remaining coretest failures - TT #1676
plobsing: but also test 1 in t/pmc/io.t is still failing TODOed - NotFound++ fixed the relevant TT #1659 in other tests 08:37
08:37 gbacon joined, clinton joined
plobsing mikehh: timely destruct untodoed at r47506. 08:40
the other tests are all "$x (ops)" clones of other tests and should move to dynops testing
08:41 ingy joined
plobsing I'll do that in the morning. Now, I sleep. 08:41
mikehh plobsing: yes - 'night to you
dalek rrot: r47505 | plobsing++ | branches/dynop_mapping (2 files):
implement bytecode packing/unpacking code to support per-segment mappings
08:48
rrot: r47506 | plobsing++ | trunk/t/pmc/io.t:
avoid use of open op in timely destruction test
09:22 sorear joined 10:22 ambs joined 10:24 gerd joined
moderator Parrot 2.5.0 release time is on 15th at 12:00 UTC | parrot.org | Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | GSOC Students: trac.parrot.org/parrot/wiki/GSoCersStartHere | Priorities: fix io_ops mess in corevm/coretest, review and update documentation before release 10:37
10:39 aukjan joined
dalek rrot: r47507 | mikehh++ | trunk/MANIFEST.generated:
add entries to MANIFEST.generated
11:00
mikehh make corevm/make coretest - t/pmc/io.t - Failed tests: 25, 27, 29, 31 11:18
all other tests PASS (pre/post-config, make corevm/make coretest, smoke (#34275), fulltest) at r47507 - Ubuntu 10.04 amd64 (g++)
t/op/annotate-old.t - TODO passed: 1 in testf
dalek rrot: r47508 | mikehh++ | trunk/t/op/annotate-old.t:
remove TODOed test in testf which now passes
11:33
11:37 whiteknight joined
whiteknight good morning, #parrot 11:41
mikehh hi there whiteknight 11:44
whiteknight hello mikehh. how are you today? 11:47
mikehh whiteknight: passable, even tending to fine, and you 11:48
just testin' and a couple of fixes 11:49
whiteknight I am doing well, though tired. The kid hasn't been sleeping well because he's teething 11:50
and the parents only sleep as well as the kid
mikehh oh dear, I know what you mean, I think I have passed that though, my grandkids are now 8, going on 9, although I still help looking after them, passed the teething bit 11:52
whiteknight yeah, I'm enheartened by the light at the end of the tunnel 11:54
11:54 gbacon joined
mikehh it's a learning experience, ever changing 11:54
bacek whiteknight, In Soviet Russia generations of people did live waiting for light at the end of the tunnel. 12:02
Apparently, it was incoming train.
jnthn In Soviet Russia, the light at the end of the tunnel doesn't wait for you. 12:04
bacek jnthn, привет :)
12:05 JimmyZ joined
jnthn ŠŸŃ€ŠøŠ²ŠµŃ‚ :) 12:06
bacek jnthn, how is preparations for trip to Kiev going? 12:08
There is some buzz in Russian blogosphere about having "read Rakudo developer" at "Perl Mova" happening :) 12:09
jnthn Little behind on slide writing.
Ooh. :-)
jnthn is looking forward to being in Kiev again.
In summer too. Only went in winter before.
mikehh got to go out for a bit - bbl 12:11
bacek jnthn, Kiev is much nicer in Summer.
But it was about 20 years ago, when I visited Kiev... 12:13
...shi^W sigh. 12:14
jnthn imagines it's changed in various ways since 20 years ago. 12:15
bacek Slightly :)
whiteknight just a wee bit 12:21
jnthn I imagine МайГан ŠŠµŠ·Š°Š»ŠµŠ¶Š½Š¾ŃŃ‚Ń– wasn't called that 20 years ago. 12:22
12:29 tetragon joined
dalek kudo: f7ddcf5 | moritz++ | (3 files):
try to actually run MAIN subs; most code by patrickas++
12:29
kudo: b0d427b | moritz++ | src/ (2 files):
second attempt at MAIN sub
kudo: 3657ad7 | moritz++ | src/Perl6/Actions.pm:
add TODO comment wrt MAIN sub
kudo: c77e278 | moritz++ | src/ (2 files):
check for eval()ness by walking the call chain
kudo: d33a958 | moritz++ | src/glue/run.pir:
IN_EVAL needs to count the number of eval()s, since there is always one in the
kudo: 9f05efa | moritz++ | src/glue/run.pir:
exit early in MAIN_HELPER
kudo: 11366ab | moritz++ | src/glue/run.pir:
make IN_EVAL more robust, with input from jnthn++
kudo: a546773 | moritz++ | (4 files):
Merge branch 'MAIN'
whiteknight is there a release date scheduled for rakudo star? 12:38
I'm sure I've heard one before, but I can't remember
particle ~june 22 12:39
whiteknight ok, good
12:44 JimmyZ_ joined 13:01 gbacon joined
Coke midway through yapc? not bad. =-) 13:03
by the time folks can check patrick's slides...
jnthn, bacek: do you get russian spam? (I'm wondering if i get it because of my sur/domain name.) 13:04
particle the release will be held until there's something good to release, so it's not a hard date 13:07
13:14 atrodo joined 13:16 aukjan joined
jnthn Coke: Yes, but I don't mind it too much in that it keeps my ability to read Cyrillic alive. ;-) 13:17
dalek rrot: r47509 | NotFound++ | trunk (2 files):
ByteBuffer methods to get the content as string with the charset and encoding specified
13:29
NotFound mikehh: pong 13:42
dalek rrot: r47510 | NotFound++ | trunk/t/pmc/bytebuffer.t:
ByteBuffer test for set with negative index, and force usage of the mark vtable function
13:45
mikehh NotFound: sorted it out with plobsing++ 13:48
NotFound k
13:49 ash_ joined 13:54 hudnix joined
ash_ the llvm people came out with a new lldb, so debugging the llvm should become a lot easier soon, i know that was a complaint from the unladen swallow people when they used the llvm 14:03
whiteknight ash_: I saw that 14:04
and it's library-based, so maybe we could create our own specialized debugging tools with it
14:05 plobsing joined 14:10 ash__ joined
ash__ sorry whiteknight 14:11
14:11 Andy joined
ash__ lost connection 14:11
whiteknight it's okay, I forgive you 14:12
:)
ash_ i didn't know it was library based, thats cool 14:13
14:16 gbacon joined
ash_ downloading lldb now 14:17
i hope it makes it to other platforms
some of the open source things Apple has done don't get much attention outside of apple 14:18
like AutoZone the gc system 14:19
thats a pretty impressive gc
autozone is the gc system used in objective c 2.0 14:22
whiteknight I wonder if we could borrow that for parrot?
ash_ www.opensource.apple.com/source/libauto/ if your interested 14:23
its under an apache license, they use it in the objetive-c runtime on OS X and macruby uses it, i don't know what they use on the iphone though,
i gotta take my girlfrend to class, brb & 14:24
atrodo Were they trying to invoke the thought of cheap auto parts? Because that's the only thing I can think of
whiteknight this is a pretty impressive-looking GC 14:26
the hashing algorithm they use looks decent too, though I would want to see more info on it 14:28
all tests pass on linux x86 clang with and without --optimize 14:31
atrodo Have you found any documentation on the specifics of how it works? 14:32
14:33 kevinshaum joined
whiteknight nope 14:34
atrodo shucks. I hate it when people make cool code and don't explain how it works
whiteknight me too. Hate that a lot
dalek rrot: r47511 | plobsing++ | trunk (3 files):
[coretest] move old ops tests to dynops test
14:35
14:35 bubaflub joined, Chandn joined 14:42 patspam joined
ash_ back 14:43
yeah, autozone seems neat, but its kinda a black box
whiteknight yeah, there isn't a lot of documentation, but the code I've seen so far is pretty easy to interpret 14:44
and it helps that it's written in C++ and not Objective-C
ash_ yeah
Searching their developer's site doesn't give anymore documentation either, so you know 14:46
www.opensource.apple.com/source/lib...E.html?txt might be helpful
(they apparently removed that readme in later version, the one marked libauto-141 and libauto-141.1 14:47
)
libauto-77.1 is from OS X 10.5, libauto-141 was for snow leopard, and 141.1 was an update for 10.6.2, so you know 14:49
atrodo The readme wasn't real informative of a lot of the how 14:51
main thing I noticed was it's not compacting and it runs in it's own thread
whiteknight readmes never are
dalek rrot: r47512 | NotFound++ | trunk (2 files):
avoid excesive reallocations when grown a ByteBuffer byte by byte, add a test to exercise that, and fixes a cast
ash_ i thought it might be neat, maybe after GSoC is over, to look into using libauto on OS X so you can call Obj-C directly and share objects between parrot and the obj-c runtime, like macruby does, it might be neat to use parrot for gui stuff on OS X eventually 14:54
dukeleto 'ello 15:06
NotFound ByteBuffer reviews wanted. 15:08
15:17 Hunger- joined, gbacon joined, wagle_ joined, japhb joined
Chandon Didn't netsplits go out of style at some point? 15:18
Like parachute pants...
atrodo I would have thought so
particle yes, about the time irc went out of style
15:19 whiteknight joined, he joined, arnsholt joined, purl joined, athomason joined, NotFound joined
whiteknight NotFound: I've been following your ByteBuffer, it looks nice. Definitely a few features I want to add to it 15:19
but nothing urgent 15:20
15:22 preflex joined, lucian joined, dukeleto joined 15:27 theory joined
jnthn NotFound: Does it copy a Parrot string that you want to look at the bytes of? 15:27
er, does it *always* copy...
...or only lazily if you modify something?
15:29 Andy_ joined
NotFound jnthn: lazily 15:29
jnthn \\o/ 15:30
NotFound++
NotFound I had no intention to do it that way initially, but looked at the rakudo version and changed my mind. 15:32
jnthn Makes me glad I bothered. :-) 15:33
ash_ in the makefile if you have a few lines of something you want to include or not include can you do that? in the config/gen/makefiles/root.in 15:44
15:44 khairul joined
ash_ i think i found a solution, nevermind 15:45
whiteknight All tests pass, linux x86 with clang 1.1, gcc 4.4, g++ 4.4, icc 11.1 with and without --optimize 15:46
(/me wrote a script, watched it for hours)
purl msg allison if you have a moment, I would really like to see a copy of portal.acm.org/citation.cfm?id=5648...N=74201017 15:48
purl Message for allison stored.
ash_ whiteknight: clang 2.0 is out (also there was a 1.5 in there too) 15:58
16:11 whiteknight_ joined 16:12 davidfetter joined 16:14 Themeruta joined 16:18 gbacon joined 16:26 theory joined
ash_ can you use the gdb with parrot for debugging pmcs? 16:37
Coke s/for debugging pmcs// sure. 16:38
that is, in general it works. pmcs are rough because of all the #line and #file directives. 16:39
If i'm trying to debug something hairy there, I tend to strip all that out of the .c file, rebuild, and then debug the /c/, not the /pmc/
purl Hmm. No matches for that, Coke.
whiteknight I still can't figure out why we have all those bullshit #line and #file directives when they cause so much trouble 16:42
and the --no-line-directives option to configure.pl doesn't work to strip them out 16:43
ash_ hmm, i am just adding a punch of printf's but i might do what you said Coke 16:45
i don't like just adding printf's but sometimes its hard to get around that 16:46
whiteknight ash_: I was using the ubuntu package, which is why I have LLVM2.7/Clang1.1 16:48
it's much easier doing it that way than it is to build the damn thing from source 16:49
ash_ yeah, makes sense, i mostly have the newer clang because they added a bunch of C++ support i wanted to try 16:50
it can build boost now, so thats pretty impressive
whiteknight ash_: Is there like a webpage or something that talks about the 2.0 release? 16:51
I find this damn llvm.org website so difficult to navigate sometimes
ash_ not yet, they don't have a tag for it yet, its kinda the current development release, but they had a blog post about it and some some posts in the dev mailing list, i am using trunk llvm r104365, and trunk clang r104336, built with cmake, its pretty nice, i like clangs error messages way better than the gcc 16:55
whiteknight agreed. The error messages are much much nicer 16:56
clang is my default compiler of choice now
ash_ those revisions work together and are pretty stable, and can build boost, but you can try just the most recent trunk of both llvm and clang but i have had hit or miss experiences with using the full trunk, sometimes they work fine and sometimes i cant even compile them 16:58
whiteknight I don't really need the C++ support, so I may just stick with 1.1 for now 17:00
ash_ llvm 2.8 should come with 2.0 clang 17:04
they are on a 3 month release schedule and 2.7 came out in April, so the next release will be in late July or early August
whiteknight okay, that's good 17:06
I like updating to fixed releases
ash_ can you say printf("%s", foo); where foo is: STRING foo; ? 17:24
NotFound ash_: use "s" and parrot io functions. 17:26
"%Ss"
ash_ are there a list of the parrot io functions somewhere? or a header? 17:27
NotFound include/parrot/io.h 17:29
And some in include/parrot/extend.h
ash_ cool, thanks, that hels 17:31
helps*
17:35 aukjan joined
ash_ i keep getting a seg fault with something i added but when i try to run it with the gdb i get a different error, its complaining it can't find a pbc 17:42
in the gdb
NotFound ash_: use gdb with a dumped core. 17:43
ash_ make 17:45
oops, wrong window
purl sudo rm -rf /
18:14 tcurtis joined 18:32 hercynium joined 18:40 theory joined
dalek rrot: r47513 | NotFound++ | trunk (2 files):
ByteBuffer get_iter using an ArrayIterator
18:41
Coke spent his lunch hour trying to figure out what is eating the CONTROL_RETURN. 18:44
atrodo Any luck? 18:45
Coke the only thing in the chain that looks likely is /compilers/pct/src/PCT/HLLCompiler.pir
18:45 ambs joined
Coke er, I mean ../PAST/Compiler.pir; whoops. 18:46
18:46 wagle joined
Coke AIGH. I am no longer sure what I mean. moment. 18:46
ah, I do mean compiler.pir, and it looks like it was a recent change. one of my dev boxes hadn't been updated so it looked different. 18:47
allison purl message whiteknight paper emailed 18:56
purl Message for whiteknight stored.
18:56 wagle joined
Coke allison: Dunno if you want to touch it again, but there's a ticket for 'aftermath of TT #389' with your name on it. =-) 18:57
whiteknight allison++ 19:00
Coke atrodo: giving up trying to follow the path of the code now and just bisecting. it's easier. :P 19:03
dalek TT #1675 closed by dukeleto++: Cannot load perl6.pbc from PIR 19:04
TT #1675: trac.parrot.org/parrot/ticket/1675
atrodo :D It's a sad when bisect is easier 19:05
19:09 cognomore joined 19:15 szabgabx joined
GeJ Bonjour everybody. 19:30
davidfetter hi GeJ 19:32
tcurtis Bonjour, GeJ. 19:33
Tene I disagree. It's great when we can have tools do work for us.
Coke I'm very glad there is a tool for this. it is sad that I cannot suss out what's going on. =-) 19:39
ooh, looks like it might be bacek... 19:44
... or moritz. 19:48
moritz hm?
moritz feels hilighted
what did I break?
Coke it would be nice if "update ext/nqp-rx" had some pointer back to the source. 19:49
cotto_work you may have broken something and made coke crabby
Coke moritz: can you show me what in nqp-rx was captured in r46901?
19:49 tcurtis joined
Coke DING. it was 46901 that broke partcl-nqp. 19:50
moritz: this is the failure where catch { return } started saying that return was just doing a parrot .return() instead of throwing a CONTROL_RETURN exception.
moritz Coke: seems it was the regex interpolation stuff by bkeeler++, which was later on revised by pmichaud++ 19:51
oh wait, no
allison Coke: i can look at 389 aftermath, is there a separate number for the ticket? 19:52
pmichaud looks at 46901
moritz Coke: cd src/nqp-rx; git log # then search for b228f8ff29919b90c10c883d4922973b3679dea7
Coke allison: yup.
moritz Coke: and the changes below that went into that bootstrap update
(contains changes to HLL::Compiler.eval(), autoprint hooks..) 19:53
Coke allison: TT#1672
catch uses .eval(), so that's suspicious. =-) 19:54
allison Coke: thanks! 19:55
Coke pmichaud, moritz: I wonder if it would be nice to have each sub show the original HLL (in this case, NQP) source in a comment before it. 19:57
allison Coke: that is certainly odd, since unmarked subs should be stored in the namespace
Coke: it's only methods and vtables that get the special treatment 19:58
Coke allison: no, only subs marked with :nsentry are stored, yes?
moritz Coke: to the extend where it's possible (nqp and perl6 subs are compiled into several .pir subs, in general) yes
Coke I'm pretty sure namespace just checks for isa sub.
allison Coke: if a sub is marked with :method or :vtable, then yes it needs :nsentry
Coke: but if it's unmarked, it should be stored as a sub 19:59
Coke: so, absolutely, certainly a bug
Coke allison: yes, but this isn't a pir .sub =-)
so there's no marking at all.
allison Coke: yah, but it's a Sub PMC, which is all the code cares about
Coke: (it doesn't actually have any way of telling if the sub was created from a .sub or directly) 20:00
TimToady phoan
Coke allison: trac.parrot.org/parrot/browser/trun...e.pmc#L160
allison: right. but there's no way to mark a new 'Sub' with :nsentry.
allison Coke: will look more after call 20:01
20:01 ambs joined
Coke TimToady, allison: I have nothing really sixy this week (again). will bail. 20:02
pmichaud: ah. def10fd60c43741c13d6de45b7386568922c412f made 'eval' an NQP method. 20:03
allison Coke: also look at line 139
dalek rrot: r47514 | tcurtis++ | branches/gsoc_past_optimization (7 files):
PAST::Pattern.transform(PAST::Node, invokable) implemented and partially tested!
20:03 Psyche^ joined
moritz tcurtis++ # looks like good progress 20:03
allison Coke: that's checking if the sub is a vtable entry
Coke ok. so there's no handling in there for just a straight :sub ? 20:04
er, .sub
?
20:05 theory joined
pmichaud Coke: so, what is the return exception issue you're seeing? 20:08
Coke pmichaud: the code in eval() is throwing a CONTROL_RETURN. the try block outside the eval() never sees it. 20:09
if eval is now an NQP sub/method where it was not before, that might explain it. 20:10
pmichaud Coke: this is HLL::Compiler's eval() that is throwing the CONTROL_RETURN?
allison Coke: no special handling, it falls down past line 388, gets checked for NCI and multi, then gets stored as an ordinary entry
Coke: but, there must be something going wrong in the logic, since it's not getting stored
Coke pmichaud: partcl-nqp's catch calls partcl compiler's eval calls nqp's eval calls pct's hllcompiler's compile calls past compiler. I think. 20:11
pmichaud checking 20:12
20:12 estrabd joined
Coke the partcl code is puts "Got [catch return], should be 2" 20:12
-> "Got 0, should be 2" # the CONTROL_RETURN exception is gone, so it looks like a normal exit. (TCL_OK, or just .return()) 20:13
If that's it, it's probably fixable by moving forward on the elimination of CONTROL_RETURN from NQP that you discussed. 20:14
pmichaud I'm guessing that perhaps HLL::Compiler.eval() shouldn't catch any exceptions.
Coke that would be fine.
pmichaud ohhhh, I see what's happening.
Coke \\o/ 20:16
wozzit?
<- in suspenders. 20:18
tcurtis pmichaud++ and bacek++ for NQP multis. They made writing the PAST::Transformer subclass for the .transform method on PAST::Patterns much more pleasant.
cotto_work nice. I should update opsc to use those. 20:19
no more need for "poor man's multi" now 20:20
whiteknight nqp has multis now?
cotto_work yes indeed
check out tcurtis' latest commit 20:21
pmichaud Coke: (sorry, was on phone) 20:22
yes, since eval() was moved to be written in NQP, it now has a return handler (as all NQP subs do). So, the real problem is a lack of a true lexical return. 20:23
Coke is it possible to temporarily avoid the issue by making that not a method but an anonymous block? 20:24
cotto_work ooc, would it be worth adding a restrict macro to Parrot?
pmichaud Coke: it has to be a method to be invokable by a method call. (Or perhaps I'm misunderstanding)
the other potential issue is that the exception type numbers changed with my recent patch for parrot's 'exit' opcode.
Coke nope. wasn't sure if the trick we used to write [return] in partcl would be applicable here. 20:25
darbelo Oh crap. The headerizer isn't working on windows for some reason.
dalek nxed: r493 | julian.notfound++ | trunk/winxedst0.cpp:
pirops in stage 0
pmichaud so the part of partcl-nqp that says
# XXX using numeric type ids is fragile.
# XXX using numeric type ids is fragile.
Coke pmichaud: didn't impact any of the #'s I am relying on, I think.
pmichaud is especially true at this point.
It definitely affected CONTROL_LOOP_LAST and CONTROL_LOOP_NEXT, I think.
Coke and yes, I double checked when I saw that one had been added. =-)
pmichaud one possible "workaround" would be to have partcl-nqp throw an exception type other than CONTROL_RETURN 20:26
(I agree, that's a hacky workaround)
Coke So, what's the fix? How can you make a method that doesn't have any handlers?
I can do that as a stopgap until the pct change to avoid _return altogether. 20:27
pmichaud well, nqp change, but yes.
because it's not just eval that may catch the return exception, but any subs and/or methods that it calls.
the version of partcl-nqp that I'm seeing now has: 20:29
} elsif $parrot_type == 65 { # CONTROL_LOOP_LAST
but runtime/parrot/include/except_types.pasm says
.macro_const CONTROL_LOOP_LAST 66
(doesn't affect _this_ problem, but it's definitely a mismatch) 20:30
eventually nqp will support pasm::except_types::CONTROL_LOOP_LAST to avoid this issue :-)
Coke if I change CONTROL_RETURN to <some random #> my simple test that was failing works. but everything else fails. 20:34
so I'll have to look at that when time permits.
*sigh*
pmichaud oh, yeah
<some random #> is going to make it look like a non-control exception
*sigh*
so then the CATCH block would get it. 20:35
Coke that's just an issue in [catch], I got that.
pmichaud are there other CATCH blocks getting in the way?
Coke so I'll have to look at that when time permits. 20:36
pmichaud okay.
Coke I do so not enjoy it when all my parrot hacking time is spent in this fashion. (and it's not just this particular nqp issue, in case you feel singled out, pmichaud . =-) 20:41
pmichaud I don't. :-)
PerlJam Coke: it's all the other NQP issues too? ;>
Coke it's just not fun anymore. Ah well. 20:42
-Ocrap ! 20:43
atrodo Is that an optimizing flag to add or remove crap? 20:44
Coke see also -Ofun
dalek nxed: r494 | julian.notfound++ | trunk/winxedst (2 files):
fix pirop statement and use getstd... ops instead of the interp stdhandle method
20:49
21:30 hercynium joined
dalek nxed: r495 | julian.notfound++ | trunk/winxedst1.winxed:
special case for assign indexed expr to identifier to generate the apprpiate
21:32
rrot: r47515 | tcurtis++ | branches/gsoc_past_optimization/runtime/parrot/library/PAST (4 files):
Add and update POD docs.
21:41
21:46 kevinshaum left
cotto_work NotFound, ping 21:46
nopaste "cotto" at 192.168.1.3 pasted "potential surprise when using ByteBuffer" (38 lines) at nopaste.snit.ch/21119
cotto_work NotFound: ^ 21:47
NotFound cotto_work: pong
Mmmm 21:48
cotto_work It's easy to see why that happens but it has the potential to catch people by surprise.
NotFound cotto_work: I fail to see what is supposed to do 21:49
cotto_work The naive expectation would be that it'd put 123 into every byte in the buffer 21:50
NotFound cotto_work: that 'i = 0' shouldn't be i = size ?
cotto_work yes. I'm stupid.
though that gives non-deterministic results 21:51
nopaste "cotto" at 192.168.1.3 pasted "potential surprise when using ByteBuffer" (38 lines) at nopaste.snit.ch/21120
cotto_work ignore that
tcurtis Are there any emacs users here who know how to get cperl-mode not to interpret the rest of a NQP source file after "=begin foo" as being a comment? 21:52
NotFound cotto_work: I was wondering if getting a byte out of boudns should throw instead of returning 0.
cotto_work That'd make errors easier to detect.
+1 21:53
purl 1
tcurtis cotto_work: I'm not seeing anywhere in your paste where you jump back to start.
NotFound cotto_work: I'll look at it tomorrow, now is late for me. 21:54
cotto_work srsly. I need to check my code more carefully.
tcurtis++
cotto--
NotFound cotto_work: like all the people in the world :D 21:55
People that code, that's it.
cotto_work it behaves as expected when I fix my code.
dalek rrot: r47516 | mikehh++ | trunk/t/dynoplibs/io-old.t:
add svn properties
21:58
rrot: r47517 | mikehh++ | trunk/src/pmc/bytebuffer.pmc:
add missing ASSERT_ARGS
cotto_work . o 0 (Where's irl ctrl-z when I need it?)
dalek nxed: r496 | julian.notfound++ | trunk/winxedst0.cpp:
special case for assign indexed expr to identifier to generate the apprpiate
22:01
nopaste "cotto" at 192.168.1.3 pasted "what I should have nopasted in the first place" (40 lines) at nopaste.snit.ch/21121
22:04 lucian_ joined
ash_ if you have a pointer to a type, is it bad practice for the pointer to point to more than 1 of the type? like int *a = malloc(sizeof(int) * 2); or should that be a int **a? 22:05
NotFound ash_: is common practice in C. 22:06
dalek nxed: r497 | julian.notfound++ | trunk/winxedst0.cpp:
stage 0 lacked the predef ord, fixed
nxed: r498 | julian.notfound++ | trunk/winxedst1.winxed:
codingstd: a hard tab
NotFound ash_: you can also use calloc for more clarity.
ash_ thats true, i should probably do calloc 22:07
darbelo int **a would be a pointer to a pointer to an int, not a pointer to two ints.
ash_ darbelo: i know, i think i am being stupid with my pointers 22:08
darbelo Generally, in c, pointers and arrays are equivalent in most cases. 22:09
NotFound Specially when you alloc it. 22:10
ash_ so... if I have say: int *a; and I want foo to make a be an array of ints with the values 2, 3 or w/e; would the signature for foo need to be: void foo(int **);? or just void foo(int *); 22:12
darbelo Dammit. Oversquashed the commits.
dalek rrot: r47518 | darbelo++ | branches/gsoc_nfg/src/string (3 files):
Cleanup and headerize
22:14
darbelo int arr[2] = {2, 3}; /* arr is a pointer to int */ 22:15
NotFound ash_: to access the array content you just need a pointer. If you want to be able to modify 'a', a pointer to pointer. 22:16
tcurtis ash_: are you wanting to pass in a pointer to the address where you want the result to be stored? like "int arr[2]; foo(arr);" Or do you want to do "int *arr; foo(&arr);"?
ash_ well i was trying to simplify my example a bit... 22:17
cotto_work NotFound, should I add a TODO test corresponding to the (fixed) nopaste?
ash_ i could point to where its not working, but that would probably not help much, i just think my pointers are not pointing to the right things 22:18
NotFound cotto_work: TODO what, throwing when out of bound?
darbelo Pointers rarely point to the right thing. It's part of the fun with C.
cotto_work no, the inconsistency between byte-level addressing word-sized r/w 22:19
ash_ i think somewhere i am making my pointer point to a stack variable thats disappearing later in the program, thats why i am getting a seg fault, but i'll see
cotto_work s/word/INTVAL/ 22:20
NotFound cotto_work: There is no word-sized r/w
INTVAL is used just because that's the vtable wants.
ash_ i didn't have any problems before i was using a void*, but the pmc's need those i thing? or can i have a pmc attr thats not parrot type? 22:22
bacek aloha, humans 22:23
cotto_work aloha, bacek 22:24
NotFound cotto_work: This nopaste? nopaste.snit.ch/21121
bacek NotFound, consider adding .push_byte/.shift_byte/etc METHODs. Than we can use vtable to migrate freeze/thaw to ByteBuffer.
cotto_work NotFound: yes 22:25
bacek, wouldn't METHODs be slow? 22:26
NotFound cotto_work: Are you too tired? 22:27
bacek cotto_work, yes. But do we need extreme performance in this case?
cotto_work Just ignore me.
I'll start saying things tomorrow.
NotFound cotto_work: if i >= size ... looks wrong. 22:28
22:28 kid51 joined
NotFound bacek: we are near the release, I'm implementing the functionality intender for the encode/decode purpose and less prone to break things ;) 22:30
dalek rrot: r47519 | tcurtis++ | branches/gsoc_past_optimization (3 files):
Add support for PAST::VarList in PAST::Walker::Dynamic.
22:31
rrot: r47520 | darbelo++ | branches/gsoc_nfg/src/string/api.c:
Better handling of NULL grapheme tables in concatenation.
rrot: r47521 | tcurtis++ | branches/gsoc_past_optimization/runtime/parrot/library/PAST/Transformer/Dynamic.pir:
Add support for PAST::VarList to PAST::Transformer::Dynamic.
bacek NotFound, yes. But if people will start using vtables to access bytes we will not able to move freeze/thaw to ByteBuffer at all...
NotFound bacek: I don't see the problem. 22:32
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#34293), fulltest) at r47517 - Ubuntu 10.04 amd64 (g++)
bacek NotFound, we do need fast way of iterating ByteBuffer by "words" for freeze/thaw. VTABLEs are fastest way. But we use them for "bytes" 22:33
NotFound bacek: giving that its name is ByteBuffer, no wonder.
mikehh that's the first time I can report that for trunk since r46932 22:34
NotFound s/giving/given 22:35
bacek "Byte" is just half of it. "Buffer" can be universal from storage/access view. 22:36
mikehh kid51: I get all tests passing now - how about you?
NotFound bacek: I think that for INTVAL access we already have ResizableIntegerArray 22:38
bacek NotFound, it's too high level. There is no way to shift u16 from RIA on 64-bits platform. 22:39
Which means we can't use it for freeze/thaw. 22:40
uint16_t
kid51 mikehh: Am running tests on 2 OSes right now. Will post within the hour. 22:41
mikehh kid51: great - hoping we're ok for the release now 22:42
bacek anyway, $dayjob time 22:43
NotFound bacek: If we need a specialized PMC for such complex need better to crate one than complicate and unoptimize the main purpose of ByteBuffer
dalek kudo: f50c359 | jonathan++ | src/Perl6/Actions.pm:
When we write my ($x is rw) := 42, make sure that we don't try and re-apply the
22:44
NotFound Which is byte level access, as his name manifests.
dalek rrot: r47522 | darbelo++ | branches/gsoc_nfg/src/string/grapheme.c:
Handle cloning on NULL tables.
22:48
kid51 mikehh: Unfortunately, I'm getting one failure on make coretest on darwin/ppc 22:53
mikehh kid51: unfortunately I don't have access to that platform - but ticket it unless you can figure it out and fix it 22:56
kid51: is it a darwin specific test? 22:58
nopaste "kid51" at 192.168.1.3 pasted "After make corevm, one failure on darwin/ppc" (11 lines) at nopaste.snit.ch/21122 23:00
kid51 "no ICU lib loaded" 23:01
Not Darwin-specific. Suspect that test presumes ICU loaded. But I know I don't have it here.
Do you want me to create a TT? 23:03
make coretest passed on linux/i386; only that one failure on coretest on darwin/ppc 23:04
mikehh kid51: that is a new test and if it is ICU related it needs to test for that and skip if necessary 23:09
ash_ any C guru's that are bored and want to help me out a bit? i have a file that's independent of the whole of parrot that isolates my issue, it only requires a C compiler and libffi headers 23:11
cotto_work anyone feeling like answering can't answer without seeing the code 23:14
ash_ gist.github.com/ea759b72f3ce3be7f724 23:16
kid51 mikehh: matter of fact, it fails under 'make test' as well
ash_ Excuse my random and many prints, i had most of the code in a pmc before and was having issues with the gdb putting in break points 23:17
cotto_work why does that gist have a private clone URL?
nm. download link works fine 23:18
ash_ if you want to check out the gist to work with, you can clone it so git will manage your changes
or you can make a fork
its kinda like a mini git repo
actually its a full git repo, its a bit less than the normal github project 23:19
so... in theory, lines 520, 526 and 530 should function the exact same, but 530 causes a segfault 23:20
the ffi_cif struct type has an element ffi_type *arg_types; that appears to be on the sig.cif, i can't for the life of my figure out why 23:22
i have a few things in there to let it act like it was in parrot (hence the macros for PARROT_INTERP etc.), but most of that shouldn't matter to much i don't think 23:26
dalek TT #1677 created by jkeenan++: t/pmc/bytebuffer.t: Fails when ICU is not present 23:28
TT #1677: trac.parrot.org/parrot/ticket/1677
23:36 theory joined 23:37 tetragon joined 23:58 snarkyboojum joined