»ö« 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.
00:01 havenn left 00:05 s1n left 00:09 benabik left, benabik joined 00:13 Chillance_ left 00:17 xinming_ joined 00:19 s1n joined 00:20 xinming left 00:49 mikemol left 00:51 skipper left 00:53 mikemol joined 00:54 havenn joined 01:04 scott_ joined, scott_ is now known as Guest69481 01:10 BlueT_ left, BlueT_ joined 01:11 Guest60472 left 01:14 havenn left 01:17 thelazydeveloper left 01:31 thou left 01:36 thou joined
cognominal what is the perl6 equivalent of perl5 'system' function? 01:37
01:45 am0c left
TimToady run 01:51
or more likely, shell
01:59 s1n left
colomon n: ' quack'.indent(-4) 01:59
p6eval niecza v17-4-ge5b869e: OUTPUT«Asked to remove 4 spaces, but the shortest indent is 3 spaces␤ at /home/p6eval/niecza/lib/CORE.setting line 1226 (warn @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 913 (ANON @ 10) ␤ at /home/p6eval/niecza/lib/CORE.setting line 926 (Str.indent @ 10…
dalek ast: a4fdd4f | (Solomon Foster)++ | S32-str/indent.t:
Niecza unfudge.
02:03
02:03 araujo left
cognominal indeed, system is 'shell' in rakudo. probably forbidden by the bot 02:14
r: shell 'echo "lalie"'
p6eval rakudo eb0580: OUTPUT«shell is disallowed in safe mode␤ in sub restricted at src/SAFE.setting:2␤ in sub shell at src/SAFE.setting:7␤ in block <anon> at /tmp/38HkuGHgVA:1␤␤»
02:15 s1n joined
cognominal and that's 'echo "lalia"' in English. 02:15
TimToady we just happen to be watching a Charlie Rose Brain Series episode about autism, and they just memtioned echolalia :) 02:18
.oO(you can say that again)
02:19
02:21 leprevost joined
cognominal r: echo 'praxy' 02:22
p6eval rakudo eb0580: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&echo' called (line 1)␤»
cognominal btw, that's an autopun, for masak 02:26
02:29 orafu left, orafu joined
cognominal google really wants to complete autopun in autopunition. BooK, the oulipian, would say that because an autopun is based on a constraint. Oulipians are true masochists, they love constraints. 02:31
TimToady
.oO(that goes without saying)
02:32 adu joined
cognominal Perl6 is an "ouvroir de digilittérature porentielle". The pun-ition is the chosen slang 02:34
*potentielle
adu cognominal: what does that mean in English 02:35
cognominal sdu : en.wikipedia.org/wiki/Oulipo to get the context
adu oh 02:37
that sounds nice
is that related to lingua franca?
cognominal BooK is a mongueur (francophone monger) who is a member of the oulipo and likes rose, maybe because Rrose Sélavy en.wikipedia.org/wiki/Rrose_S%C3%A9lavy 02:38
the discipline (sic) has been invented by the French, but you can get a correction in any language included artificial ones. Golfing is very much in the Oulipo spirit. 02:40
*including 02:41
adu I just wonder how long before people will start publishing official normative language specifications in Perl6 grammars instead of EBNF 02:42
02:45 tokuhirom joined
cognominal adu: I don't know about specs but I know one thing for sure : with Perl 5, you could import perl 5 regexen in a language. With Perl 6, if a language wants to support Perl 6 regexen, the language has no choice but to be assimilated as a Perl 6 slang. 02:49
I don't know if languages have free will, but apparently Perl 6 gives them a manifest destiny. 02:50
A microsoftish one, assimilation. 02:51
adu I don't think so 02:52
cognominal About manifest destiny, some day Perl 6 will invade Mexico. :) 02:53
adu paulgraham.com/vanlfsp.html 02:54
I believe there will always be room for languages that can't do that much 02:56
03:02 japhb left 03:16 araujo joined, araujo left, araujo joined 03:24 tokuhirom left 03:42 xinming_ left, xinming joined 03:44 baest left 04:01 baest joined 04:20 Entonian joined 04:23 Entonian left 04:29 leprevost left 04:41 eiro left 04:47 araujo left, Radvendii joined
Radvendii hey guys 04:47
I had an idea
but I'm not sure if it's already in perl6
moritz \o 04:48
Radvendii The idea is this: just like the &postfix:<++> operator incriments after the current line is done, what if that were a general thing?
so I could say "say $a <after>= Nil" 04:49
and that would say $a, and then assign it NIl
that's kind of a trivial example...
but it would be useful inside a .map()
moritz certainly doable as a module 04:50
04:50 Guest69481 left
Radvendii how would the module know when to execute the command? 04:51
anyways. It was a thought to consider. I should actually be going to bed though. I'll see y'all later! 04:53
o/
04:53 Radvendii left 04:58 NamelessTee joined 04:59 scott_ joined, scott_ is now known as Guest85780
adu so many ideas 05:02
05:02 birdwindupbird joined 05:07 wolfman2000 left 05:11 sisar left 05:15 d4l3k_ joined 05:16 mikemol left 05:17 dalek left, ddima_ left, ddima joined, preflex left, d4l3k_ is now known as dalek, preflex_ joined 05:18 orafu left, preflex_ is now known as preflex, orafu joined
sorear phenny: tell Radvendii postfix:<++> does not, strictly speaking, wait until the 'current line is done'. Try say $i++, $i; 05:29
phenny sorear: I'll pass that on when Radvendii is around.
adu hi sorear 05:41
sorear hello, adu
05:44 japhb joined 05:47 kaleem joined 05:49 japhb left 05:53 Tedd1 left, Tedd1 joined 05:55 silug left, NamelessTee left 05:56 mucker joined 06:05 lestrrat left 06:06 lestrrat joined 06:09 japhb joined 06:14 mucker left
adu how would I define "between"? 06:15
06:16 mucker joined 06:17 wtw joined
sorear n: say 1 < 3 < 10; say 1 < 11 < 10; say 1 < -5 < 10 06:17
p6eval niecza v17-4-ge5b869e: OUTPUT«True␤False␤False␤»
sorear n: say 3 ~~ 1..10; say 11 ~~ 1..10; say -5 ~~ 1..10 06:18
p6eval niecza v17-4-ge5b869e: OUTPUT«True␤False␤False␤»
sorear adu, do either of those work for you?
06:20 japhb left
adu sorear: I was thinking more like: token dq ($rule) { '"' ~ '"' $rule } 06:20
06:21 quicoju left, quicoju joined
sorear n: my token dq ($rule) { '"' ~ '~' $rule } ; say 'foo "bar" baz' ~~ / <dq \w+> / 06:22
p6eval niecza v17-4-ge5b869e: OUTPUT«Unhandled exception: Unable to parse dq␤Couldn't find final '~'; gave up␤ at /home/p6eval/niecza/lib/CORE.setting line 1366 (die @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2657 (Cursor.FAILGOAL @ 5) ␤ at /tmp/_QEtLO7dxj line 1 (dq @ 8) ␤ at /tm…
sorear n: my token dq ($rule) { '"' ~ '"' $rule } ; say 'foo "bar" baz' ~~ / <dq \w+> /
p6eval niecza v17-4-ge5b869e: OUTPUT«#<match from(4) to(9) text("bar") pos([].list) named({"dq" => #<match from(4) to(9) text("bar") pos([].list) named({}.hash)>}.hash)>␤»
sorear you mean like that?
adu yes :)
nebuchadnezzar hi
06:24 Tedd1 left, Tedd1 joined, japhb joined 06:29 japhb left
sorear nebuchadnezzar: hi! 06:39
06:49 adu left, fhelmberger joined 07:05 brrt joined 07:08 lestrrat left 07:09 lestrrat joined 07:24 goraki joined 07:27 kresike joined 07:30 icwiener joined, fglock joined 07:35 sisar joined 07:48 thou left
masak mornin', #perl6 07:51
sisar o/ 07:52
07:52 sisar left
moritz \o 07:53
goraki morning. 07:57
08:03 japhb joined
sorear o/ 08:07
08:16 daxim joined
moritz wow, I wrote some C code in rakudo, and it doesn't segfault! (yet? :-) 08:18
08:20 mucker left 08:21 preflex left, sporous left 08:22 mucker joined
masak takes that as a challenge ;) 08:24
08:24 sporous joined, preflex joined 08:25 sporous left, sporous joined
moritz masak: with a bit of luck, there'll be a commit (in a branch) soon :-) 08:26
masak yay
08:27 icwiener left, sporous left, sporous joined
jnthn Good mornin' 08:29
masak jnthn! \o/ 08:30
jnthn moritz: To probabalistically segfault, do "int *x = (int *)rand(); int y = *x;" ;-)
moritz $ make && ./perl6 -e 'try my Int $x := "foo"; say $!.WHAT'
X::TypeCheck::Binding()
jnthn ooh :)
masak ooh!
moritz r: my Int $x := 'Foo'; 08:32
p6eval rakudo eb0580: OUTPUT«Type check failed in binding␤ in block <anon> at /tmp/3ZUHRrs7JT:1␤␤»
dalek kudo/typed-ex-from-c: 1a61704 | moritz++ | src/ (2 files):
first shot at throwing typed exceptions from C

