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 15 May 2012.
dalek kudo/qbootstrap: cc75bfd | jnthn++ | src/core/Temporal.pm:
Twiddle whitespace around stub syntax; there's actually a bug lingering that causes this to be needed. This does mean we fully parse CORE.setting, though, just blowing up at CHECK time because something causes generation of calls to infix:<> in a few places.
00:12
kudo/qbootstrap: dccd9cf | jnthn++ | src/Perl6/Actions.pm:
Avoid a double-make (but doesn't fix anything).
kudo/qbootstrap: d7e3797 | jnthn++ | src/Perl6/Actions.pm:
Apply a tweak also made in HLL::Actions last night; this clears up a vast number of the spectest failures as a result of switching to QRegex for parsing Perl 6 source. O(30) test files have failures that need investigating.
cotto dukeleto++ 00:28
that was less work than I expected 00:34
01:37 whiteknight joined, japhb joined 01:41 JimmyZ joined
whiteknight good evening, #parrot 01:49
cotto 'evening, whiteknight 01:56
whiteknight hello cotto, how are things going with you? 02:13
02:15 JimmyZ joined
whiteknight Two things are really bugging me about this IO code 02:16
First is how inconsistent things are. Some APIs don't test that the filehandle is flagged to perform the correct operation, so in some cases you can write to a read-only handle or vice-versa
Second, all the buffering code assumes that a single buffer can be read and/or write, and every single operation has to test what mode the buffer is in 02:17
what does it even mean to flush a read buffer, or to fill a write buffer? It's nonsensical, but these are both supported operations
and what happens when we write data to a buffer flagged for reading? I don't know, but it is supported 02:19
and it also bugs me that the functions in src/platform/*/io.c are all named Parrot_io_*, as if they're in that subsystem 02:29
I think I'm going to rename the functions in src/platform/*/io.c, to be more clear about the low-level nature and avoid collisions on the more common shorter names 02:32
for instance, I would expect Parrot_io_seek to be the API seek routine, but that's actually the private low-level routine
benabik +1 02:33
whiteknight Those low-level routines are going to be renamed Parrot_io_internal_* instead, to be more clear 02:37
luckily, it doesn't look like we're exporting any of those, so it's a non-issue
dalek rrot/ayardley/pod_DESCRIPTIONS: 382d90b | alvis++ | docs/req/model_users.pod:
Added DESCRIPTION
03:00
rrot/ayardley/pod_DESCRIPTIONS: b20e867 | alvis++ | docs/running.pod:
Added DESCRIPTION and upcased '=head1' cps.
rrot/ayardley/pod_DESCRIPTIONS: d2701e5 | alvis++ | docs/submissions.pod:
Added DESCRIPTION and upcased '=head1' cps.
rrot/ayardley/pod_DESCRIPTIONS: 983fe83 | alvis++ | docs/tests.pod:
Added DESCRIPTION and upcased '=head1' cps.
rrot/ayardley/pod_DESCRIPTIONS: c9e12f8 | alvis++ | docs/user/pir/exceptions.pod:
Added DESCRIPTION
rrot/ayardley/pod_DESCRIPTIONS: e63513c | alvis++ | docs/user/pir/intro.pod:
Added DESCRIPTION and upcased '=head1' cps.
rrot/ayardley/pod_DESCRIPTIONS: 3607aaa | alvis++ | docs/user/pir/objects.pod:
Added DESCRIPTION and upcased a '=head1' cps.
rrot/ayardley/pod_DESCRIPTIONS: bac982b | alvis++ | docs/user/pir/pmcs.pod:
Added DESCRIPTION
rrot/ayardley/pod_DESCRIPTIONS: 00e764a | alvis++ | docs/vtables.pod:
Added DESCRIPTION
rrot/ayardley/pod_DESCRIPTIONS: 3178c17 | alvis++ | editor/README.pod:
Added DESCRIPTION
rrot/ayardley/pod_DESCRIPTIONS: 53ff7ad | alvis++ | t/codingstd/240_files_without_DESCRIPTION.log:
Updated with corrected files.
rrot/whiteknight/io_cleanup1: 5895ab7 | Whiteknight++ | / (8 files):
Rename io-related routines in src/platform/X/io.c to Parrot_io_internal_. Implement most of the FileHandle vtable. Severa other fixes, cleanups, additions and removals. Flitting around like a mosquito.
03:20
whiteknight This IO cleanup is coming along in large, disjoint chunks
The casual observer will be learning an uncomfortable amount about the limits of my attention span 03:21
anyway, it's way past my bedtime. Goodnight 03:22
05:47 JimmyZ joined 07:12 lucian joined 07:18 fperrad joined 07:22 fperrad_ joined 07:28 kurahaupo joined 07:49 kjs joined 08:01 crab2313 joined
dalek : 6656922 | (kj, kjs)++ | m1.y:
move around m0 block
09:07
: 957a59e | (kj, kjs)++ | m1_gencode.c:
fix up while loops.
: 55ef7c7 | (kj, kjs)++ | m1_symtab.h:
various
: bffd522 | (kj, kjs)++ | while.m1:
add test file while.m1
: c23de20 | (kj, kjs)++ | / (3 files):
Merge branch 'master' of github.com:parrot/m1
09:08
: 91fbdf7 | (kj, kjs)++ | dowhile.m1:
add test for dowhile
09:14
: 4450703 | (kj, kjs)++ | m1_gencode.c:
fix up dowhile statement
: 753b88c | (kj, kjs)++ | m1.y:
temp. fix boolexpr->expression; needs fixing later - need cmp op
: ea81063 | (kj, kjs)++ | m1 (5 files):
refactoring: constatns are per chunk, not global
09:34
: 83b1628 | (kj, kjs)++ | m1_ast.h:
forgot to commit ast.h last time
09:41
: 5c2b4ac | (kj, kjs)++ | m1.l:
report error on unexpected character
: c0a9f1b | (kj, kjs)++ | m1.l:
support /* */ multi-line comments.
09:47
: 06647dc | (kj, kjs)++ | m1.l:
support *nested* C-style multi-line comments.
09:53
: 9d524a4 | (kj, kjs)++ | m1.l:
minor tweak: don't allow writing multi-digit ints starting with a 0
09:58
p/qbootstrap: 2cd24d0 | moritz++ | src/HLL/Compiler.pm:
another attempt to get HLL::Compiler to the latest state
10:16
kudo/qbootstrap: a0ed8c0 | jnthn++ | src/Perl6/Grammar.pm:
First crack at updating the code that adds new operators. This alone seems to fix O(15) of the failing test files.
11:22
11:54 whiteknight joined
whiteknight good morning, #parrot 11:55
tadzik hello whiteknight
whiteknight hello tadzik, how are you doing?
tadzik so-so. I'm quite ill, and now lying down at home writing my C++ assignment
for which I'm practically doing a job of 5 people, in the name of "want something done right, do it yourself" 11:56
also "want something done in time"
12:06 particle1 joined
whiteknight tadzik: that's no good. 12:10
dalek kudo/nom: e756635 | moritz++ | src/core/control.pm:
make &eval a multi

that way it is easier for fglock++ to experiment with p5 eval
12:16 brrt joined
tadzik yeah, that's LTA 12:21
12:24 PacoAir joined
dalek kudo/qbootstrap: 053013e | jnthn++ | src/Perl6/Metamodel/MROBasedMethodDispatch.pm:
find_method should cope with unknown adverbs (in this case, :no_trace). Fixes the two broken protoregex test files.
12:32
p/qbootstrap: 813a2d5 | jnthn++ | src/HLL/Grammar.pm:
Bring preclim handling fix in to EXPR; diakopter++.
12:45
: e7fc58d | (kj, kjs)++ | m1 (9 files):
clean up code and remove bugs. also use asserts
12:51
kudo/qbootstrap: 75c0e9c | moritz++ | Configure.pl:
[Configure] do not gen-nqp when --with-nqp is provided

Fix by diakopter++
12:57
p/qbootstrap: 7c5d69d | jnthn++ | src/QRegex/Cursor.nqp:
ident could accidentally ord past end of string; check for this. Fixes at least one of the Rakudo regressions.
13:04
moritz jnthn++ is too fast. He pushes fixes before I even get to build the status quo :-) 13:06
13:07 Psyche^ joined
dalek : 8326078 | (kj, kjs)++ | m1 (6 files):
bug fixing.
13:19
13:26 fahg joined
dalek rrot/whiteknight/io_cleanup1: dde2f96 | Whiteknight++ | / (8 files):
Change the buffering logic to use a more linear approach instead of a circular buffer. The added code complexity wasn't worth it. Several cleanups to the buffering code and elsewhere.
13:30
13:40 pjcj joined
dalek nxed: 670a568 | NotFound++ | winxedst (2 files):
Fix options in stages 0 and 1:

Enable -e in stage 1
13:43
13:45 schmooster joined 14:00 JimmyZ joined
dalek p/qbootstrap: 382602b | jnthn++ | src/QRegex/P6Regex/Actions.nqp:
Change the way <?> is handled so that it does not terminate LTM. Fixes parsing of C<...>.
14:01
d_parrot: 77def9b | (Bart Wiegmans)++ | / (10 files):
mod_parrot responds from a winxed script.
14:07
d_parrot: 598bdb6 | (Bart Wiegmans)++ | README.md:
Updated README
14:08
brrt so, mod_parrot can now run a bytecode-compiled winxed script
my work is done
i'm going to take a holiday now :-p
NotFound brrt++ 14:09
dalek rrot/whiteknight/io_cleanup1: 09cefd4 | Whiteknight++ | / (4 files):
Sketch out how we're going to initialize the IO vtables, and how we are going to store them in the interp.
14:10
brrt in seriousness, i initially thought that this was going to be the bulk of the work 14:13
i only now realize the work that lies ahead
14:15 crab2313 joined
NotFound brrt: Do you have a blog post or something explaining how to build and test it? 14:16
14:17 kid51 joined
dalek nxed: 50ce14f | NotFound++ | winxedst2.winxed:
move type conversion of literals to methods in Literal subclasses
14:34
nxed: 717e267 | NotFound++ | winxedst2.winxed:
move StringLiteral class to match the usual INS order
nxed: 5bb340a | NotFound++ | winxedst2.winxed:
rename get_value method to getStringValue
nxed: d31912a | NotFound++ | winxedst1.winxed:
backport some cage cleaning to stage 1
14:39
14:42 brrt joined 14:45 isBEKaml joined
brrt ping whiteknight 14:52
Patterner After installation "parrot/lib/4.4.0-devel/parrot_config.o" has a 600 mask. is that on purpose? 15:08
15:10 brrt joined
dalek nxed: 807030a | NotFound++ | winxedst2.winxed:
move type conversion of values in literals to Literal subclasses
15:15
p/qbootstrap: 0197389 | jnthn++ | src/QRegex/ (2 files):
Build and use the protoregex table in a much smarter way. Immediately shaves 25% off NQP test suite run time.
15:17
nxed: d0ed751 | NotFound++ | winxedst2.winxed:
fix switch inside inline
15:26
15:44 preflex_ joined
dalek p/qbootstrap: 25680d9 | jnthn++ | src/ (3 files):
Clean up the fate sorting silliness (temporary extra op due to needing a trip around the bootstrap to eliminate it; will keep the old one for another day or so in case the new way introduces issues). This shaves 10% off parse/actions time for CORE.setting.
15:45
kudo/qbootstrap: 51f1b93 | moritz++ | src/core/IO/ArgFiles.pm:
fix IO::ArgFiles.ins
15:51
15:53 preflex joined
dalek nxed: df225d7 | NotFound++ | Makefile:
improve testdebug target and its description
15:53
15:57 preflex_ joined 16:00 preflex_ joined, kurahaupo joined
alvis /part 16:15
16:16 preflex_ joined
dalek kudo/qbootstrap: e22f54f | jnthn++ | src/Perl6/Grammar.pm:
Remove a couple of unrequied lookaheads, saving almost 40,000 calls to before while parsing CORE.setting.
16:49
kudo/qbootstrap: 5bec1f1 | jnthn++ | src/Perl6/Grammar.pm:
Remove a now-unrequired <!before ...> in rad_number, meaning that it gets a declarative prefix (and thus trims sooner).
kudo/qbootstrap: 1b72f38 | jnthn++ | src/Perl6/Grammar.pm:
Micro-optimization to desigilname.
kudo/qbootstrap: 12b2cd7 | jnthn++ | / (2 files):
Merge branch 'qbootstrap' of github.com:rakudo/rakudo into qbootstrap
nxed: 4a17f0a | NotFound++ | winxedst1.winxed:
drop pop_* and shift_* builtins from stage 0
16:50
nxed: 823281c | NotFound++ | winxedst0.cpp:
drop operator '~' from stage 0
17:05
nxed: b9032ae | NotFound++ | winxedst1.winxed:
drop multi string concat optimization from stage 1
17:19
17:20 alvis joined
dalek nxed: c5f39da | NotFound++ | / (2 files):
drop 'string * int' operator from stage 0
17:33
nxed: 789867a | NotFound++ | winxedst1.winxed:
drop 'string * int' operator from stage 1
17:39
nxed: e7f79fa | NotFound++ | winxedst0.cpp:
rename 'predef' usages to 'builtin' in stage 0 for consistency with other stages
17:57
nxed: ad66a15 | NotFound++ | t/harness:
fix the plan checking in harness
18:28
p/qbootstrap: f8f164f | jnthn++ | src/ (2 files):
Optimize MATCH and CAPHASH to construct less objects.
18:41
nxed: 8c2ee33 | NotFound++ | winxedst0.cpp:
delete a no longer used ConstStatement constructor
18:48
18:49 whiteknight joined
whiteknight good afternoon, #parrot 18:50
19:04 PacoAir joined 19:20 benabik_ joined
whiteknight it looks to me like the PIO_BF_LINEBUF (line-buffering) mode in master only operates on write operations, and is hard-coded to break lines on "\\n" 19:47
it looks like it's only effect is to force a flush if the written string contains "\\n" 19:49
compared to that small "benefit", the logic to set it up and manipulate and check for that flag in several places hardly seems worth the effort
moritz so, what happens when you remove it? you get block buffer when writing to a pipe? 19:54
19:55 lucian joined
whiteknight The only difference I see in the current system is that writes flush a little bit more often when line buffering is turned on 20:01
maybe there's more that I can't see, but that's the only difference I've found so far
sorear I think the idea is to make say "Hello, world"; sleep 20 DWIM
line-mode buffering on stdout by default is part of the common behavior expected of all unix languages 20:02
C has done this for decades
is it necessary? no comment 20:03
whiteknight I'm not against having a line-buffering mode, if it does something real and worth-while
but we have a significant number of lines of code dealing with setting, clearing and checking that flag, and not a lot of benefit from it 20:04
If all it needs is a way to tell certain handles to fsync all the time, that's something
but it doesn't even do that. It's only fsync'ing when we have a "\\n" character to be written, which seems awfully narrow 20:05
dalek nxed: 315204d | NotFound++ | winxedst (2 files):
rename subexp to subexpr in a bunch of places for consistency
20:06
sorear my favorite copy of C89 says "standard output ... is fully buffered if and only if it can be determined to not refer to an interactive device" 20:08
but is silent on the question of whether stdout-to-a-tty should be unbuffered or line buffered by default 20:09
C99 says no more 20:12
POSIX.1-2004 also does not mandate line buffering support(!) 20:16
NotFound whiteknight: if the buffering gets separated from the handle, the buffer itself will take care without checking elsewhere, isn't it?
dalek p/qbootstrap: 8982bd8 | moritz++ | src/QRegex/P6Regex/Grammar.nqp:
use PASTRegex; avoids death in the interpolation tests
21:01
p/qbootstrap: afa9f9c | jnthn++ | src/HLL/Grammar.pm:
Optimize MARKED and MARKER a little, and make it less PIR-y.
21:06
p/qbootstrap: 594b59d | jnthn++ | src/stage0/ (8 files):
Update bootstrap with lastest improvements.
p/qbootstrap: 0063bcd | jnthn++ | src/NQP/Grammar.pm:
Fix the prefix for nqpvar, so we parse /a$s/ correctly (tadzik++ for discovering the issue).
nxed: 3887ec7 | NotFound++ | winxedst (2 files):
fix parameter type in Expr.tempreg
21:15
p/qbootstrap: 26382e7 | moritz++ | t (13 files):
remove p6regex tests (use qregex-test instead)

