pugscode.org/ | nopaste: sial.org/pbot/perl6 | pugs: [~] <m oo se> (or rakudo:, kp6:, elf: etc.) (or perl6: for all) | irclog: irc.pugscode.org/ Set by Tene on 29 July 2008. |
|||
00:20
wayland_ left
00:22
elmex left
|
|||
meppuru | good night | 00:25 | |
00:32
meppuru left
00:43
wknight8111 joined
01:02
nacho_ left
01:03
nacho__ left
01:11
nacho_ joined,
nacho__ joined
02:03
alc joined
02:09
nacho_ left
02:12
adc_Penner left
02:39
FurnaceBoy left
02:56
rhesa left
02:57
rhesa joined
02:58
eternaleye left
02:59
eternaleye joined
03:00
yahooooo3 joined
03:01
jiing__ joined,
[particle]1 joined,
[particle] left,
yahooooo left,
jiing_ left,
tewk left,
tewk joined
03:03
Bzek left
03:16
aindilis left
03:17
aindilis joined
03:19
rintaro joined
03:24
lambdabot joined
03:36
alester joined
03:50
bacek__ joined
03:52
bacek_ left
03:55
Psyche^ joined
03:59
wknight8111 left
04:07
Patterner left,
Psyche^ is now known as Patterner
04:09
aindilis left
04:18
eternaleye_ joined
04:19
aindilis joined
04:28
alester left
04:41
nacho__ left
04:46
z80ASM joined
04:48
eternaleye left
05:13
z80ASM left
05:27
tewk_ joined
05:41
tewk left
05:49
Bzek joined
06:59
iktome_ joined
07:00
adc_Penner joined
07:22
iktome_ left
07:33
DarkAkorn joined
|
|||
DarkAkorn pokes moritz_ | 07:34 | ||
him, or anyone else framiliar with the irclogbot around? | |||
07:40
pbuetow joined
07:41
kanru left,
kanru joined
07:47
bacek_ joined
07:48
bacek__ left
07:50
DarkAkorn left
08:16
eternaleye_ left,
bacek_ left
08:27
schmalbe joined
08:28
eternaleye_ joined
08:47
smtms left,
smtms joined
08:48
pbuetow left
08:51
bacek joined
08:53
eternaleye_ left
09:06
tcliou is now known as tcliou|away
09:09
riffraff joined
09:17
masak joined
09:18
adc_Penner left
09:22
Alias__ left
|
|||
moritz_ | @tell DarkAkorn just ask your question, and stay around long enough to see the answer ;) | 09:25 | |
lambdabot | Consider it noted. | ||
masak | λ-bot! you're back! | 09:26 | |
09:28
tomyan joined
09:33
iblechbot joined
|
|||
riffraff | hi | 09:44 | |
masak | y0 | ||
09:44
ejs joined
09:49
smg left
09:51
zamolxes left,
zamolxes joined
10:03
zamolxes left
|
|||
masak | r32205 is responsible for the new, unfortunate junction behaviour. | 10:07 | |
it was created by bacek and committed by moritz_ | 10:08 | ||
moritz_ | masak: feel free to revert it (and add a test case) | ||
lambdabot | moritz_: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
masak | its description is "Refactored Junction.pir.", which sounds about right | 10:09 | |
bacek | masak: what the problem with junctions? | 10:11 | |
masak | rakudo: say ("A" eq "A"|"B").perl | 10:12 | |
p6eval | rakudo 32313: OUTPUT[any(Bool::True, Bool::False)] | ||
masak | that's the problem. | ||
bacek | masak: it's expected behaviour, AFAIU | ||
masak | bacek: then I'm not surprized that you broke rakudo :P | 10:13 | |
bacek: imagine that behaviour in an if statement | |||
(which is exactly what happened in November) | |||
bacek | pugs: say ("A" eq "A"|"B").perl | ||
p6eval | pugs: OUTPUT[(Bool::False | Bool::True)] | ||
moritz_ | masak: that's fine, but it should correctly collaps in boolean context | ||
masak | ok, maybe | ||
bacek | we just need additional development for junctions ;) | 10:14 | |
masak | is there a reason for it not to collapse earlier? | ||
moritz_ | perl6: say (? ("A" eq "A"|"B")).perl | ||
p6eval | rakudo 32313: OUTPUT[any(Bool::True, Bool::False)] | ||
..pugs: OUTPUT[(Bool::False | Bool::True)] | |||
..elf 22847: OUTPUT[0] | |||
moritz_ | masak: is there a reason to special-case some operators? | ||
bacek | afk # will backlog | ||
masak | moritz_: hm, maybe not. | 10:15 | |
people can collapse explicitly if they want to. | 10:17 | ||
moritz_ | that's the general idea of junctions, yes. | 10:18 | |
masak | it's probable bacek's patch had other benefits that I'm not aware of | 10:20 | |
but the fact that it broke this spectest which I haven't written should be considered serious enough to revert it. | 10:21 | ||
s/written/written yet/ | |||
masak writes the spectest | |||
10:23
alc left
10:32
rindolf joined
10:33
elmex joined
10:41
rindolf left
|
|||
masak | rakudo: say (?any(Bool::True, Bool::False)).perl | 10:43 | |
p6eval | rakudo 32314: OUTPUT[any("1", "0")] | ||
masak | hm. something's still wrong. :/ | 10:45 | |
moritz_ | masak: did you re-open the ticket in which bacek's patch was? | 10:48 | |
masak | no, I didn't see any ticket number. | 10:49 | |
still writing that test. | |||
moritz_ | my bad, I forgot to mention it in the commit message ;/ | ||
masak | happens to the best :) | 10:50 | |
masak looks forward to the near future when VCSes and RT systems will grow closer to each other and even more automatic | |||
moritz_ | a simple svn post-commit hook that scans for "closes RT #\d+" or "closes [perl #\d+]" and actually closes the ticket would b a start. | 10:53 | |
pugs_svn | r22856 | masak++ | [S03-junctions/boolean-context.t] added test for collapsing of junctions in boolean context | ||
masak | moritz_: aye. | ||
& lunch | 10:54 | ||
10:54
masak left
|
|||
moritz_ | masak: it's rt.perl.org/rt3/Ticket/Display.html?id=60168 | 10:58 | |
lambdabot | Title: #60168: [TODO] handle Junction threading in dispatch code | 10:59 | |
11:03
penk joined
11:07
KidShenck joined,
orafu left
|
|||
bacek | perl6: say ("A" eq "A"|"B").perl | 11:12 | |
p6eval | elf 22847: OUTPUT[] | ||
..rakudo 32314: OUTPUT[Bool::True] | |||
..pugs: OUTPUT[(Bool::False | Bool::True)] | |||
bacek | masak: it's bad idea to commit test that wrong and uncommit patch that's right :-/ | 11:13 | |
11:19
smg joined
|
|||
bacek | perl6: say ?(Bool::True|Bool::False) | 11:21 | |
p6eval | pugs: OUTPUT[any(VBool False,VBool True)] | ||
..rakudo 32314: OUTPUT[get_string() not implemented in class 'Junction'current instr.: 'print' pc 14833 (src/gen_builtins.pir:9120)] | |||
..elf 22847: OUTPUT[1] | |||
bacek | perl6: if(Bool::True|Bool::False) { say "foo" } else { say "bar" } | 11:22 | |
p6eval | elf 22847: OUTPUT[Parse error in: /tmp/0gn7I1EcOIpanic at line 1 column 0 (pos 0): Can't understand next input--giving upWHERE: if(Bool::True|Bool::False) { sWHERE:/\<-- HERE STD_red/prelude.rb:99:in `panic' STD_red/std.rb:76:in `scan_unitstopper' STD_red/std.rb:224:in `comp_unit' | ||
..STD_r... | |||
..pugs, rakudo 32314: OUTPUT[foo] | |||
11:24
zamolxes joined
|
|||
bacek | perl6: say (Bool::True|Bool::False) eq 'Bool::False' | 11:31 | |
p6eval | elf 22847: OUTPUT[] | ||
..pugs: OUTPUT[any(VBool False)] | 11:32 | ||
..rakudo 32314: OUTPUT[0] | |||
bacek | perl6: say (Bool::True|Bool::False) eq 'Bool::True' | ||
p6eval | elf 22847: OUTPUT[] | ||
..pugs: OUTPUT[any(VBool False)] | |||
..rakudo 32314: OUTPUT[0] | |||
pugs_svn | r22857 | bacek++ | Removing wrong test | 11:40 | |
bacek | perl6: say ~(Bool::True|Bool::False) | ||
p6eval | pugs: OUTPUT[any(VStr "",VStr "1")] | 11:41 | |
..rakudo 32314: OUTPUT[get_string() not implemented in class 'Junction'current instr.: 'print' pc 14833 (src/gen_builtins.pir:9120)] | |||
..elf 22847: OUTPUT[Bool::Vs}we] | |||
bacek | perl6: say ~((Bool::True|Bool::False) eq 'Bool::True') | 11:44 | |
p6eval | elf 22847: OUTPUT[] | ||
..pugs: OUTPUT[any(VStr "")] | |||
..rakudo 32314: OUTPUT[0] | |||
12:01
zamolxes_ joined,
zamolxes left
12:07
zamolxes_ is now known as zamolxes,
zamolxes left
12:14
zamolxes joined
12:20
sri_kraih_ joined,
araujo left
12:22
Lorn joined
12:36
sri_kraih left
12:42
z80ASM joined
12:52
bsb left
12:59
araujo joined
13:07
cognominal left
14:04
penk left
14:08
orafu joined,
orafu left
14:12
cognominal joined
14:19
orafu joined
14:27
z80ASM left
14:36
tcliou|away is now known as tcliou
14:45
pedrob joined
14:50
ejs left,
ejs joined
15:01
alester joined
15:05
Gothmog_ left
15:09
Gothmog_ joined,
jsut|work left
15:10
ejs left,
sri_kraih_ left,
bacek left,
schmalbe left,
aindilis left,
lambdabot left,
yahooooo3 left,
szbalint left,
alech left,
Maddingue left,
audreyt left,
pedrob left
15:11
ejs joined,
sri_kraih_ joined,
bacek joined,
schmalbe joined,
aindilis joined,
lambdabot joined,
yahooooo3 joined,
szbalint joined,
audreyt joined,
alech joined,
Maddingue joined,
aindilis left,
aindilis` joined
15:18
rintaro left
15:27
cognominal_ joined
15:34
aindilis` left,
szbalint left,
bacek left,
ejs left,
yahooooo3 left,
schmalbe left,
alech left,
Maddingue left,
audreyt left,
sri_kraih_ left,
lambdabot left
15:35
aindilis` joined,
ejs joined,
sri_kraih_ joined,
bacek joined,
schmalbe joined,
lambdabot joined,
yahooooo3 joined,
szbalint joined,
audreyt joined,
alech joined,
Maddingue joined
15:42
zamolxes left
15:47
cognominal left
15:49
[particle] joined
16:04
jhorwitz joined
16:07
[particle]1 left
|
|||
TimToady | Cute Trick of the Day: alias A and U to tryfile, and then just paste "svn up" output of t/ into the shell to syntax check all recent checkins :) | 16:11 | |
moritz_ | nice, but also needs an alias for UU (at least in general) ;) | 16:13 | |
TimToady | could just teach tryfile to read stdin and throw away leading svn info, since tryfile can now handle multiple parses | 16:14 | |
moritz_ | is that more efficient than starting multiple times? | 16:16 | |
and if yes, is Moose to blame? ;) | |||
pugs_svn | r22858 | lwall++ | [tryfile] allow files specified by stdin, with knowledge of svn output | 16:18 | |
r22858 | lwall++ | [STD] don't need inaccurate $COMPILING::LINE anymore | |||
TimToady | Moose might be to blame for why it's leaking memory, which is the main problem with doing multiple parses in one process | 16:19 | |
but it saves recompiling 1.8mb of Perl 5 code each time (well, each time except the first...) | 16:20 | ||
moritz_ | decommute & | 16:21 | |
TimToady | well, more like 2MB after you add in all the other modules | 16:22 | |
1.8 millibits isn't very big on its own :) | |||
16:23
masak joined
|
|||
[particle] | i wonder what the physical size of a bit is nowadays compared to 20 years ago | 16:24 | |
16:25
z80ASM joined
|
|||
[particle] | on magnetic storage, of course | 16:25 | |
16:31
hercynium joined
16:35
rindolf joined
16:38
meteorjay joined
16:42
ejs left
16:51
Exodist joined
16:53
lizsac left
16:57
justatheory joined
17:04
justatheory left,
justatheory joined
17:16
ruoso joined
17:33
zamolxes joined
|
|||
ruoso | Hello! | 17:34 | |
masak | y0 | ||
17:35
masak left
|
|||
ruoso goes out for two days and have 600 emails to read... *sigh* | 17:36 | ||
17:38
zamolxes left
17:41
rindolf left
17:42
iktome joined
17:43
schmalbe left
17:47
pedrob joined,
iktome left
17:56
jauaor joined
|
|||
jauaor | Hello | 17:56 | |
moritz_ | hi | ||
jauaor just notices a new perl6 is coming to life for next year | 17:58 | ||
book* | |||
moritz_ | which one? | ||
moritz_ didn't hear of anything | |||
jauaor | Beginning Perl 6 | 17:59 | |
moritz_ | by whom? | 18:00 | |
jauaor | www.amazon.com/Beginning-Perl-Novic...amp;sr=1-1 | ||
lambdabot | tinyurl.com/6xfvkr | ||
18:00
z80ASM left,
adc_Penner joined
|
|||
moritz_ wonders if James Lee hangs out here occasionally, and if yes, under which nick | 18:02 | ||
ruoso admires brave people that publish a book hoping that we have a production-ready implementation in 3 months. | 18:03 | ||
[particle] expects that date will be revised | 18:04 | ||
jauaor just wonders if it is worthy buying considered the current state of the language | 18:06 | ||
ruoso | jauaor, the spec is fairly stable... | ||
so it's probably a good buy | |||
jauaor | I see | ||
ruoso | it might be a little frustrating that not all features will be available yet | 18:07 | |
18:07
tomyan left
|
|||
moritz_ | heck, they can't even test 50% of their code examples | 18:07 | |
jauaor | :-P | 18:09 | |
jauaor will probably oder this one | |||
pugs_svn | r22859 | ruoso++ | [mildew] it seems viv is keeping ws in the ast now... so lets just ignore it.. | 18:12 | |
ruoso | is 'if' a topicalizer? | 18:16 | |
moritz_ | ruoso: not unless you use 'if $expr -> $_ { .... }' | 18:17 | |
ruoso | hmm... why would someone use '-> $_ ' if that is the default signature? | ||
moritz_ | it's not, I think | 18:18 | |
ruoso | hmm... ok... it's actually '$_ is rw = $OUTER::_' | ||
moritz_ | otherwise {1;} would have arity 1 | ||
ruoso | if it doesn't, it's wrong... | ||
perl6: { $_.say }.("Hello World"); | 18:19 | ||
p6eval | pugs, rakudo 32317: OUTPUT[Hello World] | ||
..elf 22847: OUTPUT[Parse error in: /tmp/Qmfo4ccnL4panic at line 1 column 10 (pos 10): Statement not terminated properlyWHERE: { $_.say }.("Hello World");WHERE: /\<-- HERE STD_red/prelude.rb:99:in `panic' STD_red/std.rb:355:in `eat_terminator' STD_red/std.rb:269:in `block in | |||
..statem... | |||
ruoso | pugs: { $_.say }.signature.arity; | ||
p6eval | pugs: OUTPUT[*** No such subroutine: "&arity" at /tmp/qpTnDZBUAj line 1, column 1-27] | ||
ruoso | pugs: { $_.say }.signature.perl; | ||
p6eval | pugs: RESULT[":(\$_ is rw is ref)"] | ||
18:19
scrottie joined
|
|||
moritz_ | afk | 18:20 | |
ruoso | so, unless if EXPR POINTYBLOCK is a different statement_control | ||
it should be consistent | 18:21 | ||
either it is or it isn't a topicalizer | |||
pugs: if "Hello World" { .say } | |||
p6eval | pugs: OUTPUT[] | ||
ruoso | rakudo: if "Hello World" { .say } | ||
p6eval | rakudo 32317: OUTPUT[] | ||
ruoso | ohkay... | ||
it doesn't seem to be a topicalizer... | |||
and it's probably better that way... otherwise for @foo { if .something { $_ is something different } } | 18:23 | ||
18:23
pedrob left
|
|||
ruoso | @tell pmurias how do you keep track of which mold frame registers you use? should it just generate a random name for them and expect a later optimization that would consolidate the usage? | 18:26 | |
er... lambdabot? | |||
lambdabot | Consider it noted. | 18:28 | |
ruoso | wow... 2 minutes delay | ||
18:30
AzureStone left
|
|||
ruoso having a hard time understanding how viv returns "if" | 18:36 | ||
18:37
meppl joined
|
|||
ruoso wonders what is viv's xblock and pblock | 18:39 | ||
[particle] | pblock as in pointy block? | 18:41 | |
no idea, just guessing | |||
18:44
azawawi joined
|
|||
azawawi | hi | 18:44 | |
ruoso | [particle], the most interesting part is that a xblock contains both the if expr and the block to execute if the condition is met | 18:46 | |
the last being the so-called pblock | |||
maybe it's something generic for statement_controls | 18:47 | ||
I wonder if TimToady can shed some light... | |||
18:50
cognominal_ left
18:51
rindolf joined
18:57
jferrero joined
19:03
PZt joined
|
|||
ruoso | hmmm... viv seems 'if True {...}' as 'if &True() {...}' | 19:09 | |
is that expected? | |||
TimToady | generically, Type() and Type arg are considered type coercions | 19:10 | |
possibly we should restrict it to () forms so that enum values don't look for a following arg | 19:11 | ||
(but I thought I'd done that already...) | |||
azawawi | hi TimToady | 19:12 | |
ruoso | hmm.. does that mean we need to have &True in the scope? | ||
or is there some other magic here... | |||
like trying to see if its a known type before trying to see if its a routine | |||
s/its/it's/g | |||
or maybe looking for a type after the lookup for the routine fails | 19:13 | ||
TimToady | but anyway, it's parsing them all as functions currently, whether or not there are arguments expected | 19:14 | |
ruoso | you mean it depends on the runtime state... | 19:15 | |
TimToady | a constant is just a non-stateful 0-ary function anyway | ||
ruoso | I might agree to that, but there's a difference in how things are handled in the lexical scope | ||
does that mean that the types are also registered as a routine of the same name? | 19:16 | ||
TimToady | essentially, yes | ||
Int() is a function call that converts to type Int | |||
19:17
pbuetow joined
|
|||
TimToady | but Int $x is a two-terms-in-a-row error | 19:17 | |
because Int is a type | |||
ruoso | hmm... I suppose we're going to catch that error by the fact that Int() signature is empty | 19:18 | |
TimToady | it's not empty | 19:19 | |
ruoso | it's not? | ||
what is it then? | |||
TimToady | Int($x) has to bind to something... | ||
it won't bind to a 0-ary sig | |||
ruoso | hmm... Int($x) and Int $x are not going to be parsed the same way? | ||
TimToady | no, see token args | ||
ruoso | ok... compilation depending on the runtime state ... | 19:20 | |
TimToady | the parsing of types has always depending on predeclaratoin | 19:21 | |
s/oi/io | |||
ruoso | isn't that going to make it really hard to split compilation from runtime? | ||
TimToady | declarations are not "run-time" in that sense | 19:22 | |
only in the sense that all declarations run stuff in the compiler | 19:23 | ||
ruoso | but potentially stuff in BEGIN will cause the same types of dependencies it does in p5 | ||
TimToady | in theory, but not in practice | 19:24 | |
pugs_svn | r22860 | ruoso++ | [mildew] starting the implementation of "if" | ||
ruoso | TimToady, Is that just because you said so? meaning that we assume doing that kind of thing in BEGIN is subject to breakage... | 19:26 | |
that actually makes sense... | 19:29 | ||
that probably means that all values used in BEGIN should be serializable... | |||
TimToady | BEGIN is like eval, its use is indication that there is some more specific mechanism missing; p6 attempts to supply those missing mechanisms | 19:30 | |
ruoso | ok... so that also probably means we're going to have a "shared library compilation" mechanism... | 19:31 | |
that includes dynamic linking of the dependencies... | 19:32 | ||
TimToady | importation is now defined in terms of aliasing from subpackages representing export tags, for instance | 19:33 | |
ruoso | my question is really on how the compiler creates the "bytecode" (or whatever) that represents that comp_unit... | 19:34 | |
19:34
cognominal joined
|
|||
ruoso | does it assume you're going to discard any side-effects and just serialize the package ? | 19:34 | |
TimToady | side-effects are not allowed in that sense | 19:35 | |
ruoso | but can't really be prevented... | ||
which mean that we can only ignore them | |||
TimToady | there's this wonderful word used by the Ada spec: "erroneous" | ||
that which is erroneous is wrong, but the compiler is not required to check for it | 19:36 | ||
just "don't do that" | |||
ruoso | ok... that brings us back to the "monkey patch" discussion | 19:37 | |
TimToady | use one of the official polymorphism mechanisms instead | ||
ruoso | what happens if a module modifies a global package in BEGIN? | ||
19:37
TJCRI joined
|
|||
ruoso | do we just ignore it and serialize only its own package? | 19:37 | |
TimToady | then the global package is modified, oh well | ||
ruoso | right... in compile-time | ||
but if that comp_unit is now compiled, | 19:38 | ||
TimToady | then the changes are likely lost | ||
ruoso | right... | ||
so basically it serializes the package of that comp_unit | |||
TimToady | we don't rely on globals nearly as much as some people seem to think | ||
globals are really only for the run-time | 19:39 | ||
ruoso | I know... I know... | ||
TimToady | nearly everything else is either defined lexically or polymorphically | ||
ruoso | my question is about what to do with the bad code | ||
not how to write good code | |||
TimToady | the compiler is allowed to warn if it notices things that it knows are wrong | 19:40 | |
ruoso | it also seems to me that this requires that all aliasing should not be definitive in compile time | ||
it should be a symbolic link, not a hard link... | |||
TimToady | it's already that way for types within methods | 19:41 | |
they are treated virtually | |||
ruoso | right... but that applies for everything imported | ||
19:41
AzureStone joined
|
|||
ruoso | not only types | 19:41 | |
otherwise we have a "static link" | |||
TimToady | has to be resolved at some point | ||
ruoso | it just can't be at compile time... | 19:42 | |
so we can draw the boundary of what's defined here | |||
and what's defined outside | |||
TimToady | we typically import into lexical or package scope, not global | ||
ruoso | sure sure... | ||
but even then... | |||
if we're serializing the package... we have to serialize "a link to Foo", not recurse into serializing "Foo" itself | 19:43 | ||
TimToady | gotcha | ||
so either we hard link at INIT time or at START time (first use) | 19:45 | ||
19:45
Bzek left
|
|||
TimToady | or are you suggesting even later than that, as in OO? | 19:45 | |
ruoso | well... maybe that's something for optimizers | 19:47 | |
we just assume it can only be done at INIT time onward | |||
TimToady | we're kinda trying to nail down module APIs by version so that they're not too terribly mutable | ||
the decision of which version to compile against is likely made at compile time, so we know exactly what set of symbols are available | 19:48 | ||
ruoso | I wonder if we really want to make binary-depends like | ||
because maintaining that requires a lot of effort | 19:49 | ||
(as a sysadmin, I mean) | |||
TimToady | big shops already manage multiple versions, and want things to stay the same after they're nailed down | ||
ruoso | even if there isn't a versioned dependency in the source? | 19:50 | |
TimToady | I'm saying we probably install a versioned dependency at compile time | ||
ruoso | I know... I'm just wondering if that's really a good idea... | ||
TimToady | we must at least record which version we compiled against | 19:51 | |
ruoso | yes... recording is nice.. | ||
but enforcing might just require useless recompilations | |||
TimToady | the idea in p6 is that we never throw old versions away as long as anyone is using them | ||
ruoso | that's pretty much how Debian manages binary dependencies | 19:52 | |
TimToady | there could be a mechanism for tweaking the dependency and testing without recompilation, I suppose | ||
on the assumption the api/semantics didn't change drastically | |||
ruoso feels that we're going to end with a libtool-like versioning schema | 19:53 | ||
TimToady | or pragmatically make "use" compile to a range of allowed linkages | ||
19:54
jferrero left
|
|||
TimToady | I'd rather track too much information and then simplify than to make the p5 mistake of not tracking enough information and then not having it when you want it | 19:54 | |
ruoso | libtool versioning works by you saying the max version of the API you support, the min version of the API and the revision | 19:55 | |
azawawi has found a solution to make redspans consume less memory... testing... | |||
ruoso | but that requires the maintainer of each library to be competent enough to understand when there's an ABI change... | ||
and a lot of programmers doesn't realize when the ABI change... | 19:56 | ||
and that's why we have so many segfaults in our world... | |||
PerlJam | ruoso: have you ever used ruby gems? | 19:57 | |
ruoso | nope | ||
ruoso reading the user guide... | |||
PerlJam | When you install a gem, it keeps previous versions around unless you've asked to remove them. This sounds quite a bit like what you guys are talking about for Perl 6 | 19:58 | |
TimToady | we allow version ranges in the "use", but I'm not sure the ranges are so valuable after compilation time; p6 wants to allow multiple versions of the same name to run at the same time anyway, so the only reason to force a version is to manage an exclusive resource | ||
and generally you want to split out the versioning of that resource into its own module anyway | |||
PerlJam | I'm not sure how gems handle version freezing or when though | 19:59 | |
20:00
pedrob joined
|
|||
ruoso | TimToady, the problem is not the explicit versioned depends in "use"... but the amount of bad handling in the module versioning itself... | 20:01 | |
TimToady | p6 considers all versions installed into "the library" to be frozen. only your own personal modules are mutable | ||
ruoso: "Doctor, it hurts when I do this..." | |||
I think in the long run versioning has to be culturally enforced, though certainly tech can help or hinder that enforcement | 20:02 | ||
ruoso | if a module maintainer doesn't handle the "this module implements versions from A to B" correctly, it's simply going to break badly | ||
20:02
REPLeffect joined
|
|||
ruoso | that's why I'm not sure enforcing versioning by default is a good idea | 20:02 | |
pugs_svn | r22861 | azawawi++ | [redspans] trees are now stored as action refs thus consuming far less memory. | ||
PerlJam | ruoso: darwin will weed those out :) | 20:03 | |
TimToady | darwin and a shotgun... | ||
ruoso | or just give a lot of headache to sysadmins | ||
I'm not saying I do know a better solution... | |||
just trying to make it clear the problem.... | |||
maybe someone comes up with a good idea to solve that... | 20:04 | ||
TimToady | anyway, I think a good default is for the compiler to say, "I compiled against version X, so I want to run against version X if at all possible" | ||
then it's the fault of whoever relaxes that policy :) | |||
PerlJam | TimToady: and how would they say "...and use a newer version if available"? | ||
TimToady | if we can give the module developer tools to measure divergence, maybe we can prevent some of the breakage | ||
ruoso | measuring divergence is something missing in C development, for instance | 20:05 | |
TimToady | but I think they don't already use the tools they have *cough*TAP*cough* | ||
maybe only allow people to check in a new version if there's an increase in Kwalitee :) | 20:06 | ||
ruoso | a lot of people rely on the linux distros to do that job | ||
and a linux distro will always prefer the newest release... | 20:07 | ||
(newest stable release, I mean) | |||
TimToady | "You may not check this new version into the Standard Perl Library without adding at least one more test to your test suite." | ||
ruoso | maybe we could have a tool that imported into the application test suite the test suites of its dependencies in that version | 20:08 | |
then the test suite would test if the installed version still passes on that version's test suite | |||
if it doesn't it probably isn't compatible | |||
TimToady | we may have to insist that linux distributions don't update the Standard Perl Library per se, but install individual modules that are then inserted (and remember forever) according to Perl Policy | 20:09 | |
*remembered | |||
or at least until a GC run says that nothing on this machine uses the old version | 20:10 | ||
PerlJam | It's the OS theory of perl libraries ... ring 0 == Standard Perl Library, ring 1 == vendor specific stuff, ring 2 == user specific stuff | ||
(adjust the number as size of rings as appropriate) | 20:11 | ||
:-) | |||
TimToady | well, it's certainly the OS theory in the sense that once you install a system call with a particular api, you never remove that call | ||
you might replace it with an emulation based on another call | |||
PerlJam | Even DOS dropped support for DOS 1.0 at some point. | 20:12 | |
ruoso sees the number of debian binary packages in the stratosphere with CPAN6... | |||
TimToady | well, there's the likelihood of bundling of Perl distributions too | 20:13 | |
PerlJam | ruoso: no, if the module is CGI (for instance), there's one binary that perhaps installs CGI 1.0 through CGI 4.5 or whatever | ||
:-) | |||
ruoso | TimToady, btw... have you ever seen the DistributionFormat proposal I started in the wiki? | ||
TimToady | nope, that's far too practical for me to think about :) | 20:14 | |
ruoso | PerlJam, yeah... maybe libcgi4.5-perl replaces libcgi1.0-perl | ||
www.perlfoundation.org/perl6/index....tionformat | 20:15 | ||
lambdabot | Title: DistributionFormat / Perl 6 | ||
PerlJam | maybe libcgi4.5-perl includes libcgi1.0-perl (and then the binaries themselves just grow without bounds ;-) | ||
ruoso | heh.. | ||
pugs_svn | r22862 | azawawi++ | [STD_syntax_highlight] less memory usage... now works in < 512M ulimits | ||
azawawi is generating another round of syntax highlighted htmls in far less memory... rx.t does not OOM | 20:18 | ||
ruoso | well... as long as we don't choose the Java way (which is to include every library used inside every application distribution), I'm fine | ||
[particle] | azawawi: is there a time tradeoff? | 20:19 | |
PerlJam | ruoso: that should be an *option* I think. | ||
ruoso | I'd rather support "static linking" | ||
azawawi | [particle]: not much... used references instead of strings copies | ||
PerlJam | (but certainly not the default :) | ||
[particle] | ah, yes, references++ | ||
do you throw them away as you go? | |||
azawawi | Lesson of the day: Remember your 'references' ;-) | 20:20 | |
20:20
mberends_ joined
|
|||
azawawi | [particle]: nop atm since i need them for --full-html mode | 20:21 | |
[particle]: i think the main problem is that we were copying a lot of strings around vs arrays of hashed action name references for trees | 20:24 | ||
20:27
mberends_ left
|
|||
azawawi the ETOOMUCHTIME script processed 60 tests so far... which is way too fast than before | 20:28 | ||
20:30
_Jedai_ joined
20:31
masak joined
|
|||
azawawi | hi masak | 20:31 | |
masak | azawawi: hi | ||
azawawi | masak: im sorry i wasnt around; but the answer to your question is that did you 'make'? ;-) | 20:32 | |
masak | azawawi: no, probably not | ||
masak tries that | |||
azawawi | masak: i think i should add a STD sanity check in ETOOMUCHTIME | 20:33 | |
masak | aye. | 20:34 | |
and a friendly instruction to people who don't know they should run `make` :) | |||
masak found README | |||
um. nvm. | |||
azawawi: ok, so it turns out I don't have something called 'gimme5' | 20:35 | ||
what do I do? | |||
azawawi | masak: svn update? | 20:36 | |
masak svn updates | |||
but you might have misunderstood me. | |||
it can't find the executable | |||
[particle] | src/perl6/ | ||
azawawi | r u in pugs/src/perl6? | ||
masak | aah... | ||
hold on, that's not the problem | 20:37 | ||
it looks for perl in /usr.local/bin/perl | |||
s/\./\// | |||
20:37
rdice joined
|
|||
masak | I should make a symlink from there | 20:37 | |
[particle] | stop waving that sword around | ||
you need 5.10 btw | 20:38 | ||
azawawi | 101 files and counting... | ||
masak | uh oh | ||
azawawi is going to cron automate it to run everyday on off-peak hours... | 20:39 | ||
masak | sorry, installing 5.10 is too big a chore for me right now. | ||
I should be toying with November :) | |||
[particle] | then you need 6.0 ;? | ||
;) | |||
azawawi | how is November these days? Any new features? ;-) | 20:40 | |
masak | [particle]: you have no idea how much I need 6.0 ;) | ||
azawawi: November has been in a phase of constant buildup since YAPC in August | 20:41 | ||
not many new features, but a more straightened-out and less hackish core | |||
something to build from | |||
azawawi | does it have 3D wikis? ;-) | ||
masak | azawawi: no, is that a feature request? :P | 20:42 | |
azawawi | lol | ||
masak | anyway, ask again by the end of this month. I've promised myself to fiddle a little with the project every day, so things are bound to happen. | 20:43 | |
today, for example, is Skin Monday! | |||
20:44
pedrob left
|
|||
azawawi | anyway we could run parrot code on as3 flash? | 20:44 | |
20:45
pedrob joined,
pedrob left,
Lorn left,
pedrob joined
20:48
|Jedai| left
|
|||
masak | bacek: re "test that's wrong and patch that's right": sorry :/ all I can say is that it looked right here. I was even careful enough to check that the test passed without your patch and failed with it. apparently I screwed up somewhere along the way. | 20:52 | |
bacek | masak: it passed in rakudo because of bug in rakudo | 20:58 | |
pugs: say ~(Bool::True|Bool::False) | |||
masak | bacek: now that's comedy. | ||
p6eval | pugs: OUTPUT[any(VStr "",VStr "1")] | ||
bacek | pugs: say (Bool::True|Bool::False) eq 'Bool::True' | 20:59 | |
p6eval | pugs: OUTPUT[any(VBool False)] | ||
bacek | pugs: say (Bool::True|Bool::False).perl eq 'Bool::True' | ||
p6eval | pugs: OUTPUT[] | ||
bacek | pugs: say (Bool::True|Bool::False).perl | ||
p6eval | pugs: OUTPUT[(Bool::False | Bool::True)] | ||
bacek | masak: see? | ||
masak | bacek: I see, but I'm not sure I understand. | 21:00 | |
junctions make my brain try to hurt in several ways at once. | |||
bacek | ("A" eq "A"|"B").perl eq 'Bool::True' | ||
this is wrong | |||
masak | I believe you. why? | ||
bacek | It's not expected behavior | ||
masak | by me, it is. | 21:01 | |
sorry for being stubborn. | |||
bacek | because ("A" eq "A"|"B") is junction (True|False) | ||
rhr | should be ("A" eq "A"|"B") === Bool::True | ||
masak | bacek: yes. | ||
bacek: I see what you mean now. | |||
rhr | bacek: no, comparison ops collapse junctions | ||
bacek | (True|False).perl can't be just 'Bool::True' | 21:02 | |
masak | rhr: I have reason to believe they don't. | ||
21:02
rindolf left
|
|||
rhr | no, testing the .perl is wrong | 21:02 | |
bacek | pugs: say (Bool::True|Bool::False) === Bool::True | ||
p6eval | pugs: OUTPUT[any(VBool False,VBool True)] | ||
bacek | masak: anyway, why you need collapsing? | 21:03 | |
masak | bacek: originally, because the lack of it made November fail | ||
bacek | masak: you did something wrong. | ||
masak | bacek: see the lower part of use.perl.org/~masak/journal/37787 | ||
lambdabot | Title: Journal of masak (6289) | ||
masak | bacek: preferably the code linked from there, too | 21:04 | |
if that code was wrong, I'd very much like to know. | |||
bacek | perl6: if (Bool::True|Bool::False) { say "foo" } else { say "bar" } | ||
p6eval | elf 22847, pugs, rakudo 32319: OUTPUT[foo] | ||
masak | it worked until your patch got in | ||
bacek | this behavior wasn't changed by my patch | ||
masak | bacek: but it was. | ||
bacek | masak: prove it | 21:05 | |
masak | bacek: have you read the code. | ||
? | |||
bacek | small code will be enough | ||
masak: whole November? no | |||
masak | bacek: github.com/viklund/november/tree/43...ate.pm#L40 | ||
bacek: it was linked from the blog post I just sent. | |||
bacek: after your patch, it started dying with the error "Unrecognized directive: TMPL_VAR" | 21:06 | ||
even though the test is for anything _except_ VAR, LOOP and IF | 21:07 | ||
bacek | perl6: say ('a' ne 'a'&'b') | ||
p6eval | elf 22847: OUTPUT[1] | ||
..rakudo 32319: OUTPUT[0] | |||
..pugs: OUTPUT[all(VBool False,VBool True)] | |||
[particle] | lovely. | 21:08 | |
masak | :) | ||
21:08
spx2 left,
Ehtyar left,
buu left,
zostay left,
buu joined,
spx2 joined,
zostay joined
|
|||
masak | elf is definitely wrong here. | 21:08 | |
bacek | rakudo is wrong too | 21:09 | |
perl6: if (Bool::True&Bool::False) { say "foo" } else { say "bar" } | |||
p6eval | pugs: OUTPUT[bar] | ||
..elf 22847, rakudo 32319: OUTPUT[foo] | |||
masak | if pugs isn't right here, someone's have to explain it to me | ||
s/'s/'ll/ | 21:10 | ||
bacek | pugs right | ||
TimToady | comparisons do not collapse junctions--only boolean contexts collapse | ||
masak | rhr: told ya :) | ||
bacek | perl6: if ('a' ne 'a'&'b') { say "foo" } else { say "bar" } | ||
p6eval | pugs, rakudo 32319: OUTPUT[bar] | ||
..elf 22847: OUTPUT[foo] | |||
masak | elf-- | 21:11 | |
bacek: I feel I lost my track here a bit. did I successfully prove to you that your patch broke our app? | |||
bacek | perl6: say ?(Bool::True&Bool::False) | 21:12 | |
p6eval | rakudo 32319: OUTPUT[get_string() not implemented in class 'Junction'current instr.: 'print' pc 14833 (src/gen_builtins.pir:9120)] | ||
..elf 22847: OUTPUT[1] | |||
..pugs: OUTPUT[all(VBool False,VBool True)] | |||
bacek | masak: $ ../../parrot perl6.pbc -e 'if (Bool::True&Bool::False) { say "foo" } else { say "bar" }' | ||
foo | |||
it's on my version. So, answer is "not" | |||
masak | bacek: is that a yes? :) | ||
ok. | 21:13 | ||
bacek | I'll check what the heck is in "if" statement. Because it is bug in "if". | ||
masak | bacek++ # solving the problem | ||
bacek | masak: you can add more tests in S03-junction. Something like 'ok (Bool::True|Bool::False)' and 'ok !(Bool::True&Bool::False)' | 21:15 | |
this will be helpful. | |||
masak | bacek: will do. | ||
bacek | TimToady: what is expected value of '?(a&b)'? Junction or bare bool? | 21:16 | |
TimToady | I suspect you should also check for the pugs problem--the ? should probably just return False, not all(True,False), since it's converting to Bool | 21:17 | |
hmm, I guess I just answered your question, kinda | 21:18 | ||
bacek | TimToady: indeed ;) | ||
TimToady | likewise true() | ||
and ! | |||
and not() | |||
bacek | TimToady: what about ('a'|'b' eq 'b')? | 21:19 | |
21:20
ruoso left
|
|||
TimToady | it's okay for that to return (True|False), I think; however ! and not are tests for True, not tests for False | 21:21 | |
so not( 'a'|b' eq 'b') will always return False | |||
bacek | TimToady: ok. Sound reasonable. | 21:22 | |
TimToady | not is the absence of truth, not the presence of falsehood | ||
[particle] | what is the sound of one op negating? | 21:23 | |
21:23
iblechbot left
|
|||
TimToady | so if you know that 'a'|b' eq 'b' is in a boolean context, you can short circuit as soon as you've found a true | 21:23 | |
bacek | masak: I found why "old" junctions works as you expected. Even error | ||
21:23
delrico joined
|
|||
masak | bacek: errors seem to be the theme of the day. | 21:24 | |
bacek | masak: I'll fix it later today. | ||
afk # wake up kids for the school | |||
TimToady | which gives the appearance that 'eq' is resolving it, even though it's really the boolean context | ||
note that '(...) === Bool::True' is not itself a boolean context | 21:25 | ||
so you can still test ('a'|'b' eq 'b') === False and get a true result | 21:26 | ||
on the other hand, true('a'|'b' eq 'b') === False will be false | 21:27 | ||
masak | I wish that would be enough for people to stop writing '=== True' when they mean ''. sadly, I don't think it will be. | ||
pasteling | "azawawi" at 212.38.145.15 pasted "ETOOMUCHTIME sample output [it is fast ;-)]" (2298 lines, 77.9K) at sial.org/pbot/33025 | ||
masak | azawawi++ | ||
TimToady | maybe if we start carping about "Useless use of === True" :) | 21:28 | |
masak | TimToady: yes, please do. and threaten to name names. :) | 21:29 | |
azawawi | TimToady: Finally, rx.t didnt OOM when ulimited ;-) feather.perl6.nl/~azawawi/html2/S05.../rx.t.html | ||
lambdabot | Title: ../../t/spec/S05-mass/rx.t | ||
masak | azawawi: do "Failed tests" here mean that those files don't pass STD? | ||
azawawi | masak: yeah, you can check the error on link... | 21:30 | |
TimToady | hmm, last I checked everything in t/ passed | ||
21:30
mberends_ joined
|
|||
masak | azawawi: since it's now fast, maybe you should change the script's intro message :) | 21:30 | |
and perhaps the name. | |||
azawawi | masak: it is not fast enough ;-) | ||
masak | azawawi: good attitude. | 21:31 | |
azawawi | TimToady: some fail like feather.perl6.nl/~azawawi/html2/S02...num.t.html | ||
lambdabot | Title: Error, tinyurl.com/5kqtro | ||
azawawi | TimToady: i get that "Malformed UTF-8 character" error on STD.pm on feather1 | 21:33 | |
21:33
nacho_ joined
|
|||
TimToady | you probably need to install $src_text = Encode::decode('utf8', read_file($file) ); | 21:33 | |
somewhere like I did in STD_syntax_highlight | |||
azawawi | it is already there... strange | 21:34 | |
TimToady | are you rereading the file somewhere else? | 21:35 | |
azawawi | parseFile($file,...) | ||
TimToady | that already does it too | ||
21:36
ab5tract joined
|
|||
TimToady | in fact, these days Cursor carries both a utf-8 encoded string and an equivalent integer array from unpack("U*"...) | 21:36 | |
since I'm in the process of switching over to an NFGish model for the lexer | 21:37 | ||
and I plan to do away with TRE by use of integer tries and such | |||
pasteling | "azawawi" at 212.38.145.15 pasted "STD_syntax_highlight "Malformed UTF-8 character" with STD.pm" (9 lines, 458B) at sial.org/pbot/33026 | 21:38 | |
azawawi | TimToady: could u try that command on your laptop? | 21:39 | |
it croaks after 14secs on feather1 | 21:40 | ||
TimToady | what does "file STD.pm" say on your machine | ||
azawawi | STD.pm: UTF-8 Unicode English text | 21:41 | |
TimToady | that's fine. my command is still running without complaint | 21:43 | |
azawawi | hmmm, then something here is broken... rm -rf perl6; svn update; nice make... | ||
TimToady | finished, but the html files are in latin-1, not utf-8 | 21:45 | |
moritz_ | probably missin a 'bindmode $out, ":utf8"' somewhere | 21:46 | |
azawawi | moritz_: hi | 21:47 | |
moritz_ waves vaguely to the channel and to azawawi | |||
azawawi | TimToady: same thing, after doing all that... | ||
azawawi wonders why this is happening only to his feather1 acct | 21:48 | ||
pugs_svn | r22863 | azawawi++ | [STD_syntax_highlight] updated comments | 21:50 | |
TimToady | /usr/local/bin/perl -v | 21:51 | |
azawawi | This is perl, v5.10.0 built for i486-linux-gnu-thread-multi | ||
TimToady | maybe some difference in File::Slurp? | 21:57 | |
moritz_ | it works for me, also on feather1 | ||
TimToady | are you running under a strange locale? | 21:59 | |
azawawi is checking it | 22:00 | ||
TimToady | the "locale" command should say | 22:01 | |
22:01
ryanc joined
|
|||
pasteling | "azawawi" at 212.38.145.15 pasted "locale output" (15 lines, 263B) at sial.org/pbot/33028 | 22:02 | |
TimToady | that's probably the problem | ||
you need a .UTF-8 locale | |||
moritz_ | why? I mean the normal Unicode stuff isn't locale dependent, is it? | 22:03 | |
22:03
iblechbot joined
|
|||
TimToady | speaking as a cultural imperialist, I'm in en_US.UTF-8 | 22:03 | |
azawawi | moritz_: what does 'locale' say at your feather1 acct? | ||
22:04
rdice left
|
|||
TimToady | who knows what the C library pays attention to... | 22:04 | |
moritz_ | azawawi: it's all en_US.UTF-8 | ||
azawawi | moritz_: interesting | ||
TimToady | but POSIX locale is notably UTF-8 hostile | ||
iirc | |||
azawawi | the question is how did that happen? ;-) | 22:05 | |
moritz_ | did you ever set the locale? | ||
azawawi | nop | ||
moritz_ | the it happened because it's the default ;) | ||
TimToady | my .bashrc contains: LANG=en_US.UTF-8 | 22:06 | |
moritz_ | echo 'export LANG=en_US.UTF-8' >> .bashrc | ||
azawawi | cool then we need a sanity check ;-) | ||
TimToady | it's not clear that sanity has much to do with unicode... | 22:07 | |
moritz_ | lol | ||
22:07
nacho_ left
|
|||
azawawi testing it... | 22:07 | ||
TimToady | 'course, he didn't say which boolean sense | ||
22:10
ab5tract left
22:11
TJCRI left
22:14
smg left
22:18
adc_Penner left
|
|||
pugs_svn | r22864 | azawawi++ | [STD_syntax_highlight] :utf8 output | 22:19 | |
22:20
rhesa left
|
|||
azawawi | perfect... it works, TimToady++, moritz_++ | 22:20 | |
so should we check for this weird case or not? | 22:21 | ||
azawawi is running ansi,simple/full htmls for STD.pm... | |||
TimToady | maybe we should just force a utf8 locale if the current locale isn't, since p6 requires unicode | 22:22 | |
TimToady now wonders what POSIX.UTF-8 would do... | 22:23 | ||
probably form a miniature black hole... | 22:24 | ||
lunch & | |||
azawawi | im glad this is solved... no more OOMs, less memory footprint, and faster than before [next step a cron job] | 22:26 | |
azawawi says 'time STD_syntax_highlight STD.pm' => real: 5m24.346s, user: 2m45.162s, sys: 1m21.769s | 22:28 | ||
22:30
jauaor left
|
|||
azawawi | Done... enjoy. feather.perl6.nl/~azawawi/STD.pm/ | 22:31 | |
lambdabot | Title: Index of /~azawawi/STD.pm | ||
azawawi | moritz_: any ideas on other output formats? | ||
moritz_ | azawawi: just an option to omit HTML header + footer (for inline inclusion in other HTML files) | 22:33 | |
22:34
avar left
|
|||
azawawi | moritz_: you mean only no <html><head>s ? | 22:34 | |
[particle] | ability to specify alternate css file :) | ||
azawawi | [particle]: you can do that with --clean-html | ||
[particle] | azawawi++ | 22:35 | |
moritz_ | azawawi: and no <body> | ||
azawawi | moritz_: and no css? | 22:36 | |
moritz_ | azawawi: and no css | ||
[particle] | that'd be my guess, no css | ||
that's one step closer to proper integration with smartlinked spec | |||
moritz_ mostly wants it for the code examples on perlgeek.de and perl-6.de | 22:37 | ||
azawawi | --moritz-mode ? | 22:38 | |
;-) | |||
[particle] | --html-snippet maybe? | ||
moritz_ | --no-skeleton ? | ||
azawawi | --inline-html? | 22:39 | |
[particle] | i wonder what the output would look like in yaml | ||
moritz_ | pretty boring, probably ;) | ||
azawawi | does not make sense to generate a YAML from a syntax highlighter ;-) | 22:40 | |
[particle] | it does if you want to generate html or pdf or ansi etc | 22:41 | |
but, only if you want to serialize the intermediate data | |||
azawawi is working on --no-skeleton switch | 22:43 | ||
masak | ang, Cmd-Q is far too similar to Cmd-Tab... :/ | ||
(luckily, just like Jesus, Firefox saves) | 22:44 | ||
azawawi | oops, it is 12:43AM here... gonna sleep to go work &.. postponing tasks for tomorrow... | ||
azawawi sleep.. cya & | 22:45 | ||
22:46
azawawi left
|
|||
[particle] | syntax: [ !scope_declarator 'my', !ws ' ', !sigil '$', !variable 'foo', ... ] | 22:47 | |
hrmm, methinks the green should be tied to 'ident' and not 'variable' in the css | 22:49 | ||
param_vars don't show up properly otherwise | |||
22:59
avar joined
|
|||
masak | perl6: my $a = 7.8; $a .= int; say $a | 23:00 | |
p6eval | pugs, rakudo 32323: OUTPUT[7] | ||
..elf 22847: OUTPUT[Use of uninitialized value $_ in int at (eval 119) line 4.Undefined subroutine &GLOBAL::infix__46_61 called at (eval 119) line 4. at ./elf_f line 3861] | |||
masak | approximately how long has rakudo had dotty methods? | ||
moritz_ | all methods are dotty, aren't they? ;) | ||
masak | moritz_: no, not really :) | 23:01 | |
moritz_ | or do you mean mutators? | ||
or with $_ as default? | |||
masak | I mean the '.= method' syntax | ||
...and its corresponding semantics | |||
moritz_ | quite long I think, because that was needed for the protoobject based OO model | 23:02 | |
which jonathan implemented shortly be fore teh German Perl Workshop, so probably March. | |||
masak | wonder what I meant by "We miss long dots, heredocs, and dot-assignment a bit." in my blog post about Rakudo stuff in August then. | 23:03 | |
23:03
Limbic_Region joined
|
|||
moritz_ | long dots are $obj\ .method, right? | 23:04 | |
masak | yes. we have them too, nowadays. | ||
perl6: say $_\ .perl | |||
p6eval | rakudo 32323: OUTPUT[undef] | ||
..pugs: OUTPUT[\undef] | |||
..elf 22847: OUTPUT[Parse error in: /tmp/OZqmmxEFs6panic at line 1 column 0 (pos 0): Can't understand next input--giving upWHERE: say $_\ .perlWHERE:/\<-- HERE STD_red/prelude.rb:99:in `panic' STD_red/std.rb:76:in `scan_unitstopper' STD_red/std.rb:224:in `comp_unit' | |||
..STD_red/std.rb:210... | |||
moritz_ | masak: but for example the parsing for .[] subscripts is pretty new | ||
23:06
spx2_ joined
|
|||
[particle] | well, if you're coming from perl 5 and implementing perl 6, it's not natural that @a[] is sugar for @a.[] | 23:06 | |
so, .[] et al were likely just missed | |||
masak: can you use =<> in rakudo now? | 23:07 | ||
masak | [particle]: hold on. | ||
moritz_ | if you implement Perl 6, you'd better know that @a[] is really a method call ;) | ||
masak | [particle]: no. | ||
[particle]: I mean, it parses. but it doesn't work. | 23:08 | ||
[particle] | rats. | ||
masak | there's a ticket about it somewhere. | ||
[particle]: aye. | |||
[particle] | ah, ok | ||
well, allison's been working on the io branch, i should check it out | |||
i have -n cmdline implemented, but it doesn't work due to =<> not working | |||
23:09
spx2 left
|
|||
[particle] | so i'll just hold that patch in reserve | 23:09 | |
and i won't bother with -p for now | |||
masak | [particle]: ah, [perl #58524] | ||
23:16
elmex left
23:19
avar left
|
|||
masak | [particle]: I look forward to -n and -p. will this still work with your patch? perl -ne '} print "$.\n"; {' | 23:24 | |
(disregarding the fact that $. might be renamed in Perl 6. I mean the principle itself) | 23:25 | ||
(and no, I don't know whether I really want a yes or a no as an answer to that question) | 23:26 | ||
23:28
alester left
23:35
bacek_ joined
23:39
avar joined
23:43
pedrob left
23:44
pedrob joined,
smg joined,
wknight8111 joined
23:46
pedrob left,
riffraff left
23:48
hercynium left
23:52
iblechbot left
23:56
pbuetow left
|