for binding type checks. Very whacky right now.
08:33
08:34 alim joined
moritz ok, this will break horribly when it ever goes wrong while compiling the setting 08:35
masak oh, right. German conflates 'when' and 'if'. 08:36
that's gotta be confusing sometimes.
jnthn masak: No. It *will* go wrong. :P
masak heh.
moritz :-)
jnthn moritz: if (PMC_IS_NULL(thrower)) { ...do the throw... } else { ...the usual thing... }
moritz jnthn: well, I guess I have to add way more PMC_IS_NULL checks 08:37
jnthn Er. Explained that badly but hopefully it's clear enough :)
masak shouldn't even need the 'else' there, no?
moritz jnthn: for the namespace thing for example
jnthn: the question is how to factor it best
maybe an inline PMC* get_throw(const char *) 08:38
jnthn masak: Don't need it, no; it just comes down to style. :)
moritz: Yeah...just stash it in the section at the top of ops, where we have other functions (like the phasers stuff).
masak jnthn: it does. Perl has taught me (through 'last unless ...' et al.) that it's quite nice (visually) to 'fail fast' and de-indent as soon as possible. 08:42
08:44 dakkar joined
jnthn masak: Yeah, though in this case you're choosing how to fail. ;-) Agree though, I normally do exactly what you're saying. 08:45
moritz well
in this case, the "do the throw" *might* not actually throw 08:46
if the author of the thrower screwed up
masak er. what? 08:48
jnthn :D
It made sense to me :P
masak sounds like saying "with a 10% probability, the 'die' will actually continue execution."
jnthn masak: Only if the dier doesn't die, which would be a dire bug. :) 08:49
masak :P
moritz dire but deterministic 08:50
masak .oO( I like my universes like I like my source code... ) 08:51
moritz likes dire straits (the band, that is) 08:53
masak auch
moritz two years ago I was at an awesome concert by Mark Knopfler 08:55
open air, very nice atmosphere, very high sound quality
jnthn: is there a simple rule when to use Parrot_str_new vs. Parrot_str_new_constant ? 08:59
09:04 bruges_ left
jnthn moritz: Is it a C literal? YES: use Parrot_str_new_constant. NO: don't. 09:07
moritz jnthn: all existing use cases of Parrot_str_new in perl6.ops work on C literals :-) 09:08
jnthn Well. That's probably not very efficient :) 09:09
Apart from the person typing it. :)
moritz I can change that later
dalek kudo/typed-ex-from-c: c310a27 | moritz++ | src/ops/perl6.ops:
add a function for getting the thrower for typed exceptions
09:10
rlito: 1d5cf89 | (Flavio S. Glock)++ | / (5 files):
Perlito5 - parser: new module Perlito5::Grammar::Sigil
09:18
rlito: ee50878 | (Flavio S. Glock)++ | / (5 files):
Perlito5 - parser: use new module Perlito5::Grammar::Sigil
rlito: b743846 | (Flavio S. Glock)++ | html/perlito5.js:
Perlito5 - recompile html/perlito5.js
rlito: c29e335 | (Flavio S. Glock)++ | / (3 files):
Merge branch 'master' of [email@hidden.address]
09:19 araujo joined 09:23 nsheth joined
moritz jnthn: ok. I've added a BEGIN my Str $x := 3; at the end of Str.pm, and it correctly threw the "Type check failed in binding" message during setting compilation 09:26
jnthn: so I'm happy with the branch. Any objections to merging?
09:27 drbean left
jnthn moritz: No, go ahead. :) 09:28
09:31 drbean joined, bacek left 09:38 drbean left 09:40 cogno joined 09:41 drbean joined
dalek kudo/nom: 1a61704 | moritz++ | src/ (2 files):
first shot at throwing typed exceptions from C

