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