Parrot 4.4.0 "Banana Fanna Fo Ferret" | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 3 June 2012.
whiteknight good evening, #parrot 00:07
dalek rrot/attribute_generate: 487e9d0 | jkeenan++ | / (3 files):
Eliminate Parrot::Pmc2c::Attribute.

ack-ing showed that none of this method's packages was invoked more than once. Hence, we can either move them to the package in which they are invoked or eliminate them entirely in favor of simply passing their arguments to callers as needed.
Invocation of name() in Parrot::Pmc2c::PMC re-coded to be a hash dereference rather than a method call.
generate_start(), generate_declaration(), generate_end() and generate_accessor() become Parrot::Pmc2c::PMC internal methods.
new() was called only once, within Parrot/Pmc2c/Parser.pm. It never did anything other than guarantee that all four of its key-value pairs had defined values. Rework its invocation.
00:27
aloha (parrot/parrot) Issues opened : 789 (lib/Parrot/Pmc2c/Attribute.pm can be eliminated) by jkeenan : github.com/parrot/parrot/issues/789 00:36
00:53 kjs joined
dalek rrot/eliminate_multi: f4a2ff1 | jkeenan++ | lib/Parrot/Pmc2c/ (2 files):
Parrot::Pmc2c::MULTI::rewrite_multi_sub() is invoked only once, in

to believe that its first argument was an object of its own class, which it is not. The first argument is a Parrot::Pmc2c::Method object. So inside rewrite_multi_sub(), rename $self -> $method to be more self-documenting.
01:37
rrot/eliminate_multi: 2ad68dd | jkeenan++ | lib/Parrot/Pmc2c/P (2 files):
Parrot::Pmc2c::MULTI::rewrite_pccmethod() and mangle_name() are invoked only

would lead one to believe that their first arguments were objects of the Parrot::Pmc2c::MULTI class, which they are not. In each case, the first argument is a Parrot::Pmc2c::Method object. So inside rewrite_multi_sub(), rename $self -> $method to be more self-documenting.
In addition, mangle_name() makes no use of its second argument, $pmc. So eliminate it.
rrot/eliminate_multi: a4ffcce | jkeenan++ | / (4 files):
Parrot::Pmc2c::MULTI::rewrite_multi_sub() is invoked only once, inside