for binding type checks. Very whacky right now.
09:42
kudo/nom: c310a27 | moritz++ | src/ops/perl6.ops:
add a function for getting the thrower for typed exceptions
kudo/nom: 82b9879 | moritz++ | src/ops/perl6.ops:
use Parrot_str_new_constant where possible
cogno In the wp article about Rudolf Carnap : "In the U.S, the concept of logical syntax helped the development of natural language processing and compiler design (the Parrot virtual machine and LLVM). ". Wtf do they mean? en.wikipedia.org/wiki/Rudolf_Carnap 09:44
09:44 nsheth left 09:45 icwiener joined 09:46 drbean left
moritz that lookos pretty far fetch to me 09:46
*looks
cogno: add a 'citation needed' tag to it :-) 09:47
09:48 bacek joined
cogno Lookos, as loco in spanish, maybe 09:49
09:50 drbean joined
dalek kudo/nom: 4687e02 | moritz++ | src/ (2 files):
typed exception for return type check failure
09:53
ast: cb7e988 | moritz++ | S32-exceptions/misc.t:
test X::TypeCheck::Binding and X::TypeCheck::Return
moritz now we're at 300 tests for typed exceptions 09:54
09:55 drbean_ joined 09:57 drbean left, drbean_ is now known as drbean
jnthn moritz++ 09:57
masak moritz++ 09:58
moritz jnthn: is the "%Ss is not in the dynamic scope of a dispatcher" error user-facing in any way?
09:58 localhost left
moritz and if yes, how do I trigger it? :-) 09:59
jnthn r: nextsame
p6eval rakudo eb0580: OUTPUT«nextsame is not in the dynamic scope of a dispatcher␤ in block <anon> at src/gen/CORE.setting:429␤ in block <anon> at /tmp/LOUUuhntI_:1␤␤»
moritz ah
masak r: proceed 10:00
p6eval rakudo eb0580: OUTPUT«proceed without when clause␤ in block <anon> at src/gen/CORE.setting:321␤ in block <anon> at src/gen/CORE.setting:402␤ in block <anon> at /tmp/oKwTBheHjj:1␤␤»
10:00 localhost joined
masak r: succeed 10:00
moritz that and "Attempt to return from outside any Routine" are the only user-facing errors left in perl6.ops that aren't typed exceptions
p6eval rakudo eb0580: OUTPUT«succeed without when clause␤ in block <anon> at src/gen/CORE.setting:321␤ in block <anon> at src/gen/CORE.setting:398␤ in block <anon> at /tmp/XsaRVz4eS4:1␤␤»
masak r: when True { foo }; sub foo { proceed }; say "alive" 10:01
p6eval rakudo eb0580: OUTPUT«alive␤»
masak r: when True { foo }; sub foo { succeed }; say "alive"
p6eval rakudo eb0580: ( no output )
masak \o/
10:01 cognominal left
masak r: when True { foo }; sub foo { succeed }; LEAVE { say "leaving!" } 10:01
p6eval rakudo eb0580: OUTPUT«leaving!␤»
masak \o/
10:03 cognominal joined, pernatiy joined
moritz r: my Str $x := 4 10:04
p6eval rakudo eb0580: OUTPUT«Type check failed in binding␤ in block <anon> at /tmp/0uICJJ4_91:1␤␤»
moritz still the old one 10:05
jnthn moritz: When you get a chance, please do verify that my role pre-comp fix works for you also. 10:07
moritz jnthn: ok 10:08
jnthn: fwiw it didn't fix the code that uncovered the problem, but there's a separate ticket for that too
(something about not finding a type name when stuff is precompiled) 10:09
10:10 Guest85780 left
moritz jnthn: but yes, confirmed that it fixed the example I reported 10:11
jnthn OK. Too bad it didn't fix the other one though. 10:16
10:16 alim left 10:17 drbean left 10:24 drbean joined
moritz r: say 1 10:29
p6eval rakudo 4687e0: OUTPUT«1␤»
moritz r: my Str $x := 3;
p6eval rakudo 4687e0: OUTPUT«Type check failed in binding; expected 'Str' but got 'Int'␤ in sub <anon> at src/gen/CORE.setting:8920␤ in block <anon> at /tmp/ce_rasqwxx:1␤␤»
moritz r: try my Str $x := 3; say $!.WHAT; say $!.got 10:30
p6eval rakudo 4687e0: OUTPUT«X::TypeCheck::Binding()␤3␤»
moritz so if you really care, you can discover not just the type of the value that didn't bind, but the actual value
jnthn nice :) 10:31
flussence r: try my Str $x := 3; say $!.expected
p6eval rakudo 4687e0: OUTPUT«Str()␤»
flussence yay, guessable method names 10:32
moritz++
moritz r: r: try my Str $x := 3; say $!.perl
p6eval rakudo 4687e0: OUTPUT«===SORRY!===␤Confused␤at /tmp/9nFzxo1KZu:1␤»
moritz r: r: try my Str $x := 3; say $!.perl; 10:33
p6eval rakudo 4687e0: OUTPUT«===SORRY!===␤Confused␤at /tmp/GO1X5I8nQs:1␤»
moritz r: try my Str $x := 3; say $!.perl;
p6eval rakudo 4687e0: OUTPUT«X::TypeCheck::Binding.new(operation => "binding", got => 3, expected => Str)␤»
moritz r: say ::TypeCheck::Binding.^parents 10:34
p6eval rakudo 4687e0: OUTPUT«===SORRY!===␤Could not locate compile-time value for symbol TypeCheck::Binding␤»
moritz r: say TypeCheck::Binding.^parents
p6eval rakudo 4687e0: OUTPUT«Could not find symbol 'TypeCheck::&Binding'␤ in block <anon> at /tmp/Ujxn1txYjB:1␤␤»
moritz r: say X>>TypeCheck::Binding.^parents
p6eval rakudo 4687e0: OUTPUT«===SORRY!===␤Preceding context expects a term, but found infix > instead at line 1, near "TypeCheck:"␤»
moritz not concentrated
r: say X::TypeCheck::Binding.^parents
p6eval rakudo 4687e0: OUTPUT«X::TypeCheck() Exception()␤»
10:36 NamelessTee joined 10:45 cognominal_ joined 10:48 cognominal left 10:52 alim joined, Woodi left 11:00 bruges joined 11:23 benabik left 11:27 cognominal_ left 11:29 cognominal joined, cogno left 11:30 cogno joined 11:32 Woodi joined, JimmyZ_ joined 11:35 pernatiy left
colomon is on a roll with ABC modifications... 11:40
11:44 NamelessTee left 11:46 cogno left 11:47 am0c joined 11:48 benabik joined
masak why do channels bother instituting policies like "don't use abbreviated ways of saying 'thank you'"? javachannel.net/wiki/pmwiki.php 11:52
I can see how repeatedly getting JavaScript questions gets old... but why insist that the questioner use certain words when expressing what they want? 11:53
11:53 skids left
huf because everybody feels like the language of their youth is being dismantled around them 11:54
and comes up with bs reasons to "protect" it?
also because "thx" is pretty damn annoying to read :)
masak it is?
huf yeah, just like missing commas or 3 exclamation marks or garbled sentences 11:55
daxim aolbonics
that's a nice word
huf masak: i guess the "thank you" thing is mostly pedantry since you're usually done helping by that time 11:56
but people who ask questions often have lots of vague weird ideas about the problem they're trying to solve
and figuring that out AND figuring out what the hell the words they use mean is a double burden
masak I can agree that it's *difficult* to read a run-on sentence, or a sentence over-emphasized with too many exclamation marks. at least it it happens all the time. garbled sentences are difficult to grok almost by definition.
but "thx"...? what's annoying to read about that? 11:57
come on.
huf it's less bad than "u" and "ur"
masak yes, I get the part of feeling entitled to make demands so you can do your job well helping people.
moritz I generally dislike txt-style communication, but I don't find 'thx' any more offensive than the other examples 11:58
masak I'm just curious about the process that turns helpers into curmudgeons who can't see past a "thx" or a "u".
huf synergy of a number of different things, i think
masak it feels a bit backwards.
huf one is the "if you want free help, i'm entitled to a sensible question, and this is how i define that"
the other is "damn youngins speak all wrong!"
moritz for me it conveys a deliberatly sloppy style of communication, which I associate with a lack of care 11:59
huf that too
moritz but then I'm old-fashioned :-)
masak I stopped being a prescriptivist years ago, so now I think everyone else should stop being that too :P
huf masak: ;D
moritz but I wouldn't make a policy specifically for "thx"
huf moritz: and that's why #perl6 is so much nicer than #perl :)
well, part of the reason 12:00
jnthn thx to u prescriptivists therez now much h8 plz stop kthxbai
masak anyway. good explanations. thx!
dang, beaten by jnthn++ :P
jnthn
.oO( it was harder to write like that than to write properly... )
12:01
daxim rolls his eyes so hard, they fall out of the socketpair(2)s
huf jnthn: oh dear lord, that reminded me of "n8" for night
now *that* pisses me off, because it doesnt even work
jnthn huf: At least h8 and 8 rhyme...
moritz huf: it works perfeclty in German
daxim that's transported from german, where it does work
huf yeah, you'd need some really outrageous accent on the "eight" to make it work
jnthn oh!
huf :)
moritz phenny: en de "eight"
phenny: en de "eight"?
phenny moritz: "acht" (en to de, translate.google.com)
jnthn hadn't considered the German link :) 12:02
huf i've seen it used by hungarians in english fragments
jnthn That's cute :)
huf "good n8"
jnthn But I'm not going to start using it :)
jnthn -> store
colomon doesn't thx go back at least as far as the Hacker's Dictionary? 12:05
oh, nope, that's tnx I'm thinking of 12:06
huf too many tla-s and etla-s and *tla-s
what's the level above etla? ietla?
moritz r: nextsame 12:09
p6eval rakudo 4687e0: OUTPUT«nextsame is not in the dynamic scope of a dispatcher␤ in block <anon> at src/gen/CORE.setting:429␤ in block <anon> at /tmp/iLJzAzOkwW:1␤␤»
Woodi m8s, is icu 4.8.1.1 good enought or I should to try newer one ? 12:14
12:15 awwaiid joined
moritz Woodi: I use 4.4.1 12:16
dalek rlito: 7b23bb8 | (Flavio S. Glock)++ | / (5 files):
Perlito5 - javascript: fix complement operation
12:17
Woodi k, thank you :)
moritz jnthn: how do I box a parrot string into a Perl 6 Str from C land? 12:18
jnthn: I'd need that for the error message in perl6_find_dispatcher
jnthn moritz: See what the perl6_box_s op does 12:32
moritz jnthn: ok, will do
jnthn hah, I just got a beer from $store called "Ctrl Alt Delete" 12:34
jnthn wonders if it'll taste any good... 12:35
Will probably find out in the coming days :)
masak Swedish one, no?
I think I've seen it.
jnthn masak: Same brewer that do Hop Yard. 12:36
Nils Oscar iirc
masak aye.
dalek rlito: 135fb4c | (Flavio S. Glock)++ | t5/base/lex.t:
Perlito5 - more tests
12:38
12:44 wooden joined, wooden left, wooden joined 12:52 am0c left 12:54 benabik left 12:56 tyatpi joined 13:03 PacoAir joined
dalek kudo/nom: 38ea7c2 | moritz++ | src/ (2 files):
typed exception for returning outside of a routine
13:05
13:06 ponbiki joined, Psyche^ joined 13:07 benabik joined
tadzik good afternoon 13:09
jnthn afty, tadzik
13:10 Patterner left, Psyche^ is now known as Patterner 13:17 Woodi left 13:18 skids joined
masak sharky, tadzy. 13:19
13:19 mucker left
jnthn For going to l'event, shall we meet at le station around 17:15? 13:22
There's a train that gets me in to Malmoe at 17:11 13:24
masak .oO( oh wait, this isn't privmsg! )
jnthn: wfm ;)
dalek rlito: 84d2cee | (Flavio S. Glock)++ | / (4 files):
Perlito5 - javascript: add dereference syntax { $$ x [2]=3; say $x->[2] }
13:27
13:36 erkan left
jnthn masak: oh, crap... 13:39
masak: Yes, that was meant to be in privmsg :)
13:42 Woodi joined
moritz jnthn: do you have some more inspiration what to hack on? 13:45
jnthn moritz: I can make some suggestions.... :) 13:46
Versioned modules would be one. You just got more familiar with some of that area of the code base. But maybe you want to explore something else now, or maybe that's not so fun. :) 13:47
Doing the various RatStr, NumStr, IntStr etc is another option. And val().
moritz right. Those sound doable but not quite -Ofun :-) 13:48
13:48 daxim left
moritz I might do them anyway 13:48
or maybe more typed exception hacking
jnthn I pondered heredocs, but I'm gonna say "not yet", because I'd rather they come after we diddle the grammar for QRegex.
moritz versioned modules also sounds nice
jnthn Also because they may be headache-inducing. :)
13:48 erkan joined
moritz I wouldn't want to attack them :-) 13:49
jnthn Dang. :P
Oh, another option could be doing a P5Regex grammar/actions.
And linking it up to the :P5 adverb.
Probably quite good fun. 13:50
PerlJam good $localtime #perl6
jnthn And only really needs you to consider the nice side of the regex engine (the QAST::Regex nodes), not the terrifying side (what QAST::Compiler does with them) to get quite a long way :)
If you want to do that but don't know where to start, I can probably write it up enough to make it match literals or something. 13:52
moritz I'll consider my options for a while :-) 13:53
13:53 kaleem left 13:54 brrt left
PerlJam jnthn: If you do enough to match literals, it makes it easier for others who have trouble finding tuits to jump in (whether moritz or not) 13:54
jnthn Good point.
13:55 tyatpi left
moritz much of the grammar can probably be stolen from STD_P5 13:55
jnthn aye
moritz except that p5 uses reparsing for regex
ouch, that hurts, once you're use to one-pass parsing
jnthn Doing StrPos and StrLen are also options. :) 13:56
So, no shortage of possibles. :)
moritz I don't see the point in them as long as we don't have grapheme level strings
or strings that can act on more than one level, for that matter
jnthn l-value substr would seem to be one point.
masak oooh!
13:56 grondilu joined
jnthn I think there's a bunch of tests for that too. 13:57
masak yes please yes l-value substr
moritz jnthn: I don't quite see how they relate to lvalue substr
jnthn moritz: Maybe I'm confused...I thought substr returned one of those?
grondilu made a github repo for his digest module: github.com/grondilu/libdigest-perl6 13:58
13:58 brrt joined
moritz jnthn: no, index and rindex etc. return them 13:58
tadzik pure Perl6 (no rakudo code)?
grondilu yes
tadzik I don't understand the second part
jnthn Oh, I'm confused. 13:59
moritz jnthn: they are supposed to abstract away the different Unicode levels (bytes/codes/graphs) into a single object
tadzik also, could you make it a proper Perl 6 module? We'd include it in the ecosystem then
see wiki.perl6.org/Create%20and%20Distr...%20Modules
jnthn moritz: You're right, there's a bunch of tests for "Substr with StrLen".
grondilu ok I'll read that
14:00 kaare_ joined
grondilu it's very very slow though, so I'm not sure it is worth being added to the ecosystem 14:00
PerlJam grondilu: slow can be fixed.
tadzik everything is
PerlJam grondilu: working code trumps everything else (at first) as far as I'm concerned
jnthn moritz: But it's not related to lvalue...
colomon grondilu: does it work with Niecza?
tadzik I see that we have Digest::SHA256, but it's 1) broken 2) not pure-perl6 14:01
PerlJam grondilu: plus if your code is slow, we can profile it to figure out where Rakudo/Niecza need optimization ;-)
colomon +1 14:02
grondilu I'm sorry I'm not sure I'll have time to tune it to match your requirements for integration in the ecosystem. I don't have enough connection time. But feel free to fork it it you want.
14:03 sergot joined
sergot hi o/ ! 14:03
tadzik someone probably will :)
hi sergot
grondilu colomon: I don't know. I don't have Niecza.
colomon grondilu: I'll give it a try when I'm finished getting ABC to run on my big music file. 14:05
masak sergocie! \o/
sergot How are you masaku ? :) 14:06
masak: jak się masz? :) 14:07
masak sergot: Czuję się dobrze. Dzięki za pytanie. :)
tadzik hah. Thi is as good as masak's internet on a bus :) i.imgur.com/7zVgp.jpg
masak sergot: A ty?
sergot masak: także dobrze. Dziękuję. :) 14:08
masak :)
14:08 icwiener left
masak tadzik: is that math in the background? :) 14:08
what kind?
analysis?
tadzik masak: automatics actually
so not really maths, but it's using maths, as everything :) 14:09
I'm not sure what that really is, it's some stuff for my exam passed in january 14:10
dalek kudo/nom: 1c1208b | moritz++ | src/ (2 files):
Throw typed exception for "nextsame not in dynamic scope of a dispatcher"
masak ok :) 14:11
tadzik anyway, Wolfenstein! On a phone!
PerlJam looks like it doesn't quite work in niecza 14:12
colomon used to love Wolfenstein 2D... 14:13
tadzik for that one I'm too young I'm afraid. Wolf 3D was preinstalled on my first pc 14:14
14:16 daxim joined 14:19 Woodi left 14:20 tokuhirom joined 14:24 wtw left, NamelessTee joined 14:26 PacoAir left
colomon tadzik: it was a nice little Berzerk clone -- with a more interesting theme and the bonus that the Nazis could speak! seems trivial today, but it was probably the first C64 game I ever played with synthesized speech. 14:26
oh, turns out the arcade version of Berzerk included speech, too -- I may have only ever played the Atari 2600 version. 14:27
14:29 NamelessTee left 14:31 grondilu left
colomon phenny: tell sorear Is there a way to make regex tuplet { '('(<digit>+) [<t_elem>* <stem>] ** { +$0 } } work in Niecza? 14:33
phenny colomon: I'll pass that on when sorear is around.
14:39 thou joined 14:41 NamelessTee joined
TimToady moritz: "this will break whenever it goes wrong" is how I'd say it 14:42
moritz TimToady: context? 14:43
TimToady sorry, masak 14:44
14:44 cognominal left
TimToady sorry, you :) 14:44
irclog.perlgeek.de/perl6/2012-05-15#i_5592539
masak looks up, confused 14:45
14:45 cognominal joined, birdwindupbird left
TimToady sorry, my eyes are not yet opposite their sockets 14:45
masak oh, the if/when/whenever thing. 14:46
yeah, 'whenever' has a bit more of 'if' in it than does 'when'. :)
TimToady it's kinda in the middle
14:47 birdwindupbird joined
TimToady funny you can say "if you ever" in English but you can't really say "when you ever" 14:47
probably because 'whenever' exists
masak no semantic loss, though. they'd mean the same. 14:48
TimToady I guess it's really a small garden path
masak I mean, when you ever wanted to say one, you could just as well say the other.
TimToady because 'when' is certain, and then 'ever' undoes it a bit
though only in the indicative 14:49
"When are you ever coming over?" is certainly okay
and in fact *Whenever are you coming over? is not
strainge languij 14:50
masak :) 14:51
& 14:52
colomon TimToady: can I say <?after <my-regex> > in a grammar? 15:01
dalek rlito: b9403a7 | (Flavio S. Glock)++ | / (5 files):
Perlito5 - javascript: add a version in $]
TimToady if <my-regex> is reversible, and it's implemented right :) 15:02
colomon errr.... reversible?
TimToady after works by matching in reverse
colomon oooo, wait, I think I can make it <?after '|'> 15:03
that should work and easily be reversible, right?
TimToady in theory
colomon in practice, any idea if Niecza supports it?
ooo, looks like it does! 15:04
TimToady this early in the morning, it's faster to try it than to ask me
15:04 toebu joined
TimToady reversing an existing method call would seem to require providing a reversed entry point to reversible methods 15:05
not sure we want the overhead of that without some pragmatic hint 15:06
colomon Turns out <?after '|'> <nth_repeat_num> is perfectly fine for my purposes, and seems to work in Niecza.
TimToady yes, well, even p5 can do constant lookbehinds... 15:07
TimToady wonders how much of grammar overhead is late-bound method dispatch... 15:08
and to what extent aggressive finalization can speed that up 15:09
colomon wonders what it says that twice this morning he has changed the description of a copy-n-pasted test without actually making the needed changed to the test itself
geekosaur more $stimulant needed? 15:10
TimToady well, cargo-culted airplanes don't usually fly too well either :P
15:10 tokuhirom left 15:11 tokuhirom joined 15:12 localhost left
colomon copying your own tests and changing elements of them is not cargo-culting! :p 15:12
TimToady you were a different person before :)
colomon oooooooo! you and your stupid correct-sounding arguments!
TimToady I'm really good at cargo-culting correct-sounding arguments! :D 15:13
don't always fly though...
15:13 tyatpi joined
PerlJam A river is never stepped in by the same man twice ? 15:14
TimToady you can say that again
once for the river, and once for the man 15:15
colomon It's funny, a number of my ABC changes this morning have involved supporting things that were not in the BNF ABC grammar that the ABC module's grammar was based on. The current spec has drifted away from that grammar, it turns out -- or more likely, that grammar was simplified so it would be easier to spec as a grammar.
15:15 tokuhirom left
TimToady yeah, well, we put a "grammar" of Perl 5 into the first edition of the Camel 15:16
that part of the book was definitely fictional
colomon should probably start doing $work at some point this morning....
TimToady er Perl 4
tormenting the denizens of #perl6 is my work :)
PerlJam TimToady: I was wondering if you had invented time travel there for a second 15:17
15:17 Woodi joined
TimToady closer to a minute, I think 15:18
Woodi just compile Rakudo-2012.04.01 on OpenBSD ! :)
colomon just parsed a 2309 line long ABC file with 159 tunes in it!
Woodi tests passed if you ask... 15:19
moritz \o/
TimToady did the tests pass? # just to make it official
PerlJam colomon: now, can you get perl to do that? ;) 15:20
Woodi make test passwd
*passed :)
moritz what about 'make spectest'?
colomon PerlJam: perl 5? Is there a module with grammar support?
Woodi nqp had problems with 2 tests for bigint 15:21
will try spectest today 15:22
15:22 alim left, ponbiki left 15:25 cognominal left 15:26 cognominal joined
fglock there is a perl5 module with grammar support (not sure if this is what you mean) - search.cpan.org/dist/Pugs-Compiler-...er/Rule.pm 15:27
15:27 cognominal left 15:28 cognominal joined 15:29 fglock left
moritz n: my $s = 'some string'; substr($s, 0, 4) = 'foo'; say $s 15:31
p6eval niecza v17-4-ge5b869e: OUTPUT«foo string␤»
moritz n: my $s = 'some string'; $substr = substr($s, 0, 4); $substr = 'foo'; say $s 15:32
p6eval niecza v17-4-ge5b869e: OUTPUT«===SORRY!===␤␤Variable $substr is not predeclared at /tmp/dQ7VDZlUbo line 1:␤------> my $s = 'some string'; ⏏$substr = substr($s, 0, 4); $substr = 'f␤␤Variable $substr is not predeclared at /tmp/dQ7VDZlUbo line 1:␤------…
moritz n: my $s = 'some string'; my $substr = substr($s, 0, 4); $substr = 'foo'; say $s
p6eval niecza v17-4-ge5b869e: OUTPUT«some string␤»
moritz n: my $s = 'some string'; my $substr := substr($s, 0, 4); $substr = 'foo'; say $s
p6eval niecza v17-4-ge5b869e: OUTPUT«foo string␤»
moritz n: my $s = 'some string'; my $substr := substr($s, 0, 4); $substr = 'foo'; say $s; say $substr.WHAT
p6eval niecza v17-4-ge5b869e: OUTPUT«foo string␤Str()␤»
moritz n: my $s = 'some string'; my $substr := substr($s, 0, 4); $substr = 'foo'; say $s; say $substr.WHAT === "foo".WHAT 15:33
p6eval niecza v17-4-ge5b869e: OUTPUT«foo string␤True␤»
TimToady n: my $s = 'some string'; my $substr := substr($s, 0, 4); $substr = 'foo'; $substr = 'phooey'; say $s;
p6eval niecza v17-4-ge5b869e: OUTPUT«phooeystring␤»
TimToady say what?
moritz is that how it's supposed to work? or is lvalue substr supposed to be syntactic? 15:34
TimToady n: my $s = 'some string'; my $substr := substr($s, 0, 4); $substr = 'phooey'; say $s;
p6eval niecza v17-4-ge5b869e: OUTPUT«phooey string␤»
TimToady well, it should at least unlvalue itself it's going to be a one-shot 15:35
it's just not clear to be what it actually did
15:36 mucker joined
moritz to me it looks like strings are mutable, and $substr simply references a part of $s 15:36
TimToady so it took the 0,4 as "foo ", I see
if we're gonna map strings like that, we'll need to borrow lset and rset from BASIC/PLUS :) 15:37
moritz n: my $s = 'abcd'; substr($s, 0, 1) = 'much longer'; say $s
p6eval niecza v17-4-ge5b869e: OUTPUT«much longerbcd␤»
moritz n: my $s = 'abcd'; my $ss := substr($s, 0, 1); $ss = 'much longer'; say $s 15:38
p6eval niecza v17-4-ge5b869e: OUTPUT«much longerbcd␤»
TimToady the only other sane approach is to make the marks into the string track the logical location like marks do in an emacs buffer
15:38 thelazydeveloper joined
TimToady which would be...difficult... 15:38
moritz IMHO the only sane way is to make lvalue substr syntactic 15:39
TimToady well, that's what it is in p5
moritz otherwise all substr results have to suffer from it, performance wise
(fsvo "sane")
TimToady s/value/very small value/ 15:40
PerlJam TimToady: but least surprisey imho
(marks tracking location)
TimToady if you have a ropes implementation, you just turn that bit into one segment, and return a ref to it 15:41
15:42 pmurias joined
TimToady but that can also be confused if subsequent ops fragment that segment 15:42
TimToady was realizing the other day that the idea of Cat strings is essentially ropes
PerlJam aye
moritz it's pretty easy to detect lvalueness for things like substr(...) = "foo" 15:43
but substr(...) ~~ s/..// is more challenging, I think
TimToady could force people to use lsubstr or some such atrocity
moritz +1 15:44
TimToady we've split up other operations
moritz then we just return a Proxy from that
PerlJam maybe call it "mark" or something too
TimToady the other approach is to only allow mods via 4-arg substr
thing is, if you're gonna want to map a string with one mark, you'll also want a series of 'em 15:45
PerlJam aye
TimToady kinda like an unpack
PerlJam and then you'll want to mark non-string things too
geekosaur I was just wondering about that... let substr be substr, if someone wants the other then they can use a more expensive and expansive mechanism 15:46
not just lsubstr, but indeed general marking/(partitioning?)
dalek ast: de07434 | (Kyle Hasselbacher)++ | S14-traits/routines.t:
[S14-traits/routines.t] Test for RT 112664
TimToady @substrings = mark($string, 0, 4, 4, 4, 2, 4, 8, *)
geekosaur that said, when I think about that I land in grammars
PerlJam TimToady: things that are taken in pairs like that make me yearn for a bit of a data structure :) 15:47
TimToady or maybe mark returns a set of lvalues that know about each other, and so if you modify element 1's length, subsequent ones know
I wasn't writing pairs, actually 15:48
moritz r: my $s = 'foo'; substr($s, 0, 1, 'barf'); say $s
p6eval rakudo 1c1208: OUTPUT«Too many positional parameters passed; got 4 but expected between 2 and 3␤ in sub substr at src/gen/CORE.setting:1977␤ in block <anon> at /tmp/FFGgE9zJ2z:1␤␤»
TimToady I was just thinking of one starting where the prev left off
PerlJam oh
TimToady but pairs makes more sense, I guess
PerlJam maybe
you can get pairs of (start,end) or (start,lenght)
er, length
TimToady feels kind of enum-y 15:49
PerlJam "chained marks" as you did sort of brings the idea of ropes to the fore-front. Makes it a user-visible phenomenon.
TimToady well, kind, except for that to work out now, you'd have to produce a new object that is a rope rather than marking into an existing string 15:50
that's more FPish anyway
at least until you start modifying segments :)
15:51 kresike left, alim joined
PerlJam In any case ... I think separating substr from lvalue-substr is definitely the way to go. 15:53
moritz r: gist.github.com/2702826
p6eval rakudo 1c1208: OUTPUT«baroo␤»
moritz anyway, separate lvalue substr in 11 lines 15:56
PerlJam moritz++
15:57 s1n left
colomon moritz++ 16:05
moritz $ ./perl6 -e 'my $x = "abcde"; lsubstr($x, 0, 2) ~~ s:g/./X/; say $x' 16:07
XXcde
16:07 pmurias left, quicoju left, Tene left, paul_tyler left, avar left, paul_tyler1 joined
dalek kudo/nom: c89725c | moritz++ | src/core/Str.pm:
lsubstr, an lvalue substr. Slower but more versatile
16:07
16:08 brrt left, pmurias joined 16:11 alim left 16:12 s1n joined, alim joined, quicoju joined, Tene joined, avar joined 16:15 JimmyZ_ left 16:18 cognominal left 16:19 cognominal joined
sorear good * #perl6 16:20
phenny sorear: 14:33Z <colomon> tell sorear Is there a way to make regex tuplet { '('(<digit>+) [<t_elem>* <stem>] ** { +$0 } } work in Niecza?
colomon sorear! \o/
sorear colomon: I'd expect that to work 16:21
colomon I got a weird internals error message when I tried it. But I didn't look into it closely. 16:22
16:22 tyatpi left
sorear n: my regex tuplet { '('(<digit>+) [<t_elem>* <stem>] ** { +$0 } } 16:22
p6eval niecza v17-4-ge5b869e: OUTPUT«Potential difficulties:␤ &tuplet is declared but not used at /tmp/7zrBwZhbyo line 1:␤------> my regex tuplet ⏏{ '('(<digit>+) [<t_elem>* <stem>] ** { ␤␤»
colomon n: say "(5abcde" ~~ /'(' (<digit>+) <alpha> ** { +$0 }/; 16:23
p6eval niecza v17-4-ge5b869e: OUTPUT«Use of uninitialized value in numeric context␤ at /home/p6eval/niecza/lib/CORE.setting line 1226 (warn @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 262 (Any.Numeric @ 6) ␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /tmp/nfug0V_UmL line 1 (ANON @ …
colomon n: say "(5abcde" ~~ /'(' (<digit>+) <alpha> ** { $0 }/;
p6eval niecza v17-4-ge5b869e: OUTPUT«Unhandled exception: Unable to resolve method niecza_quantifier_min in class Any␤ at /tmp/JyxH5wRF6B line 1 (ANON @ 7) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2805 (Regex.ACCEPTS @ 4) ␤ at /tmp/JyxH5wRF6B line 1 (mainline @ 2) ␤ at /home/p6eval/n…
colomon and those are the two errors messages I got with the two approaches I tried. :)
sorear hmmm 16:24
colomon wrong $0?
16:25 fglock joined
sorear yeah, it looks like ** isn't getgting the proper magic to allow it to access $/ 16:25
n: say "(5abcde" ~~ /'(' (<digit>+) {} <alpha> ** { $0 }/;
p6eval niecza v17-4-ge5b869e: OUTPUT«Unhandled exception: Unable to resolve method niecza_quantifier_min in class Match␤ at /tmp/GSsaYzyjTV line 1 (ANON @ 9) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2805 (Regex.ACCEPTS @ 4) ␤ at /tmp/GSsaYzyjTV line 1 (mainline @ 2) ␤ at /home/p6eval…
sorear n: say "(5abcde" ~~ /'(' (<digit>+) {} <alpha> ** { +$0 }/;
p6eval niecza v17-4-ge5b869e: OUTPUT«#<match from(0) to(7) text((5abcde) pos([#<match from(1) to(2) text(5) pos([].list) named({"digit" => (#<match from(1) to(2) text(5) pos([].list) named({}.hash)>, ).list.item}.hash)>].list) named({"alpha" => (#<match from(2) to(3) text(a) pos([].list) named…
sorear there's a workaround
please remind me later, optionally via ticket 16:26
colomon inserting the {} and adding the + ?
sorear: I should probably make it a ticket, else I'm apt to forget myself!
Done 16:29
and your workaround passes all my ABC tests! \o/ 16:30
sorear colomon: yes, those two changes.
16:31 daxim left
colomon really loves replacing three lines with one that is only slightly more complicated and much more general 16:31
16:32 s1n left 16:37 jferrero joined 16:40 cognominal_ joined 16:43 mucker left 16:44 cognominal left 16:46 alim_ joined 16:47 s1n joined 16:48 alim left, alim_ is now known as alim 16:56 araujo left 16:57 alim left, PacoAir joined 16:58 dakkar left 17:01 tyatpi joined 17:07 icwiener joined 17:08 araujo joined, quicoju left 17:09 birdwindupbird left, quicoju joined, cognominal___ joined 17:12 cognominal_ left
moritz sorear: don't know how far you've backlogged. What do you think about separating substr and substr-that-returns-an-lvalue? 17:16
17:16 toebu left
TimToady should maybe be called substr-rw rather than relying on the 'l' meme 17:21
and to go with return-rw and such 17:22
17:22 alim joined
moritz good idea 17:22
17:23 s1n left
TimToady we don't want five different naming schemes for the same idea like PHP does 17:23
dalek kudo/nom: f4e6701 | moritz++ | src/core/Str.pm:
rename lsubstr to substr-rw
PerlJam If we're going to do a suffix, I'd much prefer some symbol like "substr!"
(but that's just me)
geekosaur smalltalk much? 17:24
TimToady and pi! will give you a read/write pi, rather than pi factorial?
PerlJam (symbology negotiable ;)
colomon wants pi-rw .... 17:25
PerlJam
.oO( pi-write? That's a fool's wish. )
17:26
TimToady you're thinking of py-write there
17:27 alim left
geekosaur or you pronounce it like pirate 17:28
PerlJam I figured homophony was good enough.
colomon looks at geohub.github.com/ , realizes yet again that he always thinks of Germany as being where Poland actually is. 17:30
17:31 mikemol joined
PerlJam colomon: it's all just europe anyway. Heck, Texas is bigger than most of those countries ;) 17:31
goraki colomon: I thought Poland was next to Germany, <-- starts infinite loop.
TimToady well, Godwin's Law points out that some people think Poland is in Germany... 17:36
17:37 s1n joined
PerlJam that's very much like an autopun 17:37
17:37 thou left
PerlJam though ... different 17:37
TimToady it's just a Big Lie 17:38
.oO(Poland Lies Largely in Germany...)
17:39
17:40 Tedd1^ joined
tadzik does it? 17:40
PerlJam that doesn't even rhyme
tadzik oh, I backlogged enough now :)
TimToady sorry
Woodi to be precise sometimes it was there but partially :)
17:41 s1n left
TimToady but you could pretty much say that about most of the lowland countries of the world, fsdo "it" and "there" 17:41
Switzerland does not qualify. 17:42
17:42 Tedd1 left 17:43 fibo joined
colomon I'd aruge my internal map of Europe actually came from some old WW2 wargame map. But the real thing that shows it's just me being messed up is that even though I know there are French/German boundary regions which have been disputed for centuries, in my internal map of Europe there's something about the size of Switzerland separating the two. 17:43
PerlJam notices an odd bias towards perl-people on geohub.github.com ;)
TimToady colomon: is it labeled "Switzerland"? 17:44
moritz colomon: I don't know of any region that's disputed between France and Germany :-)
Woodi anyway, Texas is mainly a desert so we do not care :)
colomon TimToady: nope, it's north of Switzerland
moritz there were parts that decided by vote if they wanted to be part of .de or .fr
dalek ast: 7fa5f12 | moritz++ | S32-str/substr (2 files):
move lvalue substr tests to substr-rw.t;

