»ö« 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:02 dolmen left 00:04 mish left 00:06 xinming joined 00:09 cosimo joined 00:13 donri left 00:25 xinming left 00:30 Moukeddar joined
Moukeddar hello 00:30
masak is gone 00:31
?
00:44 [particle]1 is now known as [particle]
colomon o/ 00:45
00:45 Helios left, Helios joined 00:48 stkowski left 00:50 leprevost left 00:55 Helios left 00:58 whiteknight left
Moukeddar what's up ? 00:58
01:00 Helios joined 01:05 silent_h left
Util Moukeddar: I am working to set up a big Amazon EC2 instance to reproduce the benchmarks that are today's hot topic. 01:06
Moukeddar wow , good use of the cloud :) 01:07
good luck
that's gonne be a bit expensive :) 01:09
01:13 Moukeddar_ joined 01:14 Moukeddar left 01:19 nymacro joined 01:25 aloha left, alester joined 01:26 leprevost joined 01:29 aloha joined 01:37 woosley joined 01:50 xinming joined 01:51 dwnichols joined 01:57 Moukeddar_ left, leprevost_ joined 01:59 leprevost left
sorear good * #perl6 02:03
niecza: say 2 + 2 02:06
p6eval niecza v4-76-g7bf5ef9: OUTPUT«4␤»
02:06 masonkramer joined
sorear niecza: if(3) { say 'OH NOEZ' } 02:06
p6eval niecza v4-76-g7bf5ef9: OUTPUT«Unhandled exception: System.FormatException: Unknown char: A␤ at System.Double.Parse (System.String s, NumberStyles style, IFormatProvider provider) [0x00000] in <filename unknown>:0 ␤ at System.Double.Parse (System.String s, IFormatProvider provider) [0x00000] in
..<filename unkno…
02:13 leprevost_ left 02:14 leprevost joined
sorear niecza: if(3) { say 'OH NOEZ' } 02:16
p6eval niecza : OUTPUT«Cannot open assembly './run/Niecza.exe': No such file or directory.␤»
colomon > 5 % i 02:21
Int() infix:<%> Complex() is not defined
Not 100% convinced that's an improvement...
02:24 masonkramer left
colomon NaN instead? 02:27
sorear niecza: if(3) { say 'OH NOEZ' } 02:29
p6eval niecza v4-76-g7bf5ef9: OUTPUT«Unhandled exception: System.FormatException: Unknown char: A␤ at System.Double.Parse (System.String s, NumberStyles style, IFormatProvider provider) [0x00000] in <filename unknown>:0 ␤ at System.Double.Parse (System.String s, IFormatProvider provider) [0x00000] in
..<filename unkno…
tylercurtis rakudo: say 1/0 02:41
p6eval rakudo 42dcfd: OUTPUT«Inf␤»
colomon rakudo: say (1/0).perl 02:45
p6eval rakudo 42dcfd: OUTPUT«1/0␤»
02:48 mtk0 left, hudnix left
colomon > 5 % i 02:49
NaN
> i %% 5
Bool::False
02:56 mtk0 joined
sorear what is wrong with niecza I wonder... 03:00
03:00 sivoais joined 03:03 _twitch joined, alester left 03:13 _twitch left 03:15 masonkramer joined 03:16 _twitch joined 03:19 satyavvd joined 03:21 _twitch left 03:23 sftp left, Su-Shee_ joined 03:24 _twitch joined, am0c left, Su-Shee left 03:31 molaf joined 03:37 ymasory left 03:40 masonkramer left 03:51 _twitch left 04:04 aloha left 04:05 aloha joined 04:08 molaf left 04:22 shadowmaster left 04:24 kaare_ joined 04:33 wooden joined 04:37 wamba joined 04:47 am0c joined, wamba left
cotto what's the right address to send an announcement about the Parrot Developer Summit to? 05:21
05:21 woosley1 joined 05:22 woosley left 05:24 birdwindupbird joined 05:30 woosley1 left 05:54 woosley joined 05:57 wtw joined 06:05 noganex_ joined 06:07 noganex left 06:12 alester joined 06:18 kaare_ left 06:22 SHODAN joined, alester left 06:35 wamba joined 06:36 _twitch joined 06:42 wamba left 06:47 noganex joined, _twitch left 06:49 Su-Shee_ is now known as Su-Shee 06:50 noganex_ left 06:58 SHODAN left 07:05 justatheory left
moritz nqp: say(1) 07:08
p6eval nqp: OUTPUT«1␤»
moritz cotto: [email@hidden.address] 07:09
nqp: sub test_line($line, $todo) { my @chunks := match($line, /\S+/, :global) }; test_line('abc def', 1)
p6eval nqp: ( no output )
07:12 agentzh joined 07:14 wooden left
cotto moritz, thanks 07:15
07:16 wooden joined, wooden left, wooden joined 07:35 mj41 joined 07:37 wooden left 07:39 PZt left
moritz niecza: say 'bazaar' ~~ /a*:a/ 07:39
p6eval niecza v4-76-g7bf5ef9: OUTPUT«␤»
moritz std: /a*:a/ 07:40
p6eval std 9f27365: OUTPUT«ok 00:01 113m␤»
moritz nqp has a (failing) test that assumes that would throw an exception somehow
I think that test is borked
07:42 spinclad left 07:43 wooden joined, wooden left, wooden joined
sorear niecza: say +Any 07:48
p6eval niecza v4-76-g7bf5ef9: OUTPUT«Unhandled exception: Unable to resolve method Numeric in class Any␤ at line 0 (ExitRunloop @ 0)␤ at /tmp/dcaBRaqVEw line 1 (MAIN mainline @ 1)␤ at /home/p6eval/niecza/lib/CORE.setting line 1311 (CORE C552_ANON @ 2)␤ at /home/p6eval/niecza/lib/CORE.setting line
..1312 (CORE modul…
sorear oh, I see... 07:49
07:49 Su-Shee_ joined, spinclad joined
moritz nqp: my $r := 'abc' ~~ /(.)(.)<alpha>/; say($r.dump_str); 07:50
p6eval nqp: OUTPUT«Method 'dump_str' not found for invocant of class 'SixModelObject'␤current instr.: '_block11' pc 89 ((file unknown):34725662)␤»
07:51 masak joined
masak karma hakank 07:51
aloha hakank has karma of 1.
masak hakank++
07:51 masak left 07:52 am0c left, Su-Shee left 07:53 Su-Shee_ is now known as Su-Shee
tadzik nothing like suprise masak in the morning. Good morning #perl6 07:53
moritz rakudo: use Test; todo('foo', 1); ok(0, "bar") 07:59
p6eval rakudo 42dcfd: OUTPUT«not ok 1 - bar# TODO foo␤»
08:11 awwaiid left 08:12 awwaiid joined
dalek p: 625f17d | moritz++ | t/p6regex/rx_backtrack:
[t] fix a simple backtrack test
08:13
p: 4b653ba | moritz++ | src/core/testing.pm:
implement todo()
p: 8fc008a | moritz++ | t/p6regex/01-regex.t:
remove outdated comment from 01-regex.t
moritz jnthn: feel pinged
08:16 cosimo left
tadzik moritz: I think that t/01-regex.t also needs fixing pod: when I did, it crashed on .loadlib rather than inside the pod 08:24
oh wait, whey shouldn't be runned with nqp
moritz aye :-)
tadzik t/p6regex/01-regex.t .. open3: exec of ./parrot t/p6regex/01-regex.t failed at /usr/lib64/perl5/vendor_perl/5.12.3/TAP/Parser/Iterator/Process.pm line 168 08:25
not really expected, is it?
moritz it's know to be broken atm
tadzik wait, I'm stupid, nvm :)
moritz which is why I'm rewriting it in nqp 08:26
tadzik great!
++moritz
dalek p: de3220e | moritz++ | t/p6regex/01-regex.t (2 files):
[t/p6regex] disable broken PIR script for now
08:27
p: 48d0448 | moritz++ | t/p6regex/01-regex.t:
[t/p6eregex] add first shot of regex test runner
moritz nqp: say(:16("a")) 08:28
p6eval nqp: OUTPUT«Confused at line 1, near "say(:16(\"a"␤current instr.: 'nqp;HLL;Grammar;panic' pc 26677 (src/stage2/gen/NQPHLL.pir:7099)␤»
moritz nqp: my %expansions := (a => 1, b => 2); say(%expansions); 08:31
p6eval nqp: OUTPUT«2␤»
moritz nqp: my %expansions := (a => 1, b => 2); say(%expansions<a>);
p6eval nqp: OUTPUT«1␤» 08:32
moritz nqp: my %expansions := (a => 1, b => 2); say(%expansions<b>);
p6eval nqp: OUTPUT«1␤»
moritz nqp: my %expansions := (a => 1, b => 2); say(%expansions<c>);
p6eval nqp: OUTPUT«1␤»
dalek p: b1d4c13 | moritz++ | t/p6regex/01-regex.t:
[t/p6regex] start to expand backslash escapes
08:37
moritz nqp: say(HLL::Actions::string_to_int("a0", 16)) 08:42
p6eval nqp: OUTPUT«Null PMC access in invoke()␤current instr.: '_block11' pc 48 ((file unknown):50557241)␤»
moritz nqp: use HLL::Actions; say(HLL::Actions::string_to_int("a0", 16)) 08:43
p6eval nqp: OUTPUT«"load_bytecode" couldn't find file 'HLL/Actions.pbc'␤current instr.: 'nqp;ModuleLoader;_block132' pc 1727 (src/stage2/gen/module_loader.pir:594)␤»
moritz nqp: use HLL; say(HLL::Actions::string_to_int("a0", 16))
p6eval nqp: OUTPUT«Cannot fetch object from non-existant serialization context 1304457627.79465␤current instr.: '' pc 1269 (src/stage2/gen/HLL.pir:274)␤»
moritz nqp: use NQPHLL; say(HLL::Actions::string_to_int("a0", 16)) 08:45
p6eval nqp: OUTPUT«160␤»
moritz hooray for code reuse 08:48
dalek p: 3d43ac9 | moritz++ | t/p6regex/01-regex.t:
[t/p6regex] also expand \xBEEF escapes
08:49
08:52 SHODAN joined 09:03 jdhore left 09:10 birdwindupbird left, birdwindupbird joined
dalek p: 9a5e02f | moritz++ | t/p6regex/ (3 files):
[t/p6regex] update error message wording
09:28
moritz nqp: '(123' ~~ /'(' ~ ')' \d+/; say("alive"); 09:29
p6eval nqp: OUTPUT«Can only use get_who on a SixModelObject␤current instr.: 'nqp;Regex;Cursor;FAILGOAL' pc 3792 (src/Regex/Cursor.pir:216)␤»
moritz jnthn: see above
nqp: my $re = "'(' ~ ')' \d+"; '(123' ~~ /<$re>/ 09:31
p6eval nqp: OUTPUT«Assignment ("=") not supported in NQP, use ":=" instead at line 1, near " \"'(' ~ ')"␤current instr.: 'nqp;HLL;Grammar;panic' pc 26677 (src/stage2/gen/NQPHLL.pir:7099)␤»
moritz nqp: my $re := "'(' ~ ')' \d+"; '(123' ~~ /<$re>/
p6eval nqp: OUTPUT«Unrecognized backslash sequence: '\d' at line 1, near "+\"; '(123'"␤current instr.: 'nqp;HLL;Grammar;panic' pc 26677 (src/stage2/gen/NQPHLL.pir:7099)␤»
moritz nqp: my $re := "'(' ~ ')' \\d+"; '(123' ~~ /<$re>/
p6eval nqp: OUTPUT«Can only use get_who on a SixModelObject␤current instr.: 'nqp;Regex;Cursor;FAILGOAL' pc 3792 (src/Regex/Cursor.pir:216)␤»
moritz in the test harness, that causes an infinite loop
might be related to the try { } block around it 09:32
jnthn: and the test script terminates with 'Null PMC access in can()' at the end of the run
dalek p: 221501e | moritz++ | t/p6regex/01-regex.t:
[t/p6regex] skip looping tests for now; emit late plan
09:35
09:38 birdwindupbird left 09:48 am0c joined, dakkar joined 09:49 demetro left 09:50 demetro joined
jnthn moritz: Looks like an error reporting breakage in FAILGOAL. 09:53
dalek p: f480bab | moritz++ | build/Makefile.in:
[build] run p6regex tests with nqp
09:56
09:57 _twitch joined
dalek p: 1226591 | moritz++ | build/Makefile.in:
[build] use the current nqp for testing, not the installed one
10:05
10:08 woosley left 10:09 demetro left 10:10 demetro joined
jnthn moritz: Argh. It's broken because it tries to use HLL::Compiler.lineof during error reporting, which of course may well not have been loaded. 10:19
10:19 pernatiy left, icwiener joined
TiMBuS ubuntu is telling me i need to update 'Larry Wall's Practical Extraction and Report Language' 10:19
jnthn nqp: my $re := "'(' ~ ')' \\d+"; '(123' ~~ /<$re>/use NQPHLL; 10:20
p6eval nqp: OUTPUT«Confused at line 1, near "'(123' ~~ "␤current instr.: 'nqp;HLL;Grammar;panic' pc 26677 (src/stage2/gen/NQPHLL.pir:7099)␤»
TiMBuS why do i need to do that? he can do that :v
jnthn gah
nqp: use NQPHLL; my $re := "'(' ~ ')' \\d+"; '(123' ~~ /<$re>/
p6eval nqp: OUTPUT«Unable to parse _block77, couldn't find final ')' at line 1␤current instr.: 'nqp;Regex;Cursor;FAILGOAL' pc 3863 (src/Regex/Cursor.pir:239)␤»
10:28 am0c^ joined 10:35 mtk0 left
moritz the test file even usees NQPHLL 10:35
jnthn Oh. 10:40
moritz: Please file an nqp ticket for it.
(In GitHub issues)
moritz jnthn: will do, after nom
10:41 donri joined 10:43 mtk0 joined 10:46 _twitch left
jnthn moritz: thanks 10:53
10:56 sjn left 10:57 sjn joined
dalek kudo/nom: 4cd465c | jnthn++ | / (3 files):
Add a gen_nqp.pl that will obtain and install NQP with the generated Parrot. Also a --gen-nqp flag. We'll probably want to shuffle some of this around a bit at some point; I'll leave that to others with more clue how they want this bit to look. :-)
11:09
11:11 leprevost left
dalek p: 6b448c9 | moritz++ | build/Makefile.in:
[build] fix previous commit. Where did I have my mind?
11:14
11:15 woosley joined 11:16 miau joined 11:24 pernatiy joined 11:29 am0c^ left 11:35 uniejo_ joined, barika left 11:37 barika joined 11:40 orafu left
moritz jnthn: please test my latest rakudo/nom commit under windows, I'm always unsure if I broke everything :-) 11:44
dalek kudo/nom: a5124cb | moritz++ | build/gen_nqp.pl:
[build] avoid code duplication
11:46
11:49 uniejo_ left, jaldhar left, jaldhar joined 11:50 satyavvd left 11:52 noganex_ joined 11:54 noganex left, agentzh left 11:56 Patterner left, SHODAN left 11:57 Psyche^ joined, Psyche^ is now known as Patterner
miau Hello. I installed Parrot-3.3.0 and rakudo on Windows XP. When I execute perl6 at the drive where perl6 is not installed, I have an error message: "PARROT VM: Could not load bytecodeCould not load oplib `perl6_ops'". Is it a known problem? 12:01
moritz miau: how did you install rakudo? 12:03
miau moritz: with setup-parrot-3.3.0.exe and setup-parrot-3.3.0-rakudo-40.exe
moritz I've heard about such errors now and then; in the end I think only the maintainers of the installers can fix that 12:04
miau Hmm, who maintains the installers? 12:09
moritz dunno. Where did you get them from? sourceforge?
miau from sourceforge.net 12:10
moritz miau: I guess the project there has a bug tracker... if yes, try to use it to send your report 12:11
12:14 Holy_Cow joined
miau moritz: Although the project has no bug tracker, there is maintainer's information. I'll report to him. Thank you for your information. 12:17
12:17 Holy_Cow left
takadonet morning all 12:18
moritz miau: thanks for taking care of that
12:22 MayDaniel joined 12:23 cotto_work left 12:25 sftp joined, orafu joined 12:30 Patterner left 12:32 Psyche^ joined, Psyche^ is now known as Patterner 12:34 drbean joined 12:38 drbean left, jaldhar left 12:39 jaldhar joined
dalek kudo/nom: 48cf054 | jnthn++ | src/Perl6/Grammar.pm:
Few small twiddles to Perl6::Grammar to make new NQP happy with it. (Missing use statement, accidental nested class, and self handling, for the most part. First two are actually making this correcter Perl 6. :-)
12:40
kudo/nom: 7d2a1cf | jnthn++ | src/Perl6/Actions.pm:
Twiddle Actions to work with new NQP (missing use statement, accidental nested class).
kudo/nom: c5466d6 | jnthn++ | src/perl6.p6:
Stub in a perl6.p6, which is what gets built to perl6.exe.
kudo/nom: 7bf87d9 | jnthn++ | Perl6/README:
Perl6 output directory where Perl6::Grammar, Perl6::Actions etc will go.
kudo/nom: 0d766b8 | jnthn++ | build/Makefile.in:
Gut the Makefile. Will add things back into it as we progress.
kudo/nom: 101c7ed | jnthn++ | .gitignore:
Update .gitignore.
12:40 MayDaniel left
jnthn OK, from how on rakudo/nom is construction zone. :) 12:40
*now
colomon \o/ 12:41
So.... any objections to 5 % i == NaN?
jnthn Oh my... :) 12:42
colomon I'm torn whether it should be that or a Fail...
jnthn We feed in an Int and a Complex and get a Num out :)
moritz fail() pleae
jnthn fail() makes sense to me also
moritz: Thanks for tweaking gen_nqp :) 12:43
12:43 am0c left
moritz jnthn: np 12:43
colomon Is there ever a case where NaN is an appropriate answer, given the availability of fail?
(I mean, for any math function.)
moritz guesses NaN should be a fail()ure, not a Num 12:44
whoa, rakudo even builds on the nom branch 12:45
colomon moritz: is it still using the other nqp there? 12:46
moritz colomon: dunno
it parsefails 'say 3', and ./perl6 -e '3' says "Unable to obtain PAST from SixModelObject"
but that's what you expect from such a branch :-)
colomon: nope, uses the new nqp 12:47
ah 12:49
the compiler uses
$I0 = isa ast, ['PAST';'Node'] 12:50
but gets a SixModelObject 12:51
jnthn moritz: Nothing will work :)
moritz jnthn: I know, it's just fun to see in what way it breaks :-)
jnthn :)
moritz: It compiles grammar and actions with new nqp now, and perl6.p6 also.
colomon fun? it's downright exciting! 12:52
jnthn Whether they actually run and doing anything useful is another matter though :)
colomon > 5 % i 12:58
Int() infix:<%> Complex() is not defined
better?
moritz colomon: that reads a bit bumpy 12:59
how about "complex modolus (Int % Complex) not defined"?
12:59 skangas left
colomon rakudo: say Int.WHAT 12:59
12:59 skangas joined
p6eval rakudo 42dcfd: OUTPUT«Int()␤» 13:00
moritz rakudo: say Int.WHAT.perl
p6eval rakudo 42dcfd: OUTPUT«Int␤»
colomon danke
moritz: errr... complex modulus isn't an appropriate part of the message, it's a generic message 13:01
"modolus (Int % Complex) not defined"?
moritz better
colomon only with correct speeling?
moritz colomon: what other cases (not involving Complex) exist?
13:01 miau left
colomon I'm not 100% sure. But this is defined on Numeric, not Complex 13:02
certainly users might define other cases that don't work
moritz
.oO( un-Real modulo not defined )
right
13:04 Tedd1^ joined, plainhao joined 13:07 Tedd1 left
colomon > 5 % i 13:10
modulus (Int % Complex) not defined
13:10 am0c joined 13:12 spq joined
colomon spectesting... 13:12
jnthn
.oO( is Unreal Tournament a complex game? )
13:13
13:17 bluescreen10 joined
moritz nqp: my $x; :$x; 13:20
p6eval nqp: OUTPUT«Confused at line 1, near ":$x;"␤current instr.: 'nqp;HLL;Grammar;panic' pc 26677 (src/stage2/gen/NQPHLL.pir:7099)␤»
jnthn Don't think nqp knows those short colonpair forms 13:21
moritz that's what I checked :-) 13:22
pmichaud good morning, #perl6 13:28
moritz good morning pmichaud
takadonet pmichaud: morning
13:28 orafu left, masonkramer joined
dalek p: 026eb76 | moritz++ | src/HLL/Compiler.pm:
start rewriting HLL::Compiler.parse in nqp
13:29
p: d63b1e1 | moritz++ | src/HLL/Compiler.pm:
finish rewriting HLL::Compiler.parse in nqp
p: 5359d2b | moritz++ | src/stage0/ (6 files):
update bootstrap
jnthn pmichaud: morning o/
13:29 pernatiy left 13:30 pernatiy joined 13:31 hudnix joined 13:33 masonkramer left
dalek p: a954a63 | jonathan++ | src/ModuleLoader.pm:
Make global merging slightly less dumb.
13:36
p: 4abbac4 | jonathan++ | src/stage0/ (6 files):
Update bootstrap.
kudo/nom: 5389a40 | jnthn++ | src/perl6.p6:
Uncomment use of Perl6::Actions, now global merging is improved a bit.
13:49
kudo/nom: 63c9801 | jnthn++ | src/s1_setting.pir:
Remove now-unused file; we won't build two stages of compiler any more.
13:58 ymasory joined 14:02 am0c left 14:04 Mowah joined
tadzik hello zebras 14:05
oh, good things happening :)
moritz \o 14:08
jnthn o/ tadzik 14:11
14:14 anastropher joined 14:21 Su-Shee_ joined
moritz the remaining PIR code in HLL::Compiler is mostly scary 14:22
jnthn PIRs at it timidly 14:24
14:24 Su-Shee left
moritz the code in command_line conditionally sets a push_eh, or maybe not 14:25
how do you emulate that in Perl 6? put the contents into a closure, and call it inside or outside a try { } block?
dalek kudo/nom: d58f6a3 | jnthn++ | build/gen_ (2 files):
Toss a couple of build scripts we'll not need (or at least not in this form).
14:26
kudo/nom: a04f6bf | jnthn++ | build/ (2 files):
Simplify gen_core_pm.pl, then just rename it to indicate it's a generic way to merge multiple .pm files into one.
kudo/nom: 43d946a | jnthn++ | src/Perl6/Metamodel/Naming.pm:
Naming fix.
kudo/nom: 45e311e | jnthn++ | src/Perl6/Metamodel/PackageHOW.pm:
Add a PackageHOW.
kudo/nom: 680368a | jnthn++ | src/Perl6/Metamodel/ModuleHOW.pm:
Another naming fix.
kudo/nom: 6a271b4 | jnthn++ | build/Makefile.in:
Start building up Perl6::Metamodel.
tadzik hey, I haven't build the previous one yet! :) 14:27
14:27 Su-Shee_ is now known as Su-Shee
tadzik jnthn: things are expected to be broken, si? 14:28
moritz tadzik: the previous one didn't allow you to do very much
tadzik well, make test ended in NPA in find_method('new') 14:29
I suppose it might be due to a lack of settings, no?
moritz due to the lack of current general sanity :-)
tadzik I'm excited anyway :)
jnthn tadzik: Yes, very broken. :) 14:32
moritz it can still parse simple expressions
jnthn Oh, nice :)
moritz and funciton calls
but no listops
jnthn Right, the whole notion of symbol table is changing, and listops depend on that. 14:33
14:33 ymasory left
jnthn My plan at the moment is to get some basic meta-objects in place, then build an extremely minimal setting, then work on symbol table and package creation refactors. 14:34
14:35 slavik left, pyrimidine joined
dalek kudo: 6ae3c92 | colomon++ | src/core/Numeric.pm:
Remove trailing blank lines.
14:37
colomon git fail on the commit message there, sigh.
14:39 slavik joined, slavik left, slavik joined 14:40 jaldhar left 14:42 justatheory joined 14:49 hercynium joined 14:50 nymacro left
dalek kudo/nom: 6d142ac | jnthn++ | / (6 files):
Correct various compile errors in sketched out meta-objects and include them in Perl6::Metamodel.
14:56
15:00 molaf joined 15:01 wtw left 15:02 mkramer1 joined
dalek kudo/nom: 551fc57 | jnthn++ | / (3 files):
Sketch out very initial bootstrappy bit in CORE.setting and add building it to the makefile. Doesn't actually build yet.
15:07
15:18 wamba joined 15:21 wamba left, wamba joined 15:22 mkramer1 left, mkramer joined 15:26 wamba left, am0c joined 15:27 wamba joined, asrocha joined 15:28 SHODAN joined 15:35 gbacon joined
sorear good * #perl6 15:39
moritz \o sorear 15:40
15:42 miso2217 left
colomon o/ 15:42
jnthn ohhai
tadzik o|
15:44 gbacon left
dalek p: bbd4b88 | jonathan++ | / (4 files):
Factor NQP-specific bits out of HLL::SerializationContextBuilder so that we can use it also in Rakudo.
15:45
p: 120ff08 | jonathan++ | src/stage0/ (6 files):
Update bootstrap.
15:45 risou joined
jnthn walk & 15:46
15:49 gbacon joined 15:51 jimmy1980 joined 15:56 envi joined 15:57 kaare_ joined 16:02 envi left, gbacon left 16:03 Moukeddar joined 16:04 woosley left, jimmy1980 left, anastropher left 16:06 ymasory joined 16:07 envi joined 16:08 SHODAN left, jimmy1980 joined 16:11 Holy_Cow joined, Holy_Cow left 16:12 alester joined 16:14 mkramer left 16:15 am0c left, alester left 16:17 orafu joined 16:23 PZt joined
jnthn back 16:25
16:27 mkramer joined
tadzik . o O ( walk & back ) 16:29
16:33 jimmy1980 left 16:39 mberends left, Holy_Cow joined, jimmy1980 joined 16:51 Lorn left 16:58 birdwindupbird joined 17:00 mj41 left 17:06 cdarroch joined, cdarroch left, cdarroch joined 17:12 Moukeddar left 17:14 asrocha left, wamba left 17:21 jon8 joined 17:32 mj41 joined, cotto_work joined 17:33 Chillance joined, pernatiy left
dalek kudo/nom: 85da19e | jnthn++ | src/Perl6/Compiler/ (3 files):
Remove some files that were part of old way of doing classes/packages.
17:43
kudo/nom: a76dfc1 | jnthn++ | / (3 files):
Add Perl6::SymbolTable, which will manage the symbol table and compile time meta-objects.
kudo/nom: c9012bf | jnthn++ | src/Perl6/Grammar.pm:
Toss a bunch of the existing symbol table handling, which will be replaced.
kudo/nom: fcb441b | jnthn++ | src/Perl6/SymbolTable.pm:
Start to fill out some symbol table management bits.
kudo/nom: e30b924 | jnthn++ | src/Perl6/Grammar.pm:
Some initial symbol management setup at the start of the compilation unit.
tadzik May the 4th be with you! 17:51
17:53 wamba joined
jnthn <groan> 17:54
tadzik++
17:55 birdwindupbird left, alester joined, alester left
tadzik I almost missed it! 17:56
17:56 alester joined 17:57 jdhore joined 18:01 MayDaniel joined
jnthn Then you'd have had to wait a whole year to make it again! 18:03
tadzik Last year I had to!
18:09 fhelmberger left
moritz rakudo: role A { method c() { ... } }; role B { method c() { say "B::C" } }; class S does A does B { }; S.new.c 18:20
p6eval rakudo 6ae3c9: OUTPUT«===SORRY!===␤Method 'c' collides and a resolution must be provided by the class␤»
moritz jnthn: should method stubs conflict with non-stubs?
jnthn no 18:21
that should be a requirement
e.g. if S didn't end up with a c then it'd complain
18:21 Vlavv_ left
jnthn Will be re-doing roles in nom anyway, so can try and deal with it then. 18:22
18:34 Vlavv_ joined 18:37 stkowski joined 18:39 fglock joined
fglock rakudo: if 1 { 123;; } 18:39
p6eval rakudo 6ae3c9: ( no output ) 18:40
18:40 Vlavv_ left
fglock rakudo: say do if 1 { 123;; } 18:40
p6eval rakudo 6ae3c9: OUTPUT«123␤»
fglock I wonder if the last statement is empty, the return value should be undef? 18:41
moritz there is no undef 18:46
fglock rakudo: say do if 1 { ;; } 18:47
p6eval rakudo 6ae3c9: OUTPUT«␤»
moritz if at all, Nil
jnthn Could conceivably be Nil. 18:48
iirc, Rakudo just strips empty statements out at the moment.
fglock I wrote this by mistake in Perlito, and I've got an error - but I don't know what the correct behaviour would be 18:50
(123 or Nil)
moritz niecza: say do if 1 { 123;; }
p6eval niecza v4-76-g7bf5ef9: OUTPUT«␤»
fglock hmm
moritz niecza: say (do if 1 { 123;; }).WHAT
p6eval niecza v4-76-g7bf5ef9: OUTPUT«␤»
moritz niecza: say (do if 1 { 123;; }).perl
p6eval niecza v4-76-g7bf5ef9: OUTPUT«␤» 18:51
fglock :P
sorear hrm
niecza: say (do if 1 { 123;; }).typename
p6eval niecza v4-76-g7bf5ef9: OUTPUT«Parcel␤»
sorear so I gess Nil
I thought niecza stripped out empty statements, fiwiw 18:52
18:52 Helios left
sorear niecza: say (do if 1 { 123; }).typename 18:52
p6eval niecza v4-76-g7bf5ef9: OUTPUT«Num␤»
18:53 Helios joined, Vlavv_ joined 18:58 MayDaniel left 19:03 Vlavv_ left
colomon is watching fan-made lightsaber battles on youttube.com 19:04
tadzik (:
19:11 Su-Shee left, uasi joined 19:15 Su-Shee joined 19:16 Vlavv_ joined 19:20 ymasory left 19:21 mkramer left, masak joined
masak #perl6! \o/ 19:21
jnthn masak! \o/ 19:22
masak lol hi from a train!
fglock masak: hi!
jnthn masak: look out...tunnel! 19:23
masak you'll know a real tunnel is coming when I drop out from IRC.
in other news, I suggest we abolish all nation borders. they're extremely silly. 19:24
jnthn :P
+1
;)
Or just visas :)
tadzik visas--
masak visas are nation borders' prophet, reifying the silliness in unnecessary quantities.
19:27 pernatiy joined 19:29 masak` joined
masak` that... might've been a tunnel. 19:30
I made gcd() return Int yesterday. been thinking it should be fail("Cannot take gcd of nothing") instead.
19:32 starcoder left 19:33 starcoder joined, masak left, masak`` joined
masak`` this is more than enough backticks, thank you very much. 19:34
19:34 spq left
dalek ecs: a29e387 | moritz++ | S32-setting-library/Exception.pod:
[S32/Exceptions] move %.payload into a separate class, based on feedback by sorear++
19:35
19:36 masak` left 19:39 donri left, donri joined 19:40 masak`` is now known as masak, kaare_ left
jnthn
.oO( he got ticked off with 'em... )
19:41
19:43 stkowski left
sorear hello masak 19:46
19:46 masak left 19:47 masak joined
masak hi sorear. 19:47
I think some people here on-channel might appreciate the approach to language and linguistics in www.jsoftware.com/help/user/contents.htm
19:49 spq joined 19:51 Holy_Cow left 19:52 hercynium left 19:53 hercynium joined
masak rakudo: sub look-and-say { (.chars ~ .substr(0, 1) for $^n.comb: /(.)$0*/).join }; .say for (1, { .&look-and-say } ... *)[^10] 19:57
p6eval rakudo 6ae3c9: OUTPUT«1␤11␤21␤1211␤111221␤312211␤13112221␤1113213211␤31131211131221␤13211311123113112211␤»
masak \o/
19:58 sftp left 19:59 sftp joined 20:00 wamba left
masak rakudo: sub look-and-say { (.chars ~ .comb[0] for $^n.comb: /(.)$0*/).join }; .say for (1, { .&look-and-say } ... *)[^10] 20:03
p6eval rakudo 6ae3c9: OUTPUT«1␤11␤21␤1211␤111221␤312211␤13112221␤1113213211␤31131211131221␤13211311123113112211␤»
masak maybe we should start recommending $s.comb[@slice] to people who clamor for $s[@slice] . 20:04
20:05 hercynium left 20:06 hercynium joined, hercynium left, hercynium joined
sorear masak: nooooo 20:06
masak ;)
jnthn Efficient. ;)
20:06 Mowah left
sorear Larry said to me once that Str had to support O(1) random access 20:07
when I was grilling him on NFG issues
masak of course, it doesn't work if you want rvalue behavior.
20:08 y3llow_ joined, pothos_ joined
jnthn $foo.substr(0, each(@slice)) gives you a junction of all of the things you want to replace 20:09
And substr gives back something that's an lvalue, iirc
20:09 pothos left
jnthn Maybe something can be fashioned out of that :) 20:10
20:10 pothos_ is now known as pothos
sorear You don't think lvalue substr is insane? 20:10
20:10 y3llow left, y3llow_ is now known as y3llow
jnthn sorear: I think it's int he spec, though I guess that's a different issue ;) 20:10
PerlJam sorear: why do you think lvalue substr is insane? 20:11
masak I don't mind lvalue substr, but I don't really believe implementations will provide it. 20:12
Juerd lvalue substr is great. I want lvalue regex matches too.
PerlJam Juerd++
Juerd substr(...) =~ s/// is fantastic
masak ooh! 20:13
Juerd /.../g =~ s/// would be insanely nice.
masak now *that* I can get behind!
jnthn Darn, there goes my hope of not needing to implement it. :P
Juerd (Although Perl 6 regexes are probably powerful enough by themselves to make /.../g =~ s/// seem silly.)
sorear I'll add lvalue substr to Niecza later todya 20:14
Juerd itym toldya ;) 20:15
20:16 hercynium left
sorear Juerd: the problm with /.../g is like this 20:16
my $foo = "abba"; ($foo ~~ m:g/a/) »~~« s/a/cc/;
first, m:g/a/ makes slices [0] and [3] 20:17
after the first replacement, $foo is "ccbba"
does the second replacement produce "ccbcca"?
since [3] doesn't mean what it used to... 20:18
Juerd That's not a very open minded approach to offsets
I'm thinking of multi-user text editors that did somehow manage to solve this problem. Etherpad, subetha, Google Docs.. 20:19
sorear multi-user text editors have very heavyweight marks
Juerd Instead of the discoupled number you'd need to think of the offset as bound to the string. Whenever the string changes, the offset might have to change too. It's no longer just a number. 20:20
sorear the variable has to have backreferences to the marks if it's going to update them
Juerd I'm sure that having a way to alias a substring even if it's moved within the string, is useful for many things.
sorear that means creating weak references in &substr
Juerd Same goes for array slices, by the way.
sorear which is... unacceptable
etherpad is probably looking at a half dozen cursors 20:21
it's entirely reasoable for a Perl 6 program to call substr a million times
Juerd That's just one way of implementing it...
20:21 impious joined
sorear if you have a better idea, by all means share. 20:21
PerlJam sorear: what are [0] and [3] from your example before? 20:22
sorear PerlJam: slice indexes
Juerd I can imagine substrings being dynamically created properties of the string objects, to which you can refer.
20:22 fglock left
Juerd The original string can't be fully destroyed until all of its substrings are no longer referenced 20:23
PerlJam sorear: what sort of indexes exactly? indexes into what? what units are these indexes?
Juerd You could clean up unused portions, though
PerlJam: I'm assuming character offsets 20:24
PerlJam Don't we have the same "problem" you just describe without lvalue substr because of unicode and the ability to switch between byteoffsets and codepoints and such at will ?
Juerd I think you do.
sorear no
PerlJam no? 20:25
Juerd Unless you want to keep counting from 0 each time you use an offset...
In some cases keeping a list of offsets and updating it will be faster, in some cases recalculating them will be faster. The threshold is probably a few MB.
But multi-MB strings aren't so rare anymore. 20:26
masak cf genomes.
or Java source code :P
Juerd Java source code is best destroyed line by line.
masak yes, but like water, it doesn't compress well.
sorear Juerd: No Perl 6 implementor has the ability to hook into the garbage collector like that
Juerd Begin at the end for performance reasons. 20:27
sorear: ...yet :)
masak "maybe the things that haven't landed by now really were pipe dreams" -- quoted because you didn't hear me say that. 20:28
Juerd afk
sorear If we're willing to give up the ability to process 20MB log files with Perl, a lot of the shiny stuff becomes reasonable 20:29
masak that sounds like a trade-off we don't want to make either way.
Perl 6 is all about the shiny stuff *and* the 20MB log files. 20:30
20:32 miso2217_ left 20:34 orafu left
flussence
.oO( big strings should get special treatment internally, after all big numbers do... )
20:34
20:35 orafu joined 20:36 miso2217 joined
PerlJam flussence: it's not even big strings that are a problem IMHO. what happens when you start with "abba" and substitute a multi-byte character for each "a"? IS the first step to recognize this and transform "abba" into a packed array of characters each as wide as the one you're substituting? Or do you do something smarter? :) 20:38
20:39 impious left 20:40 cdarroch left 20:42 jevin left 20:43 masak left, masak joined 20:45 jevin joined 20:48 Lorn joined 20:49 miso2217 left
flussence hm, thinking about it, making fast unicode strings seems to have most of the obstacles making a fast filesystem does. And given how many people are still trying to do *that* I should probably stop pretending I have anything useful to add :) 20:50
20:50 spq left, donri left 20:51 ymasory joined, masak left 20:52 masak joined 20:53 miso2217 joined
moritz there's a reason some libraries implement strings as trees 20:56
20:57 starcoder is now known as scdr 20:58 awoodland joined, donri joined 21:00 MayDaniel joined 21:06 plainhao left
masak moritz: yes, but does it make sense as the default Str implementation in Perl 6? 21:07
21:07 uasi left
masak it's not a rethorical question; I truly would like to know. 21:08
moritz more sense for what?
sorear ask not the default string implementation; ask the features we expect of it
masak sorear++
sorear in other words, what primitive methods do we need in the Str role? 21:09
masak I guess that's the question that needs to be answered in depth before we move on to implementation, yeah.
sorear also, what functions do we need in Scalar?
Str is immutable, anything that tracks "changes" in a string would need to go in Scalar
masak offhand, I think Str is a bit like Array; people will have conflicting, overlapping demands on it. a reasonable compromise between common uses will need to be found. 21:10
21:11 Helios left
dalek ecza: ac88a90 | sorear++ | Makefile:
Use Makefile to control building of compiler modules

This will 1. make builds a bit slower 2. make them use less memory 3. make -j work, most of the time
21:11
moritz found the parrot switch to immutable strings quite interesting 21:12
immutable, non-tree strings that is 21:13
things generally got a bit faster
except that algorithms using lots of concatenations needed to be adapted to the new StringBuilder
21:13 scdr is now known as starcoder
sorear Is there going to be a spec StringBuilder, I wonder? 21:13
moritz because the old approach of just appending short strings to the one ever-growing string
got much slower 21:14
sorear: don't think so
sorear TimToady seems to think that Str will use a rope representation in limiting cases
moritz sorear: join() uses it under the hood
(in rakudo and parrot at least)
sorear which is only a constalogarithmic factor slower than StringBuilder
21:14 Helios joined
moritz or maybe Cat can be abused as a stringbuilder? 21:15
sorear pushing strings onto an @array then calling @array.join at the end is almost as good, yeah
I should probably change niecza's join to not be O(n^2) :)
moritz :-) 21:16
sorear niecza: join("", ("ab" xx 10000)).substr(101,1).say
p6eval niecza v4-76-g7bf5ef9: OUTPUT«b␤»
sorear niecza: join("", ("ab" xx 100000)).substr(101,1).say
p6eval niecza v4-76-g7bf5ef9: OUTPUT«(timeout)»
sorear niecza: &infix:<~>(|["ab" xx 100000]).substr(101,1).say # this, however, DOES use stringbuilders 21:17
p6eval niecza v4-76-g7bf5ef9: OUTPUT«b␤»
21:20 icwiener left 21:24 masak left, dakkar left 21:29 molaf left 21:36 silug left 21:37 justatheory left 21:47 mj41 left 21:54 jaldhar joined 21:55 bluescreen10 left 21:58 whiteknight joined 22:33 MayDaniel left 22:35 alester left 22:37 alester joined 22:59 alester left, ymasory left 23:02 [Coke] left 23:06 [Coke] joined 23:09 justatheory joined 23:10 [Coke] left 23:14 [Coke] joined 23:16 noganex_ left 23:17 noganex joined, [Coke] left 23:19 jimmy1980 left 23:21 cheako joined
cheako Hello, I've been banned from #perl for the last year and I was wondering if I can get some help from ne1 who uses CGI::Session? 23:22
23:23 [Coke] joined
cheako It's always returning undef on me. 23:23
Tene cheako: I'm not aware of any ports of CGI::Session to Perl 6; sorry. 23:25
dalek kudo/nom: 9d136fa | jnthn++ | src/Perl6/ (3 files):
Eliminate @BLOCK in actions in favor of using Perl6::SymbolTable. Before we've often ended up splitting the symbol table stuff between grammar and actions, meaning that just getting a parse was easily broken. Now that stuff will mostly be handled in Perl6::SymbolTable.
23:32 justatheory_ joined 23:33 justatheory left, justatheory_ is now known as justatheory 23:34 rlb3_ joined 23:35 cognominal left
dalek kudo/nom: 4ba60a8 | jnthn++ | NOMMAP.markdown:
Update nom branch roadmap; some bits are done, some plans are changed.
23:36
jnthn sleep &
23:36 rlb3_ is now known as rlb3 23:44 awwaiid left, envi left 23:45 envi joined 23:46 ymasory joined 23:59 Chillance left