where it can reside along two other subroutines invoked within find_methods. This enables us to eliminate lib/Parrot/Pmc2c/MULTI.pm entirely.
rrot/whiteknight/io_cleanup1: 1e41ce0 | Whiteknight++ | src/io/ (2 files):
Fix several issues related to positioning and seek. When we're reading a number of characters from the buffer, make sure to count the ones we've already read. Use ->get_position to get the current cursor position instead of ->tell to get the file descriptor on-disk position when calculating SEEK_CUR offsets.
rrot/whiteknight/io_cleanup1: 0124c07 | Whiteknight++ | src/ (3 files):
Handle BUFFER_SIZE_ANY correctly, so we don't attempt a multi-terabyte allocation. Make sure to use the record_separator character when using the readline method. Reclaims almost all of the filehandle tests
rrot/whiteknight/io_cleanup1: 21d7869 | Whiteknight++ | src/ (2 files):
Some simplifications to FileHandle.readall()
rrot/whiteknight/io_cleanup1: 42a24e9 | Whiteknight++ | / (4 files):
Re-implement the lousy string-based interface for querying and configuring buffers on FileHandles. Leave large notes about how this is a temporary hack to maintain compatibility with an old and sub-optimal interface.
rrot/eliminate_multi: e2bd11a | jkeenan++ | / (2 files):
Eliminate remaining references to Parrot::Pmc2c::MULTI.
01:44
whiteknight kid51++ 01:54
aloha (parrot/parrot) Issues opened : 790 (lib/Parrot/Pmc2c/MULTI.pm can be eliminated) by jkeenan : github.com/parrot/parrot/issues/790 02:37
dalek rrot: 957219a | jkeenan++ | lib/Parrot/Pmc2c/Method.pm:
Eliminate unnecessary import of Parrot::Pmc2c::Emitter.
02:56
03:39 nopaste joined 03:47 TonyC joined 03:49 nopaste joined 04:05 TonyC joined 04:09 nopaste joined 06:07 fperrad joined
aloha (parrot/parrot) Issues closed : 774 (pod_description.t TODOs) by cotto : github.com/parrot/parrot/issues/774 08:40
08:48 kjs joined
dalek : 9418159 | kjs++ | src/ (5 files):
moving various typechecks to semcheck.c. Common problem now is that semcheck is not complete, and some nodes are never reached. Essential pointers are set in these check routines, so this is the first place to look when things don't run.
09:16
09:24 particle1 joined 09:40 brrt joined 09:55 fperrad joined 10:33 PacoAir joined, whiteknight joined
whiteknight good morning, #parrot 10:34
kjs morning whiteknight
whiteknight hello kjs. How are you doing today? 10:35
kjs very well, thanks. how are you?
whiteknight doing well. Have to be very quiet because everybody else here is sleeping 10:42
dalek : 0506136 | kjs++ | src/ (2 files):
add line numbers to type checker. various other.
kjs you mean at home or in #parrot? :-)
dalek rrot/nwellnhof/compiler_flags: d7021b5 | nwellnhof++ | config/init/defaults.pm:
Link against libm and libdl by default
10:44
brrt hey, whiteknight 10:45
whiteknight brrt! 10:46
brrt morning, kjs, as well. lovely weather today, don't you think?
kjs brrt: i don't know about NL, but it's good here :-)
whiteknight kjs: At home. I want to wake people in #parrot!
kjs whiteknight: so far you're doing a good job :-) 10:47
brrt yes, better than dalek
kjs: you're not in the netherlands? oh, then my nudge fails :-)
whiteknight: have you yet been able to run mod_parrot?
kjs brrt: i'm in ireland 10:48
10:48 brambles joined
brrt i see 10:49
whiteknight msg bacek_at_work we seem to have lost slavorg permanently. Can we upgrade aloha to +o people?
aloha OK. I'll deliver the message.
brrt oh, i was wondering if anyone could enlighten me.. what is m0? 10:52
kjs it'a secret project! :-)
leto.net/dukeleto.pl/2011/05/what-is-m0.html
that explains it best
brrt oh, i see 10:53
thaks
whiteknight brrt: Our current set of opcodes is very large (1400+ ops, including variants) and that's very difficult to use with JIT and some types of tools 10:55
kjs whiteknight: I thought the C-PIR boundary is the big problem, not so much the 1400 ops 10:56
whiteknight kjs: Yes, that's a big problem too
there are many problems
JIT-ability was one of the original motivating factors
brrt so, if i may generalise a bit 11:04
m0 is a project to make a RISVM from parrot which is now a CISVM
whiteknight basically, yes
brrt exciting
11:08 particle joined
brrt but did you ever solve the linking problem? 11:09
basically, i really want as many people to test it, or at least as many machines as possible 11:11
dalek : aac07af | kjs++ | src/ (9 files):
more updates to type checker.
11:12
whiteknight brrt: yeah, I got that all fixed. It was an ldconfig issue 11:14
and I tested it out. It looks great
moritz fwiw if I change icu-config --ldflags to icu-config --ldflags-libonly, my parrot build succeeds again
brrt yay :-D 11:15
btw, working on this testing thing makes me realise how much is not done 11:16
whiteknight heh, yeah tests have a way of doing that 11:20
brrt :-) hows io_cleanup1 going along? 11:26
11:28 brrt joined
whiteknight brrt: I'm working on it right now. I'm in the process of diagnosing and fixing failing tests 11:31
brrt thats pretty far 11:33
whiteknight I'm trying to fix a problem of reading standard input. Calling stdin.readall() works fine, unless it's a pipe and then stat fails
if it's an ordinart tty we don't stat it, so stdin works from the console. But when it's a pipe it fails that check 11:34
dalek : 93f64f1 | kjs++ | src/ (5 files):
cleanups and comments.
11:36
: 8be141e | kjs++ | src/ (5 files):
store constant index in compiler object, not per symbol table, as there may be multiple per chunk. Also don't forget to reset constindex to 0 for each chunk.
11:45
brrt :-) nice... i'm going to leave now
will be back :-)
12:05 kid51 joined 12:07 kid51_ joined
dalek rrot: 5870084 | moritz++ | config/auto/icu.pm:
[configure] use icu-config --ldflags-libsonly