also clean up some p5 reference thinking
17:45
17:45 Chillance joined
colomon TimToady: and Germany is due east of Switzerland (extending north to the water) 17:46
TimToady that's kinda like the parts that are deciding whether they want to be part of .gr or .eu?
17:46 Tedd1 joined
Woodi .eu is more a container thing... 17:48
PerlJam mutable or immutable
?
moritz motable, obviously
erm, mutable
moritz can't type today
Woodi so far it is .new one 17:49
17:49 Tedd1^ left, Mike1989 joined
Mike1989 Hello 17:50
i need some help
PerlJam Mike1989: what's up?
moritz hi Mike1989
Mike1989 i would like to start with rakudo
on my Win7
17:51 mdupont left
Mike1989 and It woluld be great if there is a nice editor 17:51
PerlJam Mike1989: Padre ?
moritz vim, emacs
Mike1989 i am used to eclipse kindo of things...
ok Padre
but it supports perl 5
isnt it??
PerlJam and perl6 and a whole bunch of other stuff 17:52
17:52 birdwindupbird joined
dalek ast: fb9e1c1 | moritz++ | S32-str/substr-rw.t:
rakudo-fudge substr-rw.t
17:52
TimToady just uses vim
Mike1989 ok, this one: padre.perlide.org/download.html ??
PerlJam too 17:53
moritz Mike1989: yes
dalek kudo/nom: 3ec9365 | moritz++ | t/spectest.data:
run substr-rw.t
17:54
17:54 Tedd1^ joined
[Coke] has padre been updated for p6 syntax highlighting? 17:55
Mike1989 moritz: and after installing this Padre is there anything else I need to know
17:56 araujo left
Mike1989 what I realy need is run a window application written in Perl 6 Rakudo on Parrot VM 17:56
will it do?
17:57 Tedd1 left
PerlJam [Coke]: Are you asking if it does p6 highlighting or if the p6 highlighter has been recently updated? 17:57
[Coke]: Padre has done p6 highlighting for a while. I don't use Padre enough on Perl 6 to know how good it is though.
17:58 s1n joined, goraki left
Mike1989 could someone please consider my question...:) 17:59
Woodi Mike1989: you can download Rakudo for Win from github.com/rakudo/star/downloads/
binary or source for compilation
Mike1989 that much I allready know
Woodi so what you need next ? 18:00
Mike1989 what I realy need is run a window application written in Perl 6 Rakudo on Parrot VM
benabik "a window application"? Something with a GUI? 18:01
Mike1989 mortiz told me that Padre should do the work with editing code
yes...
benabik I don't think there's a GUI library for Rakudo, but it shouldn't be too difficult to interface with one via NativeCall. 18:02
Mike1989 well I am not so worried about that
The basic information that I require is how to write in editor on Windows with Rakudo using Parrot :) 18:03
PerlJam Mike1989: you keep mentioning Parrot, but it's not really a user-visible part of executing Perl 6 code. 18:04
(except accidentally ;)
Mike1989 yes I know that...
Woodi you want to know modules for GUI for Rakudo ?
Mike1989 it is needed for my thesis
benabik Mike1989: "how to write an editor" is a fairly broad topic.
Mike1989 to be honest
geekosaur then why do you mention it?...waitwhat?
PerlJam Mike1989: so, you install Rakudo, install Padre, write Perl 6 code with Padre and you can run it via F5 from within Padre 18:05
tadzik you can write Gtk applications with niecza
rakudo isn't really capable of that at the moment
Mike1989 capable of what exactly??
benabik It should be possible to hook up to GTK or even the basic windows libraries via NativeCall.
18:05 spider-mario joined
PerlJam benabik: yeah, all it needs is someone to make the linkage 18:06
benabik (C libraries rather than C#, obv.)
tadzik benabik: barely. Callbacks are still a problem
you can't really write anything serious with Gtk withouth callbacks
Woodi do "application" must mean "mouse for using" ?
benabik tadzik: Ah.
Mike1989 yeah.... 18:07
PerlJam tadzik: I thought callbacks were less of a problem now ... maybe I imagined it.
tadzik PerlJam: I think there's still no way to handle them
moritz thinks so too 18:08
Woodi Mike1989: one on #perl5 ppls advice me to use HTML GUI :)
spider-mario :D
Mike1989 great...
spider-mario well, it’d work
HTML is portable, is it not? 18:09
that’s one of its design principles
(being universal)
(universally accessible, more specifically)
Mike1989 so if I understand you correctly I shoud write an app using perl6 but in http gui ??
Woodi Mike1989: but to be very seriously I dream about good GUI for any Perl seence 10 years probably... 18:10
spider-mario Woodi : is Qt not good?
colomon n: gist.github.com/2702826
p6eval niecza v17-4-ge5b869e: OUTPUT«baroo␤»
Mike1989 Qt??
spider-mario Qt4 has a Perl5 binding
gfldex Qt is the thing KDE is made with
spider-mario among others 18:11
there are other important users
Adobe and Google, for example
gfldex many others actually
Woodi spider-mario: Perl have bindings for everything :) but for long and serious use usually there are problems...
18:11 derrazo joined, derrazo left
spider-mario Qt’s binding seems quite mature 18:12
it even has an equivalent for uic
it is more or less rare for Qt’s bindings
(perl’s is puic)
Woodi I tried few Qt bindings few months ago and something do not worked for me 18:13
Mike1989 ok, so any clue what can I do with it?
Woodi Mike1989: what is your thesis ? :)
Mike1989 "Parrot in practice" 18:14
Woodi and why you must use Rakudo ?
Mike1989 but
my "master" demands that I should Use Perl 6
Woodi wow :) 18:15
Mike1989 and Rakudo comes with parrot
right?
Woodi clone him :)
Mike1989 hahaha
spider-mario Rakudo is built on Parrot 18:16
but neither comes with the other, except in Rakudo Star
Woodi Mike1989: you have more things to choose then just user UI
spider-mario a distribution of Rakudo
Mike1989 meaning? 18:17
Woodi all that what they learn on universities about IT things
data procesing, OO, databases, ... 18:18
concurency probably is here too
Mike1989 well.... most of my work will be done about the theory
how parrot and perl work together 18:19
so conserning the app
it just needs to work:)
and be presented nicely :)
Woodi Mike1989: you can also collect all data about Parrot state, say it is not so complete and then show directions and requirements 18:20
well, you can have problem :)
Mike1989 Woodi: in fact I do have a problem... for a while now
i was trying to hook up parrot with apache.... 18:21
and it didn't work.. so "master" choose GUI app
Woodi Mike1989: but Parrot is VM... do whatever you want but GUI is from other story... 18:22
Mike1989 that I know,
but
there is a need to write GUI app in perl 6
just for the sake of doing it 18:23
18:23 birdwindupbird left
Woodi agree! I want it too :) 18:23
tadzik there is tetris
Mike1989 and as you can see i am also happy about it
;)
tadzik and a text editor too, iirc
Mike1989 haha
tadzik and a web browser even 18:24
Mike1989 i wish there was an eclipse for perl....
tadzik github.com/sorear/niecza/blob/mast...-tetris.pl
moritz Mike1989: there is
Mike1989: google for epic
Woodi DBI for UI would be nice :) 18:25
18:25 adu joined
moritz it's called Wx 18:25
Mike1989 tetris huh?? 18:26
;p
Woodi russian legacy :)
18:26 NamelessTee left
Mike1989 indeed 18:26
colomon errr... if I have / [ <a-regex> | <b-regex> ]+ /, how do I get an array of elements which are intermixed a-regex and b-regex ? 18:27
adu I have a question
moritz colomon: $/.caps
18:28 ponbiki joined
adu why does perl6 complain when I add <[\xE000..\xFFFD]> that it contains invalid UTF-8 characters? 18:28
moritz r: /<[\xE000..\xFFFD]>/
p6eval rakudo 3ec936: OUTPUT«===SORRY!===␤Invalid character for UTF-8 encoding␤␤»
spider-mario r: say ("\xE000" .. "\xFFFD").perl 18:29
p6eval rakudo 3ec936: OUTPUT«"\x[e000]".."�"␤»
spider-mario r: say "\xE000" .. "\xFFFD"
p6eval rakudo 3ec936: OUTPUT«"\x[e000]".."�"␤»
adu should I add something like :chars or :codes?
moritz adu: looks like a bug to me
adu: no, those aren't implemented yet
adu oh ok
spider-mario r: /<[\xFFFD]>/ 18:30
p6eval rakudo 3ec936: ( no output )
spider-mario .u FFFD
.u 0xFFFD
phenny U+FFFD REPLACEMENT CHARACTER (�)
spider-mario: Sorry, no results for '0xFFFD'.
18:30 alim joined
moritz .u E000 18:31
phenny U+E000 (No name found)
adu .u 1F4A9
phenny adu: Sorry, no results for '1F4A9'.
moritz r: chr(0xE000)
p6eval rakudo 3ec936: ( no output )
moritz adu: phenny doesn't know about characters > 0xFFFF 18:32
adu oh ok
moritz (maybe because it's python based :-)
spider-mario :D
(is it?)
(it surprises me a bit)
adu I guess it was a USC-2 build?
TimToady feel free to rewrite it in Perl 6 :D
adu I'd like to rewrite everything in Perl6 :) 18:33
geekosaur .oO { I
moritz adu: that's a good sign :-)
geekosaur .oO { I'd like to teach the world to work / In Pelr 6 harmony }
Mike1989 you are so making me like perl right now....
geekosaur ...typoes. feeeh
Mike1989 geekosaur: are you?? 18:34
geekosaur what? I was misquoting
Mike1989 :) 18:35
? 18:36
spider-mario what’s this .oO notation, btw?
geekosaur thought bubble 18:37
think comics
tadzik like a comicbook bubble when the character's thinking
spider-mario oh
thanks
that clarifies a lot of things :D
adu so if I have a character class 18:38
18:38 alim left
TimToady
.oO(a comicbook character clas...)
18:38
adu like char, and I want all but one char do I have to use <+char -[']>?
I'm wondering why <char-[']> works, should that be parsed as a 'char-' identifier? 18:40
benabik I don't think [ or ] are valid identifiers.
adu wait <char-[']> doesn't work, but <+char-[']> does
18:46 thou joined
[Coke] . o O (Of course, timtoady's bubbles are too close together.) 18:47
moritz adu: <somthing tries to parse it as a subrule call
adu: <+something as a character class
colomon
.oO(wishes comic book characters still thought this way...)
18:48
adu moritz: ok, that makes sense
colomon moritz++ 18:49
moritz not sure if that's spec, but I'm pretty sure that's how rakudo does it 18:50
std: /<foo-[bla]>/ 18:51
p6eval std 8632387: OUTPUT«===SORRY!===␤Unrecognized regex metacharacter - (must be quoted to match literally) at /tmp/dzoo1vvtDA line 1:␤------> /<foo-⏏[bla]>/␤Can't call method "from" on unblessed reference at STD.pm line 55001.␤FAILED 00:00 41m␤»…
moritz ok, seems spec
[Coke] reminds all comic book aficionados to go see avengers.
benabik reminds everyone else to go see avengers.
adu what's with all the .oO()?
PerlJam [Coke]: trying to make the second weekend tally as large as opening weekend? :-) 18:52
adu: thought bubbles.
moritz < tadzik> like a comicbook bubble when the character's thinking
adu oooh
[Coke] PerlJam: I brought the family of 5 to the second weekend, did my part. ;)
. o O (Didn't we just explain this?)
benabik It's like deja vu all over again.
PerlJam Whenever they mention the dollar figure brought in, I wonder if those dollars are absolute or normalized. 18:53
adu [Coke]: I was having trouble figuring out which bubbles you were talking about
moritz all of them!
PerlJam Because then Titanic came out (the first time), tickets were like half the price they are today
[Coke] .u large circle
phenny U+25EF LARGE CIRCLE (◯)
[Coke] .u dotted circle
phenny U+25CC DOTTED CIRCLE (◌)
[Coke] . o ◌ (slightly better.) 18:54
18:56 s1n left
PerlJam idly wonders if there are dotted parens 18:56
18:56 alim joined
spider-mario .u dotted 18:58
phenny U+205C DOTTED CROSS (⁜)
spider-mario .u dotted bracket
phenny U+2E04 LEFT DOTTED SUBSTITUTION BRACKET (⸄)
18:58 birdwindupbird joined
spider-mario .u dotted parenthesis 18:58
phenny spider-mario: Sorry, no results for 'dotted parenthesis'.
18:58 Mike1989 left, NamelessTee joined
geekosaur don't see one 18:58
colomon will go eventually. after all, he saw three movies in theaters last year! 19:01
colomon was referring to the earlier avengers mentions. 19:02
geekosaur .u cloud 19:03
phenny U+2601 CLOUD (☁)
TimToady likes 雲 better 19:05
spider-mario .u 雲 19:08
phenny U+96F2 CJK UNIFIED IDEOGRAPH-96F2 (雲)
geekosaur this font doesn't like cjk
spider-mario phenny: "雲"?
phenny spider-mario: "Cloud" (ja to en, translate.google.com)
spider-mario :)
geekosaur the font that did didn't like the eject icon in std and niecza error messages...
geekosaur needs better fonts.... 19:09
19:10 araujo joined, ggoebel left, s1n joined
moritz nqp: try { nqp::die("foo") }; say($!) 19:11
p6eval nqp: OUTPUT«Symbol '$!' not predeclared in <anonymous>␤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 149 (compilers/pct/src/PCT/HLLCompiler.pir:106)␤»
moritz nqp: try { nqp::die("foo"); CATCH say($_) } 19:12
p6eval nqp: OUTPUT«Missing block at line 1, near "say($_) }"␤current instr.: 'nqp;HLL;Grammar;panic' pc 22008 (src/stage2/gen/NQPHLL.pir:7047) (src/stage2/gen/NQPHLL.pm:329)␤»
19:14 ggoebel joined 19:18 s1n left
japhb Is there a method that selects exactly the opposite of what .grep does? In other words, is a simpler replacement method for this: @foos.grep(* !~~ / 'foo' /) ? 19:19
gfldex you could move the condition into the RE 19:21
japhb gfldex, is there a way to do that that is less ugly than what is already there? 19:23
gfldex don't think so
japhb (This came up while I was trying to make a point about clarity of Perl 6 code with my boss, and wrote that out, and went "Hum, that looks uglier than it needs to be ...") 19:24
colomon japhb: on the bright side, writing your own grep equivalent is pretty easy... 19:26
moritz .grep({ !/foo/ }) 19:27
colomon is pondering a :v modifier for grep... 19:28
TimToady .grep(none /foo/)
japhb had the same evil thought as colomon, but couldn't bring himself to mention it. ;-)
TimToady .grep(none ?/foo/) maybe
19:28 alim left
TimToady .grepn't 19:29
moritz TimToady: those all evaluate too early
colomon TimToady: that's just stupid enough to love
japhb Interestingly, Rakudo and Niecza both DWIM with TimToady's first suggestion, but only Niecza does moritz's. 19:30
[Coke] colomon: that's kind of a crappy motto to give to TimToady.
moritz oh right, I see why none /foo/ works 19:31
p6: say <f o o>.grep({! /o/ })
p6eval rakudo 3ec936: OUTPUT«Method 'match' not found for invocant of class 'Any'␤ in method Bool at src/gen/CORE.setting:9271␤ in sub prefix:<!> at src/gen/CORE.setting:2145␤ in block <anon> at /tmp/GqR5ywNmIK:1␤␤»
..niecza v17-4-ge5b869e: OUTPUT«f␤»
..pugs: OUTPUT«␤»
19:31 s1n joined
moritz why is $_ Any in rakudo? 19:31
19:36 ponbiki left
japhb
.oO( We could call a reverse grep 'perg' )
19:38
19:41 alim joined 19:44 thou left
TimToady moritz: because Mu produces too many weird results from a user's point of view to warrant it as a default value for what is likely to be thought of as an ordinary object, and because there is no requirement that the default of a container be the same as its type constraint 19:44
19:45 colomon left
TimToady in fact, for KeyHashes we specifically want the default to be just one of the allowed values 19:45
19:48 snearch joined, snearch left, snearch joined 19:49 KyleHa joined
KyleHa r: say 'hello #perl6' 19:49
p6eval rakudo 3ec936: OUTPUT«hello #perl6␤»
dalek rlito: b03b4c0 | (Flavio S. Glock)++ | / (3 files):
Perlito5 - parser: simplify
KyleHa r: use Test; say "I'm still alive" 19:50
p6eval rakudo 3ec936: OUTPUT«I'm still alive␤»
KyleHa r: use Test;$_ = 'RT 112540';ok /./, 'I believe I can match';
p6eval rakudo 3ec936: OUTPUT«Method 'match' not found for invocant of class 'Any'␤ in method Bool at src/gen/CORE.setting:9271␤ in sub prefix:<?> at src/gen/CORE.setting:2137␤ in sub ok at lib/Test.pm:66␤ in block <anon> at /tmp/OLNWBgP1vI:1␤␤»
KyleHa What's going on there? 19:51
r: use Test;$_ = 'RT 112540';if /./ { say 'No really' }
p6eval rakudo 3ec936: OUTPUT«No really␤»
[Coke] r: use Test;$_ = 'RT 112540';ok ?/./, 'Does this match?' 19:52
p6eval rakudo 3ec936: OUTPUT«Method 'match' not found for invocant of class 'Any'␤ in method Bool at src/gen/CORE.setting:9271␤ in sub prefix:<?> at src/gen/CORE.setting:2137␤ in block <anon> at /tmp/yhGJgQa_Ku:1␤␤»
[Coke] Test is probably a red herring. 19:54
$_ = "hi"; /./;
19:54 snearch left
[Coke] r: $_ = "hi"; /./; 19:54
p6eval rakudo 3ec936: ( no output )
[Coke] r: $_ = "hi"; ?/./; 19:55
p6eval rakudo 3ec936: OUTPUT«Method 'match' not found for invocant of class 'Any'␤ in method Bool at src/gen/CORE.setting:9271␤ in sub prefix:<?> at src/gen/CORE.setting:2137␤ in block <anon> at /tmp/ZndBUzXeg7:1␤␤»
KyleHa So it is.
r: $_ = 'x'; if ?/./ { say "Hm" } 19:56
p6eval rakudo 3ec936: OUTPUT«Method 'match' not found for invocant of class 'Any'␤ in method Bool at src/gen/CORE.setting:9271␤ in sub prefix:<?> at src/gen/CORE.setting:2137␤ in block <anon> at /tmp/bwXUvgLxng:1␤␤»
19:56 kboga joined
KyleHa r: $#!(%2$da*!@ 19:56
p6eval rakudo 3ec936: OUTPUT«===SORRY!===␤Unsupported use of $# variable; in Perl 6 please use .fmt␤at /tmp/NPfuFszvAn:1␤» 19:57
[Coke] r: 'x' ~~ /./ && say "hm"
p6eval rakudo 3ec936: OUTPUT«hm␤»
19:58 jferrero left
moritz TimToady: I meant, why doesn't .grep sets the $_ in the block? 19:58
r: say <a b c>.grep({ .say }) 19:59
p6eval rakudo 3ec936: OUTPUT«a␤b␤c␤a b c␤»
moritz r: say <a b c>.grep({!/b/ })
p6eval rakudo 3ec936: OUTPUT«Method 'match' not found for invocant of class 'Any'␤ in method Bool at src/gen/CORE.setting:9271␤ in sub prefix:<!> at src/gen/CORE.setting:2145␤ in block <anon> at /tmp/tFsPQxxTUu:1␤␤»
moritz r: say <a b c>.grep({not $_ ~~/b/ })
p6eval rakudo 3ec936: OUTPUT«a c␤»
moritz r: say <a b c>.grep({/b/ })
p6eval rakudo 3ec936: OUTPUT«b␤»
moritz the prefix:<!> causes the regex to see a different $_? 20:00
20:01 jferrero joined
diakopter r: say <a b c>.grep({!($_~~/b/)}) 20:02
p6eval rakudo 3ec936: OUTPUT«a c␤»
20:03 benabik_ joined 20:05 benabik left, benabik_ is now known as benabik
moritz masak: do you know if this one is submitted? 20:05
KyleHa It's sort of here: rt.perl.org/rt3/Ticket/Display.html?id=112540 20:06
20:06 colomon joined
colomon Does it make any sense for the same action to fire on the same line of parsed string over and over again? 20:06
moritz KyleHa++
pmurias Woodi: what's wrong with using html for gui?
moritz pmurias: the fact that UIs are stateful but HTTP is not
spider-mario Wt (for C++ and Java :/) handles that quite nicely 20:08
20:08 havenn joined
spider-mario and produces applications that don’t depend on JavaScript 20:08
even if they use it if it is available
its API looks a little like Qt’s 20:10
moritz well, it requires a whole pile of workarounds and hairy tricks; there are frameworks that help you with it, but it's still a pile of workarounds and tricks
dalek rlito: e51aa92 | (Flavio S. Glock)++ | / (7 files):
Perlito5 - parser: simplify internal data structure for expressions
20:11
20:11 havenn left
dalek kudo/nom: f69e58c | moritz++ | src/core/Exception.pm:
typo noticed by kboga++
20:12
adu I bet it would be really easy to write things like 'cut' and 'wc' in perl6 20:14
moritz it is
diakopter those would be cool examples
adu I wrote a tool (called 'only') in Haskell, and it would probably be somewhat easy in perl6 too
moritz and contrary to the UNIX tools, it will be harder (and not easier) to limit cut to a single character delimiter :-) 20:15
adu hackage.haskell.org/package/only
spider-mario say +$*IN.get.lines
oops
-.get
say +$*IN.lines
(even simpler)
moritz but that's just wc -l
20:15 araujo left
spider-mario true 20:16
adu I used a custom regex syntax N/patt/M where N is the N-th match to display, and M is a range of lines (simulating grep -A -B)
spider-mario for words, it would be: say [+] $*IN.lines».words, I guess
adu but I realized recently that perl6 has :3rd for that
moritz my @l := lines(); my $lines = +@l; my $words = [+] @l>>.words; my $chars = [+] @l>>.chars;
spider-mario that last line gives me 0 20:17
(mine)
moritz r: my @l := lines; say +@l; say [+] @l>>.words; say [+] @l.chars;
p6eval rakudo 3ec936: OUTPUT«23␤0␤615␤»
spider-mario oh, no [+], probably
for words, it would be: say +$*IN.lines».words, I guess 20:18
moritz r: my @l := lines; say +@l; say [+] @l>>.words>>.elems; say [+] @l.chars;
p6eval rakudo 3ec936: OUTPUT«23␤81␤615␤»
spider-mario I forgot to strip the rest of my message.
sorry. :D
say +$*IN.lines».words
adu and as I found, rot13 was also a short script
moritz rot13 is a single .trans call in Perl 6 20:19
adu yeah :) so really the hard part is in making it look nice, perhaps with a %hash or something
moritz perl6: say get().trans('a..zA..Z' => 'N..ZA..M') 20:21
p6eval pugs: OUTPUT«*** No such subroutine: "&get"␤ at /tmp/Zz33DcoV9n line 1, column 5 - line 2, column 1␤»
..rakudo 3ec936, niecza v17-4-ge5b869e: OUTPUT«YNAQ QRE ORETR, YNAQ NZ FGEBZR,␤»
moritz perl6: say get().trans('a..zA..Z' => 'n..za..mN..ZA..M')
p6eval pugs: OUTPUT«*** No such subroutine: "&get"␤ at /tmp/nk48Rq_jLh line 1, column 5 - line 2, column 1␤»
..rakudo 3ec936, niecza v17-4-ge5b869e: OUTPUT«Ynaq qre Oretr, Ynaq nz Fgebzr,␤»
20:22 alim left
adu perl6: say "hello world".trans('a..zA..Z' => 'n..za..mN..ZA..M') 20:22
p6eval pugs, rakudo 3ec936, niecza v17-4-ge5b869e: OUTPUT«uryyb jbeyq␤»
adu perl6: say "uryyb jbeyq".trans('a..zA..Z' => 'n..za..mN..ZA..M')
p6eval pugs, rakudo 3ec936, niecza v17-4-ge5b869e: OUTPUT«hello world␤»
moritz \o/ 20:23
pmurias moritz: what i'm currently rewriting my p5 win32 api app is HTML+CEF (embedding chrome) 20:24
KyleHa Rakudo isn't building for me right now. 20:26
20:30 araujo joined, araujo left, araujo joined 20:31 birdwindupbird left
moritz KyleHa: what's the problem? 20:34
KyleHa Maybe it was —gen-parrot with the —jobs=5 thing. Dunno.
Now it looks as if it will work. 20:35
moritz nqp has some problems building dyncall in parallel, I think 20:37
kboga hi #perl6 20:42
masak kboga! \o/ 20:44
kboga masak! \o/
masak \o/ 20:46
20:46 gv joined 20:47 icwiener left
masak kboga: was it you who made the Real->role pull request? awesome! 20:47
kboga++
kboga yes, I thought it was LHF, you guys on the other hand are doing the hard stuff. 20:49
masak <3 20:50
um, I mean, ♥
20:51 thou joined
kboga and trying learn some git in the meanwhile :) 20:51
masak that's always worthwhile.
the git model is here to stay, and teaches you invaluable lessons about immutability. 20:52
KyleHa Immutable cat is immutable.
colomon kboga++ # Rational! 20:53
kboga Its mostly moritz++ 's work, this time I tried to build on his Rational branch. 20:55
It cheats on using Int instead of the UInt64 subset restriction for Rat's denominator though. 20:58
I think there's a subset related bug. (not sure)
masak is there some way you can verify that there's a subset-related bug? 20:59
kboga hmm, you mean like a golfed down version or actually changing the denom to UInt64 in the setting itself? 21:00
cosimo hi #perl6
kboga hi cosimo
jnthn evening, #perl6 21:01
masak kboga: I mean the shortest possible program that shows there's a bug.
adu hi #perl6
kboga masak: I can try, but I'm not sure if I can catch it. :) 21:02
cosimo if I had to try rakudo now, after a while where I didn't do much, what version should I pick? nom, master, star, ...? 21:03
KyleHa Can Rakudo catch warnings as it does for exceptions in a try block?
masak kboga: think of it as a challenge -- to minimize the program while retaining the bug! :)
21:04 pochi left, spider-mario left
felher Assume i have a 'class A { has Str $!content-from-file; submethod BUILD() { $!content-from-file = ... load file from disk } }'. Is this BUILD submethod a valid one? Or do i have to do something like 'submethod BUILD($!content-from-file) { ... }'? I'm asking after reading perlgeek.de/blog-en/perl-6/object-c...ation.html (which may be outdated by now) 21:04
jnthn KyleHa: CONTROL block for those, I think.
felher: That's valid, and the post should sa :$!content-from-file these days. 21:05
21:05 spider-mario joined
jnthn felher: It only makes sense to use the attributive parameters if you want to assign the value the user passed in. 21:05
felher jnthn: great, thanks :) 21:06
jnthn Sheesh, loads of backlog formed while I was out...
KyleHa jnthn: Indeed, S32-basics/warn.t is instructive.
[Coke] wants a nice utility that will take a String and tell him what encoding it probably is. 21:08
felher jnthn: actually, the post does say ":$!something", but the spec at S12-objects.pod:867 doesn't :)
21:09 jferrero left
[Coke] sorry, a string. 21:09
KyleHa How would the assembled sixers feel about a Test.pm function "warns_ok" similar to "dies_ok"? 21:10
21:10 _jaldhar joined, jaldhar left
KyleHa Also, I might have enjoyed having "dies_like" at times. 21:10
Woodi pmurias: HTML requires a lot of environment: browser, server, network, css... that's many things that can goes wrong. if you want just app in one binary you can take with you or distribute "traditional" way is simpler. and HTML apps are better for multiuser apps
[Coke] woodi; do you care about being able to run your app on various clients? 21:12
masak r: enum Weekday <Mon Tue Wed Thu Fri Sat Sun>; augment class Weekday { multi method succ($ where Sun:) { Mon } }; say "alive" 21:15
p6eval rakudo f69e58: OUTPUT«===SORRY!===␤augment not allowed without 'use MONKEY_TYPING'␤at /tmp/4SJVEYxsGw:1␤»
masak r: use MONKEY_TYPING; enum Weekday <Mon Tue Wed Thu Fri Sat Sun>; augment class Weekday { multi method succ($ where Sun:) { Mon } }; say "alive"
p6eval rakudo f69e58: OUTPUT«===SORRY!===␤Cannot auto-generate a proto method in the setting␤»
masak huh!
why am I getting this error message? 21:16
pmurias Woodi: i'm planning on just distributing an client with an embedded chrome ;)
jnthn masak: Uh. 21:17
masak: Because it failed to detect the meta-object mismatch at the point you started augmenting.
21:18 mikemol left
jnthn masak: And then EnumHOW ain't set up to support multi-methods being added. 21:18
21:19 kaare_ left
masak where does the setting enter into the picture? 21:19
jnthn masak: The code path that issues that is the one that you hit if you don't explicitly write a proto when declaring a multi in the setting. 21:20
masak so it tries to figure out what went wrong, and arrives at a common cause which isn't applicable in this case? 21:21
jnthn Right.
masak submits LTA rakudobug
jnthn Well, what's really LTA is it let you get that far.
masak aye.
jnthn Which I do want to fix. So yes, please file.
masak r: use MONKEY_TYPING; enum Weekday <Mon Tue Wed Thu Fri Sat Sun>; Sun does role { method succ { Mon } }; say "alive" 21:24
p6eval rakudo f69e58: OUTPUT«Method 'mixin' not found for invocant of class 'Perl6::Metamodel::EnumHOW'␤ in sub infix:<does> at src/gen/CORE.setting:10736␤ in block <anon> at /tmp/ts2h7FxTUT:1␤␤»
masak oh, come *on* :P
jnthn That one is at least descriptive. :)
Should we actually support that?
masak probably not. 21:25
I'm just trying to get the week to wrap somehow.
then I can do Sat ... Wed :)
jnthn :P
kboga If anyone is interested, this is what happens when Rat's denominator's restriction is set to the UInt64 subset (on that pull request): nopaste.info/b9401c71d5.html 21:28
21:28 havenn joined 21:29 fhelmberger left 21:30 skids left
masak kboga: you get a delegation loop between prefix:<~>, .Str, and .Stringy for some reason. 21:33
jnthn Means "you need to circualrity saw here" 21:34
kboga yea, i figured something circular is going on, but I have yet to find the source.
jnthn uh, are you actually using a subset for UInt64?
kboga well, that I got from moritz++ 's Rational branch 21:35
jnthn I'm dubious that's going to work out well for Rat, since we have to create those at compile time.
Also, that will totally hose performance.
We'll have to implement it some other way.
Isn't it meant to be uint64 (a native type) also? 21:36
21:38 spider-mario left, alim joined 21:39 sjohnson joined
kboga perlcabal.org/syn/S02.html#line_747 21:40
21:40 havenn left
adu I'm having the darndest time trying to match a CDATA section 21:40
r: my token char { <[\ ..~]> }; my token cd_sect { '<![CDATA[' <char>* ']]>' }; say "<![CDATA[ hello ]]>" ~~ /^ <cd_sect> $/
p6eval rakudo f69e58: OUTPUT«#<failed match>␤»
kboga "(which may or may not be implemented as a native uint64, since small representations may be desirable for small denominators)"
jnthn That's weird. 21:42
21:42 pochi joined
jnthn It's also the only mention of it in uppercase that I can see in the spec. Elsewhere in S02 and also in S09 it always appears as uint64 21:42
jnthn defers to TimToady++ for a clarification :) 21:43
21:45 fglock left
jnthn moritz++ # substr-rw 21:46
21:47 sh0ne joined
masak clearly I need to backlog! 21:50
jnthn :)
jnthn backlug and was happy to see that :)
adu r: my token char { <[\ ..~]> }; my token cd_start { '<![CDATA[' }; my token cd_data { [<.char> & <-[\]]>]* }; my token cd_end { ']]>' }; my token cd_sect { <.cd_start> <cd_data> <.cd_end> }; say "<![CDATA[ hello ]]>" ~~ /^ <cd_sect> $/ 21:53
p6eval rakudo f69e58: OUTPUT«=> <<![CDATA[ hello ]]>>␤ cd_sect => <<![CDATA[ hello ]]>>␤ cd_data => < hello >␤␤»
adu I think that works, but it's wrong
21:53 KyleHa left
sh0ne Guys, where can I check why am I banned in #perl channel? I didn't even know that I was banned, because I haven't been that much active for a couple of months and when I am I'am usually with specific question about something. Also, I don't know how long I was banned already. Thank you. 21:53
adu how do I match all sequences except ']]>'? 21:54
kboga Currently there aren't any unsigned integer natives in rakudo right?
jnthn kboga: right.
adu: <!before ']]>'> . ** 3 21:55
Is one way
21:56 alim left
adu thanks jnthn++ 21:56
22:01 NamelessTee left
adu jnthn: so that would match any string which is a multiple of 3 22:02
jnthn adu: Er, . means match anything, ** 3 means "3 of them" 22:04
masak sh0ne: not sure about the answer to that one. perhaps easiest to get in contact with some op or other and ask them to check for you.
22:04 ispeak_ joined
jnthn adu: Maybe that's what you meant too :) 22:05
sh0ne masak: thank you, sir.
masak sh0ne: generally, the best strategy is "don't be a troll", though :) though I'm sure you're a very nice person.
adu jnthn: I suppose I was talking about <what you said>*
the spec says you can do token foo { .* !~~ ']]>' } but it doesn't seem to work 22:06
kboga Seems like something assumes the second parameter to Rat's new to be always of type Int: nopaste.info/ed7ccf05ed.html # Just curious, I know Num here is insane, even tried it with signed int32 (same result) 22:08
jnthn adu: ah, yeah...that one isn't implemented in Rakudo yet. 22:09
22:10 fibo left
adu niecza: my token yes { .* !~~ 'no' }; say "logic" ~~ /<yes>/ 22:11
p6eval niecza v17-4-ge5b869e: OUTPUT«===SORRY!===␤␤Action method quantifier:sym<~~> not yet implemented at /tmp/D0Zh5Z_IV4 line 1:␤------> my token yes { .* !~~ 'no'⏏ }; say "logic" ~~ /<yes>/␤␤Quantifier quantifies nothing at /tmp/D0Zh5Z_IV4 line 1:␤------…
adu is it in pugs?
22:11 bacek left
masak don't think so. 22:12
22:12 PacoAir left
jnthn puts it on his todo list 22:15
adu can I help?
sergot 'night o/ 22:18
22:18 sergot left
Woodi about rakudo spectest on OpenBSD 5.1: failed tests: S03-operators/arith.rakudo 1, S03-operators/overflow.rakudo 28, S19-command-line/dash-e.t 2, S32-num/power.rakudo 1 22:18
masak 'night, #perl6
adu masak: night
Woodi night
jnthn adu: I'm not quite sure how to do it without looking a little deeper.
adu where would I start looking? blib? 22:21
src/Perl6/Actions? 22:22
jnthn adu: Well, to get an idea of how we implement regexes, see the NQP repo, in src/QRegex/P6Regex. The Grammar is how we parse them, Actions turns them into AST.
We could probably add this into src/Perl6/Actions and src/Perl6/Grammar though.
adu ok
jnthn We subclass P6Regex and add Perl 6 extras. 22:23
But it's hard to get the big picture just by reading the bits in src/Perl6/[Grammar|Actions].pm
adu jnthn: nqp or nqp-rx? 22:25
jnthn nqp 22:26
nqp-rx isn't used by Rakudo any more.
adu why does everything begin with Q? 22:34
jnthn adu: I think it started with a desire to produce the next iteration of various things that began with "P", and P++ is Q. :) 22:35
adu ah 22:36
that makes sense
what would make more sense is "quoted expressions"
jnthn Curiously, just before you asked this, I started on a patch to implement the (mostly unrelated) <~~> :) 22:38
adu is there a difference between { $X ~~ $Y } and { $X & <~~$Y> }? 22:39
I mean spec-wise
jnthn Not sure what the later means 22:40
But I think you're asking "can I implement this with &"
I'd pondered that but...
The spec says that it's not quite the same.
adu ok
jnthn Because X ~~ Y means "does Y match *somewhere* in X" 22:41
adu oh right
jnthn Whereas & implies equal length.
adu so { $X !~~ $Y } and { $X & <!~~$Y> } would thus be different as well 22:42
jnthn Note that what you can use in <~~...> is contrained to a positional or named capture 22:43
*constrained
adu so you'd have to make a named rule
jnthn Though so far here I only did <~~>
Not <~~0> and <~~foo>
Yeah
I'll get to those, but it's almost 1am here, so maybe not today :)
adu ok
if you need any help, or an extra pair of eyes, let me know 22:44
22:44 _jaldhar left
jnthn Thanks :) 22:46
22:48 sh0ne left 22:49 whiteknight joined, whiteknight is now known as Guest50006
dalek kudo/nom: 1e35759 | jnthn++ | docs/ChangeLog:
Note about l-value substr in ChangeLog.
22:51
kudo/nom: 22c12b0 | jnthn++ | / (4 files):
First crack at <~~> in regexes. Note that <~~0> and <~~beer> are NYI, and are probably compiled a bit differently.
ast: cb86fc4 | jnthn++ | S05-metasyntax/angle-brackets.t:
Correct and unfudge a test. This tweak is needed since the call is recursive (the spec uses that word), which presumably means it can recurse multiple times, and the test didn't provide a way for that recursion to terminate in its original form.
22:53
jnthn And with that, I'm decidedly ready for some sleep. 'night o/ 22:54
22:54 thelazydeveloper left 23:03 benabik left 23:06 lichtkind joined 23:09 Chillance left 23:12 havenn joined, skids joined 23:24 thou left 23:30 pmurias left 23:31 havenn left 23:35 gv left 23:43 adu left 23:49 lestrrat left 23:50 lestrrat joined