»ö« | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, alpha:, pugs:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend! Set by moritz_ on 25 June 2010. |
|||
00:01
Psyche^ joined
|
|||
jnthn | night o/ | 00:01 | |
00:03
ruoso joined
00:05
Patterner left,
Psyche^ is now known as Patterner
00:09
drbean joined
00:14
lest_away is now known as lestrrat
00:15
blogometer left
00:19
whiteknight joined
00:27
fod joined
00:31
blogometer joined
00:35
kensanata left
|
|||
lue | How do I match the opposite of a character class? Or rather, how to match anything that isn't <alpha> ? | 00:36 | |
TimToady | <-alpha> should work | 00:37 | |
sorear | TimToady: Under use graphs, what does [ a .. z ] match? | 00:38 | |
I guess \w, \d etc only care about the base character | 00:39 | ||
but ranges are less clear... also what about [a e i o u] | |||
TimToady | that would depend on whether :ignoremark is set | ||
ranges are probably on base chars only, yes | |||
sorear | [aeiou] - 5 characters if :!m, many if :m | 00:40 | |
[a..z] - always many | |||
\w - always many many | |||
? | |||
lue | oh, I forgot the :g in my substitution, so I didn't notice when I tried <-alpha> :) | ||
TimToady | that seems about right. character classes don't get along with Unicode nearly as well as properties do | 00:42 | |
sorear | Properties are a function entirely of the base, right? | ||
TimToady | we probably need a way to query the mark chars that we haven't invented yet | 00:43 | |
tylercurtis | sorear, TimToady, are you saying that ä matches [a..z]? | ||
sorear | What should [ a .. \c[O WITH FIVE HATS] ] match? | 00:44 | |
00:44
spinclad joined
|
|||
sorear | tylercurtis: That's what I'm saying. (But only if use graphs; is in effect.) | 00:44 | |
00:45
Clem_Chong joined
|
|||
TimToady | well, use graphs is supposed to be the default | 00:45 | |
sorear | I think that defaulting to codes for now would be less suprising than half-implementing graphs | ||
not that that matters in the platonic world of docs/Perl6/Spec, of course | |||
tylercurtis | Why would we not require :m for that? | 00:46 | |
TimToady | it would probably be more consistent, yes | 00:47 | |
actually, under NFG, ä is its own base char, since NFG is an extension of NFC | 00:48 | ||
and :m kind of implies NFDishness instead | 00:49 | ||
in the platonic world, that is. :P | 00:50 | ||
tylercurtis | Well, :m is specced as checking only the base char in NFD. | 00:51 | |
TimToady | that seems right, though of course it doesn't actually have to *do* NFD to do that | ||
it merely need an NFG to base char mapping of some sort | 00:52 | ||
as for [ a .. \c[O WITH FIVE HATS] ], that's certainly an error if there's no NFC grapheme predefined for that | 00:53 | ||
sorear | So .. defines a contiguous range of NFC graphemes, in :!m graphs mode? | 00:56 | |
What does .. do in :m graphs? | |||
TimToady | carps about marks maybe, then canonicalize before taking the range? | 00:57 | |
00:57
jferrero joined
|
|||
TimToady | we could do the same for A..z under :i, I suppose | 00:58 | |
sorear | so :m <[a .. 一]> matches all characters, which, when decomposed, have bases in the U+0061..U+4E00 range? | ||
lue | I get "symbol $phrase not predeclared in <anonymous>", and I can't see why: gist.github.com/539337 | ||
TimToady | though A vs a is not a marked/unmarked distinction like base/mark is | 00:59 | |
sorear | lue: $pharse | ||
TimToady | sorear: that seems about as sane as anything | ||
00:59
blogometer left
|
|||
sorear | Also, can you give a good example of a language where CharLingua is relevant? | 01:00 | |
01:01
thundergnat joined
|
|||
lue | thank you. | 01:01 | |
TimToady | well, any language that considers certain digraphs to be single characters | ||
I think both German and Spanish fall into this category | |||
sorear | yes, ll | 01:02 | |
TimToady | please don't ask me how those interact with character ranges. :) | ||
lue | I think my anagram generation method needs some work. Ah well, afk. | 01:03 | |
sorear | Isn't it obvious? It uses linguistic collation tables | 01:04 | |
TimToady | that's why you shouldn't ask ;) | 01:05 | |
thundergnat | Quick question: What is the correct R* syntax for 'second to last element of array'? $array[-2] in perl5 | ||
TimToady | *-2 | ||
thundergnat | Thanks | ||
01:06
meppl left
|
|||
sorear | Perl 5 always has 'codes' semantics, right? | 01:10 | |
colomon | if @array is the array, @array[*-2] in p6 | 01:13 | |
jferrero | TimToady, sorear, in Spanish, ll and ch digraphs are considered chars, but arent represented into the modern alphabet (from 1994): es.wikipedia.org/wiki/Alfabeto_lati...rio_latino | ||
TimToady | so we might need to put dates on our CharLingua types. :) | 01:16 | |
jferrero | hahaha | ||
TimToady | sorear: yes, unless you say 'use bytes' | 01:17 | |
last I knew, \X was the only thing that knew about graphemes in P5 | |||
01:21
stephenlb left,
blogometer joined
|
|||
TimToady | dinner & | 01:24 | |
01:25
jferrero left
01:27
Guest82885 left
01:49
blogometer left
01:54
blogometer joined
01:56
molaf joined
01:59
squeeky left
02:02
redicaps1 joined
02:06
rjbs left
02:11
azert0x left
|
|||
diakopter | burp | 02:12 | |
02:21
whiteknight left
02:27
sftp left
02:30
rgrau_ left
02:34
rgrau joined
|
|||
Clem_Chong | %-:left-justified,what is the operator of right-justified? | 02:39 | |
TimToady | are you talking about printf formats? | ||
Clem_Chong | TimToady: Yes. | 02:40 | |
TimToady | just leave out the - | 02:41 | |
02:41
thundergnat left
|
|||
TimToady | rakudo: say "foo".fmt('%-30s') | 02:41 | |
p6eval | rakudo 90637b: OUTPUT«foo » | ||
TimToady | rakudo: say "foo".fmt('%30s') | 02:42 | |
p6eval | rakudo 90637b: OUTPUT« foo» | ||
diakopter | sorear: spello dependancy | ||
Clem_Chong | thanks. | 02:43 | |
rakudo:say "hello" | |||
p6eval | rakudo 90637b: OUTPUT«hello» | ||
03:01
blogometer left
|
|||
sorear | diakopter: the American Heritage Dictionary 3rd ed. paperback and the web1913 public text file both list dependancy; what are you using | 03:20 | |
TimToady: Does \X[41,42,43] mean anything? | 03:22 | ||
03:29
blogometer joined
03:32
jaldhar joined,
jaldhar left
03:33
jaldhar joined,
justatheory joined
03:34
justatheory left
|
|||
TimToady | it could be forced to mean something | 03:36 | |
regex stuff { \x[41,42,43] }; / <-stuff> / | 03:40 | ||
sorear | What does '<-' <ident> '>' mean? | 03:45 | |
03:46
rgrau left
|
|||
TimToady | it means <?ident> . | 03:46 | |
er, <!ident> . | |||
sorear | What does STD.pm6 +4985 mean in general? | 03:48 | |
TimToady | a blank line? | 03:49 | |
sorear svn up | |||
| <name> | 03:50 | ||
in cclass_elem | |||
03:50
hans__ joined
|
|||
sorear | are character classes looked up anywhere? | 03:50 | |
TimToady | I am svn upped | ||
sorear | or is alpha, digit, xdigit, inCJKExtensionA, etc the extent of it? | ||
TimToady | that's 4993 | 03:51 | |
sorear | huh. | ||
TimToady | ah, no I have something unchecked in | 03:52 | |
03:54
hans__ left
|
|||
pugssvn | r32065 | lwall++ | [STD] extend [-1] error to -2, -3 etc. | 03:57 | |
04:03
flyback joined
|
|||
flyback | anyone seen ajkroll around here | 04:03 | |
#darcs | |||
diakopter | sorear: it's just ... righter | 04:09 | |
04:33
PZt left
04:34
jhuni joined
04:36
tadzik joined
|
|||
tadzik | morning | 04:36 | |
05:05
kaare joined,
kaare is now known as Guest17872
05:09
molaf left
05:30
Guest17872 is now known as kaare_
05:48
fod left
05:49
drbean left,
blogometer left
05:56
drbean joined
|
|||
rcfox | Guh, Perl 6 has ruined me for Perl 5. | 05:56 | |
[particle] | you have been assimilated. | 05:57 | |
rcfox | Indeed. | ||
tylercurtis | say .fmt("Guh, Perl 6 has ruined me for %s") for @languages | 05:58 | |
05:58
ruoso left
|
|||
rcfox | Wow, a 13MB SVG. | 06:00 | |
06:00
uniejo joined
|
|||
tylercurtis | well, I should probably add an "unless $_ ~~ 'Go'|'Coq'|'Prolog'|'Haskell'" to that. Those are weird enough that I don't compare them negatively to Perl 6 too much. | 06:01 | |
lue | I looked at Go. I'd say it's worse than P6 :) # have you seen how many lines it takes to say Hello World in Go? | 06:06 | |
mathw | Coq isn't really the same kind of tool... | 06:08 | |
Go's weird, I need to look into it more at some point | 06:09 | ||
06:09
redicaps1 left
|
|||
lue | The number of programs you need to run to get Go code running reminds me of when I fiddled with Java O.o | 06:09 | |
Tene | Go is... different. Go has a lot of good ideas. | 06:10 | |
Go is targeted toward specific needs and seems to be pretty good for those. | |||
lue | I'll have to look again, but P6 has stained my world-view of programming languages :D | 06:11 | |
tylercurtis | lue: Go has LEAVE/KEEP/UNDO! Rakudo doesn't even have those yet. :) Technically, it has LEAVE, but KEEP/UNDO is LEAVE plus a conditional in Go. | 06:13 | |
06:14
ruoso joined
|
|||
mathw | I was considering suggesting Go for a new project at work, actually | 06:14 | |
But I don't think the language is mature enough yet | 06:15 | ||
lue | .oO(You can tell how bad a language is by how strong it advocates the 'goto' command) |
06:16 | |
mathw | I think that's a little simplistic | ||
tylercurtis | lue: what language are you talking about? | 06:17 | |
PerlJam | lue: What are you talking about? goto is an excellent language feature! :) | ||
sorear | tylercurtis: .NET ilasm is, to general knowledge, the only system in existance with a native UNDO | 06:19 | |
they' | |||
re called fault blocks | |||
lue | One example: BASIC and friends [ although I admit it's a pretty flimsy language test :) ] | 06:21 | |
tadzik | mathw: Will there be any announcement on rakudo.org? | 06:23 | |
mathw | The release guide says perl6-compiler gets the announcement | 06:24 | |
maybe rakudo.org should have one too | |||
don't know | |||
tadzik | hmm | ||
It usually did | |||
mathw | yes but that was before * | ||
tadzik | It was usually on p6u too | ||
oh, maybe | |||
mathw | which is now the release we're going to be promoting widely | ||
tadzik | github.com/parrot/parrot -- look, parrot on github | 06:25 | |
mathw | so expect to see Star 2 release announcements everywhere | ||
tadzik | I see | ||
PerlJam | I don't think the compiler releases need to be announced anywhere but p6c | 06:26 | |
mathw | Indeed. things are different in a world with Rakudo Star | 06:28 | |
06:32
dual joined
|
|||
tylercurtis | Translating non-Go code that uses exceptions to Go makes me feel uneasy. panic() has a very different feeling to throw or even die. Maybe Perl 6 should give &die a less pleasant name (though I can't imagine what). | 06:34 | |
06:36
simcop2387 left
06:41
simcop2387 joined
|
|||
sorear | Perl (1) die was non-recoverable until version 1.0.8 | 06:42 | |
it was literally just fprintf and exit (for 30 days spanning the beginning of '88) | 06:43 | ||
does the version of Perl which predated 5 have a name? | |||
perl 1.0.0 through 4.0.26 are sufficiently similar that they deserve to be lumped together like "Perl 5" and "Perl 6" are | |||
dalek | odel: fd62b41 | ++ | / (6 files): add three more of the Metamodel java files |
06:44 | |
06:45
mberends left
06:54
Trashlord left
07:21
Trashlord joined
|
|||
sorear | colomon: jnthn: ingy: moritz_: TimToady: szabgab: dukeleto: Ping - I'm trying to instigate a #cpan6sketch. | 07:27 | |
Alias_ of CPAN5 has expressed interest, but is not available at #phasers time; he says -3h or +4h from it would work | |||
07:28
tylercurtis left
07:31
Trashlord left
07:36
_madmax_ left
07:40
Mowah joined
07:55
Mowah left
08:11
foodoo joined
08:12
Mowah joined
|
|||
moritz_ | sorear: pong | 08:13 | |
-3h would work for me | |||
+4h is in the middle of my night | |||
16H UTC is OK for me, to be clear | 08:14 | ||
x3nU | also | 08:19 | |
i've got something interesting on my hdd | |||
it's microsft perl kit :D | |||
08:20
drbean left
|
|||
x3nU | i din't knew that microsoft made anything related to perl | 08:20 | |
(it's from '96 and it's for windows nt powerpc) | |||
sorear | '96? Is it even Perl 5? | 08:22 | |
moritz_: ok, just need a few more pongs | |||
x3nU | sorear: it says perl 5 build 110 | 08:23 | |
;d | |||
sorear | moritz_: TimToady talked about German requiring a nontrival (!= Grapheme) CharLingua. Can you elaborate on this? | ||
moritz_ | sorear: not sure what he's talking about | ||
we've got that funny character that becomes two characters if uppercased, but I don't think that applies here | 08:24 | ||
and we have some ligature rules, but that applies only to typesetting, not text processing | |||
08:25
HarryS left
08:28
HarryS joined
|
|||
sorear | What exactly are named character classes? | 08:33 | |
Are they special to the parser? | |||
If not, what does the code generated for <-fooquux> do? | |||
arnsholt | sorear: The non-trivial thing is probably ß becoming SS when capitalised | 08:36 | |
Downcasing that correctly is kinda tricky | |||
08:36
thebird joined
|
|||
moritz_ | sorear: afaict <-foo> is the same as (<!before <foo>> .), but may assume that <foo> matches exactly one character | 08:38 | |
arnsholt: there's no way to case-roundtrip ß reliably | |||
at least I know of none | |||
08:39
dakkar joined
|
|||
moritz_ | www.perlmonks.org/?node_id=856208 # I continue to troll perlmonks with perl 6 answers :-) | 08:39 | |
arnsholt | moritz_: Only way to do it is proper linguistic processing. Which is kinda hard to get right =) | 08:40 | |
08:41
kaare_ left
08:42
kaare_ joined
08:43
grew_ left,
grew joined
08:44
pmurias joined
|
|||
pmurias | ruoso: hi | 08:44 | |
sorear | pmurias: Ping - I'm trying to instigate a #cpan6sketch. | 08:48 | |
Alias_ of CPAN5 has expressed interest, but is not available at #phasers time; he says -3h or +4h from it would work | |||
so I'm trying to find an effective compromise time and date; moritz_ has approved 1600 UTC | 08:49 | ||
08:49
timbunce joined
|
|||
sorear | (repasting for pmurias; others were already pinged) | 08:49 | |
moritz_ | arnsholt: even with proper linguistic processing, you'd need semantic analysis | 08:50 | |
arnsholt: because Maße != Masse, for example | |||
08:51
daxim joined,
milki joined
08:54
drbean joined
08:56
agentzh joined
08:58
tadzik left
|
|||
smash_ | mornin' | 08:59 | |
arnsholt | moritz_: Yeah. As I said "kinda hard to get right". Really hard, in fact =D | ||
moritz_ | hi smash_ | 09:00 | |
smash_: have you uploaded CGI::Cookie somewhere? | |||
smash_ | moritz_: not yet, haven't had the time yet to quite finish it | 09:01 | |
sorry | |||
i'll try to work on it ASAP | |||
moritz_ | smash_: no problem; it would also help if you just upload what you have, so that I can add what I need | 09:02 | |
"release early, release often" | |||
smash_ nods | |||
i'll set up a github repo for it this weekend | |||
moritz_ | great | ||
++smash_ | 09:03 | ||
smash_ | no annoucement for yesterday's release on rakudo.org ? | ||
moritz_ | smash_: no; we've decided to announce compiler releases only to [email@hidden.address] | 09:04 | |
smash_ | oh, ok | ||
moritz_ | smash_: reason is that many people confuse compiler releases with Rakudo Star distribution releases | ||
pmurias | sorear: i'm not knowledgable enough about the perl5 CPAN to contribute to the cpan6 design | ||
but 1600 UTC seems okish | 09:05 | ||
moritz_ | and we want end users to use R* | ||
pmurias | sorear: but if #cpan6sketch is logged it doesn't matter much for me | ||
smash_ | moritz_: reading release_guide.pod, yeap.. makes sense | 09:06 | |
sorear | pmurias: I am assembling two groups of people: people who are experienced in building installer toolchains, and people who want to ask questions of the first group in real time | ||
moritz_ | I can make #cpan6sketch logged | ||
sorear | pmurias: my candidate list for the second group is pmurias colomon jnthn moritz_ TimToady szabgab dukeleto sorear | 09:07 | |
my candidates for the first list are Alias_ ingy | |||
moritz_ | sorear: don't forget masak | ||
sorear | masak: ping, you're invited too | ||
(really, anyone is invited if they fit into one or the other group) | |||
erp. masak isn't even here | 09:08 | ||
moritz_ | phenny: tell masak please see irclog.perlgeek.de/perl6/2010-08-20#i_2726521 and comment | ||
phenny | moritz_: I'll pass that on when masak is around. | ||
moritz_ | I've registered #cpan6sketch, justin case | 09:09 | |
09:09
tadzik joined
09:10
_ilbot2 left,
_ilbot2 joined,
ChanServ sets mode: +v _ilbot2
|
|||
sorear | Alias_ pinged mst, xdg, klapperl, rjbs from #toolchain for the first group | 09:10 | |
09:11
_madmax_ joined
09:12
_ilbot2 left,
_ilbot2 joined,
ChanServ sets mode: +v _ilbot2
|
|||
sorear | std: /<[a .. c .. e]>/ | 09:16 | |
p6eval | std 32065: OUTPUT«===SORRY!===Range missing start character on the left at /tmp/QlZasYoO55 line 1:------> /<[a .. c ..⏏ e]>/Check failedFAILED 00:01 117m» | 09:17 | |
smash_ | mathw++ # release | ||
mathw | I've picked up more karma in the last 24 hours than in my entire time in the Perl 6 community I think :) | ||
09:18
PacoLinux left
09:19
masak joined,
milki left
|
|||
moritz_ | ttjjss.wordpress.com/2010/08/09/so-...-6-module/ I've missed this post, so I put it here in case others have missed it too | 09:20 | |
we really should have a manual input option for planetsix | |||
tadzik | that reminds me, I still haven't fixed this You all the time in this post | 09:22 | |
sorear | moritz_: that thing about <-foo> troubles me, I thought character classes could be comuted statically | ||
moritz_ | "statically"? | ||
I'd be surprised if they followed different dispatch semantics than ordinary subrules | 09:23 | ||
which would mean you can only get them dynamically anyway | |||
09:23
timbunce left
|
|||
masak | character classes are computed statically. | 09:24 | |
phenny | masak: 09:08Z <moritz_> tell masak please see irclog.perlgeek.de/perl6/2010-08-20#i_2726521 and comment | ||
masak | they doesn't dispatch, they evaporate into more basic constructs. | ||
moritz_ | so there's no way to override <alpha>? | ||
masak | <alpha> is a subrule, not a charclass. | ||
09:24
wamba joined
|
|||
moritz_ | ok <+alpha> | 09:24 | |
masak | that's also a subrule. | 09:25 | |
moritz_ | <-alpha> ? | ||
:-) | |||
masak | :) | ||
moritz_: re #cpan6sketch, I'll happily attend. these things interest me, and it's fascinating to see the big minds arrive at plausible infrastructures. -3h from #phasers works much better than +4h. | 09:27 | ||
moritz_ | masak: great | ||
masak | ok, someone please remind me: how do I use gdb to produce a stacktrace again? | 09:28 | |
moritz_ | gdb $excutable | ||
run @arguments | |||
wait for the segfault | |||
bt | 09:29 | ||
masak | grazie. | ||
moritz_ | prego | ||
tadzik | is #cpan6scetch open for listeners? | ||
moritz_ | sure | 09:30 | |
tadzik | so when is it? | ||
moritz_ | we're still trying to get people together | ||
09:31
Clem_Chong left
|
|||
smash_ | me and ambs wrote an article about using Perl testing ecossystem as a non formal certification approach for software certification, it has some nice insights about CPAN | 09:31 | |
pmurias | smash_: link? | 09:32 | |
smash_ | (might be worth reading for people tinkering about cpan6) | ||
pmurias: sorry, not public yet.. but it will be asap | |||
frettled | smash_: wot, someone other than me thinks that avoiding the Linux distribution screwups of the early 2000's is a good thing? :D | 09:33 | |
09:33
drbean left,
Mowah left
|
|||
smash_ | or i can e-mail it to interesteds asap | 09:33 | |
frettled: hehe | 09:34 | ||
smash_ afk & | 09:35 | ||
sorear | so I guess it looks like 1600UTC is the best time | 09:38 | |
sorear will need to get up early for that | |||
pugssvn | r32066 | moritz++ | [t/spec] unfudge tests for match object non-flattening | 09:39 | |
sorear | masak: If <-alpha> is a subrule, what's <isPc+xdigit>? What about <[ \w ]-[a .. m]>? | 09:41 | |
masak | sorear: the former is an alternation of two subrules. the latter is a concat of two charclasses (reversed), one of which is zero-width and inverted in meaning. | 09:42 | |
sorear: I have an unpublished blog post about just that, if you're interested. | 09:43 | ||
sorear | much so | ||
I'm implementing charclasses now | |||
masak | suspected that :) | ||
sorear: github.com/masak/7-wonders/blob/mas...harclasses | |||
moritz_ | masak: are you preparing for another November full of blogging? :-) | 09:45 | |
TiMBuS | is \s the same as <.ws> in a regex? because adding a \s in a negated character class does not do what i mean | 09:46 | |
masak | moritz_: more like cringing from it, knowing that I probably will. :P | ||
moritz_: that blog post is part of a series that I planned to publish around last Christmas. | |||
TiMBuS | <-space + [others to exclude]> seems to be what i need, but that's lame | 09:47 | |
moritz_ | TiMBuS: no. <.ws> is something completely different | ||
TiMBuS | oh. well <-[\s]> wont match characters on a boundary last I checked | ||
moritz_ | "on a boundary" ? | ||
09:48
cmadsen1 joined
|
|||
TiMBuS | start/end of a string | 09:48 | |
masak | of course it will. | ||
rakudo: say "foo" ~~ / <-[\s]> / | 09:49 | ||
moritz_ | a character class always matches exactly one character | ||
p6eval | rakudo 90637b: OUTPUT«f» | ||
masak | rakudo: say "foo" ~~ / <-[\s]> $ / | ||
p6eval | rakudo 90637b: OUTPUT«o» | ||
masak | er, well. | ||
rakudo: say "bar" ~~ / <-[\s]> $ / | |||
p6eval | rakudo 90637b: OUTPUT«r» | ||
TiMBuS | that's odd | ||
masak | no, it's very regular. | ||
TiMBuS | heh | ||
09:51
milki joined,
lucs left
|
|||
ruoso | pmurias, hi | 09:51 | |
pmurias | ruoso: how is the evaluation of my gsoc project? | 09:52 | |
anything besides filling the survery (already did that) that i need to do? | 09:53 | ||
ruoso | i think that's all... | 09:54 | |
smash_ back | |||
ruoso | pmurias, you got a pass, anyway.... | 09:55 | |
pmurias | thanks | ||
ruoso | the project is incredibly on track to the initial proposal | ||
bbkr | new compiler! \o/ | 09:59 | |
sorear | masak: Cute, but I don't see how it's possible to make it work sanely with LT | ||
M | 10:00 | ||
|| and <before> are both rather LTM-damaging operators | |||
masak | sorear: that's true. this is how PGE solved it. | ||
sorear: note that it doesn't explicitly use <before>, a quite expensive operation in PGE. | 10:01 | ||
sorear | Why is before expensive in PGE? | ||
Also, it doesn't get to take advantage of my shiny new CClass.pm module | 10:02 | ||
masak | because it takes as an argument the nested regex in text form. | ||
sorear | !!! | ||
masak | so it needs to compile it at runtime. | ||
(it caches it, though) | |||
sorear | Which can evaluate any sequence of +/- literal character classes, even with \w and stuff, in O(log n) time | ||
masak | sorear: this is consistent with <before> being "just another subrule without any special perks" | 10:03 | |
moritz_ | I guess <before> needs to be special | ||
10:04
lestrrat is now known as lest_away
|
|||
sorear | <before> is absolutely special | 10:04 | |
moritz_ | pmichaud said as much in pisa | ||
sorear | it's the only rule that doesn't instantly kill LTM when used with arguments | ||
masak | no, we discussed whether <before> should be made special. | ||
or maybe have one or two special forms. | |||
10:05
ocean-city joined,
ocean-city left
|
|||
masak | seems it's important that it be overridable. | 10:05 | |
sorear | That doesn't make sense | ||
moritz_ | you can always alter the parser | ||
sorear | Well | ||
Overridable in a slang, maybe | |||
masak | we still have things left to discuss, it seems. | ||
moritz_ | but fact is that <?before $rule> needs to know at compile time that $rule is being compiled differently | ||
bbkr | Pisa build identifies on -v as "version 2010.07" ? | ||
TiMBuS | oooh ok. found the issue. | 10:06 | |
moritz_ | :( | ||
masak | I'd like to see a concrete proposal that enumerates and solves the current problems with <before>. | ||
moritz_ | bbkr: maybe the tarball was built before it was tagged? | ||
TiMBuS | rakudo: " a " ~~ / <-[\s]> /; $/.Str.perl.say | ||
p6eval | rakudo 90637b: OUTPUT«" "» | ||
TiMBuS | \s doesnt work in char classes | ||
or, something | |||
masak | TiMBuS: known bug. | ||
moritz_ | .o diaresis | 10:07 | |
phenny | moritz_: Sorry, no such service. See wiki.github.com/nslater/oblique/ | ||
sorear | Basically I'm trying to implement real Perl 6 grammars in a way that isn't dog slow | ||
moritz_ | .u diaresis | ||
phenny | moritz_: Sorry, no results for 'diaresis'. | ||
TiMBuS | aaaaa why didn't you say :[ | ||
masak | sorear: that sounds highly interesting. | ||
sorear | masak: my approach so far has been "take viv, make it generate C# instead of Perl" | 10:08 | |
the only significant change I've made was to use nested loops for backtracking instead of lazy lists | |||
masak | and backtracking works how with nested loops? | 10:10 | |
sorear | for my $a (1,2,3) { for my $b (1,2,3) { for my $c (1,2,3) { say "trying $a $b $c" } } } | 10:11 | |
viv couldn't do anything liks this because Perl 5 doesn't have a way to return a result from inside without cutting all the loops | |||
for me, that's just gather and take | |||
10:12
dual left
|
|||
masak | ...which is equivalent to lazy lists :) | 10:12 | |
sorear | yes | 10:13 | |
really, everything is equivalent if you look hard enough | |||
masak | I don't want to look that hard. | 10:14 | |
pugssvn | r32067 | moritz++ | [t/spec] allow -e testing with Test::Util | 10:15 | |
r32068 | moritz++ | [t/spec] basic test for -e | 10:17 | ||
moritz_ | r32067 was hard debugging work :/ | 10:18 | |
dalek | kudo: 81b4490 | moritz++ | t/spectest.data: run our first S19 test file |
10:20 | |
smash_ | can i volunteer for an upcoming devel release ? | ||
10:22
tadzik left
|
|||
sorear just tried to use $foo[1, 2] to slice an array in Perl 5 | 10:22 | ||
my first 6->5 braino \o/ | |||
moritz_ | smash_: sure; next month is still vacant | ||
smash_ | moritz_: hmm, next month is not very good for me, moving to another city | 10:23 | |
moritz_ | smash_: October is taken by PerlJam++, so November and December (23th!) is still vacant | ||
smash_ | moritz_: either November or December is fine | 10:26 | |
masak | wow, is it true? we'll have a Rakudo release for Christmas? | ||
moritz_ | masak: do you want to claim November? :-) | ||
masak | heck, why not? :) | ||
10:26
araujo left
|
|||
moritz_ | smash_: then you get the Christmas release :-) | 10:27 | |
smash_ | sure | ||
mathw | yay Christmas | ||
I'll do next month | |||
10:28
meppl joined
|
|||
moritz_ | mathw: got a taste for it, eh? :-) | 10:28 | |
mathw | might as well | ||
smash_ | hehe | ||
mathw | while I remember how | ||
x3nU | when will be next rakudo star released? :) | ||
masak | x3nU: next week. | 10:29 | |
I might be able to get pls in shape before that. | 10:30 | ||
x3nU | will it consist of current rakudo or something with never with fixes from repo? | ||
newer* | |||
moritz_ | x3nU: it will include yesterday's release | 10:31 | |
x3nU | thanks for info | ||
dalek | kudo: 6a3ec07 | moritz++ | docs/release_guide.pod: [release_guide] volunteers for November (masak++) and Dezember (smash++) |
10:32 | |
kudo: e45bf69 | moritz++ | docs/release_guide.pod: [release_guide] mathw++ has volunteered for next month; add a few more planned release dates |
|||
masak | oh, so that's how "December" is spelled in German? :) | 10:33 | |
10:34
araujo joined,
araujo left,
araujo joined,
McFist left
|
|||
moritz_ | masak: yes. Ooops. | 10:34 | |
masak | I'm so glad the world has so many languages. it makes life more interesting. | 10:35 | |
dalek | ecza: 4102102 | sorear++ | / (2 files): Implement regex backslash escapes |
10:36 | |
ecza: dea7a54 | sorear++ | / (2 files): Refactor handling of backslash escapes |
|||
ecza: eaea3cb | sorear++ | / (3 files): Add a character class engine |
|||
ecza: 7ec8a8d | sorear++ | src/Niecza/Actions.pm: Basic parser handling for character classes I think a spec clarification is needed to generate the ASTs, though. |
|||
moritz_ | phenny: tell pmichaud please review the release_guide branch on github, and merge (or cherry-pick) if you approve | 10:37 | |
phenny | moritz_: I'll pass that on when pmichaud is around. | ||
jnthn | oh hai I just read on Twitter that Perl 6 is has releaes in December?! \o/ | 10:39 | |
;-) | |||
masak | wow! that's great! | 10:40 | |
:P | |||
10:40
pnate joined
10:44
_madmax_ left
|
|||
sorear out. | 10:54 | ||
bbkr | rakudo: say ::$1 # what does double colon as prefix do in Rakudo? STD doesn't parse it. | 10:57 | |
p6eval | rakudo e45bf6: OUTPUT«===SORRY!===ResizablePMCArray: Can't pop from an empty array!» | ||
bbkr | but in Rakudo it's runtime error | ||
10:59
ruoso left
|
|||
jnthn | rakudo: say "parsed"; say ::$1 | 10:59 | |
p6eval | rakudo e45bf6: OUTPUT«===SORRY!===ResizablePMCArray: Can't pop from an empty array!» | ||
jnthn | No, it's a parse-time error | 11:00 | |
Just not a very good one. | |||
bbkr | jnthn: thanks. I'll create "LTA error message" ticket | ||
jnthn | Thanks. :-) | 11:02 | |
11:03
pmurias left
|
|||
bbkr | I'm watching your YAPC signatures talk. are slides available for download somewhere? video is too blur to read'em. | 11:03 | |
jnthn | www.jnthn.net/papers/2010-yapc-eu-signatures.pdf | ||
bbkr | jnthn: thanks! | 11:04 | |
11:14
blixtor joined
|
|||
blixtor | hi, quick question. Why does perl6 -e "sub foo { my $s = 0 }" complain about Malformed my at line 1, near "= 0 }"? | 11:15 | |
11:17
oyse joined
11:18
lest_away is now known as lestrrat
|
|||
huf | rakudo: sub foo { my $s = 0 } | 11:18 | |
p6eval | rakudo e45bf6: ( no output ) | ||
huf | blixtor: where? | ||
blixtor | huf: executing from the command line | 11:19 | |
huf: calling perl6 binary with -e option | |||
huf | doesnt complain for me | ||
blixtor is using rakudo-star-2010.07 | |||
huf | me too | 11:20 | |
2010.07-47-g9fd5eaa | |||
jnthn | Platform? | ||
blixtor | ubuntu 10.04 | ||
it works fine if I put it in a file | |||
gfldex | blixtor: try 'echo "i has a $s"' in your terminal :) | 11:22 | |
huf | oh POOP :D | ||
yeah, of course it complains if you put it in "" :) | |||
blixtor | yeah, I just realised that | 11:23 | |
d'oh | |||
jnthn | :-) | 11:25 | |
blixtor | that's what you get when you come from a different problem and try to simplify ... | ||
masak | no, that's what you get when you come from a different problem, try to simplify, and inadvertently change the problem in the process. | 11:28 | |
there's a difference there. | |||
blixtor | agreed, I didn't simply very successfully, as the simplification was supposed to still show the problem and not introduce a new one | 11:29 | |
now to my original point | |||
perl6: sub foo { my $s; for 1..3 { $s += $_ } } ; say foo() | |||
p6eval | rakudo e45bf6: OUTPUT«666» | 11:30 | |
..pugs: OUTPUT«» | |||
blixtor | what is the rationale for this returning '666' | ||
jnthn | We embeded the devil in Rakudo. | ||
Also, for in Perl 6 is just a synonym for "map" | 11:31 | ||
blixtor | and it's leaking from time to time, I see ;) | ||
jnthn | So you're doing something like | ||
(1..3).map: { $s += $_ } | |||
Which returns $s since that's the last thing you touched | |||
blixtor | ahh, ok, that explains the difference to perl5, which doesn't return anything | ||
jnthn | So you end up with a list with $s in it 3 times | ||
Yes, it's a difference from Perl 5. | 11:32 | ||
blixtor | thanks | ||
masak | why doesn't that return 136, though? | ||
that's what I'd expect. | |||
sorear | masak: because Rakudo map is rw | ||
it's not supposed to be | |||
masak submits rakudobug | |||
it's in there, I'm sure. | |||
sorear | in theory, take should decontainerize | 11:33 | |
masak | but it's nice to have this example on file. | ||
sorear | like return | ||
masak | aye. | ||
jnthn | erm | ||
what? | |||
We never returned or taked here | |||
masak | true. | ||
which is why it's a different ticket, I now realize :) | 11:34 | ||
sorear | jnthn: map is implemented using take | ||
jnthn | sorear: No. | ||
sorear: Well, it *may* be. | |||
sorear: But it certainly doesn't have to be. | |||
takadonet | morning all | ||
jnthn | (That is, nothing in the spec says it needs to be.) | ||
morning, takadonet | 11:35 | ||
masak | someone with privs should disable the account 'tos1' on rakudo.org. its password just went out on p6c. | ||
jnthn | Anyway, it maybe should be decontainerizing somewhere here too | ||
sorear | jnthn: well, in any case, the same underlying LTA iscausing both | ||
masak | takadonet: \o | ||
jnthn | I'm just not sure where. | ||
Anyway, a ticket does no harm and makes sure we don't forget the issue. | 11:36 | ||
11:38
cozmic left
|
|||
masak | rakudo: my @a = 1, 2, 3; @a[1] := @a; say @a[1] | 11:47 | |
p6eval | rakudo e45bf6: ( no output ) | ||
masak | rakudo: my @a = 1, 2, 3; @a[1] := @a; say @a.perl | ||
p6eval | rakudo e45bf6: OUTPUT«maximum recursion depth exceeded in 'Block::count' at line 5758:CORE.setting in 'Block::count' at line 5762:CORE.setting in 'Any::join' at line 1 in 'Array::perl' at line 2828:CORE.setting in <anon> at line 2828:CORE.setting in 'Any::join' at line 1 in | ||
..'Array::perl' a… | |||
jnthn | You asked for it. :P | 11:49 | |
masak | Data::Dumper handles this well. | 11:50 | |
.perl should be a built-in Data::Dumper. | |||
moritz_ | fwiw, we have a ticket for that already | 11:51 | |
masak | we do indeed. | ||
just being a bit jaffa4 about it. | |||
sorear | ooh talked to xdg and BinGOs on #toolchain@irc.perl.org, they're both +1 to #cpan6sketch | ||
masak | \o/ | 11:52 | |
sorear++ | 11:54 | ||
12:01
envi^home joined
|
|||
daxim | unsolicited personal opinion: piggyback the existing infrastructure as much as possible - cpan6.org is a rewrite and ∴ a spolskian autofail | 12:14 | |
masak | I think piggybacking is where most people's minds are headed. | 12:15 | |
moritz_ | aye; re-use as much as possible | ||
it seems the only working recipe to success is to get something running as soon as possible | |||
and gradually improve from there | |||
I plan to | |||
A) teach proto to install from tarballs | 12:16 | ||
masak | :/ | ||
moritz_ | B) investigate how to get p6 tarballs onto the existing CPAN | ||
C) build some kind of search interface | |||
masak hunkers down and finishes pls | |||
moritz_ | D) ... | 12:17 | |
jnthn | pls do ;-) | ||
moritz_ | E) Profit | ||
daxim | D) would be metadata, then | ||
jnthn | +1 to re-using stuff that's already known to work | ||
moritz_ | daxim: I'm sure that all steps involve metadata, in some way | ||
masak | threatening to use proto because it works is both (a) sensible, and (b) a good way to get me to finish pls. | 12:21 | |
12:24
drbean joined
12:26
patrickas joined
|
|||
masak | hm. wonder if the answer to the recurring ruminations about a better, more built-in test syntax is to be found in a specialized very-close-to-p6 DSL? | 12:27 | |
like good science fiction, tweak just one thing. :) | |||
patrickas | Hello All, | ||
RFC on series refactor code: gist.github.com/530674 :-) | 12:28 | ||
12:29
blixtor left
|
|||
moritz_ | does it pass all the tests? | 12:29 | |
patrickas | yap | ||
moritz_ | \o/ | ||
patrickas | except one which I think is wrong | ||
and it passes an extra fudges dozen of tests | |||
plus a coupleo f cases with no tests | |||
masak | which one do you think is wrong? | ||
patrickas | let me check | ||
masak | did you write tests for those cases with no tests? :) | 12:30 | |
patrickas | rakudo: use Tests; is (2, -4, 8 ...^ -32).join(', '), '2, -4, 8, -16, 32', 'exclusive alternating geometric series (not an exact match)'; | ||
p6eval | rakudo e45bf6: OUTPUT«===SORRY!===Unable to find module 'Tests' in the @*INC directories.(@*INC contains: lib /home/p6eval/.perl6/lib /home/p6eval//p2/lib/parrot/2.7.0-devel/languages/perl6/lib .)» | 12:31 | |
patrickas | this one | ||
masak no ... not yet ... I'll have to understand the spec well enough first ... | 12:32 | ||
masak | you implemented something without understanding the spec first? :P | ||
patrickas | the (currently fudged) test expects 32 to be the last item | ||
masak yes! :-) | |||
moritz_ | patrickas: I think it conforms to current spec, which says that sign-alternating series consider their limit only by absolute value | ||
I might be wrong those | 12:33 | ||
patrickas | yes but since this is ...^ it should not return the limit | ||
and if you take absolute value | |||
it should not return 32 | |||
moritz_ | oh, right | ||
sorry, I mis-read | |||
patrickas | rakudo: say (1 ... {$_ == 5} ); | 12:36 | |
p6eval | rakudo e45bf6: | ||
..OUTPUT«(timeout)101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130… | |||
oyse | I am playing around with blizkost and the Configure.pl file requires Perl 5.10. Any reason for that? I just ran it with Perl 5.8.9 (by removing use 5.010;) and it seems to work just fine. | 12:37 | |
moritz_ | oyse: does it also compile and test fine? | ||
note that blizkost has some serious requirements on the perl5 it integrates with | 12:38 | ||
oyse | moritz_: yes | ||
moritz_ | wow, I'm amazed | ||
patrickas | masak: that's the case I am talking about, in the new code I pass the last item to the $limit which is Code and halt the series if it returns True... which is better than our current behaviour .... but I have no idea if that's spec or not ... so i'll have to read the spec on that add tests and implement it correctly. | ||
bbkr | rt.perl.org/rt3/Ticket/Display.html?id=66152 - this ticket still has no "closable point" defined. and I'm not sure if we should test against used memory amount after all, since this will be platform-dependent and there is no threshold which is considered correct. | 12:39 | |
oyse | Running on a Ubuntu Hardy machine it seems to compile and test just fine. | ||
moritz_ | bbkr: just because it's not testable right now doesn't mean there's no point to the ticket | 12:40 | |
oyse: I'm not really into blizkost too much... maybe jnthn or sorear know | 12:41 | ||
pmichaud | good morning, #perl6 | 12:47 | |
phenny | pmichaud: 10:37Z <moritz_> tell pmichaud please review the release_guide branch on github, and merge (or cherry-pick) if you approve | ||
moritz_ | good morning pmichaud | ||
jnthn | moning, pmichaud | 12:48 | |
*morning | |||
patrickas | hello pmichaud | ||
12:49
ruoso joined
|
|||
pmichaud | moritz_: what's the significance of tagging before tarballing? | 12:50 | |
moritz_ | pmichaud: so that the release knows its own version | ||
pmichaud | I don't understand. afaik, the tags aren't stored in the tarball. | 12:51 | |
moritz_ | wait... I might have misunderstood how the --version thing works for releases anyway | ||
so how does the tarball know its version? | |||
pmichaud | There *is* probably a step still missing from the guide -- one needs to update the VERSION file. | ||
That's my omission/fault. | |||
moritz_ | ah | 12:52 | |
then I'll remove the branch | |||
we should probably make another tarball with an updated VERSION file | |||
masak | morning, pmichaud | ||
patrickas | pmichaud: I made sub infinite-series as lazy as I could but the code is now a bit more complicated | ||
pmichaud | (re: for loops don't de-containerize) actually, I suspect it's the block that needs to de-containerize. | ||
patrickas: making it lazy should probably simplify things, not make them more complex. | 12:53 | ||
at least, that's what usually happens | |||
masak | today's autopun sighting: twitter.com/briandgregory/status/21660915729 | ||
gfldex | might it be that a CPAN/Perl6-Module got more or less the same properties and raises the same questions then a distribution package like any .deb? | ||
or shorter: do you try to reinvent the wheel? | |||
moritz_ | gfldex: .deb is for binary distributions, not for source distributions | 12:54 | |
12:54
fod joined
|
|||
patrickas | pmichaud: then I messed up :-( | 12:55 | |
pmichaud | patrickas: I have been known to be wrong. :-) | ||
gfldex | moritz_: very true, there are source packages as well | 12:56 | |
moritz_ | gfldex: yes, but they don't offer the same level of comfort as the binary .deb files | 12:57 | |
and they have some assumptions that don't hold true for Perl modules | |||
pmichaud | and iiuc they're quite unix/linux centric | ||
jnthn | pmichaud: So essentially we always de-containerize the result of a block? | ||
moritz_ | for example with .deb, you can declare all your dependencies | 12:58 | |
pmichaud | jnthn: yes, unless the block/routine is declared "is rw" | ||
moritz_ | but how do you declare non-perl dependencies for perl modules in a portable way? | ||
across different linux distributions, macos, windows and $other_weird_stuff | 12:59 | ||
jnthn | pmichaud: OK. | ||
12:59
kaare_ left
|
|||
patrickas | pmichaud: The thing that complicated it for me was the need to ignore the last item in the array in some cases. Before I'd just copy the whole array, pop the last item if needed and work with it... now I have to work around not being able to touch the last item until I absolutely must. Anyways I guess I'll but colomon about it :-) | 13:00 | |
s/but/bug/; | |||
moritz_ | hm | 13:01 | |
maybe I misunderstand ...^ | |||
but I thought the difference was "execlude the item that comparse equal to the end point" | |||
and not "remove the last element" | |||
pmichaud | moritz_: we're talking about the lhs | ||
moritz_ | so I don't see a need for the look-ahead | ||
oh | |||
pmichaud | 1,2, { ... } ... $end | 13:02 | |
the lhs is 1,2,{...} | |||
patrickas: if it makes it cleaner for now, I'd go with a copy then | |||
patrickas | pmichaud: I changed the code and have no problem with it ... I'm just not conformtable being the one to decide if what I did is right or messy or wrong! | ||
pmichaud | I suspect it's reasonable to say that the lhs gets evaluated a bit eagerly | 13:03 | |
(rule compositions): <+a+b> is [ <a> | <b> ] | 13:05 | ||
<+a-b> is [ <!b> <a> ] | |||
patrickas | For comparision: gist.github.com/530674/a12bd656d0e...bdc955b56f line 61 VS gist.github.com/530674 line 63 | ||
pmichaud | <-b> is [ <!b> . ] | ||
13:05
timbunce joined
13:08
orafu left
13:09
orafu joined
|
|||
pmichaud | actually, more precisely: | 13:09 | |
<+a+b> is [ <.a> | <.b> ] | |||
<+a-b> is [ <!b> <.a> ] | |||
<-b> is [ <!b> . ] | 13:10 | ||
13:10
oyse left
|
|||
pmichaud | (remake tarball with update VERSION) -- yes, that's probably a good idea. | 13:12 | |
moritz_ | mathw: can you do that? or should I? | 13:13 | |
pmichaud | I'm also okay with leaving it as-is, too. | ||
jnthn: what's the desired way of detecting when a routine "is rw"? | 13:14 | ||
moritz_ | well, it'll make it harder to distinguish R*1 from R*2, no? | ||
pmichaud | moritz_: I can always fix it in the R* tarballs. | ||
jnthn | pmichaud: Do we need to know at compile time? | ||
13:15
jhuni left
|
|||
pmichaud | jnthn: No, we don't *have* to know at compile time. | 13:15 | |
moritz_ | pmichaud: ok, then I won't bother | ||
jnthn | pmichaud: OK, but will it be helpful to? | ||
pmichaud | might save a call. | ||
13:15
molaf joined
|
|||
pmichaud | is there an easy way to find out at runtime? | 13:15 | |
jnthn | pmichaud: Worth it then...since this is going to hit every single block exit... | ||
Well, it'd be a trait so it'd be a .rw() call on the block in the ideal world. | |||
PerlJam | good $localtime #perl6 | 13:16 | |
jnthn | But it'd be nice to save that if we can. | ||
13:16
molaf left
|
|||
jnthn | There is already some stuff in Actions.pm related to handling traits at compile time rather than emitting the loadinit application code. | 13:16 | |
frettled | jani@knuth ~/prog/t2/rakudo >./perl7 | ||
bash: ./perl7: No such file or directory | |||
Indeed. | |||
jnthn | Note taht when we have SCs we'll likely do all of them at compile time... | ||
pmichaud | compile-time traits handling is primarily on variables atm, yes? | 13:17 | |
frettled | PerlJam: «good» is a nice keyword that so far is unused, what can we do about that? :) | ||
jnthn | pmichaud: yes, and parameters | 13:18 | |
pmichaud | or do we handle "is export" at compile-time? | ||
jnthn | pmichaud: No, that is normal. | ||
pmichaud | no, I think that's load/runtime | ||
okay. | |||
PerlJam | frettled: you'll have to talk to TimToady about that. :) | ||
jnthn | But I think I factored that lot to be general. | 13:19 | |
pmichaud | jnthn: actually, I suspect that it may end up being a call anyway | ||
bbkr | rt.perl.org/rt3/Ticket/Display.html?id=73328 - is the error message awesome enough that it can be taken for tests? if so - what should be tested? simply eval_dies_ok or also check error message? | ||
pmichaud | so compile-time detection isn't going to be super helpful | ||
jnthn | pmichaud: OK | ||
pmichaud | so, if you or someone could get "is rw" working on blocks, I can handle the decontainerization :-) | 13:20 | |
jnthn | pmichaud: What do you need? | ||
pmichaud | ...or does it work already? ;-) | ||
jnthn | pmichaud: just for the block to have an .rw method? | ||
pmichaud | rakudo: sub foo() is rw { ... }; | ||
p6eval | rakudo e45bf6: OUTPUT«===SORRY!===No applicable candidates found to dispatch to for 'trait_mod:<is>'. Available candidates are::(Mu $child, Role $r):(Routine $r, Any :default($default)!):(Code $block, Any $arg?, Any :export($export)!):(Mu $child, Mu $parent):(Mu $type where ({ ... }), Any | ||
..:rw($rw)… | |||
jnthn | oh, easy | ||
pmichaud | then how do I determine that &foo "is rw" | 13:21 | |
check for "can('rw')"? | |||
jnthn | rakudo: our multi trait_mod:<is>(Routine $r, :$rw!) { #`set rw` }; sub foo() is rw { ... }; | ||
p6eval | rakudo e45bf6: OUTPUT«===SORRY!===Alphanumeric character is not allowed as a delimiter at line 22, near "set rw` };"» | ||
13:21
timbunce left
|
|||
jnthn | rakudo: our multi trait_mod:<is>(Routine $r, :$rw!) { #(set rw) }; sub foo() is rw { ... }; | 13:22 | |
p6eval | rakudo e45bf6: OUTPUT«===SORRY!===Unable to parse blockoid, couldn't find final '}' at line 22» | ||
jnthn | rakudo: our multi trait_mod:<is>(Routine $r, :$rw!) { say "ok" }; sub foo() is rw { ... }; | ||
p6eval | rakudo e45bf6: OUTPUT«===SORRY!===Could not find sub &say» | ||
jnthn | ffs | ||
pmichaud | rakudo: our multi trait_mod:<is>(Routine $r, :$rw!) { #`(set rw) }; sub foo() is rw { ... }; | ||
p6eval | rakudo e45bf6: ( no output ) | ||
jnthn | Right | ||
pmichaud | rakudo: our multi trait_mod:<is>(Routine $r, :$rw!) { #`(set rw) }; sub foo() is rw { ... }; say &foo.can('rw'); | ||
p6eval | rakudo e45bf6: OUTPUT«» | ||
pmichaud | rakudo: our multi trait_mod:<is>(Routine $r, :$rw!) { #`(set rw) }; sub foo() is rw { ... }; say ?&foo.can('rw'); | ||
p6eval | rakudo e45bf6: OUTPUT«0» | ||
jnthn | pmichaud: You could have an attribute $!rw in Code and have a private method that sets that | ||
pmichaud | oh, and the trait sets it? | 13:23 | |
jnthn | pmichaud: You could do it by mixing in a role too that overrides rw with something that returns true | ||
pmichaud: Yeah. | |||
pmichaud | which is better? | ||
jnthn | pmichaud: Attr is way cheaper than the role mix-in. | ||
pmichaud | then attr is what we do :-) | ||
jnthn | Like, *way* cheaper ATM. | ||
We're missing an optimization right now. | |||
mathw | Version update? I'm sure that wasn't in the release_guide.pod | ||
jnthn | That'd make this cheaper. | ||
So go attr. | |||
pmichaud | mathw: I'm sure it wasn't also. | ||
mathw | Thus it's not my fault | 13:24 | |
pmichaud | mathw: that's entirely my fault. | ||
mathw | :P | ||
moritz_ | "yehova, yehova" | ||
pmichaud | votes: re-do the tarball, or leave it as is? | ||
moritz_ | [X] don't care | ||
mathw | that depends | ||
jnthn | pmichaud: Just get it right for the Star release. | ||
pmichaud | okay, will get it right for Star. | ||
mathw | if it's going to be in Star in its current form, that's bad | ||
pmichaud | No, it'll definitely be correct in Star. | 13:25 | |
mathw | yes, get it right for Star | ||
jnthn | We're not encouraging people to use the compiler releases. | ||
pmichaud | okay. | ||
jnthn | Well, not most people. | ||
pmichaud | I have to take care of a couple of things here, then will fix the release guide. | ||
mathw | pmichaud++ | ||
[particle] | what about doing a point release for the rakudo compiler, and using that in star? | ||
moritz_ | well, who would use those? developers build from source, end users build the 'star' distri | ||
13:26
jferrero joined
|
|||
[particle] | there's no 'failure' here, mistakes and bugs happen, and there is a process in place to create a release. | 13:26 | |
13:26
uniejo left
|
|||
[particle] | it's not a lot of work, either. | 13:26 | |
pmichaud | packagers use the tarballs | 13:27 | |
[particle] | yes, you'd need to create a new tarball | ||
pmichaud | I'm inclined to not create a new tarball this time. I think it invites more questions than it answers. | ||
[particle] | if your intent is to use a rakudo compiler release inside the star distro... | ||
pmichaud | clearly I can use a release and "patch" it for the distro. Happens all the time in packaging. | 13:28 | |
[particle] | if you're not that concerned about using the compiler release... | ||
yes, i suppose the simplest thing to do is fix the thing people are likely to use | |||
and chalk this bug up to a learning experience. | |||
pmichaud | if/when we have more people creating distros from the tarballs, I'd be inclined to create a patched release. | 13:29 | |
[particle] | aye, that's a fair point | ||
i know i've made mistakes in parrot releases, and uploaded fixed tarballs to cpan (back in the day... 0.4.13 maybe?) | 13:30 | ||
back then, we didn't have the cover of a distro to hide behind ;) | |||
[Coke] | I think a good indicator might be "if someone files a bug report" | 13:38 | |
(what was the bug?) | |||
13:40
agentzh left
13:47
Holy_Cow joined
|
|||
patrickas | " The compiler may complain if it sees anything on the right that is not a literal " how does the compiler "complain" ? | 13:49 | |
ingy | mornings | ||
masak | ingy! \o/ | ||
jnthn | patrickas: Checking if the LHS node is a PAST::Val would probably do it. | 13:50 | |
er, RHS | 13:51 | ||
patrickas | jnthn ... I did the check ... I don't know how to "complain" officially ? does it mean warn ? fail ? | ||
print message to stderr ? | 13:52 | ||
moritz_ | complain = die | ||
PerlJam | patrickas: fail "Aaaiiiiggghhh"; # :-) | ||
moritz_ | if you do it in the actions, $/.CURSOR.panic($mesage) | ||
ah no, runtime | |||
patrickas | fail will do fine .... I was just confused with the terminology :-) | 13:53 | |
Thanks moritz_ PerlJam && jnthn :-) | |||
13:54
amkrankruleuen joined
|
|||
ingy | masak: :D | 13:54 | |
patrickas | Or in #perl6 parlance PerlJam++ moritz_++ jnthn++ :-) | ||
ingy is busy hacking in patch' living room in Cambridge ME | 13:55 | ||
MA | |||
patrickas | ME is where I am! | ||
ingy | :D | ||
masak: we need to work on that new yaml parser soon! | 13:56 | ||
13:56
snarkyboojum_ joined
|
|||
masak | ingy: agreed. I haz an exam on Tuesday. after that, I'm a free man again. | 13:56 | |
ingy | masak: I am free after Aug 28 | ||
masak | good, then after that. | ||
13:56
snarkyboojum_ left
|
|||
ingy | maybe a week from tomorrow | 13:57 | |
I get back to Seattle on 27th | |||
bbkr | rakudo: class Bool::True::X { method foo {say 666}}; say 1 ~~ Bool::True::X # this looks wrong, isn't it? | ||
p6eval | rakudo e45bf6: OUTPUT«===SORRY!===Smartmatch against True always matches; if you mean to test the topic for truthiness, use :so or *.so or ?* instead at line 22, near " Bool::Tru"» | ||
pmichaud | std: say 1 ~~ Bool::True::X | 13:58 | |
13:58
perlygatekeeper joined
|
|||
p6eval | std 32068: OUTPUT«===SORRY!===Undeclared name: 'Bool::True::X' used at line 1Potential difficulties: Smartmatch against Bool::True always matches; if you mean to test the topic for truthiness, please use :so or *.so or ?* instead at /tmp/l1KaAzeiOi line 1:------> | 13:58 | |
..say… | |||
pmichaud | feel free to file a std bug :) | ||
13:58
Italian_Plumber joined
|
|||
bbkr | pmichaud: at RT queue or there is some separate place for STD bugs? | 14:00 | |
pmichaud | RT queue is the only place I'm aware of atm. | ||
moritz_ | or use phenny to tell TimToady | ||
masak | the latter seems more effective to date. | 14:01 | |
moritz_ | btw I'm spectesting a build of rakudo 2010.08 but with corrected VERSION - should I upload if all tests pass? | ||
bbkr | how do I use phenny? | ||
pmichaud | moritz_: sure | ||
moritz_ | phenny: tell bbkr like this | ||
phenny | moritz_: I'll pass that on when bbkr is around. | 14:02 | |
bbkr | test | ||
phenny | bbkr: 14:01Z <moritz_> tell bbkr like this | ||
bbkr | aye :) | ||
masak | moritz_: why is the common practice never to do that? honest question. | ||
moritz_ | masak: never to do what? | ||
masak | re-upload on the same spot. | ||
ingy | masak: join #ingy | ||
moritz_ | to avoid confusion | ||
masak | I've only seen re-releases. | ||
pmichaud | because some people may have already copied the tarball | 14:03 | |
[Coke] | RT "Internal server error" | ||
pmichaud | and perhaps made sha1sums of what they expect | ||
in general, tarballs and releases ought to be immutable :-) | |||
moritz_ | should I upload as 2010.08-1 or so? | ||
pmichaud | 2010.08.01 | ||
or -1 might be okay | 14:04 | ||
moritz_ | it's not on the 1st August... | ||
which 2010.08.01 looks like, for a German at least | |||
pmichaud | packaging systems have trouble with hyphens in version numbers | ||
(e.g., .rpm) | |||
14:04
daxim left
|
|||
moritz_ | then I'll use -01 anyway | 14:04 | |
[Coke] | I would go with A if you can't put punctuation in there. | ||
pmichaud | it's more that .rpm reserves hyphen to mean something different. | 14:05 | |
PerlJam | "2010.08-1" is version 2010.08 patch 1 | ||
bbkr | phenny: tell TimToady that "class Bool::True::X{}; 1 ~~ Bool::True::X" on STD returns message about Smartmatch against True while it should pass as this is just regular smartmatch type check. | ||
phenny | bbkr: I'll pass that on when TimToady is around. | ||
pmichaud | PerlJam: I think .rpm might have trouble with that. | 14:06 | |
14:06
thebird left
|
|||
pmichaud | anyway, "-1" and not "-01" | 14:06 | |
moritz_ | we can also use .1 | ||
that way it's harder to confuse it with a date | |||
pmichaud | I'm okay with .1, I think. | 14:07 | |
moritz_ | and we don't plan to make >8 further point releases :-) | ||
pmichaud | sure, use .1 | ||
if we make more than 8 point releases in a month, we're doing something very wrong. | |||
(actually, if we make more than 8 point releases off of a single release, we're doing something very wrong :-) | 14:08 | ||
PerlJam | repeatedly! | ||
14:10
lucs joined
|
|||
moritz_ | github.com/rakudo/rakudo/downloads | 14:12 | |
done | |||
14:13
drbean left
|
|||
bbkr | moritz++ | 14:16 | |
masak just got opped on #ingy :) | 14:24 | ||
14:24
jferrero left
|
|||
moritz_ | rakudo: sub f {}; my $x := &foo; $x = 42; say "alive" | 14:27 | |
p6eval | rakudo e45bf6: OUTPUT«Could not find sub &foo in main program body at line 22:/tmp/BxUffGGnra» | ||
moritz_ | rakudo: sub f {}; my $x := &f; $x = 42; say "alive" | ||
p6eval | rakudo e45bf6: OUTPUT«Cannot modify readonly value in '&infix:<=>' at line 1 in main program body at line 22:/tmp/k4kvMA7U7r» | ||
moritz_ | rakudo: 2 = 4 | 14:31 | |
p6eval | rakudo e45bf6: OUTPUT«Cannot modify readonly value in '&infix:<=>' at line 1 in main program body at line 22:/tmp/0lGoD51sBE» | ||
moritz_ | anybody else finds the "at line 1" confusing? | ||
[Coke] | moritz_: ... isn't everything in an evalbot line on line 1? | 14:32 | |
moritz_ | [Coke]: no;  is translated into a newline | ||
[Coke]: and besides, p6eval adds a prelude to all rakudo programs anyway | 14:33 | ||
rakudo: die '' | |||
p6eval | rakudo e45bf6: OUTPUT«Died in main program body at line 22:/tmp/sdVxQR2g19» | ||
moritz_ | so the actual program starts at line 22 | ||
[Coke] | hokay. probably easier to be confused with a .p6 file. | 14:34 | |
jnthn | moritz_: It's an artefact of infix:<=> not being in the setting. | 14:38 | |
moritz_: It's kinda crappy | |||
moritz_: I can probably just get it not to print a line number if we hit an error in the PIR built-ins. | |||
moritz_ | jnthn: I'll experiment with making it invisible, and saying "in assignment" | ||
pmichaud | doesn't it just need to look for a non-existent 'line' annotation? | 14:39 | |
jnthn | That's also an option. | ||
pmichaud: Well, I think it is finding one somehow. | |||
Dunno how. | |||
pmichaud | it's finding a 'line 1'? | ||
moritz_ | a PIR line number? | ||
pmichaud | could be because of the way that setting is interleaved with the builtins | ||
jnthn | pmichaud: I guess so. Don't ask me how. :-) | ||
pmichaud: Right, something like that. | |||
There's still some improvements to be had in that area overall. | |||
moritz_ experiments with .annotate "invizible_frame" 1 | 14:40 | ||
pmichaud | we could manually add some annotations to Compiler.pir | ||
I'd rather change the "line" annotation than introduce a new one. | |||
moritz_ | we already have invizible_frame | ||
masak | jnthn: Twitter is over capacity again. probably your presentation being re-tweeted. | 14:41 | |
pmichaud | can we at least spell it correctly, then? ;-) | ||
jnthn | pmichaud: :P | ||
moritz_ | can haz correct speling? | ||
masak .oO( moritz_ has a 'z' surplus today ) | |||
dalek | kudo: 7e966fa | moritz++ | src/Perl6/Grammar.pm: don't carp on smart-matching against types that start with Bool::True::Something |
||
jnthn | masak: Hush, you'll make it a mame. :P | ||
moritz_ | masak: that one was copied&pasted | 14:42 | |
masak | jnthn: a mame? is that something that only mammals have? | ||
pmichaud | moritz_: the <!before \w> isn't needed. | ||
(in the Bool::True patch) | |||
moritz_ | pmichaud: ah right, covered by >> | ||
pmichaud | but we would need to check for hyphen or apostrophe | ||
14:42
takadonet left
|
|||
moritz_ | indeed | 14:43 | |
pmichaud | besides, having nested before's seems really.... evil. | ||
moritz_ | why? | ||
pmichaud | seems like there ought to be a much cleaner answer. | ||
jnthn | masak: no no, that's a *mane* | ||
masak | :) | 14:44 | |
moritz_ | pmichaud: like not using the first <?before>, and calling the rule from a <?before> block? :/ | ||
[particle] | on humans, it's called a mohawk | ||
14:44
[synth] left
|
|||
masak | pmichaud: '...it's not ... (non-existent) 'take' that is failing...' -- negation win! | 14:44 | |
pmichaud | masak: :-) | 14:45 | |
14:45
takadonet joined
|
|||
moritz_ | pmichaud: maybe parse a longname, and compare that to Bool::{True,False} ? | 14:46 | |
pmichaud | moritz_: yeah, something like that, maybe. but doing that starts to get kind of expensive. | 14:47 | |
we want something that can be falsified quickly when the rhs is not True/False | 14:48 | ||
so, perhaps: | |||
jnthn | <?before 'Bool::'? [True|False] \s* '{'> # moze byt | ||
Oh wait, it's more smart-matching generally, not just given/when? | |||
pmichaud | jnthn: this gets called from ..... right | ||
jnthn | Ah, can't go on { then | ||
pmichaud: Can we do it at AST level, I wonder... | 14:49 | ||
*do it easier at... | |||
pmichaud | jnthn: syntactic is probably better | ||
just a sec | |||
moritz_ | hm, supposed to be a syntactic distinction | ||
jnthn | pmichaud: It's certainly more ideal, I agree. | ||
moritz_ | "ideal" and "optimal" are adjectives of which comparatives don't make much sense | 14:50 | |
pmichaud | ahhhh | 14:51 | |
how about | |||
<?before 'Bool::'? True && <.longname> > | |||
moritz_ | is && in regexes implemented? | 14:52 | |
pmichaud | it can be | ||
but that's a much better solution than the others | |||
i.e., it matches only when <.longname> is exactly 'Bool::True' or 'True' | |||
and doesn't call <.longname> at all if we don't have one of those two as a prefix | 14:53 | ||
14:53
thebird joined
|
|||
moritz_ | +1 | 14:54 | |
if you're the one who implements && :-) | |||
pmichaud | until && can be made to work, I'd prefer keeping the solution simpl-ish (even if incorrect in the extremely-unlikely-cases) | ||
I suspect I can do && w/o too much difficulty. | 14:55 | ||
it's just like alt, only different. :-) | |||
er, || | |||
moritz_ | I can revert that commit later on (when I have a clean working directory again) | ||
pmichaud | I'm fine with it for now; I'd like a comment that proposes the && answer instead, though. | 14:56 | |
moritz_ | ok | ||
pmichaud | (looking at nqp-rx source) jeepers, is the code for '||' really that short? hmmmmm | 14:57 | |
14:57
[Coke] left
|
|||
moritz_ | well, && also needs to check lengths | 14:58 | |
pmichaud | that's actually pretty easy in the current code I have | ||
I think I can do this... quickly. | |||
moritz_ | hm, ? won't backtrack in a rule | 14:59 | |
or does it? | |||
moritz_ hasn't wrapped his head entirely around backtracking control | |||
pmichaud | ? by itself won't backtrack in a rule | 15:00 | |
say ?( 'abc' ~~ rule { a? abc } ) | 15:01 | ||
rakudo: say ?( 'abc' ~~ rule { a? abc } ) | |||
p6eval | rakudo e45bf6: OUTPUT«0» | ||
pmichaud | rakudo: say ?( 'abc' ~~ regex { a? abc } ) | ||
p6eval | rakudo e45bf6: OUTPUT«1» | ||
moritz_ | so will <?before 'Bool::'? True && <.longname> > work without backtracking? | 15:02 | |
pmichaud | why would it need backtracking? | ||
moritz_ | because 'True' doesn't match 'Bool::' ? | ||
pmichaud | backtracking occurs after a match | 15:03 | |
in this case, Bool:: never matches, so there's no backtrack required. | |||
moritz_ | so :ratchet doesn't imply ?: ? | ||
pmichaud | it does imply ?: | ||
but that's not an issue | |||
rakudo: say ?( 'abc' ~~ regex { a? bc } ) | |||
p6eval | rakudo e45bf6: OUTPUT«1» | ||
pmichaud | rakudo: say ?( 'bc' ~~ regex { a? bc } ) | ||
p6eval | rakudo e45bf6: OUTPUT«1» | ||
pmichaud | oops, rule | 15:04 | |
rakudo: say ?( 'abc' ~~ token { a? abc } ) | |||
p6eval | rakudo e45bf6: OUTPUT«0» | ||
pmichaud | rakudo: say ?( 'abc' ~~ token { a? bc } ) | ||
p6eval | rakudo e45bf6: OUTPUT«1» | ||
pmichaud | bah, here: | ||
rakudo: say ?( 'Bool::True' ~~ token { 'Bool::'? 'True' } ) | 15:05 | ||
p6eval | rakudo e45bf6: OUTPUT«1» | ||
pmichaud | rakudo: say ?( 'True' ~~ token { 'Bool::'? 'True' } ) | ||
p6eval | rakudo e45bf6: OUTPUT«1» | ||
pmichaud | it's fine. :-) | ||
rakudo: say ?( 'True' ~~ regex { 'Bool::'?: 'True' } ) | |||
p6eval | rakudo e45bf6: OUTPUT«1» | ||
moritz_ | ah, a quantifier does try until it finds something, but won't try a second time (under :ratchet) | 15:07 | |
pmichaud | right, it's greedy | ||
under ratchet, once it can no longer match, it doesn't backtrack | |||
so, ?: tries to match one time, but if it can't match at all, that's okay too | 15:08 | ||
if it does match one time, it won't go back and try again with zero | |||
15:09
ash_ joined
15:16
dual joined
|
|||
dalek | kudo: 7b00312 | moritz++ | src/Perl6/Grammar.pm: add a parsing comment, as advised by pmichaud++ |
15:17 | |
15:20
sftp joined
15:21
ash_ left
15:24
justatheory joined
15:33
alester left
|
|||
masak | rakudo: sub greet($person) { say "OH HAI, $person!" }; "jnthn".&greet | 15:39 | |
p6eval | rakudo e45bf6: OUTPUT«OH HAI, jnthn!» | ||
masak | I hadn't realized you could do this. | ||
jnthn | :-) | 15:40 | |
masak | basically it's a way to use subs as faux methods. | ||
jnthn | Sure you can. | ||
Yes. | |||
15:40
PZt joined
|
|||
jnthn | Why you'd wnat to do it, is left for you to justify though. :P | 15:40 | |
masak | it's convenient in map blocks, for example. | ||
jnthn | example? | 15:41 | |
masak | trying to think of a sub that isn't also a method. | ||
jnthn | oh wait, *.&foo | ||
? | |||
masak | aye. | ||
jnthn | lol! | ||
That's...wonderful. :P | |||
15:41
alester joined
|
|||
masak | you see, you like it too :) | 15:41 | |
alester | Never discount the value of indirect PR: www.pcworld.com/businesscenter/arti...pport.html | 15:42 | |
masak | alester++ | 15:44 | |
PerlJam | alester++ | ||
jnthn | alester++ # nice | 15:45 | |
alester | Thanks | ||
I didn't contact the guy. | |||
You just make some noise, sometimes people hear it. | |||
15:46
[Coke] joined,
wamba left
|
|||
TimToady is also surprised by .&foo, but sees how it happened, and is pleased that the design of Perl 6 is sometimes more orthogonal than his brane | 15:50 | ||
phenny | TimToady: 14:05Z <bbkr> tell TimToady that "class Bool::True::X{}; 1 ~~ Bool::True::X" on STD returns message about Smartmatch against True while it should pass as this is just regular smartmatch type check. | ||
masak | TimToady: lol | 15:51 | |
15:54
risou joined
|
|||
moritz_ | alester: do you know how many visitors you got from pcworld? | 15:54 | |
15:54
sftp left
|
|||
alester | no, but I could guess | 15:54 | |
by looking at Google Analytics | 15:55 | ||
no uptick in traffic | 15:56 | ||
A BIG one on the 6th | |||
but not yesterday | |||
masak | it's being tweeted, too: twitter.com/devseo/status/e5bfb6a1376fb47c | 15:58 | |
moritz_ | what was on the 6th? | ||
15:59
sftp joined
|
|||
alester | I dunno | 16:01 | |
When was Rakudo Star | 16:02 | ||
I have spikes on the 4th and 6th and Jul 27 | |||
moritz_ | Jul 29 iirc | ||
masak | you do rc | ||
alester | Spike on the 6th was for /2010/08/what-to-say-to-perl-6-isnt-perl-any-more.html | 16:03 | |
masak | that one did get around a bit. | ||
alester | I dind't run anything on R* until a few days after the fact. | 16:04 | |
[Coke] | masak that URL is bad? | ||
masak | [Coke]: (1) not a question, (2) which URL do you mean? | ||
alester | the twitter one above | ||
masak | oh | 16:05 | |
don't know why that is. | |||
that's what my Twitter client reports. | |||
16:06
foodoo left
|
|||
masak | twitter.com/devseo | 16:06 | |
16:06
Guest23195 joined
|
|||
patrickas | I get twitter.com/devseo/status/21674945321 | 16:06 | |
16:12
tylercurtis joined
|
|||
lue | ohai o/ | 16:15 | |
moritz_ | \o | ||
jnthn | hellue | 16:16 | |
16:16
justatheory left
|
|||
masak | lue.&hello; | 16:17 | |
lue | .rnd(if printf is just print with formatting, why is there not sayf ?) | 16:18 | |
masak | lue: you're not the first one to have that thought. | 16:19 | |
pmichaud | lue: because one can easily put \n into the format string...? | ||
masak | lue: let's just say I'd rather have a language without &sayf predefined :) | ||
moritz_ | because printf() is only a convenience for perl5 and C programmers who haven't got the hang on .fmt, really | ||
masak | pmichaud: that's an argument against &say too. you can easily put "\n" into the argument list. | 16:20 | |
moritz_ | masak: there's a difference | ||
masak | tell quickly, I'm leaving! :) | ||
moritz_ | masak: printf always has a format, so 99% of all cases it has a string literal anyway | ||
you're dimissed :-) | |||
pmichaud | ...what moritz_++ said. | 16:21 | |
masak | even in the cases where print has a single string argument, I'm happy to not have to append the \n :) | ||
16:21
masak left
|
|||
moritz_ | say() is very good for cases like | 16:21 | |
say join ',', 1, 2, 3 | |||
where you have to get the precedence/parenthesis right if you use "\n" | |||
say join ',', 1, 2, 3, "\n"; # not what I want | 16:22 | ||
erm, s/say/print/ | |||
sbp | rakudo: print join ',', 1, 2, 3, "\n"; | 16:25 | |
p6eval | rakudo e45bf6: OUTPUT«1,2,3,» | ||
lue | Alright. I prefer .fmt anyway :) [although sayf would be one of those fun-to-say commands] | ||
moritz_ | rakudo: use Test; dies_ok { {...}.() }, 'stub code dies' | 16:26 | |
p6eval | rakudo e45bf6: OUTPUT«ok 1 - stub code dies» | 16:27 | |
pugssvn | r32069 | lwall++ | [STD] handle 'when Bool::True::X', which is a completely silly thing to say | ||
moritz_ | rakudo: use Test; dies_ok { ... }, 'stub code dies' | ||
p6eval | rakudo e45bf6: OUTPUT«ok 1 - stub code dies» | ||
pmichaud | maybe 'sayf' should be 'saith', and 'printf' could be 'printh" :-P | 16:28 | |
16:28
molaf joined
|
|||
lue | .oO(printh tharming!) |
16:28 | |
16:29
barika left
16:35
barika joined
16:38
nadim left
16:53
Trashlord joined
|
|||
[particle] | though.?saith('what') | 17:06 | |
s/gh/ | |||
grr. | 17:07 | ||
dalek | ok: 27283c6 | moritz++ | lib/book.sty: be more explicit about our contributors |
17:08 | |
[Coke] | lib/pig.sty | 17:09 | |
17:10
dakkar left,
justatheory joined
|
|||
tylercurtis | ingy: I've been getting distracted from working on YAML by metamodel thinking and prototyping, but if you or masak want to work on it at some point, let me know and I'll take off my Bennu hat and put on my parser hat. | 17:10 | |
moritz_ | fwiw, I've uploaded A4 and letter snapshots of the book to the download section on github | 17:16 | |
pmichaud | gist.github.com/540747 # && now works in nqp | ||
PerlJam | moritz_++ | ||
moritz_ | I've called them "snapshot" and not "release", because I'm too lazy to do a proper release announcement | ||
pmichaud | moritz_: snapshot +1 | ||
17:18
thebird left,
amkrankruleuen left
|
|||
moritz_ | I can only encourage people to work on the book. It really needs love, and we need to give it to chromatic at some point. | 17:19 | |
pmichaud | I can work on it this weekend, especially now that I can build the book again. :-) | 17:20 | |
PerlJam | I don't think it's anywhere near as polished as it should be for chromatic to publish it. :( | ||
moritz_ | indeed | ||
[Coke] | moritz_: unintentional innunedo ftw. | ||
jnthn | [Coke]: :P | 17:21 | |
17:39
smash_ left
17:45
jaldhar left
17:47
Chillance joined
17:53
nimiezko joined
17:55
plainhao joined
|
|||
pugssvn | r32070 | kyle++ | [t/spec] Fix pid.t (test passed because of a bug) | 18:17 | |
18:18
Mowah joined
18:19
Mowah left,
Mowah joined
18:26
molaf left
|
|||
dalek | p-rx: 8788740 | pmichaud++ | src/Regex/P6Regex/ (2 files): Add parsing for &&. |
18:30 | |
p-rx: 41267b0 | pmichaud++ | / (2 files): Add && conjunctions to regexes. |
|||
p-rx: 253aeeb | pmichaud++ | src/stage0/ (4 files): Update bootstrap. |
|||
TimToady | ooh, I've found a rakudo bug of some sort or other | 18:33 | |
rakudo: my @fib := (1,1, *+* ... *); say @fib[8]; @fib[8] = 100; say @fib[9]; | |||
p6eval | rakudo 7b0031: OUTPUT«3455» | ||
moritz_ | I thought the spec doesn't force completely lazy evaluation? | ||
TimToady | I suppose not | 18:34 | |
rakudo: my @fib := (1,1, *+* ... *); say @fib[2]; @fib[8] = 100000000; say @fib[9]; | |||
p6eval | rakudo 7b0031: OUTPUT«255» | 18:35 | |
TimToady | rakudo: my @fib := (1,1, *+* ... *); say @fib[2]; @fib[8] = 100000000; say @fib[40]; | ||
p6eval | rakudo 7b0031: OUTPUT«2165580141» | ||
pmichaud | @fib[8] should probably be an error | ||
TimToady | that's what I thought | ||
pmichaud | i.e., @fib[8] = .... should probably say "unable to assign to readonly value..." | ||
I suspect that's the lack-of-decontainerization showing up again. | |||
TimToady | I just wonder what it's actually doing | ||
pmichaud | it's assigning to some temporary lexical that isn't being used for anything, in all likelihood. | 18:36 | |
TimToady | ah | ||
pmichaud | rakudo: my @fib := (1,1, *+* ... *); say @fib[2]; @fib[8] = 4; say @fib[8]; | 18:37 | |
p6eval | rakudo 7b0031: OUTPUT«24» | ||
pmichaud | yeah, it's assigning to a temporary container that isn't being held in the @lhs | ||
TimToady | and I guess we haven't implemented lazypush yet | ||
moritz_ | is it even specced? :-) | 18:41 | |
18:42
nimiezko left
|
|||
TimToady | is there a better name than lazypush? | 18:43 | |
18:44
envi^home left
|
|||
TimToady | my @fib .= more(1,1,*+*...*); # maybe | 18:45 | |
as in, here's what to do when the array wants more | |||
it's not a verb though | 18:46 | ||
.supply | |||
pugssvn | r32071 | coke++ | [syn] Fix spelling error. | ||
TimToady | .append .add .specify | ||
pmichaud | .pushmore | 18:47 | |
sorear | moritz_: Please don't discuss CPAN6 *now* :( | ||
moritz_ | sorear: why not? I've always been discussing it when somebody asked | 18:48 | |
sorear | gfldex: Please do not discuss CPAN6 here and now, I'm seting up a meeting for a *reason* | ||
pmichaud | pmichaud@plum:~/rakudo$ ./perl6 | ||
> say 1 ~~ Bool::True; | |||
Smartmatch against True always matches; if you mean to test the topic for truthiness, use :so or *.so or ?* instead at line 1, near " Bool::Tru" | |||
[Coke] | to stifle conversation? =-) | ||
pmichaud | > say 1 ~~ Bool::True::X; | ||
Can not find sub Bool::True::X | |||
> say 1 ~~ Bool::True-bar | |||
Can not find sub Bool::True-bar | |||
> say 1 ~~ True-foo | |||
Could not find sub &True-foo | |||
TimToady | std: say 1 ~~ Bool::True::X; | 18:49 | |
p6eval | std 32070: OUTPUT«===SORRY!===Undeclared name: 'Bool::True::X' used at line 1Check failedFAILED 00:01 116m» | ||
moritz_ | std: class Bool::True::X { }; 1 ~~ Bool::True::X; | ||
p6eval | std 32070: OUTPUT«ok 00:01 116m» | ||
sorear | pmichaud: Are those equivalences exact to the point of LTM? | ||
pmichaud | sorear: I don't understand the question | 18:50 | |
I was just testing Rakudo's use of && to match against Bool::True | 18:51 | ||
I see that STD.pm6 now looks for a space. | |||
TimToady | which will miss some cases occasionally | ||
pmichaud | I was just trying [ 'Bool::True' && <.longname> ] | 18:52 | |
TimToady | should probably looks for a few other delimiters | ||
oh, duh | |||
pmichaud | well, actually 'Bool::'? 'True && <.longname> | ||
*'True' | 18:53 | ||
TimToady | it probably wants to be a semantic check at the reduce, actually | ||
pmichaud | ah, jnthn++ suggested that also | ||
anyway, this prompted me to get && working in regexes again, so that's a bit of a win. :) | 18:54 | ||
dalek | p-rx: b139200 | moritz++ | / (2 files): [setting] implement split(), mostly stolen from partcl-nqp, Coke++ |
||
pmichaud | > '0123456789' ~~ / \d+ && ..5 / | ||
345 | |||
> '0123456789' ~~ / 3.* && .*7 / | 18:55 | ||
34567 | |||
sorear | pmichaud: the question was re. 1309UTC | 18:57 | |
pmichaud | sorear: ah. I just know that's how role compositions are defined. | 18:58 | |
I haven't thought about their ltm impacts at all. | |||
sorear | What do role compositions have to do with that? | ||
pmichaud | sorry, rule compositions | ||
wrong vowel | |||
18:59
KyleHa joined
|
|||
KyleHa | Hello #perl6. | 18:59 | |
sorear | ah. | ||
18:59
eric256 joined,
sftp left
|
|||
KyleHa | Is there a Moritz in attendance? | 19:00 | |
eric256 | hey, from a been here and there and gone on and off stand point, it would be realy cool if the rakudo star release info pointed to examples for its feature list | ||
19:00
mberends joined
19:03
KyleHa left
|
|||
eric256 | just a thought in case no one had mentioned it, love the release, very excited... | 19:04 | |
19:04
cono left
|
|||
jnthn back from noms | 19:05 | ||
pmichaud | sorear: www.nntp.perl.org/group/perl.perl6....21120.html might help explain the character class arithmetic | 19:06 | |
19:06
sjn joined
|
|||
sjn | o/ | 19:06 | |
19:06
cono joined
|
|||
sjn just tried to compile rakudo from git/svn, and got the following error message when running the executable: | 19:06 | ||
PackFile_unpack: This Parrot cannot read bytecode files with version 8.1. | |||
<- did a "make realclean" first, but that didn't make any difference | 19:07 | ||
pmichaud | sjn: when parrot has a new release, it changes what it looks for in the bytecode files | ||
and "realclean" doesn't always catch everything | |||
jnthn | TimToady: (lazypush) I think .plan was also suggested at one point. | ||
mberends | \o jnthn, tonight after a busy week of C# and VB.NET, I'm relaxing by porting more bits of 6model to Java :) | ||
pmichaud | generally I start by removing the parrot and parrot_install subdirs and starting afresh | ||
[Coke] | are you using a locally installed parrot? | ||
jnthn | mberends: Awesome \o/ | ||
[Coke] | "what pmichaud" said. | ||
sjn | ok | ||
jnthn | mberends: Got some dobre pivo to go with that? :-) | ||
sjn suggests fixing "make realclean" ;-) | 19:08 | ||
pmichaud | sjn: I'm not sure what part of realclean is broken to be able to fix it. | ||
mberends | jnthn: yes, a very cold full pint mug | ||
pmichaud | the Parrot error could be a bit more useful if it would at least tell us what file it's having trouble unpacking :-| | ||
sjn | how about just deleting all the bytecode files? :-P | 19:09 | |
that's the current "fix" anyway | 19:10 | ||
jnthn | mberends: mmmmm | ||
pmichaud | sjn: I don't even have a way of finding all of the bytecode files | 19:11 | |
sjn | does parrot's Makefile have an idea? | 19:12 | |
tylercurtis | sjn: not necessarily. I've gotten that error after deleting my entire parrot install and checkout before. | ||
pmichaud | sjn: I think parrot's Makefile is the one that may be not realcleaning | 19:13 | |
pugssvn | r32072 | kyle++ | [Test::Util] reunite lonely variable with its purpose | ||
pmichaud | since I don't know which bytecode file is causing the issue... hard to say. | ||
afaik Rakudo cleans up all of its .pbc files. There aren't that many. | |||
ingy | tylercurtis: re YAML, sounds good. | 19:15 | |
pmichaud | anyway, I'll see if I can track the realclean bug down. | ||
sjn | awesome ^^ | ||
that would be a very n00b-friendly fix :) | |||
sorear | [Coke]: Fine, I give up. If there's going to be hostility, I won't push for #cpan6sketch anymore. | 19:16 | |
19:16
nadim joined
|
|||
pmichaud | sorear: I didn't detect any hostility intended in what Coke wrote. | 19:17 | |
it was more of a "normally we don't tell people they aren't allowed to talk about topics except at specified times" | |||
our general philosophy is that people are able to contribute whatever/whenever they can. | |||
moritz_ | sorear: please don't stop pusing #cpan6sketch, just don't try to make it exclusive in some way | 19:19 | |
sorear | ok. hmm. | ||
19:19
tylercurtis left
|
|||
sorear tries to figure out what his role in this is | 19:22 | ||
dalek | p-rx: 4d31c5b | moritz++ | t/setting/04-regex.t: precedence fix for regex test, Coke++ |
19:23 | |
pmichaud | sorear: what are you wanting to achieve? | ||
sorear | pmichaud: achieve critical mass of knowledgeable and caring people | 19:24 | |
we've achieved critical mass of caring people before, but with insufficient knowledge | |||
pmichaud | I think the critical mass needs to be achieved in some implementations | ||
maybe we need some knowledgeable people to get to that point | |||
historically "perl 6 cpan" discussions have tended to lead into bikeshedding or ratholes, imo | 19:26 | ||
so the challenge is to keep it from doing that | |||
moritz_ | aye | ||
sorear | pmichaud: I blame this on the lack of people with actual experience in such discussions | 19:27 | |
pmichaud | sorear: ...except that as is the case with many bikeshed discussions, people argue it because they believe they have experience :-) | ||
[particle] | so, try to create one, and learn from the failures | ||
don't call it cpan until it meets the requirements, whenever they're finalized | 19:28 | ||
sorear | pmichaud: the more direct reason is that Alias_ can't make #phasers due to timezoning | ||
pmichaud | sorear: that's a quite valid reason | ||
19:29
plainhao left
|
|||
sorear | there was a little something in #p5p where the complaint was voiced that Perl 6 was ignoring the lessons of CPAN, and Alias_ volunteered to help fix that | 19:29 | |
pmichaud | one can easily say "we're going to meet at xyz time to discuss perl 6 module management", but that's a far cry from saying "...and don't anyone else discuss it except then/there" | ||
[Coke] | (hostility) and certainly don't feel like you have to take any crap from me, even if I /am/ being hostile. which I wasn't trying to be, sorry. ;) | 19:30 | |
pmichaud | fwiw, I agree that until now we haven't really looked at the lessons of CPAN. I think it's also critical that we not blindly adopt the assumptions of CPAN either :-) | ||
sjn | pmichaud: fwiw, if you want to get some of the #toolchain folks interested in Perl6 module management, then you should look into the perl-qa hackathon thing :) | ||
Barbie told me there's a very good chance there will be another one next year | 19:31 | ||
pmichaud | sjn: I agree, it's just that the perl-qa hackathons are a bit far for me to attend. | ||
I'd need to find a local representative, I suspect. masak++, moritz++, and mberends++ would be excellent folks to have there instead of me :) | |||
sjn | that would work too | ||
having some of the core perl6 folks hanging out in #perl-qa or #toolchain might also be a good start... (there are quite a few people in that community that haven't seen the big point in caring about Perl6 yet, but by giving them some attention too they shouldn't be to difficult to "win over" :) | 19:33 | ||
jnthn | o/ sjn | ||
moritz_ | sjn: I've hung out in #toolchain for quite some time. It was rather boring. | 19:34 | |
sjn | heya, jnthn :) | ||
jnthn | I should make it up to Oslo at some point. :-) | ||
sjn | moritz_: I know :) | ||
jnthn: how does second tuesday in september sound for you? (got a green light from the NUUG board, so we'll reimburse travel/hotel :) | |||
jnthn | sjn: Let me check... | 19:35 | |
pmichaud | it would probably be helpful for someone to write down a quick bullet list of what the "lessons of CPAN" are. :-) | ||
sjn | just haven't gotten around to mail you about it yet, :-P | ||
pmichaud: you wish :) | |||
sorear | pmichaud: Or to put it another way, I'm looking to gather people who are qualified to list the "... all the things that need reinventing" part of te Perl 6 motto | ||
jnthn | sjn: That'd be the 14th? | ||
pmichaud | sorear: that's reasonable. If we just had a group that got together and said "this is what needs to be remembered" that'd be a great start. | 19:36 | |
jnthn | sjn: Need to check with a couple of folks, I'll get back to you in the next few days. | ||
sjn | jnthn: yep, meeting is at 18:30 on the 14th | ||
great | |||
pmichaud | when is the #cpan6sketch meeting expected? | 19:37 | |
19:37
fod left
|
|||
sjn wonders if a pointed question + follow-up on the perl-qa mailing list might help | 19:37 | ||
moritz_ | Tue 16:00 UTC, iirc | ||
pmichaud | (I'd also be fine with it taking place in #perl6 or #phasers, but having a separate channel is okay too) | ||
pmichaud adds it to his calendar. | 19:38 | ||
anyway, I think the real answer to perl 6 module archive is to focus on "rough consensus and running code" | 19:43 | ||
it's too early to do a spec. | |||
jnthn | +1 | ||
moritz_ | indeed | ||
pmichaud | and if someone believes we should just be using CPAN as-is, then we need some modules to do that (which falls back to "rough consensus and running code") | 19:44 | |
19:57
sftp joined
20:01
Italian_Plumber left
|
|||
pugssvn | r32073 | lwall++ | [S32/Containers.pod] spec .plan as a lazy push | 20:04 | |
20:11
Italian_Plumber joined
20:12
colomon joined
20:13
justatheory left,
justatheory joined
20:30
azert0x joined,
azert0x left
|
|||
moritz_ | KyleHa++ # fixing my stuff | 20:31 | |
20:31
azert0x joined,
azert0x left,
azert0x joined
20:32
justatheory left,
justatheory joined
20:34
spq1 left
20:46
patrickas left
|
|||
alester | wrote to the guy who wrote the vim article, asking about what made him write about the Perl stuff | 20:48 | |
"I found it completely at random in fact. I was trying to find more info about some of the features in vim and ran across your post--which was the only one that addressed the Perl angle, which really helped add some more weight to the story, news-wise." | |||
20:48
jferrero joined
|
|||
alester | My reply: "Thanks for the background. Let me know if I can help you with any Perl news. Perl 6 is starting a big groundswell, and so many of its features have found their way back into Perl 5 and Perl 5 modules that it's a pretty cool time to be working with Perl." | 20:48 | |
The more press we can get, the better! | |||
TimToady | then maybe I should murder someone | 20:50 | |
pmichaud | don't think that worked for Reiser | 20:51 | |
TimToady | not terribly well, no | ||
pmichaud | although some of us are being accused of killing Perl 5 :-P | ||
jnthn | "And Perl 6's killer feature is..." | ||
TimToady | can't think of any likely candidates, in any case... | ||
don't think I want to deny using steroids in front of Congress, either... | 20:53 | ||
and it's too late to get famous for a Darwin award | 20:54 | ||
pmichaud | unless you killed all of your descendants :=) | 20:55 | |
then you'd get both :) | |||
pugssvn | r32074 | lwall++ | [S03] defined binding operators as parsing like list assignment | 20:56 | |
pmichaud | \o/ | 20:57 | |
now if we could only get assignment to scalars to act like list assignment ... :-P | |||
lue | does this mean someone has to go back and change the := code? :=) | 20:58 | |
pmichaud | lue: no, I suspect it confirms the := code that already exists. | ||
Khisanth | TimToady: but they would probably believe you if you were to deny using steroids in front of Congress :) | ||
pmichaud | rakudo: my $a := 1,2,3,4; say $a.WHAT; | ||
p6eval | rakudo 7b0031: OUTPUT«Int()» | ||
pmichaud | hmmm | ||
guess not. | |||
rakudo: my $a := (1,2,3,4); say $a.WHAT; | 20:59 | ||
p6eval | rakudo 7b0031: OUTPUT«Parcel()» | ||
pmichaud | probably ought to be Seq anyway | ||
jnthn | I guess the initial tweak is just changing the precedence, though? | ||
lue | rakudo: my @a = 1,2,3; my @b := @a; @b = 4,5,6; say @a; # let's see if it works! | ||
p6eval | rakudo 7b0031: OUTPUT«456» | ||
pugssvn | r32075 | lwall++ | [STD] Make := and ::= parse as list assignment as in new spec. | ||
r32075 | Make [op]= actually parse according to the existing spec (that is, | |||
r32075 | item assignment for op tighter than comma, list assignment otherwise) | |||
pmichaud | jnthn: yeah, move it to list assignment precedence, likely | 21:00 | |
TimToady | actually, I've used a considerable number of steroids when I had eye troubles... | ||
21:01
masak joined
|
|||
masak | ahoy, #perl6! | 21:01 | |
jnthn | lolitsmasak! | 21:02 | |
mberends | good weekend, masak | ||
Tene | ohaimasak | ||
lue | ohaimasak | ||
masak | jnthn: Google emailed me and said that I passed. | ||
TimToady | though my descendants have used more steroids than I have | ||
masak | jnthn: they also said, and I quote, "Please contact your mentor to discuss the results of your evaluation and to plan your goals and development plan for the rest of the program" | 21:03 | |
jnthn: I... didn't know there was a rest of the program :) | |||
TimToady | item assignment is unlikely to go away as long as we have to explain that defaults always parse like item assignment | ||
masak | jnthn: though I do plan to keep developing the bits that I wrote :) | ||
jnthn | masak: Yes, I was Cc'd in and thought just the same. :-) | ||
masak: I hoped you would. :-) | 21:04 | ||
masak++ | |||
masak | jnthn: I think it's a thinko/fossil from midterms. | ||
TimToady | and I'm not too worried about people mixing them up once we get "Useless use of" warnings enabled | ||
jnthn | masak: I guess I'm only allowed to unofficially tormentor you now. :-) | ||
masak | mberends: I'd like to talk to you about a patch I got from oha. as the chief mainstream consumer of the code patched, you're likely to have some views on it. | 21:05 | |
TimToady | unofficial torment can be worse... | ||
plausable deniability, and all that... | |||
masak | jnthn: I'll miss the official tormenting a bit. it was, for lack of a better word, nice. :) thanks for mentoring me this summer. jnthn++ | ||
21:06
perlygatekeeper left
|
|||
jnthn | masak: Yes, aside from requiring me to trasport a power supply a thousand kilometers, you were a very good and competent student. :-) | 21:06 | |
masak | jnthn: that had nothing to do with GSoC! :P | ||
jnthn | True. :P | ||
masak | jnthn: I want you to know that the power supply and I are very happy together. | ||
jnthn | masak: Ooh, next year you can take the Latvian power supply on a trip to its motherland too. \o/ | 21:08 | |
masak has trouble telling the two he has apart... | |||
I'm in a bipowerous relationship. | 21:09 | ||
jnthn | *groan* | ||
mberends: Ooh, I didn't noticed that you'd sneaked in a patch yesterday. :-) | 21:13 | ||
mberends | jnthn: it was only a tittle bittle patch :) | 21:14 | |
21:14
flyback is now known as krisskross
|
|||
masak | 'tiddle bittle'. :) | 21:14 | |
mberends | masak: can we chat in about an hour? | ||
21:14
krisskross is now known as flyback
|
|||
masak | oh, anytime. | 21:14 | |
just glad to see you online :) | 21:15 | ||
jnthn | mberends: Whoa. | ||
mberends: The interface => abstract class refactor will make the reprs have a load less boilerplate in Java. | |||
alester | TimToady: If you kill all your descendents, then we'll have to hear about how we don't support inheritance. | ||
mberends | jnthn: are you changing KnowHOWBootstrap as well? | 21:16 | |
jnthn | mberends: No, writing that ones hurt my brane enough. | ||
Well, I mean, I have to write it for the Parrot port too I guess. | |||
Oh well. :-) | |||
But no, I don't plan to twiddle that one for now. | |||
lue | afk | 21:17 | |
jnthn | mberends: It'll need to learn how to do gradual typing at some point. | ||
That'll probably happen first on Parrot unless I find a good way to do the gradual typing in a non-bootstrapped environment. | |||
21:18
tylercurtis joined
|
|||
jnthn | Or at least, one that doesn't compromise the good bits of unifying the compile time and runtime MOP. | 21:18 | |
jnthn digs into working out what on earth is up with enabling building a constant table for the NQPSetting. | 21:21 | ||
masak | I don't think Perl 6 has been "ignoring the lessons of CPAN" so much as not gotten to the point where paying attention to those lessons is an option. :) | 21:23 | |
jnthn | oh lol | 21:28 | |
stupid bug is stupid. | 21:29 | ||
21:29
Holy_Cow left
|
|||
masak | by the way, the "lions made of lions" ticket was closed today. jnthn++ [Coke]++ moritz_++ rt.perl.org/rt3/Ticket/Display.html?id=75644 | 21:31 | |
jnthn | \o/ | 21:32 | |
masak | rakudo: role Lion[::T?] {}; class LionMaybeMadeOfLions does Lion[Lion[]] {}; say "alive" | ||
p6eval | rakudo 7b0031: OUTPUT«===SORRY!===Unable to parse def_module_name, couldn't find final ']' at line 22» | ||
masak | hm? | 21:33 | |
rakudo: role Lion[::T?] {}; class LionMaybeMadeOfLions does Lion[] {}; say "alive" | |||
p6eval | rakudo 7b0031: OUTPUT«===SORRY!===Unable to parse def_module_name, couldn't find final ']' at line 22» | ||
[Coke] | rakudo: role Lion[::T] {}; class LionMadeOfLions does Lion[Lion] {} | ||
p6eval | rakudo 7b0031: OUTPUT«===SORRY!===No applicable candidates found to dispatch to for '_block124'. Available candidates are::(Mu ::T )» | ||
masak | that one is correct, IMO. | ||
21:33
ruoso left
|
|||
masak | rakudo: role A {}; class B does A[] {} | 21:33 | |
p6eval | rakudo 7b0031: ( no output ) | ||
masak | rakudo: role A {}; class B does A[] {}; say "alive" | 21:34 | |
p6eval | rakudo 7b0031: OUTPUT«alive» | ||
masak | rakudo: role A[] {}; class B does A[] {}; say "alive" | ||
p6eval | rakudo 7b0031: OUTPUT«alive» | ||
masak | rakudo: role A[::T] {}; class B does A[] {}; say "alive" | ||
p6eval | rakudo 7b0031: OUTPUT«===SORRY!===No applicable candidates found to dispatch to for '_block124'. Available candidates are::(Mu ::T )» | ||
masak | rakudo: role A[::T?] {}; class B does A[] {}; say "alive" | ||
p6eval | rakudo 7b0031: OUTPUT«===SORRY!===Unable to parse def_module_name, couldn't find final ']' at line 22» | ||
masak submits rakudobug | |||
the Lion roars again! | |||
TimToady | std: role A[::T?] {}; class B does A[] {}; say "alive" | 21:35 | |
p6eval | std 32075: OUTPUT«===SORRY!===Unable to parse generic role at /tmp/aQyIg_nsqM line 1:------> role A⏏[::T?] {}; class B does A[] {}; say "aliCouldn't find final ']'; gave up at /tmp/aQyIg_nsqM line 1:------> role A[::T⏏?] {}; class B does A[] | ||
..{}… | |||
masak | ...or not. | ||
TimToady | I don't think that syntax is legal | ||
std: role A[::T $?] {}; class B does A[] {}; say "alive" | |||
masak | I'm starting to suspect you're right... | ||
p6eval | std 32075: OUTPUT«ok 00:01 119m» | ||
masak | oh right. | ||
TimToady | you can't put ? on a type constraint, which ::T is parsed as | ||
masak | makes sense. | 21:36 | |
rakudo: role A[::T $?] {}; class B does A[] {}; say "alive" | |||
p6eval | rakudo 7b0031: OUTPUT«===SORRY!===In signature parameter, '$?', it is illegal to use '?' twigil at line 22, near "] {}; clas"» | ||
masak submits this other bug instead :) | |||
TimToady | heh, STD's twigils require a following \w | ||
masak | rakudo: role A[::T $?] {} | 21:37 | |
p6eval | rakudo 7b0031: OUTPUT«===SORRY!===In signature parameter, '$?', it is illegal to use '?' twigil at line 22, near "] {}"» | ||
masak | rakudo: sub foo(::T $?) {} | ||
p6eval | rakudo 7b0031: OUTPUT«===SORRY!===In signature parameter, '$?', it is illegal to use '?' twigil at line 22, near ") {}"» | ||
TimToady | std: role A[::T $ ?] {}; class B does A[] {}; say "alive" | ||
p6eval | std 32075: OUTPUT«===SORRY!===Unable to parse generic role at /tmp/ebqLcTOU42 line 1:------> role A⏏[::T $ ?] {}; class B does A[] {}; say "Couldn't find final ']'; gave up at /tmp/ebqLcTOU42 line 1:------> role A[::T $ ⏏?] {}; class B does | ||
..A[]… | |||
masak | I agree; it's not a twigil unless there's something coming after it :) | ||
TimToady | interesting, doesn't allow space there | 21:38 | |
std: role A[::T []?] {}; class B does A[] {}; say "alive" | 21:39 | ||
p6eval | std 32075: OUTPUT«ok 00:01 119m» | ||
masak | o.O | ||
what does []? mean? | 21:40 | ||
TimToady | beats me | ||
jnthn | ...I wonder what Rakudo would make of that. :-) | ||
masak | "the mystery box" | ||
jnthn | rakudo: role A[::T []?] {}; | ||
p6eval | rakudo 7b0031: ( no output ) | ||
jnthn | Great, it means something. :-) | ||
rakudo: sub foo(::T []?) { }; say &foo.signature.perl | |||
p6eval | rakudo 7b0031: OUTPUT«:(Positional ::T ? ())» | ||
jnthn | Optional parameter that must unpack to an empty positional. | ||
:-) | |||
rakudo++ | 21:41 | ||
TimToady | I guess the first signature can stand in for the param_var | 21:42 | |
jnthn | Oh, and we capture the type of it too | ||
masak | rakudo++ | ||
jnthn | TimToady: I guess so. :-) | ||
TimToady | std: -> []? []? {...} # fail? | ||
jnthn | TimToady: Heh. It's great when the implemtation handles stuff you didn't think of when writing it. :-) | ||
p6eval | std 32075: OUTPUT«===SORRY!===Malformed block at /tmp/YbJoaXiMJf line 1:------> -> []? []⏏? {...} # fail? expecting any of: block constraint param_sep signature traitParse failedFAILED 00:01 116m» | ||
TimToady | std: -> []? [] {...} # fail? | ||
p6eval | std 32075: OUTPUT«ok 00:01 116m» | ||
TimToady | std: -> *[] [] {...} # fail? | ||
p6eval | std 32075: OUTPUT«ok 00:01 116m» | ||
jnthn | std: -> []?, []? {...} | ||
p6eval | std 32075: OUTPUT«ok 00:01 117m» | ||
jnthn | hehe | 21:43 | |
"Signatures. They can be line noise too." | |||
21:43
TiMBuS left,
TiMBuS joined
|
|||
TimToady | std: -> [] () [] () --> [] {...} # fail? | 21:43 | |
p6eval | std 32075: OUTPUT«===SORRY!===No type found after --> at /tmp/TmnP_uPIrR line 1:------> -> [] () [] () --> ⏏[] {...} # fail? expecting any of: name type_constraintParse failedFAILED 00:01 116m» | ||
TimToady | std: -> [] () [] () --> 42 {...} # fail? | 21:44 | |
p6eval | std 32075: OUTPUT«ok 00:01 117m» | ||
masak | o.O | ||
TimToady | values may be used as types :) | ||
someitmes | |||
masak | what have we done!? | ||
TimToady | *times | ||
masak | rakudo: -> []?, []?, []?, []?, []?, []?, []? { ... } | ||
jnthn | masak: Confirmed that Perl 6 is, indeed, still Perl. :-) | ||
p6eval | rakudo 7b0031: ( no output ) | ||
TimToady | std: -> 24 *[] () [] () --> 42 {...} # fail? | 21:45 | |
p6eval | std 32075: OUTPUT«ok 00:01 117m» | ||
masak | jnthn: it's line noise, but it's really classy line noise. | ||
TimToady | a function that is guaranteed to turn a Nil 24 into 42 | 21:46 | |
jnthn | Oh eurgh...constants of a type that you're in the proccess of bootstrapping are scary. :-) | ||
TimToady: Useful! ;-) | |||
masak | jnthn: you know you brought this on yourself :) | ||
jnthn: but do tell more about the scary, twisted parts :P | |||
jnthn | masak: See github.com/jnthn/6model/blob/master...Setting.pm and consider the 0 on line 6. :-) | 21:47 | |
masak: (Yes, actually running code, fwiw.) | 21:48 | ||
masak looks | |||
TimToady | It's blue | 21:49 | |
masak | jnthn: 0... is an NQPInt...? | ||
masak swoons | |||
jnthn | masak: Well, no | ||
masak | oh phew. | ||
TimToady | just use +Set() instead | 21:50 | |
jnthn | masak: It probably needs to become one though. :-/ | ||
masak: Because BootstrapInt is HOW-less | |||
masak | what do the arguments in nqp::equal_ints mean? I think I got the first two. | ||
jnthn | I wonder why I have that and if I can toss it somehow. | ||
TimToady | integers are implemented in terms of sets, aren't they? | ||
jnthn | The third is the type to box the argument into. | ||
masak | ahah. | ||
jnthn | TimToady: There's tormenting and there's cruelty. :P | 21:51 | |
TimToady plucks another leg off the jnthn++ | |||
jnthn | masak: oh gah | ||
masak | TimToady: I'm done cleaning your ivory tower. you can climb back up now. :P | ||
jnthn | masak: I meant, the type to box the result into. | ||
masak | jnthn: that's how I interpreted you anyways. | ||
TimToady | Hey, where'd you put my set theory?!? | 21:52 | |
masak hid it | |||
justatheory waves to TimToady | |||
masak | TimToady: ok, it's right under the New Math. | ||
TimToady | This is against union rules... | ||
jnthn | "Today on IRC goes on the road, we visit the exciting city of p6l!" | 21:53 | |
masak | you theorists always grumble about everything. | ||
jnthn | OK, so what really happens if I try and make that 0 an NQPInt... | ||
TimToady | or the everything engine, in chromatic++'s case | ||
masak | jnthn: p6l, the legendary lost city!? | ||
jnthn | Oh my, the type universe imploded... | 21:55 | |
diakopter | wesley saved it though. | 21:58 | |
tylercurtis | jnthn: I have a question about KnowHOWBootstrapper.Bootstrap(). | 22:01 | |
TimToady | sorear: actually, <isPc+xdigit> is a syntax error; a character classish thing may only start with +, -, or [ | ||
jnthn | tylercurtis: oh no :-) | 22:02 | |
masak | not according to that old email. | ||
jnthn | tylercurtis: Are you going to make me understand my own code? :-) | ||
masak | www.nntp.perl.org/group/perl.perl6....21120.html | ||
jnthn | tylercurtis: Go ahead. :-) | ||
tylercurtis | jnthn: What is KnowHOWMeths for? It appears that the only time it is used is when you loop through it, adding all the methods to KnowHOWHOW.Methods. | ||
lue | hai again | ||
masak | hai, lue | 22:03 | |
jnthn | tylercurtis: It's because in the future it'll be used in another way. :-) | ||
tylercurtis: To make it possible to implement KnowHOW.^.methods | |||
tylercurtis: Alas, I don't have any way to do lists yet. | |||
tylercurtis: There may turn out to be a better way, but that's the motivation for putting 'em in a dictionary. | |||
(So they're available for that usage too.) | 22:04 | ||
Basically, want to be introspectable all the way down. | 22:06 | ||
TimToady | masak: I don't see anything in there suggesting that <foo+bar> is legal | ||
jnthn | I'm not sure if it'll pan out needing to be that way though. | ||
TimToady | only <+foo+bar> and such | ||
jnthn | So maybe that code can be simplified some day. | ||
masak | it suggests <[abc]> is short for <+[abc]>. | ||
<[abc]> is a character classish thing. | |||
TimToady | yes, but <foo> isn't short for <+foo> | ||
tylercurtis | Alright. Reading the code has been interesting. I'm probably going to steal your SharedTable design for Bennu. :) | ||
TimToady | since they have different argument parsing policies | ||
masak | TimToady: oh, true. I un-object. | ||
jnthn | tylercurtis: Yes, the STable bit I'm fairly happy with, apart from it needs an SC. | 22:07 | |
TimToady | std: /<foo()>/; /<+foo()>/; # for instance | ||
p6eval | std 32075: OUTPUT«===SORRY!===Unable to parse metachar at /tmp/SNloF2kyNz line 1:------> /<foo()>/; /⏏<+foo()>/; # for instanceCouldn't find final '>'; gave up at /tmp/SNloF2kyNz line 1:------> /<foo()>/; /<+foo⏏()>/; # for instance | ||
..e… | |||
TimToady | restricting the +/- stuff to argumentless rules seems somewhat sane, maybe | 22:08 | |
one can always do more complicated stuff with a real lookahead | |||
masak | aye. | 22:09 | |
TimToady is still backlogging from last night, sigh... | |||
jnthn | tylercurtis: Is Bennu the LLVM project? | 22:10 | |
tylercurtis: I highly advise stealing the Representation implementation too, fwiw. | |||
tylercurtis | jnthn: Yes, although I may decide to target C first when I rewrite it initially to make compilation simpler. | 22:12 | |
TimToady | <before>'s argument is supposed to parse at compile time; it's really a macro | ||
jnthn | tylercurtis: I can certainly say targetting C# rather than IL has made my life easier as a prototyper. | ||
TimToady | std: /<?before +>/ | 22:13 | |
p6eval | std 32075: OUTPUT«ok 00:01 116m» | ||
TimToady | std: /<?before |>/ | ||
p6eval | std 32075: OUTPUT«===SORRY!===Unable to parse metachar at /tmp/B97ljvCVuR line 1:------> /⏏<?before |>/Couldn't find final '>'; gave up at /tmp/B97ljvCVuR line 1:------> /<?before⏏ |>/ expecting assertionParse failedFAILED 00:01 | ||
..116m» | |||
TimToady | std: /<?before>/ | 22:14 | |
p6eval | std 32075: OUTPUT«ok 00:01 116m» | ||
TimToady | hmm | ||
std: /<?before !>/ | |||
p6eval | std 32075: OUTPUT«===SORRY!===Unrecognized regex metacharacter (must be quoted to match literally) at /tmp/kPNr1pUcbH line 1:------> /<?before !⏏>/Can't call method "from" on unblessed reference at STD.pm line 53782.FAILED 00:01 116m» | ||
masak | <?before> is ok? | ||
TimToady | shouldn't be | ||
masak | thought so. | 22:15 | |
TimToady | + should also fail | ||
tylercurtis | jnthn: I expect to steal quite a bit from your metamodel, really. | ||
masak | aye. | ||
jnthn | tylercurtis: :-) | ||
tylercurtis: Feedback on your experiences with in LLVM most welcome. | |||
tylercurtis: Portability is in my long list of design worries. :-) | 22:16 | ||
22:16
alester left
|
|||
TimToady | darn, the + modified the (non)sigspace!?!? | 22:16 | |
masak | yuck. | 22:17 | |
TimToady | std: /<?before+>/ | ||
p6eval | std 32075: OUTPUT«===SORRY!===Quantifier quantifies nothing at /tmp/PMMjHIro3J line 1:------> /<?before+⏏>/Check failedFAILED 00:01 116m» | ||
TimToady | hmm | ||
22:18
eric256 left
|
|||
masak | rakudo: for [] -> $a { say $a.perl } | 22:22 | |
p6eval | rakudo 7b0031: OUTPUT«[]» | ||
masak | is this correct? | ||
tylercurtis | jnthn: will do, though I don't expect to work directly on the Bennu rewrite just yet. Waiting until I understand the metamodel a bit more. | 22:23 | |
masak | put differently, do things flatten in the <EXPR> position in the for statement? | ||
TimToady | [] never flattens in a list | 22:24 | |
so it's correct | |||
masak | what about this one? | 22:25 | |
rakudo: my %h = foo => []; for %h<foo> -> $a { say $a.perl } | |||
p6eval | rakudo 7b0031: OUTPUT«[]» | ||
masak | I find I do such hash accesses when iterating on quantified Match objects. I'd like to know if I should write %h<foo> or %h<foo>.list in the for statement. | 22:27 | |
jnthn | tylercurtis: Heh, I didn't start on the Parrot implementation yet for the same reason. :-) | ||
masak | not least because bitrot in my code seems to indicate that the behaviour changed in Rakudo recently :) | 22:29 | |
ah well, working code trumps getting a final answer. | 22:30 | ||
TimToady | I think that one should flatten | 22:37 | |
masak | what's the easy rule that distinguishes them? | ||
TimToady | there's no [] or $ to prevent it in the return from .<> | 22:38 | |
masak | so... where there's no explicit "don't flatten" clue, the thing flattens? | 22:39 | |
TimToady | nod | ||
masak submits rakudobug | |||
22:40
Guest23195 left
|
|||
masak | good. that's how I understood it last time. | 22:40 | |
22:41
colomon left,
colomon joined
|
|||
masak sleeps | 22:42 | ||
22:42
masak left
22:45
colomon left
22:51
Trashlord left
|
|||
jnthn | Ooh. Seems with the right twiddling the bootstrap becomes a bunch neater. | 22:53 | |
22:53
Trashlord joined,
Trashlord is now known as Guest29521
|
|||
dalek | odel: 3b36cb6 | jnthn++ | dotnet/compiler/PAST2DNSTCompiler.pm: Helps to actually emit the call to set up the constant table we build in the setting. |
22:56 | |
odel: c20047e | jnthn++ | dotnet/compiler/ (2 files): Make PDB files for the stuff we compile, so it's easier to go debugging. |
|||
odel: 3e7ec36 | jnthn++ | common/NQP/NQPSetting.pm: A little setting re-ordering; put NQPStr first, since we need strings early on in the bootstrap. |
|||
odel: 0e373a8 | jnthn++ | dotnet/compiler/Actions.pm: Bind the type object as soon as we create it, rather than post-compose. |
|||
odel: 63a9ad2 | jnthn++ | dotnet/ (2 files): Eliminate much of the bootstrappy type mess, which means we can create most constant things in the setting as constants (outside of loadinits where we're building the types of the constant things). |
|||
ok: a64178f | chromatic++ | src/builtins.pod: Converted builtin lists to POD tables. |
22:57 | ||
pugssvn | r32076 | lwall++ | [STD] improve error messages from malformed <before>ish things | 23:00 | |
23:09
M_o_C joined,
M_o_C left,
M_o_C joined
|
|||
tylercurtis | jnthn: If someone does BindAttribute on a P6hash type object, it appears that it becomes defined. Is that correct? | 23:11 | |
23:11
colomon joined
|
|||
jnthn | tylercurtis: No, it's just behind. | 23:12 | |
tylercurtis: I thought "ah, let's lazily allocate it" | |||
tylercurtis: That was before I put in repr_defined :-) | |||
Hmm. The "third argument is the type we want to box to" forms of the ops may be cute, but they actually completely kill us because of the sheer number of (lexical) lookups that result. | 23:15 | ||
(researching on a platform with an awesome profiler to hand)++ | |||
tylercurtis: I'm not using that P6hash repr for anything though | 23:16 | ||
tylercurtis: Also you're confused | |||
tylercurtis: That's not a type object | |||
tylercurtis: It's a representation object. | |||
(hangs off the REPR pointer in an STable) | |||
tylercurtis | jnthn: I mean that if you use the P6hash REPR's BindAttribute method with a type object as the object, it becomes defined. | 23:17 | |
jnthn | tylercurtis: Yeah | 23:18 | |
tylercurtis: It's rong. | |||
tylercurtis: Should just hit the null and die | |||
Well, die nicely I guess. | |||
23:18
Mowah left
23:21
cotto_work left,
dju left
23:22
dju joined
23:23
drbean joined
|
|||
jnthn | tylercurtis: Actually that P6hash repr is a bad example all around. :-) | 23:25 | |
tylercurtis: It was one of the first two that I sketched out when I was playing with ideas. | |||
tylercurtis: And it's received just about enough attention to keep it compiling. :-) | |||
tylercurtis | jnthn: I'll keep that in mind. | 23:28 | |
jnthn | Mmmmm....Krusovice mam. :-D | 23:33 | |
itz | has anyone tried rakudo on android yet? ok I'm sure its not fast :) | 23:52 | |
23:52
M_o_C left
|
|||
dalek | odel: 3881965 | jnthn++ | / (9 files): Turns out that the always pass ops type object for result type stratergy is a rather bad idea, since we end up doing tons of lexical lookups. This patch halves the number we do in a simple counting up while loop benchmark. |
23:52 | |
odel: d9c8bf3 | jnthn++ | dotnet/compiler/ROADMAP.txt: Remove some done items from the ROADMAP. |
|||
23:58
meppl left
|