Camelia, the Perl 6 bug

IRC log for #parrot, 2011-03-05

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 cotto_work I wince when I see Parrot_hsh_*
00:01 cotto_work plobsing: does that change have any performance implications?
00:02 plobsing how do you mean? performance wasn't really the focus of the branch.
00:03 plobsing well aside from the FIA hashing thing. no temporary strings is probably a small win whereever that gets used.
00:04 ttbot Parrot 4209f872 MSWin32-x86-multi-thread make error http://tt.taptinder.org/cmdinfo/49162
00:10 dalek parrot: bc755f7 | plobsing++ | / (5 files):
00:10 dalek parrot: fix includes and exports
00:10 dalek parrot: review: https://github.com/parrot/parrot/commit/bc755f7974
00:10 plobsing that ought to do it
00:19 cotto left #parrot
00:32 mikehh t/compilers/opsc/06-opsfile.t - Failed test:  1 (not ok 1 # Ops parsed correctly)
00:37 ttbot Parrot 4209f872 MSWin32-x86-multi-thread make error http://tt.taptinder.org/cmdinfo/49410
00:42 kid51 is now known as kid51_at_dinner
00:42 mikehh rebuilt from make realclean - same test error - t/compilers/opsc/06-opsfile.t - Failed test:  1
00:44 mikehh that's with Kubuntu 10.10 amd64 (g++-4.5) - RELEASE_3_1_0-715-gbc755f7
00:45 mikehh everything passed up to fulltest at 3_1_0-707-gdba406c
00:47 cotto joined #parrot
00:47 cotto ~~
00:50 whiteknight hello cotto
00:53 mikehh hi cotto
00:55 jrtayloriv left #parrot
00:59 cotto good evening, whiteknight
00:59 cotto good evening, mikehh
01:05 mikehh why would plobsing's last5 commits add 2 to the number of core/math ops - gets 266 rather than 264 as before
01:06 mikehh s/last5/last few/
01:06 plobsing mikehh: because I added an op which gets 2 variants
01:07 mikehh plobsing: then we need to update t/compilers/opsc/06-opsfile.t
01:07 davidfetter left #parrot
01:07 plobsing I'm already on that
01:07 mikehh you or me?
01:07 mikehh 'k - I'll leave it to you
01:09 dalek parrot: 2ca3527 | plobsing++ | t/compilers/opsc/06-opsfile.t:
01:09 dalek parrot: account for added op in test
01:09 dalek parrot: review: https://github.com/parrot/parrot/commit/2ca3527d4b
01:12 cotto I wonder if there's a better way to do that test.
01:13 cotto It's lta to have to update it whenvever the number of ops changes.
01:20 kid51_at_dinner is now known as kid51
01:21 cotto I guess a regex against all ops files would work.  It wouldn't have to be very smart.
01:22 cotto it'd still need to be smart about args though
01:23 cotto blarg
01:23 mikehh that test is one of the longest in the test suite (running time that is)
01:24 cotto yeah
01:24 cotto the code nqp-rx currently generates isn't optimal
01:28 mikehh are we gonna look at that or nqp for that matter?
01:50 cotto tewk, ping
01:56 whiteknight I hate IMCC
01:56 whiteknight I have a PIR file here, full of annotations and everything. It gives me an extremely opaque error message, and tells me it occured "...somewhere"
01:56 whiteknight FFFFFUUUUUUUUU
02:00 krunen left #parrot
02:00 cotto whiteknight, nopaste?
02:00 cotto I hate those.
02:00 plobsing whiteknight: would it help if IMCC were more appologetic about not being able to find the line number?
02:01 sorear whiteknight: in situations like that, I bisect by introducing an obvious error into the middle of the file
02:05 krunen joined #parrot
02:07 whiteknight I don't understand why it says "line 1"
02:07 whiteknight it's not on line 1
02:07 whiteknight and I know line numbers are incremented
02:07 whiteknight so why would line ever be set back to 1?
02:09 plobsing is it in an inner parse context?
02:09 plobsing that happens a lot
02:10 whiteknight This line is the error: $P1 = $P2.'match_function'(__ARG_2, __ARG_3, __ARG_4)
02:10 whiteknight no inner parse context. It's a flat parse
02:10 plobsing no macros no includes?
02:10 whiteknight error message is : "error:imcc:syntax error, unexpected IDENTIFIER, expecting COMMA or ')' ('__ARG_2')"
02:11 whiteknight no macros, unless winxed is declaring them and I don't know about it
02:11 whiteknight nope, no macros, no includes
02:11 whiteknight just this file, just that line
02:11 plobsing are you indenting your lines?
02:12 plobsing indented lines don't trigger line number increments
02:12 whiteknight no. This is the .pir file generated by a .winxed file
02:12 whiteknight are you shitting me?
02:12 whiteknight I mean, I don't think that's the issue here, but that's still the dumbest thing I have ever heard
02:12 plobsing I shit you not. It comes from lex's "longest token rule"
02:12 whiteknight lex is stupid.
02:13 plobsing \s is a longer token than ^, so ^ never matches
02:14 whiteknight ah, I think I figured it out. This is a closure. __ARG_2 is declared in the parent context, but doesn' appear to be auto-lexicalized in the closure
02:14 whiteknight weird
02:14 plobsing I mentioned changing to matching line end in stead, but chromatic changed it to line begginning to fix a large swath of of-by-one line number errors
02:14 whiteknight oh, and imcc--
02:14 plobsing can't win either way
02:15 whiteknight I would rather an off-by-one error over an absolutely unhelpful off-by-100% error
02:17 whiteknight ...and the next error message I get from IMCC is on line 1 again
02:17 whiteknight hatehatehatehatehatehatehatehate
02:18 plobsing whiteknight: clearly you just need to remove the first line of your program until you have no errors or no program left
02:18 plobsing the latter is more probable
02:18 whiteknight clearly
02:19 whiteknight yay! compile success
02:20 dalek Rosella: 7353a67 | Whiteknight++ | s (8 files):
02:20 dalek Rosella: flesh out the new mockobject library. All the logic *looks* like it's there and the library builds. Untested
02:20 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/7353a67c01
02:20 whiteknight decided I better push that before something goes wrong
02:23 sorear plobsing: how about adding a ^\s* token?  that would be as long as \s
02:25 plobsing sorear: it appears we have that. perhaps it was UNindented lines. I can't recall. I looked into this months ago and there was no satisfactory, easy fix.
02:27 plobsing but I can tell you line numbers sometimes don't get incremented due to a conflict between indentation and longest-token.
02:33 plobsing yep, a quick test says that I had it mixed up. line number doesn't increment on lines not beginning with whitespace.
02:51 sorear we could increment line numbers once at beginning of file, and once on any token containing a \n
02:52 plobsing that's end-of-line incrementing in stead of beginning-of-line incrementing, which leads to a number of off-by-one line number errors
02:52 plobsing just indent your code
02:54 dalek Rosella: d2b9dd3 | Whiteknight++ | src/ (2 files):
02:54 dalek Rosella: fixes so we can create a MockObject.Factory (not using it yet)
02:54 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/d2b9dd39a6
02:54 dalek Rosella: 344c5e4 | Whiteknight++ | src/mockobject/Expectation.winxed:
02:54 dalek Rosella: fixes so we can setup an expectation
02:54 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/344c5e413e
02:54 dalek Rosella: 2a3cca4 | Whiteknight++ | src/mockobject/ (2 files):
02:54 dalek Rosella: fixes so we can do an end-to-end mock object test for a method invocation
02:54 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/2a3cca4620
02:54 dalek Rosella: 23d5e5a | Whiteknight++ | src/mockobject/ (2 files):
02:54 dalek Rosella: several fixes. I've done several manual tests for get/set attr and methods, with various with/will settings
02:54 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/23d5e5aeab
02:54 whiteknight plobsing: where do the off-by-one errors occur? Couldn't we just +1 in the error reporting functions?
02:55 whiteknight or, in the error reporting functios, give a range of locations to look?
02:56 plobsing whiteknight: due to lookahead, sometimes bison will still be parsing the previous line when it encounters an error
02:57 whiteknight okay. So we need to accept that as a fact of our underlying technology, and pass that uncertainty along to our users
02:57 whiteknight again, off-by-one is better than absolutely-completely-wrong
02:57 plobsing or just ask them to indent.
02:57 whiteknight msg NotFound: indent
02:57 aloha OK. I'll deliver the message.
02:57 whiteknight asked
03:00 kid51 ~~
03:02 ShaneC left #parrot
03:05 cotto hio kid51
03:08 kid51 yo
03:46 sigue left #parrot
03:51 sigue joined #parrot
03:58 dalek Rosella: 7ef20bd | Whiteknight++ | src/test/Assertions.winxed:
03:58 dalek Rosella: add in two new test assertions for meta-tests. one to expect a block to generate a test failure, one to expect a block to run like a test pass
03:58 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/7ef20bd3b8
03:58 dalek Rosella: 3558989 | Whiteknight++ | / (3 files):
03:58 dalek Rosella: add some meta-tests for the new assertions
03:58 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/3558989e4d
03:58 dalek Rosella: bf8e43f | Whiteknight++ | / (4 files):
03:58 dalek Rosella: Add first tests for mock objects. Right now, we're only testing method mocking
03:58 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/bf8e43fb73
03:58 dalek Rosella: c331de9 | Whiteknight++ | src/action/Action.winxed:
03:58 dalek Rosella: actions can take overrides. They just aren't exposed through the container's resolution methods
03:58 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/c331de967a
03:59 whiteknight and that that, I think it's time for bed
03:59 whiteknight goodnight
03:59 whiteknight left #parrot
04:10 lateau__ left #parrot
04:52 kid51 left #parrot
06:39 fperrad joined #parrot
06:45 cottoo joined #parrot
06:45 cotto left #parrot
06:45 cottoo is now known as cotto
06:45 cotto left #parrot
06:45 cotto joined #parrot
06:52 theory left #parrot
06:55 jsut joined #parrot
06:57 rurban_ joined #parrot
06:59 jsut_ left #parrot
07:00 contingencyplan left #parrot
07:00 rurban left #parrot
07:00 rurban_ is now known as rurban
07:04 contingencyplan joined #parrot
08:19 woosley joined #parrot
08:20 dukeleto ~~
08:51 luben left #parrot
09:00 ShaneC joined #parrot
09:28 woosley left #parrot
10:14 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#11515) fulltest) at 3_1_0-716-g2ca3527 - Kubuntu 10.10 amd64 (g++-4.5)
10:15 mikehh my first attempt to upload to smolder failed - I then re-sent using:
10:16 mikehh perl -Ilib -MParrot::Harness::Smoke -e'Parrot::Harness::Smoke::send_arch​ive_to_smolder(Parrot::Harness::Smok​e::collect_test_environment_data())'
10:16 mikehh and this worked - well at least this time
10:19 mikehh I seem to remember when we had problems with smolder before (on the old site) this was solved by increasing the server side timeout
10:45 PacoLinux_ joined #parrot
10:59 PacoLinux_ left #parrot
11:18 dalek TT #2039 created by mikehh++: Failures in uploading to Smolder
11:18 contingencyplan left #parrot
11:18 dalek TT #2039: http://trac.parrot.org/parrot/ticket/2039
11:46 whiteknight joined #parrot
11:59 whiteknight good morning, #parrot
12:03 lucian joined #parrot
12:21 cognominal left #parrot
13:40 dalek parrot: 46aa5d9 | fperrad++ | runtime/parrot/library/Archive/Tar.pir:
13:40 dalek parrot: [Tar] refactor with StringBuilder
13:40 dalek parrot: review: https://github.com/parrot/parrot/commit/46aa5d9279
13:46 luben joined #parrot
13:49 ambs joined #parrot
13:52 kid51 joined #parrot
13:57 mrwall-e joined #parrot
14:22 zby_home joined #parrot
14:57 rurban_ joined #parrot
15:00 rurban left #parrot
15:00 rurban_ is now known as rurban
15:06 mrwall-e left #parrot
15:08 kid51 left #parrot
15:08 mrwall-e joined #parrot
16:05 mrwall-e left #parrot
16:05 mrwall-e joined #parrot
16:07 mrwall-e left #parrot
16:10 mrwall-e joined #parrot
16:11 mrwall-e left #parrot
16:11 cognominal joined #parrot
16:19 Patterner left #parrot
16:19 Psyche^ joined #parrot
16:19 Psyche^ is now known as Patterner
16:34 theory joined #parrot
16:42 dukeleto ~~
16:44 whiteknight left #parrot
16:48 tadzik o/
16:50 cotto ~~
16:53 ambs ~~~~~\o/~~~~~ HELP, I'm drowning!
17:10 * moritz tosses a rope im ambs' direction and hopes he's not too late
17:10 ambs :)
17:19 theory left #parrot
18:07 plobsing_ joined #parrot
18:11 plobsing left #parrot
18:11 theory joined #parrot
18:42 dukeleto tadzik: how goes it on the deprecation detector?
19:02 simcop2387_ joined #parrot
19:04 simcop2387 left #parrot
19:04 simcop2387_ is now known as simcop2387
19:44 tadzik dukeleto: as I wrote in the email
19:44 tadzik nothing new since then
19:45 ambs left #parrot
19:45 ambs joined #parrot
19:51 dukeleto tadzik: have any docs popped up yet?
19:51 tadzik dukeleto: not besides what's in the script, have you seen that?
19:58 dukeleto tadzik: yes, looked a few days ago. The last few days have been a blur of packing, moving and traveling, so I am a bit disoriented
19:59 theory left #parrot
20:02 contingencyplan joined #parrot
20:04 contingencyplan left #parrot
20:06 contingencyplan joined #parrot
20:22 ambs left #parrot
20:38 sri left #parrot
20:39 theory joined #parrot
20:39 sri joined #parrot
20:52 fperrad left #parrot
21:05 plobsing_ does anyone know why low-level types (eg: enum_type_longlong) are expected to be in the same places (and therefore must be differentiated from) PMC type numbers (eg: enum_class_Integer)??
21:05 plobsing_ also, why are we still using type numbers anyways?
21:06 perlite_ joined #parrot
21:06 whiteknight joined #parrot
21:07 whiteknight good afternoon, #parrot
21:07 plobsing_ hi whiteknight
21:07 plobsing_ is now known as plobsing
21:07 whiteknight hello plobsing. how are you doing today?
21:08 plobsing I'm feeling dumber by the second. I can't seem to understand how this is supposed to work.
21:09 perlite left #parrot
21:09 perlite_ is now known as perlite
21:10 plobsing whiteknight: what are you hacking on atm?
21:10 whiteknight how what is supposed to work?
21:10 whiteknight I'm working on the proxy/mockobject libraries for rosella. Have one more feature to add before I can regain focus and look at something else
21:12 plobsing enum_type_* values are negative to differentiate from enum_class_* values. But why should they be fungible in the first place?
21:13 whiteknight what do you mean by that?
21:13 jrt4 joined #parrot
21:15 plobsing why should we expect enum_type_* values where we expect enum_class_* values?
21:15 plobsing and vice versa
21:16 plobsing it seems we do this in a number of places, but I cannot think of a logical reason why
21:17 whiteknight the only reason I can think of to do that is in MMD, so that we can treat different types consistently
21:17 whiteknight but other than that, I can't think of a place where we should allow those to mingle
21:17 plobsing mmd is one of those places
21:17 plobsing but low-level types are never visible to MMD. these are things like "char", "double", or "uint64".
21:19 plobsing ah, maybe FLOATVAL, STRING, and INTVAL.
21:19 dalek tracwiki: v2 | NotFound++ | GSoc2011
21:19 dalek tracwiki: http://trac.parrot.org/parrot/wiki/​GSoc2011?version=2&action=diff
21:19 plobsing that makes some sense now. thanks.
21:21 whiteknight yeah, enum_type_floatval, enum_type_string are visible to MMD
21:22 whiteknight it does seem more than a little bit strange for those to be mixed in with char and uint64
21:23 plobsing I'm also wondering why we're still working with type-numbers at all. why not just work with pointers to a type-object (eg: common vtable, something similar)?
21:27 whiteknight that is a good question. I know there was a push at one point to stop talking about PMC types by number
21:27 whiteknight we changed PIR so that type numbers were no longer visible to PIR code, but we never utilized that abstraction barrier to change the situation inside parrot
21:29 plobsing maybe we should
21:29 plobsing or maybe we'll get it as part of 6model
21:36 mikehh left #parrot
21:37 jsut_ joined #parrot
21:37 ambs joined #parrot
21:41 jsut left #parrot
21:59 Tene "In the new configuration, AST (Abstract Syntax Tree) nodes occur in longlife heaps. They are a parsed representation of the Ruby programs' source code construct (such as name, type, expression, statement, or declaration). Once loaded, they tend to stick in memory, and are largely immutable. They also occupy a large amount of memory: in twitter.com's runtime, they account for about 60% of live objects at any given time." -- ...
21:59 Tene ... (http://engineering.twitter.com/2011/03/bui​lding-faster-ruby-garbage-collector.html)
21:59 Tene What reason is there for keeping around the AST after you're done compiling?
21:59 sorear Tene: the interpreter needs to walk them
22:00 sorear ruby doesn't, or didn use bytecode
22:00 sorear 't,
22:01 sorear I'm pretty sure bytecode was introduced in ruby 1.9, and it says in the article they aren't using that
22:01 Tene walks AST nodes instead of bytecode?  That seems a bit weird.
22:01 Tene Ah.
22:03 sorear interpreting ASTs isn't that weird
22:04 lucian isn't that the classical interpreter?
22:04 sorear fsvo "classical"
22:05 sorear if SICP counts, then yes
22:05 Tene sorear: Ahh, I'm just underinformed, then. :)
22:06 sorear but von neumann wrote a bytecode interpreter ca. 1947, so I think they have the priority claim
22:07 plobsing lisp's eval was not long after
22:07 lucian Tene: the twitter guys are weird if you ask me
22:07 lucian why not implement a better gc in the proven faster runtime, 1.9?
22:08 sorear because the proven faster runtime already has a better gc
22:09 plobsing aloha: cover?
22:09 aloha plobsing: I have no idea.
22:09 plobsing aloha: coverage?
22:09 aloha plobsing: coverage is http://cv.perl6.cz or http://tapir2.ro.vutbr.cz/cover/cover-results/
22:11 jnthn Anyone got any ideas why the load_bytecode op might be failing with "Unicode rindex not implemented" on Win32?
22:12 plobsing jnthn: possibly because we're interpreting filenames as unicode now.
22:12 sorear No ICU
22:12 jnthn I'm not going to install ICU.
22:12 plobsing coupled with no ICU
22:12 jnthn Just to load_bytecode!
22:12 jnthn :)
22:13 sorear jnthn: we *really* ought to bundle ICU with Parrot
22:13 jnthn OK, maybe it's some Win32 specific issue.
22:13 jnthn sorear: We used to.
22:13 jnthn I did a bunch of work to get it to build on Win32
22:13 lucian i'd personally prefer if parrot used Glib for strings instead of ICU
22:13 jnthn Then folks decided that dependency idealism should beat pragmatism, or something.
22:13 jnthn :/
22:15 plobsing jnthn: nwellnhof did the work to get unicode support on Win32. He'd be the guy to ask about dissabling it.
22:15 jnthn OK.
22:15 * jnthn tries make test on Parrot to see if it shows up anything
22:19 PacoLinux_ joined #parrot
22:21 bubaflub joined #parrot
22:21 bubaflub good afternoon, #parrot
22:22 jnthn https://gist.github.com/856777 is make test here...doesn't have anything that is obviously the issue I'm seing.
22:22 jnthn *seeing
22:23 ambs left #parrot
22:25 jnthn ah well, tired now. Hackathon tomorrow, will look then
22:26 plobsing jnthn: can you get a backtrace to see how you got there?
22:26 jnthn plobsing: PIR-level backtrace?
22:27 jnthn plobsing: I have one though I'm not sure it's that revelaing.
22:27 jnthn The load_bytecode op never seems to even get to loading/running anything in the loaded bytecode, so far as I can tell.
22:28 plobsing jnthn: nah, the C backtrace is what is important
22:28 jnthn ah
22:29 jnthn no, don't have that immediately to hand.
22:29 jnthn Can get it tomorrow.
22:34 mikehh joined #parrot
22:41 dalek Rosella: dd4f013 | Whiteknight++ | src/proxy/ (2 files):
22:41 dalek Rosella: Add a stub hash proxy builder type. Add preliminary support to the controller.
22:41 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/dd4f013e92
22:41 dalek Rosella: d2ddda9 | Whiteknight++ | src/proxy/Controller.winxed:
22:41 dalek Rosella: some changes to the stub keyed access methods on the proxy controller
22:42 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/d2ddda9c2b
22:42 dalek Rosella: 812b722 | Whiteknight++ | src/ (18 files):
22:42 dalek Rosella: move the old xunit .nqp files into the legacy nqp folder
22:42 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/812b722469
22:42 dalek Rosella: 24c335b | Whiteknight++ | / (4 files):
22:42 dalek Rosella: Add in a new invoke intercept builder. With this we can now proxy Sub and Sub-like invokables
22:42 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/24c335b7ba
22:42 dalek Rosella: 25c9d5d | Whiteknight++ | src/mockobject/ (7 files):
22:42 dalek Rosella: delete the old .nqp files from mockobject
22:42 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/25c9d5d72e
22:42 dalek Rosella: b0f85d8 | Whiteknight++ | src/ (4 files):
22:42 dalek Rosella: allow mocks to be invokable, and add in expectation logic to track invokes
22:42 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/b0f85d83d0
22:42 dalek Rosella: bf8c4f4 | Whiteknight++ | src/mockobject/ (3 files):
22:42 dalek Rosella: cleanups and docs for the mockobject classes
22:42 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/bf8c4f402c
22:42 dalek Rosella: 15c338f | Whiteknight++ | t/mockobject/Mocking (3 files):
22:42 dalek Rosella: Add in stub test files for mocking attributes and invokes
22:42 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/15c338fdd0
22:48 PacoLinux_ left #parrot
22:53 zby_home left #parrot
22:57 rurban_ joined #parrot
23:00 rurban left #parrot
23:00 rurban_ is now known as rurban
23:16 kid51 joined #parrot

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

Parrot | source cross referenced