This fixes the build problem discussed at
  lists.parrot.org/pipermail/parrot-d...06974.html
12:16
rrot: cace87b | jkeenan++ | .gitignore:
Add tools/dev/pbc_to_exe.pir per instruction from whiteknight.
12:18
rrot: c89914d | jkeenan++ | config/auto/icu.pm:
Merge branch 'master' of git@github.com:parrot/parrot
12:21 JimmyZ joined 12:46 travis-ci joined
travis-ci [travis-ci] parrot/parrot#415 (master - c89914d : jkeenan): The build was broken. 12:46
[travis-ci] Change view : github.com/parrot/parrot/compare/5......c89914d
[travis-ci] Build details : travis-ci.org/parrot/parrot/builds/1582771
12:46 travis-ci left 12:47 isBEKaml joined 12:49 isBEKaml joined
kid51_ If travis-ci's build breaks because I add one entry to .gitignore, it's really lacking as a smoker. 12:51
isBEKaml huh, that's not a smoking agent!
is travis really that _flaky_? 12:52
kid51_ And whenever I go to a travis-ci.org link, I get a "Warning: unresponsive script message" in my browser that prompts me to either stop the script or continue. When I click stop the script, I get no statistics. 12:53
In fact, I have never gotten any useful information out of travis.
isBEKaml: True, it's not a smoker in the sense of reporting results of 'make test'; AFAIK it only builds. 12:54
moritz kid51_: my experience with travis matches yours. 99.95% noise. 13:00
isBEKaml huh, I click on the travis build failure link and it takes me to some other project build failure? MasterMindSolver? :| 13:01
and it reloads the page every freaking 5 seconds..
moritz complete usability fail 13:07
last time I tried to use the website, I couldn't get the information I wanted
in the end one of the travis developers nopasted the build log for me
13:12 particle1 joined 13:13 Psyche^ joined
dalek kudo/require-arglist: 1ebfd94 | moritz++ | src/core/operators.pm:
fix stupid thinkos in require import
13:26
isBEKaml travis, this is ridiculous. :/ 13:36
gist.github.com/2905660
I had to jump through hoops to fetch that stupid build log. All it says is, "your build failed cos it exceed the specified time limit." FTS. 13:38
I mean, I have seen CI builds fail all because it 502'd when the build bot fetched the latest code base. But, this is really irritating. 13:39
dalek kudo/require-arglist: 3605d62 | moritz++ | src/core/Exception.pm:
X::Import::MissingSymbols needs to inherit from Exception
14:01
14:15 kjs joined
dalek kudo/require-arglist: 60a9808 | moritz++ | src/Perl6/Actions.pm:
fix codegen for call to &REQUIRE_IMPORT
14:17
nxed: deea653 | NotFound++ | winxedst (2 files):
ensure createconst always gets a TokenIdentifier as name
14:31
: 3d44377 | kjs++ | / (14 files):
update tests to conform TAP protocol.
14:38
: 0681fe8 | kjs++ | src/semcheck.c:
clarify why a 0 is stored on the stack before checking in semcheck.
14:39
nxed: 81b1ca7 | NotFound++ | Makefile:
several subtargets for the clean target
14:55
nxed: 232db6d | NotFound++ | winxedst (2 files):
ensure createvarnamed always gets a TokenIdentifier as name
14:56
moritz how are all the GSOC projects coming along? I've seen commits from brrt++ and benabik++, but from no other gsoc student so far 14:57
dalek kudo/require-arglist: 200af35 | moritz++ | src/core/operators.pm:
fix up REQUIRE_IMPORT