also remove bogus dependency on qregex for qregex-test
21:17
21:28 lucian joined
dalek nxed: 25a1a3b | NotFound++ | winxedst (2 files):
fix type of reg parameter in iflexical and emit_store methods
21:31
p/qbootstrap: 5e21bba | jnthn++ | src/ops/nqp.ops:
A little speedup to NFA evaluation.
21:41
21:48 donaldh joined
dalek p/toqast: 40e7584 | masak++ | / (2 files):
[QAST::Operations] implemented named arguments

Named parameters were already implemented, so making a call with named args works now.
21:58
p/toqast: d124e96 | masak++ | / (3 files):
implemented named arguments for 'callmethod'

Same code as for 'call'. Will refactor in the next commit.
p/toqast: cd60db0 | masak++ | src/QAST/Operations.nqp:
[QAST::Operations] factored out common loop body

Simple "extract subroutine" for ya. But it's only gonna get worse, once we do slurpies, too.
p/toqast: 2b55922 | masak++ | / (2 files):
added test for call to block with slurpy

The functionality was already there.
p/toqast: b66b2e1 | masak++ | / (2 files):
[QAST::Operations] implement flattened arguments
p/qbootstrap: 9befba5 | diakopter++ | src/ (2 files):
propagate --rxtrace (and its trace depth for indents) to inner languages
22:18
nxed: 2e398cf | NotFound++ | winxed (3 files):
use explicit parameter type in all functions
22:44
p/toqast: 39a8dad | masak++ | / (2 files):
[QAST::Operations] implement :flat :named

