»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend! Set by sorear on 4 February 2011. |
|||
flussence | forums.gentoo.org/viewtopic-t-901474.html | 00:04 | |
00:04
overrosy left
|
|||
flussence | whoops, ww | 00:04 | |
00:09
molaf_ joined
00:12
molaf left
|
|||
diakopter | [Coke]: the problem with the first idea is that redo/next/last lose their meaning inside loops (usually redo/next/last are enclosed in conditional blocks after all) | 00:13 | |
I like the second idea | |||
00:15
benabik left
|
|||
dalek | kudo/nom: ef4702d | Coke++ | t/spectest.data: track failure modes |
00:17 | |
00:28
clairvy left
00:29
clairvy joined
00:33
clairvy left
00:34
Guest53729 left
00:37
abercrombie joined
00:44
localhost left
00:48
localhost joined
01:08
IngisKahn joined
01:10
Ingis left,
replore joined
01:23
envi_ joined
|
|||
shachaf | preflex: seen sorear | 01:33 | |
preflex | sorear was last seen on #perl6 9 hours, 25 minutes and 11 seconds ago, saying: pir::setprop(...) | ||
01:38
ab5tract joined
01:39
fridim_ joined
01:42
hypolin joined
01:51
wolfman2_ left
01:52
Chillance left
01:53
cooper left
01:56
fridim_ left
01:59
ab5tract left,
whiteknight joined
02:00
whiteknight is now known as Guest81902
|
|||
dalek | odel: 80d077d | diakopter++ | lua/ (7 files): decent perf improvements |
02:02 | |
02:28
alc joined
02:30
cooper joined
02:58
cafesofie left
03:04
Guest81902 left
03:10
simcop2387 left
03:11
icovnik left
03:14
simcop2387 joined
03:28
satyavvd joined
03:29
wolfman2000 joined
|
|||
cognominal | I have to grok the sigiless silliness. | 03:42 | |
03:45
buubot_backup left
|
|||
diakopter | you have *yet to? | 03:46 | |
cognominal | indeed. | 03:49 | |
03:54
mkramer joined
03:56
abercrombie left
04:04
cooper left,
buubot_backup joined
04:05
huf left
04:06
sftp left
04:19
f00li5h left
04:20
f00li5h joined,
kfo joined,
cooper joined
04:23
kfo_ left
|
|||
sorear | shachaf: hello! | 04:27 | |
good * #perl6 | |||
shachaf | sorear: Happy birthday! | ||
04:27
buubot_backup left
|
|||
sorear | Thanks. | 04:28 | |
niecza: say "hi" | 04:29 | ||
p6eval | niecza v11-22-gbebf7a0: OUTPUT«hi» | ||
sorear | \o/ p6eval is back | ||
04:38
xensu joined
04:40
jaldhar left
04:41
jaldhar joined
04:45
xensu left
04:47
buubot_backup joined
04:55
cooper left
04:59
buubot_backup left
|
|||
diakopter | brrr | 05:06 | |
05:12
orafu left
05:13
orafu joined
|
|||
[Coke] | nom: say "nom: say 'nom'" | 05:17 | |
p6eval | nom ef4702: OUTPUT«nom: say 'nom'» | ||
05:19
buubot_backup joined
05:30
huf joined
05:54
sunnavy left
|
|||
moritz | happy sorear++ | 05:55 | |
05:56
sunnavy joined
|
|||
moritz | [Coke]: at your convenience, could you please add gist.github.com/1340539 to the top of rakudo's tools/build/Makefile.in and see if it still builds after a reconfigure? thank you | 06:04 | |
06:07
alim joined,
mkramer left
|
|||
moritz | [Coke]: on windows that is | 06:15 | |
sorear | moritz: thanks | 06:27 | |
TimToady: do we have a good way to quantify the completeness of Unicode support? | 06:30 | ||
or just S05 in roast hmm | |||
06:33
thou left
06:36
risou_awy is now known as risou
06:46
alim left
06:48
overrosy joined
06:49
daniel-s joined
07:05
icovnik joined
07:08
sunnavy left
07:09
sunnavy joined
07:13
icovnik left
07:15
replore left
07:30
dual joined
07:39
zby_home joined
07:43
robertbrook joined
07:47
mkramer1 joined
07:56
replore_ joined
08:03
robertbrook left,
wtw joined
08:09
envi_ left
08:12
f00li5h left
08:14
f00li5h joined
08:26
xinming_ is now known as xinming
08:27
f00li5h left
08:28
mj41 joined
08:29
f00li5h joined
08:36
buubot_backup left
08:55
alim joined,
buubot_backup joined
08:59
cosimo joined
09:03
f00li5h left,
f00li5h joined
09:05
overrosy left
09:06
overrosy joined
09:12
f00li5h left
09:17
overrosy left
09:19
overrosy joined
09:23
mishin joined
09:29
Trashlord joined
|
|||
tadzik | good morning #perl6 | 09:40 | |
happy birthday sorear! | |||
09:53
ab5tract joined
10:02
mkramer1 left
10:03
mkramer joined,
mkramer left
10:04
hypolin left
10:21
alc left
10:26
replore_ left
|
|||
moritz | I have some trouble understanding how native ints and Int mix | 10:28 | |
in particular, if I write 1233 * 456, are these two numbers native ints? | 10:29 | ||
or can they be used both as native ints and Int, as rakudo does? | |||
trouble is that if they are interpreted as native ints, and are a bit larger than in my example, they can overflow | |||
erm, not they, but the result of the operation | 10:30 | ||
10:36
mishin left
10:40
satyavvd left
10:45
wk left
10:48
Trashlord left,
Trashlord joined
10:49
risou is now known as risou_awy
|
|||
moritz | nom: pir::say pir::typeof__SP(3) | 11:04 | |
p6eval | nom ef4702: OUTPUT«Int» | ||
11:07
mkramer1 joined
11:10
tomaw is now known as theia,
theia is now known as tomaw
|
|||
moritz | jnthn++ # factoring SymbolTable (and its usage in the actions) very nicely | 11:24 | |
11:24
mkramer1 left
|
|||
moritz | I have hopes that the codegen changes for the bigint things doesn't become too ugly | 11:25 | |
11:27
daxim joined
11:35
domidumont1 joined
11:36
domidumont left
11:52
bluescreen10 joined
11:54
Trashlord left
11:55
pmurias joined
12:00
Trashlord joined
12:04
daniel-s left
12:08
pmurias left
12:10
pmurias joined
12:15
Patterner left
12:16
Psyche^ joined,
Psyche^ is now known as Patterner
12:26
fridim_ joined
12:29
sftp joined
12:31
clairvy joined
12:37
bazqux joined,
sunnavy left,
pmurias left,
sunnavy joined
12:38
Trashlord left,
sunnavy left,
sunnavy joined,
pmurias joined
12:40
sunnavy left,
sunnavy joined
12:41
Trashlord joined
12:46
Trashlord left
|
|||
dalek | kudo/bigint: 29eeaf8 | moritz++ | src/Perl6/ (2 files): start to generate bigints in the actions. Does not compile the setting yet |
12:47 | |
kudo/bigint: e2c2af5 | moritz++ | src/Perl6/Actions.pm: switch radcalc to bigints now dies in quote_escape:sym<hex> |
|||
12:48
pmurias left,
molaf_ left
|
|||
moritz | "get_integer() not implemented in class 'Int'" | 12:49 | |
that error message has a certain irony | |||
12:50
pmurias joined,
clairvy left,
clairvy joined
12:51
mj41 left
12:55
clairvy left
12:56
pmurias left
12:58
pmurias joined
13:07
Lothar left
13:08
bbkr left,
Kivutarrr joined
13:09
bbkr joined
|
|||
dalek | p/bigint: 05d6ab2 | moritz++ | / (3 files): add nqp::isbig_I op, and nqp:: variants for bigint <-> str conversion |
13:10 | |
p/bigint: 9647ef9 | moritz++ | src/HLL/Actions.pm: make ints_to_string a method, so that it can be overridden in subclasses |
|||
13:10
mkramer joined
13:12
pmurias left
13:13
mkramer left
13:14
pmurias joined
13:20
Lothar joined
13:24
wk joined
|
|||
dalek | kudo/bigint: e68268b | moritz++ | src/Perl6/Actions.pm: fix hex escapes; restore compilation of the setting |
13:25 | |
13:32
mj41 joined
13:35
pmurias left
13:37
pmurias joined
13:42
pmurias left
13:43
jaldhar left,
jaldhar joined
13:44
pmurias joined
13:50
jaldhar left
|
|||
dalek | kudo/bigint: b147776 | moritz++ | src/Perl6/SymbolTable.pm: move bigint serialization to the proper place |
13:54 | |
13:55
smash joined
|
|||
smash | hello everyone | 13:55 | |
13:58
mj41 left
|
|||
moritz | hi smash | 14:01 | |
nom: say 9999999999999999999999999 + 1 | |||
p6eval | nom ef4702: OUTPUT«Use of uninitialized value in string contextUse of uninitialized value in string context===SORRY!===error:imcc:eval_ins: op 'add_i_n_i' not found in file '(file unknown)' line 58506025» | ||
moritz | huh :-) | ||
b: say 9999999999999999999999999 + 1 | |||
p6eval | b 1b7dd1: OUTPUT«1.59089797835941e+18» | ||
moritz | locally: | ||
$ ./perl6 -e 'say 9999999999999999999999999 + 1' | 14:02 | ||
10000000000000000000000000 | |||
there's still a decent degree of brokenness in that branch | |||
but at least the codegen for ordinary int literals seems fine | 14:03 | ||
nom: say 9999 ** 10 | |||
p6eval | nom ef4702: OUTPUT«-9223372036854775808» | ||
14:06
mj41 joined
14:09
vmspb joined,
pmurias left
14:11
pmurias joined
14:13
Trashlord joined
14:24
bazqux left
14:27
thou joined
|
|||
tadzik | moritz++ | 14:28 | |
14:29
pmurias left
14:31
pmurias joined
14:37
pmurias left,
Trashlord left
14:38
pmurias joined
14:40
Trashlord joined
14:41
Trashlord is now known as Guest44156
14:45
pmurias left,
sayu joined
14:47
pmurias joined
14:50
pmurias_ joined,
quicoju joined
14:51
pmurias left
14:58
sftp left
15:02
pmurias_ left,
djanatyn left
|
|||
moritz | the radcalc code looks a bit weird/redundant | 15:03 | |
the cases that creates a Rat, that is | |||
15:03
Tene left
15:04
pmurias joined
|
|||
moritz | return $*ST.add_constant('Rat', 'type_new', | 15:04 | |
$*ST.add_numeric_constant('Int', $iresult)<compile_time_value>, | |||
$*ST.add_numeric_constant('Int', $fdivide)<compile_time_value>, | |||
15:04
djanatyn joined
|
|||
moritz | :nocache(1) | 15:04 | |
); | |||
15:04
Tene joined,
Tene left,
Tene joined
|
|||
moritz | why the the add_numeric_constant calls when the result is discarded? | 15:05 | |
and it seems the Rat case is special-cased anyway to serialize the nu and de | 15:06 | ||
tadzik | what do you mean: discarded? | ||
moritz | I mean that only $thing<compile_time_value> is passed on to $*ST.add_constant | 15:07 | |
but $thing (return value from add_numeric_constant) isn't used | |||
but $iresult and $fdivide already are compile-time values | |||
tadzik | but it's in the symboltable | 15:08 | |
the 'call add_constant and use only the <compile_time_value>' seems quite common in Actions, methinks | |||
hmm, I may see your point | |||
15:09
pmurias left
|
|||
moritz | $ST.add_constant special-cases the codegen for the arguments when the type is 'Rat' | 15:10 | |
15:11
pmurias joined
15:12
daxim left
|
|||
tadzik | oh | 15:12 | |
15:13
wtw left
|
|||
moritz | and the trouble with that special case is that it assumes that Int round-trips on unboxing to int, and then boxing again | 15:14 | |
which is broken by bigints | |||
which is why Rat literals for big numbers are just as broken in the bigint branch as in nom | |||
nom: say 3.14444444444444444444444444444444444 | |||
p6eval | nom ef4702: OUTPUT«===SORRY!===bigint_get_long: number too big» | ||
moritz | ok, broken in a different way :-) | 15:15 | |
$ ./perl6 -e 'say 3.14444444444444444444444444444444444' | |||
Segmentation fault | |||
tadzik | I completely don't understand grammars in nom | ||
moritz | let's wait 'til after the rebuild | ||
tadzik | b: gist.github.com/1358234 | 15:16 | |
p6eval | b 1b7dd1: OUTPUT«keys: ("zebra")elems: 3elems2: 1"whatever"» | ||
tadzik | nom: gist.github.com/1358234 | ||
p6eval | nom ef4702: OUTPUT«keys: ().listelems: 1elems2: 0"whatever"» | ||
15:16
pmurias_ joined
|
|||
tadzik | seems that captures are lost more often than we thought | 15:16 | |
15:16
pmurias left,
pmurias_ is now known as pmurias
|
|||
moritz | try $/.list.keys | 15:17 | |
erm | |||
$/.hash.keys | |||
tadzik | still () | 15:18 | |
15:19
Guest44156 is now known as Trashlord,
Trashlord left,
Trashlord joined
15:23
pmurias left
15:24
pmurias joined
|
|||
moritz | the bigints + rat business is rather fiddly :/ | 15:28 | |
when I call a nqp::something_I() op with something that isn't a bigint, it segfaults | 15:29 | ||
15:36
pmurias left
15:38
pmurias joined
|
|||
moritz | jnthn: moritz.faui2k3.org/tmp/rat-bigint.patch on the bigint branch (needs newest nqp/bigint) makes the arguments to Rat.new() come out as Mu instead of Int while compiling the setting, and I don't understand why. Maybe you can take a look... | 15:45 | |
16:00
MayDaniel joined
16:05
pmurias left
16:06
pmurias joined
16:12
quicoju left
16:13
quicoju joined
16:18
risou_awy is now known as risou
16:21
pmurias left
16:23
pmurias joined
16:29
IngisKahn left
16:32
pmurias left
16:34
pmurias joined
16:35
dual left,
fsergot left
16:42
quicoju left
16:43
quicoju joined
16:46
alim left
16:50
wk left
16:57
mj41 left
16:59
wolfman2000 left
17:13
quicoju left
17:15
quicoju joined
17:25
quicoju left
17:28
dju left
17:31
pmurias left
17:32
IngisKahn joined,
pmurias joined
17:36
dju joined
17:41
pmurias left
17:43
pmurias joined,
phenny joined
17:47
dju left
17:54
simcop2387 left
|
|||
moritz | nom: BEGIN my $*QSIGIL = 5; $y | 17:54 | |
p6eval | nom ef4702: OUTPUT«(signal SEGV)» | 17:55 | |
moritz | oops. | ||
17:55
simcop2387 joined,
tty234 joined
17:57
Chillance joined
17:58
molaf joined,
pmurias left
18:00
pmurias joined
18:03
dju joined,
cognominal_ joined
18:05
paly joined
18:06
cognominal left
18:07
pmurias left
18:08
pmurias joined
18:18
pmurias left,
paly left
18:20
dju left
18:21
pmurias joined
|
|||
dalek | kudo/bigint: 3d97eda | moritz++ | src/core/Int.pm: use new nqp::pow_I opcode |
18:26 | |
kudo/bigint: 7c6a4a6 | moritz++ | src/Perl6/Actions.pm: use add_numeric_constant for numeric constant |
|||
kudo/bigint: 933a1a5 | moritz++ | src/Perl6/Actions.pm: document some assumptions; remove unused variable no functional changes |
|||
18:27
pmurias left
18:28
pmurias joined
|
|||
moritz | perl6: say 9 ** -10 | 18:29 | |
p6eval | niecza v11-22-gbebf7a0: OUTPUT«1/3486784401» | ||
..rakudo ef4702: OUTPUT«2.86797199079244e-10» | |||
..pugs b927740: OUTPUT«***  Unexpected "-" at /tmp/d5IRG5jOst line 1, column 10» | |||
18:33
pmurias left,
imarcusthis left,
bluescreen100 joined
18:34
pmurias joined
|
|||
moritz | infix ** seems to work nicely in the bigint branch | 18:36 | |
18:37
bluescreen100 left,
bluescreen10 left
|
|||
moritz | now if I could only get these f#### Rat literals working... | 18:37 | |
18:37
bluescreen10 joined
18:39
pmurias left
18:40
dju joined
18:41
pmurias joined
18:42
imarcusthis joined
18:47
pmurias left
18:49
pmurias joined
19:00
pmurias left
19:01
pmurias joined
19:02
nebuchadnezzar left
19:05
M_o_C joined
19:06
pmurias left,
nebuchadnezzar joined
19:08
pmurias joined
19:10
wolfman2000 joined
|
|||
moritz | nom: nqp::say(my $x) | 19:12 | |
p6eval | nom ef4702: OUTPUT«Use of uninitialized value in string context» | ||
moritz | mqp: say(my $x) | ||
nqp: say(my $x) | |||
p6eval | nqp: OUTPUT«» | ||
clsn | nom: "e u a u e u a" ~~ /:sigspace ("a") ([<[aeiou]> ]+)$/ | 19:13 | |
p6eval | nom ef4702: ( no output ) | 19:14 | |
clsn | nom: say ("e u a u e u a" ~~ /:sigspace ("a") ([<[aeiou]> ]+)$/) | ||
p6eval | nom ef4702: OUTPUT«=> < a u e u a> 0 => <a> 1 => <u e u a>» | ||
clsn | nom: say ("e u a u e u a" ~~ /:sigspace .("a") ([<[aeiou]> ]+)$/) | ||
p6eval | nom ef4702: OUTPUT«#<failed match>» | ||
clsn | Does that make sense to anyone? The only difference was adding a . before the ("a"), and if you look at the prior match, there IS stuff before it. | ||
std: say ("e u a u e u a" ~~ /:sigspace ("a") ([<[aeiou]> ]+)$/) | 19:15 | ||
p6eval | std be1f10e: OUTPUT«Potential difficulties: [<[aeiou]> ] appears to be an old-school character class; please use <[<[aeiou]>\x20]> if you mean a character class, or quote it like '<[aeiou]> ' to match string as a unit at /tmp/Olyn9W30q8 line 1:------> e u a" ~~ /:sigspac… | ||
19:15
pmurias left
|
|||
moritz | clsn: it seems that it doesn't backtrack when it should | 19:15 | |
clsn | Yeah. It gets weirder: | ||
nom: say ("e u a u e u a" ~~ /:sigspace .?("a") ([<[aeiou]> ]+)$/) | 19:16 | ||
p6eval | nom ef4702: OUTPUT«=> < a u e u a> 0 => <a> 1 => <u e u a>» | ||
clsn | But | ||
nom: say ("e u a u e u a" ~~ /:sigspace (.?)("a") ([<[aeiou]> ]+)$/) | |||
p6eval | nom ef4702: OUTPUT«#<failed match>» | ||
clsn | So it fails *only* if you're trying to capture that part. | ||
sorear | niecza: say(my $x) # is this entirely wrong, then? | ||
p6eval | niecza v11-22-gbebf7a0: OUTPUT«Potential difficulties: $x is declared but not used at /tmp/Z_dLBnm2XM line 1:------> say(my ⏏$x) # is this entirely wrong, then?Any()» | ||
moritz | so another instance of "backtracking over capures wrongly" | ||
erm | 19:17 | ||
modulo English | |||
sorear: not at all | |||
TimToady | niecza: say ("e u a u e u a" ~~ /:sigspace (.?)("a") ([<[aeiou]> ]+)$/) | ||
p6eval | niecza v11-22-gbebf7a0: OUTPUT«#<match from(3) to(13) text( a u e u a) pos([#<match from(4) to(4) text() pos([].list) named({}.hash)>, #<match from(4) to(5) text(a) pos([].list) named({}.hash)>, #<match from(6) to(13) text(u e u a) pos([].list) named({}.hash)>].list) named({}.hash)>» | ||
19:17
pmurias joined
|
|||
clsn | Is this stuff known, or worth sending in? | 19:17 | |
TimToady | niecza: say ("e u a u e u a" ~~ /:sigspace .("a") ([<[aeiou]> ]+)$/) | ||
p6eval | niecza v11-22-gbebf7a0: OUTPUT«Match()» | ||
moritz | sorear: I've only tested nqp and nom with pir::say | ||
sorear needs to invent a less verbose syntax for Match.perl | |||
moritz | clsn: worth reporting | ||
sorear: for Match.gist at least | |||
sorear | ...right that's what I meant :| | ||
clsn | Thanks. I live in deathly fear of sending in an extraneous bug report... | 19:18 | |
moritz | clsn: don't be. We sometimes get duplicate bug reports, and they don't kill us | ||
clsn: the search facility of rt.perl.org sucks, so it's inevitable | |||
and with > 500 tickets it's simply impossible to track in your head what's submitted and what not | 19:19 | ||
clsn | OK. Thanks for the encouragement. | 19:20 | |
TimToady | niecza: say ("e ! a u e u a" ~~ /:sigspace .("a") ([<[aeiou]> ]+)$/) | ||
p6eval | niecza v11-22-gbebf7a0: OUTPUT«Match()» | ||
TimToady | niecza: say ("e !!a u e u a" ~~ /:sigspace .("a") ([<[aeiou]> ]+)$/) | 19:21 | |
p6eval | niecza v11-22-gbebf7a0: OUTPUT«#<match from(3) to(13) text(!a u e u a) pos([#<match from(4) to(5) text(a) pos([].list) named({}.hash)>, #<match from(6) to(13) text(u e u a) pos([].list) named({}.hash)>].list) named({}.hash)>» | ||
TimToady | this is arguably correct behavior for bare . | ||
if <ws> matches real ws it probably should not match '' on either end of it | |||
clsn | I was just looking at that. using ". " instead of "." works... Is . not allowed to match space under :sigspace? | 19:22 | |
TimToady | that's not the problem | 19:23 | |
moritz | nom: say :10<3*10**3> | ||
p6eval | nom ef4702: OUTPUT«3000» | ||
moritz | nom: say :10<3*10**3>.WHAT | ||
p6eval | nom ef4702: OUTPUT«Num()» | ||
TimToady | <ws> matches one way or the other, but does not imply a backtrack inside it | 19:24 | |
moritz | TimToady: should that prodcue a Num (in analogy to 3e3)? | ||
or an Int instead? | |||
and :10<3.0*10**3>? Rat? Num? Int? | 19:25 | ||
TimToady | S02:3287 | ||
19:27
bluescreen10 left
|
|||
moritz | so even :10<0.1*10**1> produces an Int | 19:28 | |
TimToady | according to current spec, yes | ||
sorear | TimToady: iirc, we want <.ws> <.ws> to mean the same thing as <.ws> | 19:29 | |
TimToady | well, sure, since you can put two spaces in a row into sigspace patterns pretty easily | ||
std uses memos to handle that, generally | 19:30 | ||
sorear | yeah, just saying that we need <.ws> to match "" on the _right_ side of "real ws" | 19:31 | |
TimToady | sure, but it's still not backtracking either of them | ||
19:31
M_o_C left
|
|||
clsn | Does the space after the :sigspace adverb count as a <.ws> space? I would expect not. | 19:31 | |
TimToady | it currently does, though we've considered changing it | ||
it would make some things easier, and also harder to explain :) | 19:32 | ||
clsn | In that case, the problems I'm seeing do make some sense, but then how does one make a :sigspace pattern that does not start with <.ws>? | ||
TimToady | put the :s after what you want to match without it, for one | ||
or use an unspace | 19:33 | ||
but in general, it would help rules participating in LTM if we changed it to ignore ws before the first subtoken | |||
STD has a bunch of token decls with :s that could just be rules if that were the case | |||
assuming that the 'ignore ws after :s' also applies to the implicit :s of "rule" | 19:34 | ||
it would be a sane default, and one can always force it the other way with [ ] or <ws> if needed | 19:35 | ||
clsn | (these matches worked differently in past rakudos, btw, but if the current behavior can be claimed to be correct that isn't so important a point.) | ||
TimToady | but as I said, the only thing preventing it that I can see is that it'd be harder to explain | ||
clsn | I don't know; that the adverb has to be delimited by whitespace (which doesn't count) seems pretty intuitive to me. | 19:36 | |
19:36
sayu left
|
|||
TimToady | I'd also note that the initial whitespaces in *any* alternation should probably be ignored, to keep LTM sane | 19:36 | |
I think std and niecza do this implicitly without telling anyone in any case | |||
when you write a rule { stuff [ a | b | c ] } it really turns into rule { stuff [a |b |c ] } | 19:38 | ||
it might only do that if there's ws outside the []; don't recall offhand | |||
so perhaps the actual rule we should advertize is that sigspace will be ignored anywhere something can be used as an alternative under LTM | 19:39 | ||
19:39
bluescreen10 joined
|
|||
TimToady | and since any token or rule could in theory be used in such an alternation, initial sigspace there is ignored | 19:39 | |
clsn | Can you use an unspace inside a rule, btw? I tried putting a backslash after the :s and it didn't work. (putting the :s after the first element did) | 19:40 | |
TimToady | there is potentially some ambiguity there, so may be outlawed unspace where it looks like a quoted space | 19:41 | |
std: / foo\ bar / | |||
p6eval | std be1f10e: OUTPUT«===SORRY!===No unspace allowed in regex; if you meant to match the literal character, please enclose in single quotes (' ') or use a backslashed form like \x20 at /tmp/Yg2saDkZHQ line 1:------> / foo\⏏ bar /Parse failedFAILED … | ||
TimToady | heh, doesn't say what to do if you wanted unspace | ||
so nevermind about that suggestion; I'm just going senile (hopefully slowly) | 19:42 | ||
19:42
pmurias left
|
|||
clsn | OK, fair enough. :) | 19:42 | |
TimToady | well, there's always [:!s ] | ||
std: / foo[:!s ]bar / | 19:43 | ||
p6eval | std be1f10e: OUTPUT«ok 00:01 120m» | ||
TimToady | std: / foo#`( )bar / | ||
p6eval | std be1f10e: OUTPUT«ok 00:01 120m» | ||
TimToady | there's embedded comments too | ||
clsn | Turns out that in the original case I was working with, I actually had /:sigspace ^.../, i.e. search anchored at the head of the string, which natually would always fail when that first space is counted! | ||
19:43
buubot_backup left
|
|||
TimToady | yes, another argument for ignoring initial ws | 19:43 | |
19:43
pmurias joined
|
|||
TimToady | I think I'll spec it that way and see who panics this tie | 19:44 | |
diakopter | pmurias: hi | 19:45 | |
clsn | ok. | 19:46 | |
19:47
molaf left
|
|||
clsn | nom: "e u a u e u a" ~~ /:sigspace^.*?("a") ([<[aeiou]> ]+)$/ | 19:49 | |
p6eval | nom ef4702: ( no output ) | ||
clsn | nom: say ("e u a u e u a" ~~ /:sigspace^.*?("a") ([<[aeiou]> ]+)$/) | ||
p6eval | nom ef4702: OUTPUT«=> <e u a u e u a> 0 => <a> 1 => <u e u a>» | ||
clsn | nom: say ("e u a u e u a" ~~ /:sigspace^(.*?)("a") ([<[aeiou]> ]+)$/) | ||
p6eval | nom ef4702: OUTPUT«#<failed match>» | ||
clsn | Still a problem that the capture parens make it fail. | 19:50 | |
dalek | odel: c52987f | diakopter++ | lua/ (3 files): minor improvements |
19:52 | |
clsn | Looks like I can do without that capture in my single perl6 program... Now once the recursion thingy is fixed it will work again. | 19:55 | |
19:56
wk joined
|
|||
dalek | ecs: d7e1a70 | larry++ | S05-regex.pod: generalize rule relating sigspace to LTM |
19:57 | |
TimToady | this spec change means that much of STD is now wrongish :) | 19:58 | |
sorear: ^^ | 19:59 | ||
TimToady tries hard to avoid the "But we already have 11 users" syndrome :) | 20:00 | ||
20:00
wk left
|
|||
TimToady | though we should not have much code depending on ws being significant at the front of rules, except maybe the TOP | 20:01 | |
where we might need an extra <.ws> to get LTM started up right | 20:02 | ||
20:02
buubot_backup joined
|
|||
TimToady | once we've fixed this, we can then relax our token { :s } instances to mere rules | 20:02 | |
dalek | kudo/bigint: 3014678 | moritz++ | src/Perl6/Actions.pm: fix calling of radcalc for radix literals; make them produce the right type, I hope |
20:04 | |
20:06
mkramer joined,
mkramer left
20:09
thou left
20:10
sftp_ joined
20:13
pmurias left
|
|||
dalek | odel: 66ccb5f | diakopter++ | lua/compiler/Makefile: Makefile oopsie |
20:13 | |
20:14
vmspb left,
pmurias joined
20:18
wolfman2000 left
20:19
pmurias left,
jaldhar joined,
buubot_backup left
20:20
pmurias joined
|
|||
TimToady | oh, and clsn++ for reminding me that I wanted to do that... | 20:23 | |
clsn | Thanks! | 20:24 | |
20:26
ksi joined
20:29
preflex_ joined
20:30
preflex left,
preflex_ is now known as preflex
|
|||
TimToady | we might simplify it further and say that we look for significant whitespace only after an explicit matcher, never after declarations or syntactic functors like brackets | 20:30 | |
a quantified atom would count as a matcher for this, presumably | 20:32 | ||
20:33
jaldhar left,
jaldhar joined
|
|||
TimToady | this might simplify both the semantics and the teaching | 20:33 | |
above I use "declaration" to mean things like :my and :sigspace, not in the declarational sense we use when discussing LTM | 20:34 | ||
in rule { 'foo' } the 'foo' is declarational but not a declaration :) | |||
sorear | but metachar:sym<[ ]> is a quantified atom | ||
so is metachar:p6adv | |||
20:35
cooper joined,
cooper left,
cooper joined
|
|||
TimToady | true, so just the opening [ is exempt | 20:35 | |
as a degenerate case rule {'' ... } would give the current semantics | 20:36 | ||
I think this simplification can also cut down on some of the <ws> pressure | 20:37 | ||
and clarify the semantics of ws around ** and % | 20:38 | ||
that is, we could just make those follow the same rule, and not special-case them | |||
as we don now | 20:39 | ||
*do | |||
as for p5adv, we'd have to rethink that one, I imagine | |||
a lexical scope might have to eat the initial ones explicitly | 20:41 | ||
sorear | I think we have :my as a quantified atom too | ||
TimToady | or normspace eats them | ||
but this seems like a good simplification to me, and worth a little agony | 20:42 | ||
20:42
thou joined
|
|||
TimToady | maybe it's just a lexer state, and any real matcher enables a 1-shot sigspace | 20:46 | |
well, wouldn't be lazy, rather a use-it-or-lose-it | 20:47 | ||
but maybe that's just syntax | |||
TimToady -> catfood acquisition mode & | 20:49 | ||
20:52
jaldhar left,
_jaldhar joined,
Ingis joined
20:56
IngisKahn left
20:57
pmurias left
20:59
pmurias joined
21:02
ab5tract left
21:04
vmspb joined,
pmurias left
|
|||
PerlJam | That sigspace change seems useful but it also looks like it has a small gotcha: token foo { :s [ foo | bar | baz ] ... } # did the sigspace do its job or get ignored? | 21:04 | |
21:05
ethndbst joined,
ethndbst left,
ethndbst joined
21:06
pmurias joined
21:08
am0c joined
21:10
_jaldhar left
21:13
pmurias left
21:15
pmurias joined
21:19
ethndbst left
21:22
pmurias left
21:24
pmurias joined
|
|||
moritz | I've been struggling with the Rat codegen for half a day, and giving up now | 21:28 | |
there's what seems to be an optimization for Rat in Perl6::SymbolTable.add_constant | |||
removing it causes segfaults | |||
21:29
pmurias left
|
|||
moritz | changing it to deal with bigints in any way that I can imagine makes it die with opaque errors | 21:29 | |
21:29
am0c_ joined
|
|||
TimToady | PerlJam: only the trailing whitespace would be recognized, so it depends on what you think its job is | 21:29 | |
your declaration would be indistinguishable from a rule declaration | 21:30 | ||
21:31
pmurias joined
21:32
am0c left,
Trashlord left
21:34
Trashlord joined
|
|||
PerlJam | TimToady: token blah { ... [:s [ foo | bar | baz ] ] ... } # then. What I'm trying to get at is that sometimes the regex author may need to be explicit about the <.ws> when they're trying to use :s | 21:37 | |
(the ellipses are meta in this example :) | |||
TimToady | that will ignore whitespace before foo, bar, or baz | 21:39 | |
that is, not expect whitespace | |||
use :s '' [ ] to mean the other thing now | |||
dalek | odel: 8a63edd | diakopter++ | lua/runtime/ (3 files): clone fixups |
||
odel: 7ecd0ed | diakopter++ | lua/compiler/Makefile: Merge branch 'master' of github.com:diakopter/6model |
|||
PerlJam | ah | 21:40 | |
21:41
donaldh joined
|
|||
PerlJam | Still that's likely to surprise people | 21:43 | |
21:48
pmurias left
|
|||
TimToady | it | 21:49 | |
it's impossible to never surprise people :) | |||
unless maybe when you're dead | |||
and sometimes even then... | |||
I just hope I'm never surprisingly boring :) | 21:50 | ||
21:52
pmurias joined,
ethndbst joined
21:56
bluescreen10 left
21:57
pmurias left
21:59
pmurias joined
22:02
buubot_backup joined
22:05
pmurias left,
am0c_ left
22:06
pmurias joined
22:07
buubot_backup left
22:09
donaldh left
22:11
bluescreen10 joined
22:14
overrosy left
22:16
overrosy joined
22:29
buubot_backup joined
22:30
MayDaniel left,
Kivutarrr left
22:34
bluescreen10 left
22:35
bluescreen10 joined,
donaldh joined
22:37
pmurias left
22:39
pmurias joined
22:45
pmurias left
22:46
pmurias joined
22:51
pmurias left
22:52
pmurias joined
22:57
donaldh left,
pmurias left
22:59
pmurias joined,
alvis left
23:07
pmurias left
23:11
pmurias joined
23:13
_jaldhar joined,
tkr joined
|
|||
tkr | hi. what about PDL for perl6? | 23:13 | |
what is it's replacement. | |||
? | |||
23:14
slavik1 left
|
|||
TimToady | S09, but not implemented yet | 23:14 | |
tkr | Hm, let me peek. | ||
23:14
alvis joined
|
|||
dukeleto | does Rakudo have any plans to implement S09 any time soon? | 23:15 | |
TimToady | they're working up to it with 6model and native types | 23:16 | |
tkr | TimToady: Im talking about superfast Linear Algebra libraries | 23:17 | |
Ah. Im probably confused in the discussion as I just joined the channel. | 23:18 | ||
TimToady | sorry, on the phone at the moment | 23:19 | |
tkr | on a wireless phone or normal? | 23:20 | |
do you dial the number using your index finger? | 23:21 | ||
TimToady: np. :) | 23:22 | ||
dukeleto | tkr: you want superfast linear algebra in perl 6? | 23:23 | |
tkr | dukeleto: well, not that I really need it. I was just curious. | ||
dukeleto: Ive been attending the Machine Learning class online and learnt a lot of linear algebra that used to be "black" magic for me. | 23:24 | ||
dukeleto | tkr: there are some bindings to BLAS from Parrot that you could probably use in Rakudo. I say probably. I don't think anybody has ever tried. | ||
tkr | dukeleto: than I was delighted to hear that perl5 can do about the same as Matlab/Octave, when it comes to performance related to number crunching, and I got curious if perl6 had something cool that I wasnt aware of yet. :) | ||
dukeleto: ok. | 23:25 | ||
dukeleto | tkr: perl5/matlab/octave are all basically C, so yeah, *roughly* the same performance, but different memory overheads | 23:26 | |
tkr: nobody can number crunch like Fortran, still. | |||
really, all we need is for ingy to port Inline::Fortran to Parrot and then Rakudo will get it for free... | 23:27 | ||
what could go wrong? | |||
23:28
pmurias left
23:29
buubot_backup left,
_jaldhar left,
pmurias joined
23:32
_jaldhar joined
23:34
vmspb left,
zby_home__ joined
23:35
zby_home left
23:40
ksi left
23:42
ab5tract joined
23:47
pmurias left
23:51
whiteknight joined,
whiteknight is now known as Guest25363
23:52
buubot_backup joined
23:53
_jaldhar left
23:54
_jaldhar joined
23:56
zby_home__ left
23:58
buubot_backup left
|