now it works, except that it currently imports our-symbols and not exported symbols
14:58
kudo/require-arglist: d96f5ee | moritz++ | src/core/operators.pm:
require now searches for exported symbols instead of our-scoped symbols
15:26
kudo/require-arglist: fd04ae0 | moritz++ | docs/ChangeLog:
update ChangeLog
15:40 whiteknight joined
whiteknight good morning, #parrot 15:40
moritz \\o whiteknight
dalek kudo/nom: 715efa4 | moritz++ | src/Perl6/Actions.pm:
compile-time evaluate argument lists to "require"; check for redeclarations
15:44
kudo/nom: 2e974ac | moritz++ | src/Perl6/Actions.pm:
oops, $<EXPR> is an RPA
kudo/nom: 40e87e0 | moritz++ | src/Perl6/Actions.pm:
stub in symbols from the require arglist
kudo/nom: 3862754 | moritz++ | src/ (4 files):
try to import from required modules
kudo/nom: 05b24b5 | moritz++ | src/core/operators.pm:
fix setting compilation. jnthn++
kudo/nom: 1ebfd94 | moritz++ | src/core/operators.pm:
fix stupid thinkos in require import
15:45
kudo/nom: 3605d62 | moritz++ | src/core/Exception.pm:
X::Import::MissingSymbols needs to inherit from Exception
kudo/nom: 60a9808 | moritz++ | src/Perl6/Actions.pm:
fix codegen for call to &REQUIRE_IMPORT
kudo/nom: 200af35 | moritz++ | src/core/operators.pm:
fix up REQUIRE_IMPORT