Parrot makes this work even without the :named, but it's nice to have it there, I guess.
22:48
nxed: 43104b4 | NotFound++ | winxedst0.cpp:
require explicit parameter type in stage 0
22:50
nxed: 326a438 | NotFound++ | winxedst1.winxed:
require explicit parameter type in stage 1
22:55
23:07 particle joined
dalek rrot/ayardley/pod_DESCRIPTIONS: a9d1eac | alvis++ | examples/languages/abc/abc.pir:
Upcased '=head2 Description' to '=head1 DESCRIPTION'.
23:24
rrot/ayardley/pod_DESCRIPTIONS: 23a4483 | alvis++ | examples/languages/abc/src/builtins/all.pir:
Added DESCRIPTION to '=head1' cp.
rrot/ayardley/pod_DESCRIPTIONS: 3d54d26 | alvis++ | examples/languages/squaak/src/squaak.pir:
Upcased 'Description' to 'DESCRIPTION'.
23:25
rrot/ayardley/pod_DESCRIPTIONS: e892ea9 | alvis++ | examples/languages/squaak/squaak.pir:
Upcased 'Description' to 'DESCRIPTION'
rrot/ayardley/pod_DESCRIPTIONS: 1af2cef | alvis++ | examples/languages/squaak/doc/tutorial_episode_ (9 files):
Added DESCRIPTION
rrot/ayardley/pod_DESCRIPTIONS: 9681c7d | alvis++ | examples/mops/mops.p6:
Changed '=begin pod' and '=end pod' to '=pod' and '=cut' cps. This should fix the problem.
rrot/ayardley/pod_DESCRIPTIONS: 3a3cca0 | alvis++ | examples/mops/mops.rb:
Removed '=begin RUBY_COMMENT' and '=end RUBY_COMMENT' cps and substituted with '=pod' and '=cut' cps.
rrot/ayardley/pod_DESCRIPTIONS: e0a0a1e | alvis++ | examples/nci/ (5 files):
Added DESCRIPTION, moved SYNOPSIS to proper place, and renamed 'TITLE' to 'NAME'.
rrot/ayardley/pod_DESCRIPTIONS: 70d617f | alvis++ | examples/past/ (2 files):
Added DESCRIPTION cps
rrot/ayardley/pod_DESCRIPTIONS: fe565c5 | alvis++ | examples/pir/coop_threads.pir:
Added DESCRIPTION
rrot/ayardley/pod_DESCRIPTIONS: a17fc71 | alvis++ | examples/sdl/anim_image (2 files):
Added DESCRIPTION
rrot/ayardley/pod_DESCRIPTIONS: 02d52f1 | alvis++ | examples/sdl/ (7 files):
Added DESCRIPTION
rrot/ayardley/pod_DESCRIPTIONS: 4762a12 | alvis++ | examples/sdl/minesweeper/ (2 files):
Added DESCRIPTION
rrot/ayardley/pod_DESCRIPTIONS: 36a3158 | alvis++ | t/codingstd/240_files_without_DESCRIPTION.log:
Update more files. Only 99 left, so I'm taking a'bit of a break for a coupl'a days.
cotto better go refill aloha's karma 23:27
23:43 kid51 joined