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