now it works, except that it currently imports our-symbols and not exported symbols
kudo/nom: d96f5ee | moritz++ | src/core/operators.pm:
require now searches for exported symbols instead of our-scoped symbols
kudo/nom: fd04ae0 | moritz++ | docs/ChangeLog:
update ChangeLog
kudo/nom: 1b827c2 | moritz++ | / (5 files):
Merge remote branch 'origin/require-arglist' into nom
15:46 brambles joined
dalek nxed: f700547 | NotFound++ | Makefile:
improve testdebug target
15:49
nxed: 2352984 | NotFound++ | winxedst (2 files):
ensure createvar always gets a TokenIdentifier as name
nxed: 671280d | NotFound++ | Makefile:
fix cleandebug target: clean debug driver
nxed: abfe0cc | NotFound++ | winxedst (2 files):
use a TokenIdentifier for the name in Builtin class
15:59 kid51 joined
kid51 memo to $self: Must fix t/steps/auto/icu_01.t, which is failing in wake of revision of auto::icu earlier today. 16:00
moritz oh sorry
I can try to fix it too
kid51 If you can great. I have to go out soon. 16:01
dalek rrot: ed8da4e | moritz++ | t/steps/auto/icu-01.t:
fix t/steps/auto/icu_01.t
16:03
moritz I must say that I don't like this form of testing
it just tests that some other program launches another program in a specific way
which is already specified in the code in the first place 16:05
so it is just a redundancy that has to be updated 16:06
kid51 I will take that into consideration when I next review the file.
moritz a useful test would be to see if the result of the config step can be used for an actual compilation step
(compilation, linking and executing, that is) 16:07
dalek rrot/pmc_emitter_document: f2c651f | jkeenan++ | lib/Parrot/Pmc2c/PMC.pm:
For clarity, distinguish between the emitter for .c files and that for .h
rrot/pmc_emitter_document: 6aa8b68 | jkeenan++ | lib/Parrot/Pmc2c/Emitter.pm:
Correct spelling error.
rrot/pmc_emitter_document: 944e742 | jkeenan++ | / (2 files):
Merge branch 'master' of git@github.com:parrot/parrot
rrot/pmc_emitter_document: 8e59342 | jkeenan++ | lib/Parrot/Pmc2c/Emitter.pm:
Begin to write POD for Emitter.pm.
rrot/pmc_emitter_document: 85ea384 | jkeenan++ | lib/Parrot/Pmc2c/Emitter.pm:
Begin to document and refactor text(). FAILING TO BUILD.
16:11 brrt joined 16:24 travis-ci joined
travis-ci [travis-ci] parrot/parrot#416 (master - ed8da4e : Moritz Lenz): The build was fixed. 16:24
[travis-ci] Change view : github.com/parrot/parrot/compare/c......ed8da4e
[travis-ci] Build details : travis-ci.org/parrot/parrot/builds/1584343
16:24 travis-ci left
dalek nxed: 782000f | NotFound++ | winxedst (2 files):
always pass a string to createchild
16:40
nxed: 9e1bad2 | NotFound++ | winxedst (2 files):
improve parsing of for statement, with better syntax check
nxed: c0e4383 | NotFound++ | winxedst2.winxed:
fix a bitrotten assertion
rrot/whiteknight/io_cleanup1: 2c17e65 | Whiteknight++ | / (6 files):
Add a new IO_VTABLE flag to show when a type is always readable. StringHandles are always readable, even when closed or opened in 'w' mode. I suggest in the future it should not be, but these are the current expected semantics. Fix FileHandle.readall when trying to read from stdin when stdin is in pipe mode. Several more tests are reclaimed
16:50
rrot/whiteknight/io_cleanup1: a840cc5 | Whiteknight++ | config/gen/makefiles/root.in:
Add a line to the Makefile to make checkdepend.t happy
rrot/whiteknight/io_cleanup1: b3dfb62 | Whiteknight++ | src/pmc/stringhandle.pmc:
Make sure to set the record_separator of StringHandle. This fixes some tests
rrot/whiteknight/io_cleanup1: e57f51a | Whiteknight++ | src/ (2 files):
Fake the StringHandle.buffer_size method for now to get tests passing.
nxed: 483238e | NotFound++ | t/advanced/10inline.t:
some tests for inline
16:54
: 77b100b | kjs++ | / (7 files):
improvements to type checker. Add a test for type casting. Fix up typecasting code gen.
16:58
: 1401d02 | kjs++ | t/cast.m1:
fix t/cast.m1
17:19
nxed: 1d73cf4 | NotFound++ | winxedst (2 files):
improve parsing of const
17:26
: 8fa44b4 | kjs++ | / (4 files):
add a test for switch statement. Add a few comments. Fix checking and code generation of exprlists.
18:02
18:04 preflex joined 18:35 whiteknight joined 18:37 contingencyplan joined 19:12 lucian joined 19:23 PacoAir joined
dalek rrot/threads: 32fa989 | alvis++ | include/parrot/atomic/gcc_pcc.h:
Make header pass 't/codingstd/pod_description.t'.
19:51
kudo/nom: 3855ccb | moritz++ | src/core/ (2 files):
move Associative role from Pair to Enum

also add :D type qualifiers to the infix:<cmp>(Pair, Pair) multi
19:54
kudo/nom: fb7d00a | moritz++ | src/core/operators.pm:
[require] improve support for multi-joined namespaces
alvis msg whiteknight I'm +1 on the merge of threads now. 20:02
aloha OK. I'll deliver the message.
moritz woah, threads are ready? 20:04
alvis moritz: that was the consensus at #ps this week. (I just wanted to build and to test rakudo against the threads first.) 20:08
dalek kudo/nom: eef772d | moritz++ | src/core/traits.pm:
fix think in exporter

previously some exports would go into the wrong tag
20:12
20:49 japhb joined 20:59 kjs joined 21:01 kjs_ joined, kjs__ joined 21:08 kid51 joined 21:21 kurahaupo joined 21:23 kurahaupo joined
dalek rrot/pmc_emitter_document: 380d597 | jkeenan++ | lib/Parrot/Pmc2c/Emitter.pm:
Revert "Begin to document and refactor text(). FAILING TO BUILD."

This reverts commit 85ea38423a6c09772d35e372cef8b3c4ef8280cf.
21:25
rrot/pmc_emitter_document: 6bed7f1 | jkeenan++ | lib/Parrot/Pmc2c/Emitter.pm:
Start to add documentation to Parrot::Pmc2c::Emitter in POD format.
rrot/pmc_emitter_document: dc9baac | jkeenan++ | lib/Parrot/Pmc2c/Emitter.pm:
Simplify syntax of new().
rrot/pmc_emitter_document: a1965e0 | jkeenan++ | lib/Parrot/Pmc2c/Emitter.pm:
Simplify text() along same lines as new().
21:28 perlite_ joined 22:10 whiteknight joined
whiteknight !parrot! 22:14
msg nine: I think we have the go-ahead for a threads merge. you want to do the honors? Let me know and I'll stand by to clean up any problems 22:15
aloha OK. I'll deliver the message.
whiteknight That actually works out very well. If the threads stuff gets into master soon I can do more of the IO cleanup work with threads in mind 22:16
if we need to do all sorts of special stuff for AIO, that might happen in a separate branch 22:20
dalek rrot/pmc_emitter_document: e9b024c | jkeenan++ | lib/Parrot/Pmc2c/PMC.pm:
Correct spelling of method in its declaration and single instance.
22:25
rrot/pmc_emitter_document: 500836e | jkeenan++ | lib/Parrot/Pmc2c/P (2 files):
In Parrot::Pmc2c::PCCMETHOD, change $self to $method to make clear that these are subroutines (with other class's objects as arguments) rather than methods of this package.
kid51 takes a hint and starts testing the threads branch 22:29
whiteknight kid51++
kid51: you've been kicking butt today
kid51 Returning to the place where I started in Parrot, many centuries ago. 22:30
pmc2c.pl
whiteknight: What year were you first in GSOC (as student)? 22:31
whiteknight 2008?
kid51 okay, my refactoring of pmc2c.pl was late 2006-early 2007 22:32
kid51 has to do laundry to get ready for YAPC 22:33
afk 22:42
dalek rrot/threads: a97c56a | jkeenan++ | / (2 files):
[codingstd] No trailing whitespace. Remmove a TODO.
23:00
kid51 That will enable threads branch to pass 'make fulltest'
Passes my usual 4 ways on linux/i386 23:01
whiteknight nice
kid51 Will report on darwin/ppc later; we should try to get a report on darwin/i386
kid51 goes back to laundry
whiteknight yes, that would be good
benabik starts building on darwin/x64 23:02
dalek : aae230d | kjs++ | src/gencode. (2 files):
Correct code generation for binary expression, which was awfully wrong (but not incorrect ;-)). Also implement a register usage system that frees up regs as they are no longer needed. Greatly reduces number of regs.
23:11
whiteknight did that branch to remove the gdb pretty printers merge to master yet? 23:12
kid51 whiteknight: I don't think so. Suggest discussing it at parrotsketch. 23:17
whiteknight why, is it complicated? 23:18
kid51 No, it's just that you were, IIRC, the only person who had an opinion on the issue one way or the other.
I have no dog in the fight
kid51 goes back to laundry
whiteknight wait, is there a fight about it? 23:29
blah. segfault 23:33
somewhere I think my buffer reading logic is off by one 23:35