»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo:, alpha:, pugs:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by lichtkind on 5 March 2010.
bkeeler jnthn: TimToady: Do you think there would be any problem adding an optional named parameter to eval to specify the rule to start at, in case TOP is not desired? 00:05
lue wants to see his computer compile rakudo without needing to cause a complete system crash first.
00:05 snarkyboojum left
sorear jnthn: Is there any particular reason Blizkost is not MULTIPLICITY-clean? 00:05
jnthn Nope 00:07
00:07 snarkyboojum joined
jnthn Well, there is in the sense that I don't know that MULTIPLICITY-clean means. :-) 00:07
sorear What's the difference between pmc_new and Parrot_pmc_new?
jnthn pmc_new is the Old Deprecated Way. Parrot_pmc_new is what replaced it.
I think it was just a rename.
sorear jnthn: Perl 5 can be build in two ways - either Perl uses actual global variables, or Perl uses a big struct Perl_Interpreter and passes pointers to it around 00:08
Most distribution Perls are built in the second way, because it allows threading to work
Most user-built Perls are the first way, because it's 15% faster 00:09
there are a set of macros which abstract over the difference
jnthn Ah, OK.
sorear Blizkost doesn't use them but instead explicitly passes Perl_Interpreter around, so it depends on MULTIPLICITY
jnthn Aha. 00:11
jnthn was just following embedding docs.
sorear generally speaking embedding uses MULTIPLICITY
00:12 kborer joined
sorear since it's also more modular - there's no 1 interpreter per process limit 00:12
lue afk 00:14
dalek kudo: dfbd1d5 | jonathan++ | src/Perl6/Grammar.pm:
While %tight_or is indeed list associative, because of the way we compile short-circuit || and //, we need to have them marked as left associative. Fixes RT#73774.
jnthn After reviewing the Rakudo C parts for memory leaks, I managed to find 1. 00:16
Bad news is that it's on a code-path we almost certainly don't touch in the build, and not particularly often anywhere else either.
(This is just reviewing anywhere we call mem_allocate directly, not just using PMCs. Checked the destroys etc too.) 00:17
diakopter rakudo: say (1 && 0 || 1)
p6eval rakudo db0f85: OUTPUT«1␤»
sorear jnthn: a memory leak is not just when you allocate memory and lose the pointer 00:19
it can also be when you free the memory, but too late 00:20
[+] [2..10000000] # this leaks memory in a non-lazy language
jnthn Well, if it's the defined semantics of the langauge it's not exactly a leak. ;) 00:21
But yes, point taken.
sorear it's not a bug in the language, it would be a bug in the program
00:21 jrockway joined
sorear Rakudo is a language, but it is also a program which implements that language 00:21
jnthn Sure. 00:22
00:24 riffraff joined 00:25 Patterner left
dalek kudo: e673638 | jonathan++ | src/pmc/perl6multisub.pmc:
Reviewed Rakudo C bits for memory leaks due to missing frees in the few places we mem_allocate. Found one missing mem_sys_free, though 'sadly' on a rarely followed code path (only affected code using junctions).
00:26
00:28 tlb left 00:29 riffraff left, kst left, solarion left, hicx174 left, meteorjay left, cosimo left, frodwith left, cotto_work left, Lorn left, kfo left, PerlJam left, Sarten-X left, bbkr left, baest_ left, japhb left, betterworld left, jhuni left, pmichaud left, wolf2k_ubuntu left, stephenlb left, jjore left, hanekomu left, diakopter left, Exodist left, Khisanth left, wasy left, lisppaste3 left, cotto left, zostay left, tylerni7 left, gfldex left, jrockway left, kborer left, colomon left, wknight8111 left, rgrau` left, eternaleye left, dalek left, rv2733 left, doublec left, astrojp left, christine left, allbery_b left, simcop2387 left, breinbaas left, molaf left, ingy left, [hudnix] left, alester left, REPLeffect left, |Jedai| left, silug left 00:31 [hudnix] joined 00:32 gfldex joined, jrockway joined, kborer joined, colomon joined, wknight8111 joined, rgrau` joined, kst joined, eternaleye joined, solarion joined, PerlJam joined, dalek joined, rv2733 joined, Sarten-X joined, doublec joined, hicx174 joined, cosimo joined, astrojp joined, meteorjay joined, frodwith joined, cotto_work joined, bbkr joined, christine joined, Lorn joined, kfo joined, avuserow joined, borup joined, akl joined, hejki joined, nsh joined, obra joined, japhb joined, betterworld joined, simcop2387 joined, baest_ joined, allbery_b joined, alester joined, cotto joined, tylerni7 joined, tylerni7 left, tylerni7 joined, pnu joined, ingy joined, jhuni joined, pmichaud joined, wolf2k_ubuntu joined, stephenlb joined, jjore joined, hanekomu joined, diakopter joined, Exodist joined, Khisanth joined, wasy joined 00:33 breinbaas joined, |Jedai| joined 00:34 stepnem joined
jnthn With latest Parrot we peak at 776 MB during the build on my machine. 00:43
We also fail autothreading.t and some fallout things from that.
00:50 rv2733 left 00:51 buubot joined 00:56 yinyin joined 00:59 justatheory joined
jnthn Grrr! I *said* that patch the other day was bogus. 01:05
01:08 hercynium joined
bkeeler breaktime... laterz 01:09
01:26 maerlinian joined
jnthn OK, we use latest Parrot now. 01:29
Which has the memory leak fixes. 01:30
Hopefully this makes some people's life easier on the build.
01:30 wknight8111 left
dalek kudo: 99c4bcf | jonathan++ | src/ops/perl6.ops:
Fix up the bind_signature op patch from a couple of days ago. I said it looked very dubious at the time and we wre just getting lucky. Seems I was right. Hopefully this is the proper fix.
01:31
kudo: 626ee20 | jonathan++ | build/PARROT_REVISION:
Bump us up to the latest Parrot version to get memory leak fixes by (Parrot team)++.
jnthn Oh wow. I write an arrogant commit message and typo it. That'll teach me. :-)
01:33 chromatic joined
chromatic jnthn, do you think 99c4bcf has anything to do with the set_outer patch bacek reverted in Parrot earlier? 01:34
jnthn chromatic: I'm not sure. I was very sure the original patch was wrong though.
chromatic: We got a return value from calling something
And then it just magically leaked into being the return value from the current (calling) context. 01:35
01:35 aesop left, aesop joined
jnthn (The original patch being, the one that got us building again after the PCC branch merge.) 01:36
Basically it just threw away the code that handled junc_result
I didn't quite understand what the patch that got reverted was trying to do. 01:37
chromatic It's a fix for thawing inner subs
jnthn Ah, yes. 01:38
sjohnson moritz_: can i have github axs for hugme bot? my github id == smujohnson
jnthn The thing is, it broke NQP
01:38 meppl left
jnthn We didn't even get as far as seeing the effect on Rakudo. 01:38
chromatic Okay, if it broke NQP then the commit you just pushed won't have any effect. 01:39
jnthn And while Rakudo does weird magic here and there, NQP is rather simpler in that sense.
The commit I just pushed fixed fails in autothreading.t.
Let me show you the two I mean...I think we might not be quite on the same page. :-)
sjohnson moritz_: or do you need a/my public key... i am not sure how it works 01:40
chromatic I thought I remembered someone saying "That broke autothreading!" I didn't realize it broke NQP.
jnthn No, no, there's two different things going on here.
One is the patch bacek wrote. It broke NQP. It got reverted. 01:41
chromatic Right. I want to get that bug fixed somehow.
jnthn Unrelated to that was this patch that got applied to Rakudo so we could build after the recent PCC changes: github.com/rakudo/rakudo/commit/588...00f9a70ea3
Note what got removed beneath the comment "/* Save the Junctional result as the return value. */"
chromatic Right. I thought they were connected, but I understand now that they aren't.
jnthn Yes, I'm fairly sure they're not. 01:42
So the patch I did just now was to re-instate what was removed, using what I think is the correct way to do that now.
I'm still rather surprised it did work fro a while. :-/
chromatic Yes, it looked dodgy to me too. 01:43
jnthn BTW, I confirm with latest Parrot leak fixes we're building in 700 MB or so now.
Checkd it here too.
*checked
That's still a lot. I'd like to look at the various compile stages and try and understand the memory usage a bit more when I get chance. 01:44
chromatic Rakudo (or NQP, more likely) allocates a handful of multi-megabyte STRINGs.
jnthn Is there any good way of working out exactly what's doing that? 01:45
Even a hack to check each string size allocation and print a backtrace when it's over a threshold?
chromatic I can probably trace it down. I suspect it's CodeString.
jnthn Hmm
So maybe it's happening in the POST => PIR phase the.
*then.
chromatic That's my best guess right now, but I'm not *certain*. 01:46
jnthn One of the things I noticed in the memory usage is that it seemed to hit peaks suddenly, and then just as suddenly back off by some hundred or couple of hundred megs again.
chromatic Right, that's the buffer compactor. 01:47
jnthn Ah, OK. That makes sense.
chromatic It's not as aggressive as it should be, but it does release memory back to the OS.
jnthn OK. Seems it's working in that sense.
chromatic Sort of. There's definitely a bug there that would make it use less memory, if fixed. 01:48
jnthn One other thing that may be worth exploring is Object's attribute storage.
chromatic How so?
jnthn It allocates an RPA to store attributes.
Thus every Object PMC actually is two PMCs.
chromatic If not more (it's more).
jnthn If it inherits from another PMC, then yes, for sure. 01:49
Allocate a C array there though...
Little more fiddling but could save a _lot_ of PMCs.
Especially when you consdier every node in the parse/past/post tree is an Object. 01:50
*consider
chromatic Ultimately we'll probably do something along those lines.
jnthn In theory it may not be much work. In practice...things that should be simple sometimes aren't. 01:51
justatheory is simple
elegant, even
jnthn :-)
chromatic It'd be a nice way to unify C-based PMC attribute storage with PIR-based attribute storage. 01:52
jnthn Yeah. I kinda fear that's going to be the end of the line for the representation polymorphism stuff I'd tried to achieve way back though. 01:55
chromatic Depends how far we get with Lorito at that point.
jnthn *nod* 01:56
Is that still very much planning phase at the moment?
chromatic Yes, but we're making some implementation progress. 01:58
PCT can parse and emit C code from .ops files.
jnthn Ooh, OK. :-)
oops...3am! 02:00
:-/
How'd that happen...
OK, sleep time. Night o/
02:04 |Jedai| left, ingy left, jhuni left, pmichaud left, wolf2k_ubuntu left, stephenlb left, jjore left, hanekomu left, diakopter left, Exodist left, Khisanth left, wasy left, _Jedai_ joined 02:06 ingy joined, jhuni joined, pmichaud joined, wolf2k_ubuntu joined, stephenlb joined, jjore joined, hanekomu joined, diakopter joined, Exodist joined, Khisanth joined, wasy joined 02:09 dalek left 02:10 drakej joined 02:12 cotto left, dalek joined 02:18 REPLeffect joined 02:28 eternaleye left 02:30 eternaleye joined, cotto joined
sorear maybe I should dust off Arena::Compact and see what I can make of it in a Parrot context 02:35
02:36 mtve joined 02:38 silug joined, dalek left 02:39 hatseflats left 02:43 dalek joined 02:48 jrockway left
sorear (Somebody should do rakudo nightlies) 02:52
03:02 molaf joined
colomon Huh. S02-magicals/pid.t appears to be getting a serious error, but is marked pass. 03:17
colomon -> bed 03:18
03:29 stephenlb left 03:39 lichtkind left
sorear colomon: fudging? 03:39
03:44 astrojp left 03:48 petdance joined
lue hello! anybody here? 03:49
sorear no
lue darn! :) 03:51
Can anyone direct me to 'How to make your own protocol (like HTTP)' and 'How to make your own character encoding' ? 03:52
sorear 1. Don't
2. Really don't
3. Read lots of RFCs
there's no real reason to perpetuate the insanity that is non-UTF8 text 03:53
for protocols, you should study existing well designed protocols 03:54
DO NOT STUDY IRC, IT SUCKS
IMAP is a pretty good one
lue The Fair Intergalactic Encoding Standard (FIES) and the SubEtha-Net Protocol (senp://...) 03:55
I'm considering incorporating DNS as only a subset of SENP :)
sorear anyone who plans to create an incompatible character encoding is a danger to the free world and needs to be removed 03:59
boys, get him
lue well, either I come up with my own character encoding with Larry Wall as Chief Advisor, or I bludgeon the Unicode Consortium until they stop being so frugal with codepoints and let languages like Tengwar and Klingon get an official spot.
03:59 jaldhar joined
lue I could make the NSISJTPPO standard :) (Non-Standard and Irregular Standard Just To Piss People Off) 04:00
wolf2k_ubuntu lue: you allow klingon, you allow every made up language in the universe. 04:01
Are you sure there's enough characters to go around?
sorear IN THE UNIVERSE.
04:04 pyrimidine joined
lue Yes. 04:05
Yes I do.
pyrimidine phenny: tell jnthn thanks for the bug fix (RT#73774). Poked around and found the same spot you did in Grammar.pm, but didn't know what to do
phenny pyrimidine: I'll pass that on when jnthn is around.
04:10 Chillance joined
PerlJam away 04:13
TimToady o/
04:14 TimToady sets mode: +vvv buubot dalek hugme, TimToady sets mode: +vv ilogger2 IRSeekBot, TimToady sets mode: +vv p6eval phenny
lue o hi timtoady! 04:14
hugme: hug p6eval
hugme hugs p6eval
TimToady std: v1.2.3;
p6eval std 30194: OUTPUT«ok 00:01 107m␤»
TimToady no svnbot though
lue :( 04:17
wait, was ilogger2 out of commision for a while? 04:18
TimToady I think it just lost its + for a while, but was still logging 04:20
lue oh. It would've been fun to know it wasn't logging :) 04:21
oops
04:21 pyrimidine left 04:27 wolf2k_ubuntu left 04:32 jhuni left 04:49 justatheory left 04:51 ShaneC left
lue rakudo: role A[::T] { state $foo; say ++$foo }; A[Int]; A[Str] 04:59
p6eval rakudo db0f85: OUTPUT«Symbol '$foo' not predeclared in !class_init_12␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 137 (compilers/pct/src/PCT/HLLCompiler.pir:101)␤»
lue std: role A[::T] { state $foo; say ++$foo }; A[Int]; A[Str] 05:00
05:00 sorear left
p6eval std 30194: OUTPUT«ok 00:01 111m␤» 05:00
lue pugs: role A[::T] { state $foo; say ++$foo }; A[Int]; A[Str]
05:00 molaf left
p6eval pugs: OUTPUT«*** ␤ Unexpected "[::"␤ expecting "::", "-" or trait␤ at /tmp/kdV7ONdlFz line 1, column 7␤» 05:00
05:00 sorear joined
lue aw, only STD can parse it :( (good project for me though; I'll take the ticket) 05:00
05:01 rv2733 joined 05:02 agentzh joined 05:05 jrockway joined 05:07 jrockway left 05:08 jrockway joined
lue good night 05:08
05:13 rekhajos joined 05:16 synth left 05:17 mberends joined 05:22 drakej left
mberends with ulimit -m 700000, current Rakudo build stops on src/gen/core.pir with Failed allocation of 224241572 bytes etc. The process memory size rises and falls, indicating some working memory management. The Parrot developers are working on the problem, but have not nailed it yet :-( 05:22
05:24 xinming left 05:28 plobsing left
mberends tries slightly higher ulimits, On a 1GB ram ubuntu, an 800MB parrot freezes up almost everything 05:29
bkeeler is thankful his machine has 16G 05:31
mberends my other machines have 2GB, but commute time development is useful 05:33
05:33 xinming joined
bkeeler you're on a train or something? 05:35
05:35 petdance left
mberends shall be in about 30 minutes :) 05:35
05:37 synth joined 05:41 quietfanatic joined 05:45 rv2733 left, jaldhar left, hercynium left, p6eval left, mantovani left, wolverian left, IRSeekBot left 05:49 mberends left 05:52 rv2733 joined, jaldhar joined, hercynium joined, p6eval joined, mantovani joined, Helios- joined, lestrrat joined, szabgab joined, rgrau joined, wolverian joined, IRSeekBot joined, barjavel.freenode.net sets mode: +vv p6eval IRSeekBot 06:17 silug left 06:27 Trashlord left 06:38 Su-Shee joined
Su-Shee good morning 06:38
06:44 rgrau` left
moritz_ good morning 06:46
sorear hello
moritz_ hugme: add smujohnson to hugme
06:46 hugme left
moritz_ where is that stuptid bot? 06:46
06:47 hugme joined
moritz_ hugme: add smujohnson to hugme 06:48
06:48 hugme left, hugme joined
moritz_ hugme: add smujohnson to hugme 06:48
hugme hugs smujohnson. Welcome to hugme!
moritz_ sjohnson: there you go
06:53 kaare joined, kaare is now known as Guest19966
mathw morning 06:55
06:56 Chillance left, quietfanatic left 07:10 uniejo joined 07:11 mberends joined 07:13 quietfanatic joined
mberends rakudo's split-gen-setting-2 branch now has master merged into it, to have another go at separate compilation of core modules. Updates will have to wait until this evening, because the @work firewall is not git-happy. 07:16
moritz_ let me guess... it's also not ssh-happy :-) 07:17
mberends jnthn: the reason you can build Rakudo in about 700MB, and Linux cannot, is because the M$ toolchain is more memory efficient than GNU :-(
moritz_: I managed to arrange an ssh -p 443 to home ;) This is webchat though. 07:18
07:18 Chillance joined
Su-Shee offers mberends a couple of cute smileys. ;) 07:18
mberends :D :) :-)
Su-Shee hm. I need to get my own server again. hmhm. 07:19
dalek kudo: 633c096 | moritz++ | t/spectest.data:
run the new S12-class/stubs.t
07:21
sorear mberends: er, the toolchain shouldn't affect this nearly at all 07:25
mberends: the memory hog here isn't gcc, it's parrot-nqp
which uses its own allocator, so you can't even blame this on a more efficient malloc
mberends sorear: I've compiled Parrot with different C compilers and got significant differences in memory footprint
sorear I, personally, blame any significant differences in RSS on ILP32 vs LP64 07:26
on an ILP32 system here Rakudo only needed 450MB before the PCC merge
I wonder how much it'll need now
moritz_ sorear: at least with newest parrot it builds again with a ulimit of 1G virtual mem 07:27
sjohnson moritz_: thanks! 07:32
moritz_ sjohnson: what do you plan to do to it? :-) 07:33
sjohnson maybe add some more cute features as far as hugging-related triggers
moritz_ if you do, please make sure they don't appear often, so hugme doesn't become annoying 07:34
it should mostly follow the "nice bot pattern": Don't speak unless you're spoken to
sjohnson oh yeah, i will try not to interfere with anything 07:35
moritz_ great
sjohnson or do anything that is inappropriate or annoying to others, or distracting, etc 07:36
dalek kudo: 5ab33a1 | chromatic++ | src/pmc/p6lowlevelsig.pmc:
[PMC] Fixed a memory leak in P6LowLevelSig PMC's destroy. Note that the

VTABLE, to make such leaks easier to track.
07:38
kudo: 1828116 | chromatic++ | t/spectest.data:
Merge branch 'master' of [email@hidden.address]
Su-Shee uhm, how do I change make install from parrot_install to something else? it doesn't understand DESTDIR 07:44
07:45 snarkyboojum left
moritz_ Su-Shee: if you want to install rakudo to /foo/bar, you first have to configure parrot with --prefix=/foo/bar 07:47
Su-Shee: the compile and install parrot
Su-Shee: then configure rakudo with --parrot-config=/foo/bar/bin/parrot_config
Su-Shee: then make and make install rakudo
Su-Shee: yes, it's a major PITA.
Su-Shee ah 07:49
07:49 iblechbot joined
Su-Shee I have vacation as of today, I can do another run :) 07:50
sorear I wonder if Perl6 uses sufficiently little memory to be installable now. 07:51
One way to find out.
moritz_ sorear: be sure to use parrot HEAD 07:52
and the latest rakudo too 07:53
sorear of course
realcleaning too
dalek kudo: 0afbf11 | moritz++ | build/PARROT_REVISION:
bump PARROT_REVISION again to get more memory fixes in parrot, chromatic++
07:55
moritz_ rakudo: my @a = (1, 2, 3); @a[0,1] = (7, 8); say @a.perl 07:58
p6eval rakudo db0f85: OUTPUT«Cannot assign to readonly value␤current instr.: '&die' pc 17257 (src/builtins/Junction.pir:399)␤»
moritz_ now this is going to kill lots of tests in assign.t 07:59
08:00 snarkyboojum joined
chromatic Speaking of killing lots of tests, it'd be nice to get the status graphs updating again. 08:06
08:07 snarkyboojum left, riffraff joined, IllvilJa left 08:13 espadrine left
sorear I love this sawtooth memory allocation thing. 08:15
08:15 espadrin` joined
sorear parrot-nqp is currently bouncing between 40% and 80% MEM 08:15
on Actions.pm 08:16
mberends sorear: :) seen that locally a few times... too many
sorear aaand it breaks 100% after 2:45 of runtime 08:17
mberends is that 100% of physical or virtual memory? 08:18
moritz_ sorear: did you install a ulimit?
08:20 cotto left 08:21 cotto joined
sorear moritz_: I have a secondary goal of being able to run 'perl6' afterward 08:22
mberends: physical 08:23
moritz_ sorear: that doesn't quite answer my quesiton
sorear "no"
moritz_ try it with one.
08:24 silug joined
moritz_ we've had reports from cases where the build only worked with a ulimit 08:26
sorear tries 300MB
mberends parrot peaked at 1008MB on amd64 with the latest updates
sorear Relatedly, I think Rakudo nightlies would be awesome. Do we have the technology? 08:27
moritz_ wow, feather1 has a load of 5.15
sorear: nightly builds or source snapshots?
sorear nightly builds 08:28
moritz_ all of the builds are from third parties
sorear just perl6.pbc (that's arch independant right?) if necessary 08:29
building rakudo_group.so doesn't take much ram anyway
08:31 chromatic left
moritz_ does anybody know why we have an apache running on feather3? 08:32
08:33 stepnem left 08:34 sundar joined
moritz_ just stopped it 08:34
sjohnson wq! 08:35
08:35 pugssvn joined
pugssvn r30191 | moritz++ | [t/spec] tests for class/role/module stubs 08:35
r30192 | moritz++ | [t/spec] test for RT #69308, segfault on "say $!:WHAT" in a CATCH block
r30193 | jnthn++ | [t/spec] Test for RT#73774.
r30194 | lwall++ | [gimme5] set the correct xact on || alternations
r30194 | [LazyMap] always accept the first result regardless of xact state
r30195 | moritz++ | [t/spec] test that you can refer to &infix:<cmp>, just for the lulz 08:36
r30196 | moritz++ | [t/spec] re-fudge assign.t for rakudo
sorear Failed allocation of 115451036 bytes 08:37
Parrot VM: PANIC: Out of mem!
make: *** [src/gen/perl6-actions.pir] Quit (core dumped)
note to all runtime implementors: in an out of memory condition, dumping core is the LAST thing you want to do 08:38
sjohnson hugme: hug moritz_ 08:40
hugme hugs moritz_
08:40 sundar left
sjohnson cute bot 08:40
dalek kudo: a93b9a5 | moritz++ | t/spectest.data:
we now pass assign.t again, including some tests for different precdence of item and list assignment
08:43
moritz_ lumberjaph.net/blog/index.php/2010/...-explorer/ 08:54
08:57 hanekomu left, hanekomu joined 09:00 dakkar joined 09:01 snarkyboojum joined
moritz_ std: sub a{say 3} 09:14
p6eval std 30196: OUTPUT«ok 00:01 107m␤»
moritz_ rakudo: sub a{say 3}
p6eval rakudo db0f85: ( no output )
moritz_ rakudo: my @b= 5, 1, 2; 09:15
p6eval rakudo db0f85: ( no output )
moritz_ rakudo: my @b= 5, 1, 2; if(@b>2) {say 'yes';}
p6eval rakudo db0f85: OUTPUT«yes␤»
moritz_ WOAH THERE
std: my @b= 5, 1, 2; if(@b>2) {say 'yes';} 09:16
p6eval std 30196: OUTPUT«===SORRY!===␤if() interpreted as function call at line 1; please use whitespace instead of parens␤Unexpected block in infix position (two terms in a row) at /tmp/k2Uj3vzit0 line 1:␤------> my @b= 5, 1, 2; if(@b>2) ⏏{say 'yes';}␤ expecting
..any…
09:22 pmurias joined
pmurias hi 09:22
moritz_ hi pmurias
what's up?
pmurias has always trouble answering that question ;) 09:25
moritz_ I often have, too
sorear "the sky" is my usual response 09:26
moritz_ any Perl 6 hacking lately?
pmurias unfortunatly not
09:27 yinyin left
moritz_ too busy with $education? 09:27
pmurias that's an annoying distraction latly 09:28
09:29 agentzh left
moritz_ rakudo: class A { has ($!a, $!b) } 09:33
p6eval rakudo db0f85: OUTPUT«error:imcc:syntax error, unexpected ')' (')')␤ in file 'EVAL_1' line 167␤»
09:38 payload joined
moritz_ rakudo: @_.=[3] 09:39
p6eval rakudo db0f85: OUTPUT«Can not use .= on a non-identifier method call at line 11, near ""␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
moritz_ std: @_.=[3]
p6eval std 30196: OUTPUT«===SORRY!===␤Placeholder variable @_ cannot be used in this kind of block at /tmp/ezHqKvO1IC line 1:␤------> @_.=[3]⏏<EOL>␤ expecting any of:␤ POST␤ postfix␤ postfix_prefix_meta_operator␤FAILED 00:01 108m␤»
moritz_ std: sub a { @_.=[3] } 09:40
p6eval std 30196: OUTPUT«ok 00:01 106m␤»
pmurias rakudo: my $a = 3;{say $a;my $a=7;say $a}; 09:44
p6eval rakudo db0f85: OUTPUT«Any()␤7␤»
pmurias is that correct? 09:45
moritz_ std: my $a = 3;{say $a;my $a=7;say $a};
p6eval std 30196: OUTPUT«===SORRY!===␤Lexical symbol '$a' is already bound to an outer symbol (see line 1);␤ the implicit outer binding at line 1 must be rewritten as OUTER::<$a>␤ before you can unambiguously declare a new '$a' in this scope at /tmp/qnwP7Fu74I line 1:␤------> my
..$a…
jnthn morning
phenny jnthn: 04:05Z <pyrimidine> tell jnthn thanks for the bug fix (RT#73774). Poked around and found the same spot you did in Grammar.pm, but didn't know what to do
moritz_ pmurias: it is not :-)
jnthn No, we don't detect that case yet.
moritz_ jnthn: we can haz run assign.t :-) 09:46
pugssvn r30197 | moritz++ | [t/spec] some unfudges for rakudo
moritz_ that commit also unfudge a precedence test for item assignment
jnthn moritz_++ 09:47
\o/
Yay!
moritz_ jnthn: rakudo parses hash slices on the LHS of an assignment as an item, though
jnthn :/
moritz_ so %a<b c> = foo uses item assignment
jnthn OTOH, hash slices don't work in Rakudo yet.
moritz_ aye
jnthn Though still a bit surprised about the parsing bug... 09:48
moritz_ oh
maybe it's not a parsing bug
jnthn Oh, OK
Well, the parse tree would probably reveal all. :-)
moritz_ I just noticed that all tests involving the hash slice on LHS failed
but of course that can be for other reasons :-)
on, and array slices are read-only
jnthn Yes, the parsing looks correct, it has the operator down as list assignment. Phew. :-) 09:50
moritz_ sorry for the false positive 09:51
s/positive/warning/
whatever
09:51 broquaint joined
jnthn :-) 09:53
"just for the lulz" :-D 09:55
moritz_++ # testing! :-)
moritz_ :-) 09:56
there was no good reason to infix:<cmp> to the operators bein tested, except that this was the example used in a specific ticket
jnthn Aha :-) 09:57
Wow, assign.t being turned back on must have won us a 3-figure number of extra passes. :-) 09:58
moritz_ it has 240 test in there 09:59
pugssvn r30198 | pmurias++ | [mildew] variables used in a scope are infered
10:02 meow joined
meow new to this 10:02
10:02 meow is now known as Guest92788
Guest92788 new to this.. 10:02
jnthn Oh yay. Finally, while 1 { 42 } doesn't leak. :-) 10:03
10:04 xalbo_ joined, xalbo left
Guest92788 need some help in reading line based on seek position in perl 10:05
10:06 lestrrat is now known as lest_away 10:07 holli joined, holli is now known as pausenclown
pausenclown hi 10:07
i think i found a bug
rakudo: class X { method x { } }; say X.new.x; 10:08
p6eval rakudo db0f85: OUTPUT«Null PMC access in type()␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
pausenclown rakudo: class X { method x { 1 } }; say X.new.x;
p6eval rakudo db0f85: OUTPUT«1␤»
10:08 kborer left
jnthn pausenclown: File RT; probably a missing prevent_null_return in method_def though. 10:08
10:13 Guest92788 left, Trashlord joined 10:15 ruoso left
moritz_ jnthn: how would I write a constructor in PIR for a parrot class that uses P6metaclass? 10:18
jnthn: just an ordinary method that calls new [ 'This';'Class']; and does setatttribute on the result? 10:19
jnthn moritz_: That would do it, but you can also call bless and create too provided you inherit from Object/Any/something else in the Perl 6 hierarchy. 10:20
moritz_ I'm not 10:21
jnthn: my current idea is to refactor the MATCH method in Regex::Cursor (nqp-rx)
to not call new ['Regex';'Match']
jnthn bbiab
moritz_ and then setattribute on the result
but instead does a $some_object.new( all info here )
because then all you'd have to do is to write your own Match object with an appropriate .new method 10:23
and hook that in somehow
pausenclown there also is a new "use" bug. i get "You can not add a Method to a module; use a class, role or grammar" if i'm trying to use a class within a class. 10:25
10:25 fda314925 joined
pausenclown 1st level from a script works. known? 10:26
moritz_ pausenclown: not known, but I could confirm it here 10:27
10:42 payload left 10:47 gfx joined, flity joined
pmurias perl6: &infix:<+> := sub {say "hi"};1 + 2; 10:55
p6eval rakudo db0f85: OUTPUT«:= binding of variables not yet implemented␤current instr.: '&die' pc 17257 (src/builtins/Junction.pir:399)␤»
..elf 30198: OUTPUT«/home/p6eval/pugs/misc/STD_red/match.rb:141:in `block in to_dump0': undefined method `to_dump0' for true:TrueClass (NoMethodError)␤ from /home/p6eval/pugs/misc/STD_red/match.rb:140:in `each'␤ from /home/p6eval/pugs/misc/STD_red/match.rb:140:in `map'␤ from
../home/p6eval/pugs/misc/STD…
..pugs: OUTPUT«*** Cannot rebind constant: PEConstant {pe_type = (mkType "Sub"), pe_proto = <Sub:0x2b12ef633941>, pe_flags = MkEntryFlags {ef_isContext = False}}␤ at /tmp/4TvTBBwH9M line 1, column 1-29␤»
pmurias is that legal in Perl 6? 10:56
moritz_ nope
at least I think not 10:57
pmurias why? 10:58
moritz_ what would it mean?
&infix:<+> contains a multi
what does it mean if you bind &infix:<+> to a single sub? 10:59
what scopes does it affect?
pmurias binding a single sub to am multi should propably replace it 11:02
s/am/a/
moritz_ in which scope?
11:02 masak joined
masak oh hai, #perl6 11:02
moritz_ it's m\a/sak :-) 11:03
pmurias moritz_: i would guess CORE
moritz_ pmurias: and thus evily monkey-type things it should not change
that's why I think it should be forbidden 11:04
masak TimToady: [backlogging] could STD_P5 be a possible target for delegation, or are there reasons it'd have to be written (mostly) by you?
pmurias i think so two
monkey-patching kills optimalisation 11:05
moritz_ is happy that there is some interest in Perl 6 from possible GSOC students 11:06
jnthn "binding a single sub to a multi" - huh?
moritz_ jnthn: pmurias probably meant "biding a single sub to a container which currently holds a multi" or so
jnthn The fact that it's a multi doesn't mean much. It's just like binding against any other simple.
*symbol
pmurias jnthn: that's what i meant 11:07
moritz_ rakudo: sub a(*@b) { say @b.PARROT }; a(2, 3); my @x = 3; a(@x) 11:09
pmurias jnthn: what do you think &infix:<+> := &foo changes?
p6eval rakudo db0f85: OUTPUT«Array␤Array␤»
moritz_ rakudo: sub circumfix:<| |>() {}; |*| 11:10
p6eval rakudo db0f85: OUTPUT«error:imcc:syntax error, unexpected '\n'␤ in file 'EVAL_1' line 58␤Confused at line 11, near "|*|"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
11:10 imran joined 11:11 pmurias left, imran left
dalek ok: 4cba9cd | moritz++ | outline.pod:
update outline
11:12
jnthn oops, ENOPMURIAS
I'd guess it means re-bind the entry in the lexpad 11:13
Assuming that it's rw anyway...we may want to make that not the case (for optimization reasons, as mentioned).
Heh, visa form fail. 11:14
"IMPORTANT! Please print or type using ballpoint pen"
...weird way to type. :-)
11:19 cotto left 11:27 clintongormley joined
colomon oooo... that reminds me to take some of the vodka in the house to the convention tonight. (since I never drink the stuff, yet somehow we have three different bottles....) 11:36
moritz_ good way to get rid of it :-) 11:37
moritz_ only has rum for cooking at home
masak jnthn: [backlogging] the 'for the lulz' meme will probably forever carry a dark undertone for me due to the Finnish School Shooting. :/ www.kuro5hin.org/story/2007/11/8/141636/531 11:38
jnthn: (the guy ends his letter with 'I did it for the lulz')
11:38 rekhajos left
pausenclown damn the grammar.parsefile method is broken. 11:39
jnthn masak: Ouch. :-(
pausenclown grammar G { token TOP { .+ } }; 11:40
say G.parsefile('bug.pl');
-> invoke() not implemented in class ''
masak pausenclown: feel free to submit a rakudobug.
moritz_ wonders if f20f1e5c5109d404a748aa8f766f6b05404a74fc broke that 11:41
masak interesting how www.perlfoundation.org/perl5/index....0_projects puts Rakudo, Parrot and Perl 6 above Perl 5... :) almost comes off as deliberate...
moritz_ masak: Perl 6, Rakudo and Parrot offer project ideas such such - Perl 5 does not 11:42
masak ok.
jnthn Tssk. Thanks Russia. Turns out if I was just about any European nationality besides British, I'd have a 1-page visa application form to fill out. But no, I have to fill out the two page one...singled out along with Georgia. :-/
moritz_ masak: Perl 5 core is not very approachable, and most other Perl 5 ideas are about certain modules
masak by the way, I'm not certain I'll be available as a mentor this year. I'll try to apply as a student.
moritz_ o. I could end up being masak's mentor
that would feel... weird. 11:43
masak why?
moritz_ masak: because I don't feel that I have superior knowledge in terms of community, processes, language, and probably that specific project at all
masak moritz_: well, neither do I, so we're at least on equal terms. good grounds for a student/mentor relation. :) 11:44
moritz_ I know that's only part of mentoring
but usually the mentor introduces the students to part of the community, organizes commit bits etc.
"jnthn, this masak, our new student" :-)
masak we'd just take those parts as read. :)
"hi, jnthn! nice to meet you :)" 11:45
jnthn Yay, new students are good for breakfast!
masak inches away slowly
jnthn Er, I mean...pleased to meet you.
:-)
masak :)
moritz_: that jnthn guy is kinda scary... 11:46
:P
moritz_ masak: if you'd ever meet him in person...
oh, one thing I forgot... op'ping :-) 11:47
11:47 moritz_ sets mode: +o masak
masak moritz_: ...he'd eat me for breakfast? :) 11:47
moritz_: I've heard jnthn doesn't do breakfasts...
lunch & 11:48
11:48 cotto joined 11:52 lichtkind joined
lichtkind could anyone explain proto subs please ? 11:54
moritz_ I'll try 11:57
lichtkind moritz_: thanks
syn doesnt make sense to me
moritz_ first of all a proto is a declaration that all following subs with the same name are automatically multis 11:58
multi a { }; sub a { }; # error
proto a { }; sub a { }; # allowed; the sub is automatically promoted to multi
second, they act as a fallback for dispatch
I think that's it 11:59
lichtkind so if i declare a only
i cant declare proto after it?
moritz_ not in the same scope 12:00
lichtkind right
moritz_ I guess that if the proto comes in an inner scope, it hides the only sub
12:01 envi^home joined
lichtkind moritz_: fallback means its used for the case "real" sub with that name is declared? 12:01
why not use just a multi with no sig which eats the call if no other multi is declared? 12:02
moritz_ why indeed
there's one thing that makes the dispatch special 12:03
if you have a multi sub ($a, $b)
and you call $b by name, not by position (1, :b(2))
then the ordinary multi dispatch is free to look at only candidates with one positional argument 12:04
so it won't find ($a, $b)
but it will find a proto with signature ($a, $b)
12:05 Trey joined
lichtkind moritz_: so in other words its the multi for the unmatched cases? 12:12
moritz_ yes. Isn't that what "fallback" means? :-) 12:15
12:15 pmurias joined
pmurias jnthn: rehi 12:15
masak <jnthn> Oh yay. Finally, while 1 { 42 } doesn't leak. :-) 12:17
this is really big.
I had such a loop running over lunch; it didn't leak one bit of memory. \o/
m6locks :) 12:18
lunch would kick ass 12:19
moritz_
.oO( unwanted mental images )
masak :D 12:20
12:20 payload joined
takadonet morning all 12:21
12:22 jpzork joined
m6locks morning 12:22
masak takadonet: \o
colomon o/
12:22 iblechbot left 12:27 hatseflats joined
lichtkind moritz_: it is i just want to play stupid to be shure i get it :) 12:27
moritz_ anybody got some time and motivation for common PIR hacking? (maybe later today)
lichtkind masak: hai o/
jnthn moritz_: Can probably assist with that.
moritz_: Just having visa nightmares ATM. :-/
moritz_ jnthn: ok, need to organize some $nom first anyway 12:28
might take an hour or two
jnthn moritz_: That's fine, I also need nom now, and to actually, like, do some work today. 12:29
dalek ok: 59eca08 | masak++ | src/operators.pod:
[operators] minor typo/punctuation fixes
jnthn Since I lost the morning to the Russian government's rather well implemented measures to make it a pain for anyone to visit the country. 12:30
pmurias jnthn: 12:31
12:31 hatseflats left
jnthn pmurias: ? :-) 12:31
mathw My, that sounds like fun...
12:32 hatseflats joined
lichtkind moritz_: refers $nom to food? 12:32
moritz_ yes
lichtkind moritz_: sounds almost like lolcat speak 12:33
moritz_ might come from that direction
pmurias jnthn: accidental key press
jnthn :-) 12:34
12:34 synth left
masak the noun 'nom', via the verb 'to nom', via the onomatopoetic expression 'nom nom nom', "The sound of a person chewing or eating with childlike enthusiasm." en.wiktionary.org/wiki/nom_nom_nom 12:36
12:38 ruoso joined
lichtkind masak: yes its even known in czech , even if its spelled njam njam 12:39
masak lichtkind: nod. probably most countries have a child-speak onomatopoiea for this. 12:40
you're less likely to say "Please chew, swallow and digest this" to your toddler. :) 12:41
jnthn
.oO( Njamoval som obed. )
12:42
pmurias ruoso: hi
jnthn When I was in Slovakia, I often walked passed a hot-dog stand called "N'am hotdog" :-) 12:43
moritz_ buubot: eval 00.1 + 2 12:44
buubot moritz_: 3
moritz_ the surprises for the Perl 5 programming language
12:45 pmurias_ joined, pmurias left 12:46 pmurias_ is now known as pmurias
colomon rakudo: say 00.1 + 2 12:46
p6eval rakudo db0f85: OUTPUT«2.1␤»
masak moritz_: o.O
moritz_: wh... why?
moritz_ masak: I have no idea
pmurias jnthn: so it's safe to rebinding CORE illegal in smop
?
masak moritz_: at least it's extremely fast :P 12:47
12:48 jpzork left 12:50 gfx left
pmurias masak: 00.1 is '01' in perl5 12:50
masak pmurias: right, ok. why? 12:51
moritz_ it seems that the decimal point is ignored in all ocatls
buubot: eval: 02.2
buubot moritz_: 22
masak oh.
moritz_ uhm
that didn't interpret it as octal, did it?
masak no.
moritz_ buubot: eval: 011.1
buubot moritz_: 91
moritz_ rakudo: say 0o111 12:52
p6eval rakudo db0f85: OUTPUT«73␤»
moritz_ but that did
moritz_ has no idea
masak rakudo: say 0o11
p6eval rakudo db0f85: OUTPUT«9␤»
moritz_ so
it takes everything before the . as octal
masak right.
moritz_ and then concatenates... what?
buubot: eval: 011.11
buubot moritz_: 911
masak and then the rest in decimal.
moritz_ wow 12:53
masak that's insane.
moritz_ slaps TimToady, retrospectively
pmurias buubot: eval: (011) . (11) 12:54
buubot pmurias: 911
moritz_ so it's just parsed as a concatenation
pmurias yes
moritz_ and not as a number
wow 12:55
pmurias octal numbers propably don't support a floating point part
masak ohh! concatenation. right. Perl 5 uses the dot for that. 12:56
12:56 lest_away is now known as lestrrat
masak still very much not Least Surprise. 12:56
moritz_ wow, I found some really old qbasic scripts of mine 12:57
burned on a CD in 2002
probably much older
13:07 meppl joined, cosimo left 13:08 cosimo joined
colomon moritz_: I've been hoping there's some way to retrieve my old Forth programs from the Commodore 64 floppies they live on... 13:17
jnthn pmurias: Good question. I think it's probably reasonable to declare the CORE setting lexpad that everything has as its outer is immutable, for optimization reasons if nothing else. 13:18
moritz_ colomon: computer museum?
jnthn It's hardly restrictive.
Since you can easily declare something that hides it. 13:19
pmurias: Though me thinking it's reasonable != a ruling. ;-)
13:19 SmokeMachine joined
colomon moritz_: I tried contacting some on-line C64 enthusiasts, but got side-tracked by our move. 13:20
moritz_ quite understandable 13:21
lichtkind moritz_: thanks 13:24
bye see ya 13:25
feel free to optimize www.perlfoundation.org/perl6/index....e_modifier
13:26 lichtkind left 13:28 payload left 13:30 iblechbot joined 13:34 ignacio_ joined 13:44 pmurias left 13:48 xalbo_ is now known as xalbo 13:49 hicx174 left 13:50 hicx174 joined 13:59 riffraff left 14:02 riffraff joined 14:05 PerlJam left 14:06 dalek left 14:07 PerlJam joined
colomon 28699 passing tests! 14:13
moritz_ in npq-rx, a match object has a reference to the original cursor 14:14
why?
jnthn moritz_: We use it for method calls in various places
moritz_: Grep e.g. Actions.pm for $/.CURSOR. 14:15
14:15 dalek joined
moritz_ ok 14:16
14:19 dalek left
mathw finds metamodel.pod quite interesting 14:21
14:21 buubot left, buubot joined 14:31 xalbo left, alester left, alester joined
alester Squaaaawk! Perl 6 is vaporware! Perl 6 is vaporware! Squaaaawk! lwn.net/SubscriberLink/379909/d0cab59913dced2c/ 14:32
masak yeah, saw that one.
jnthn Perl 6 isn't anything-ware. 14:33
It's a spec.
masak 'vaporware' applies to hyped products by game houses etc who work in a closed-source manner. it applies when no code/implementation whatsoever has been released to the public. 14:34
mathw Duke Nukem Forever 14:35
the canonical example
masak aye.
mathw until it was cancelled
14:37 Guest19966 left
jnthn I still think it's missing the point. Perl 6 is explicitly not the name of an implementation, so I don't think it makes sense to apply a label that is generally used to descibe software to it. Rakudo is a better example of something you could class as vaporware, apart from its rather inconvenient very public existence. :-) 14:37
mathw yes 14:38
jnthn er, to describe hypothetical software.
;-)
mathw basically we're just witnessing another example of people not understanding what's going on here
14:38 nihiliad joined
jnthn Aye. 14:38
masak "I don't think it's really appropriate to call the Hurd vaporware. While some people get disappointed by the lack of some relatively basic things, a great many actually err on the other side -- they are quite surprised how complete the system already is..." lists.debian.org/debian-hurd/2007/0...00006.html
jnthn Nothing new in that sense. I just think framing it as what Perl 6 is vs what its implementations are could he helpful.
masak: Heh. Sounds familiar. 14:39
masak it does.
jnthn Especially in some p6l posts. :-)
mathw :)
jnthn "Oh, it's implemented? I was only asking about spec! Horror!"
mathw some people probably want the implementation to go away so they can argue for things to be changed more 14:40
jnthn lol
I so don't want to believe that. :)
mathw somebody's always going to want things to be changed
masak yeah, it's darn inconvenient that implementations have started to interfere with our noble spec work. :P 14:41
it was much simpler before they did.
mathw hee hee
14:41 espadrin` left
mathw it's more fun though 14:41
masak yes, I think so.
"[grub2] wont become vaporware, because the developers repository is still busy, stuff is still actively getting committed." brainstorm.ubuntu.com/idea/8143/ 14:43
mathw my laptop boots with grub2...
that's distinctly non-vapoury
14:43 IllvilJa joined
masak mathw: well, my laptop starts Perl 6 when I type 'perl6' on the prompt. 14:43
moritz_ alpha: say Match ~~ Positional 14:44
p6eval alpha 30e0ed: OUTPUT«1␤»
mathw masak: oddly enough, so does mine :)
moritz_ alpha: say Match ~~ Associative
p6eval alpha 30e0ed: OUTPUT«1␤»
14:44 dalek joined
jnthn moritz_: It does the both. You may need a method "of" for conflikt resolution. 14:44
uh, conflict
moritz_ not quite what I'm after 14:45
jnthn OK
Just noting that doing both roles runs you into a conflict otherwise. :-)
moritz_ I'm trying to find out how Regexp::Cursor.MATCH propagates the positional and named captures to the match
14:45 Alias left
jnthn Oh, that hurt my head too 14:45
I didn't quite figure it out. :-/
14:46 Alias joined
mathw there's a conflict between Associative and Positional? 14:46
moritz_ mathw: both have .values, .keys, .kv
mathw aah
irritating
jnthn moritz_: No, that's not the issue - they come from Any
The problem is the method "of"
mathw oh
I've never heard of that one
moritz_ jnthn: could it be that Match inherits from both RPA and Hash? 14:47
jnthn my Int @foo; my Int %bar; say (@foo, %bar)>>.of; # Int()Int()"
moritz_ and that it just does match[$S0] = $named_capture
match[$I0] = $positional_capture
that's what it seems to do, yes
mathw jnthn: so .of returns the element type, or the value element type, as appropriate 14:48
jnthn mathw: Yes
mathw: The role is actually role Positional[::T = Object] { method of() { T }; method post...blah... } 14:49
14:49 dalek left
masak "[Fifth generation computer project in Japan] was supposed to perform much calculation using massive parallel processing. [...] Either it was a failure, or it was ahead of its time." en.wikipedia.org/wiki/Fifth_generation_computer 14:49
jnthn moritz_: That's possible, it may be Capture rather than the two of them though.
moritz_ jnthn: good point
$P0 = p6meta.'new_class'('Regex::Match', 'parent'=>'Capture', 14:50
spot on
masak "We don't need timelines right now. What we need is some hacking time and to bring some fun back into PHP development. It hasn't been fun for quite a while. Once we have a body of new interesting stuff, we can start pondering releases..." lwn.net/SubscriberLink/379909/d0cab59913dced2c/ 14:53
sounds like the cup-throwing incident. 14:54
(but sans the cup)
mathw I guess it's a pretty hard task to take PHP and make it good
to keep it moving forward without breaking it all
Of course I'm biased 14:55
moritz_ it's also a hard task with Perl 5 14:56
PerlJam masak: yes, the PHP community tends to do the same things as the Perl community only years later.
moritz_ like... introducing namespaces
masak :)
moritz_ or Unicode 14:57
mathw extensions
masak Unicode seems to be the big thing PHP 6 tries to do.
mathw and their biggest stumbling block too
although they do need it
but unicode is hard! 14:58
we know this
lots of people know it
jnthn 127 chars should be enough for anyone
;-)
masak 128. :)
jnthn Well, I guess NULL is a char in the zen sense. :-)
moritz_ akshually ASCII didn't assign 127, or so I have heard
PerlJam NUL
moritz_ says CREAT 14:59
masak moritz_: 127 is DEL or some such.
14:59 dalek joined
masak jnthn: NUL is very much a real character, no zen sense necessary. 14:59
jnthn: it's only in C and the like it's sometimes used out-of-band, but it's still a character.
jnthn masak: I'm brain damaged by C. :-P
masak clearly :)
PerlJam the C form of brain damage is still the best kind to have overall 15:00
masak even in C, you can have chr(0) in your strings... you just can't use the common string library functions on them and expect everything to work. :)
mathw well then you're dealing with binary buffers, which are a different kettle really :) 15:03
moritz_ did you mean: (char) 0 ? :-)
mathw means static_cast<char>(0) :)
mathw is a C++ guy 15:04
aaaw 15:05
my cat's doing a scarf impression
jnthn Cats are The Awesome. 15:07
mathw oh yes
masak mathw: does that mean it's draping itself over the back of your neck? 15:09
mathw yup
masak that must be a sign that it really trusts you :) 15:10
mathw yeah he does a lot of really trusting stuff
stretching out belly-up on my lap and going to sleep, that sort of thing
15:10 uniejo left 15:11 iblechbot left
PerlJam mathw: clearly you are an inferior being, otherwise the cat would regard you with more suspicion. ;) 15:11
mathw heh
quite possibly
he knows my aikido training only covers human opponents
jnthn Dog: "You feed me, you care for me, you must be god." Cat: "You feed me, you care for me, I must be god." 15:12
PerlJam jnthn++
mathw that's about right, I think
but I can't help it, he's so lovely
15:13 uniejo joined
masak Do subs and methods still default to 'our' scope, as www.dlugosz.com/Perl6/web/class-declarators.html says? ISTR at least methods are now 'my' by default. 15:13
jnthn no 15:14
subs are my by default
15:14 uniejo left
moritz_ methods are 'has' by default 15:14
jnthn methods are haz by default
masak what does it mean for a method to be 'has'? 15:15
jnthn Only exists in the methods table.
Not in the lexpad or package.
masak and that 'Only' means that you can't do what?
masak wants details :)
jnthn Call it with anything but a dotty (or by asking the metaclass to give it to you) 15:16
(e.g. by .methods or .can)
masak jnthn: ok, so A::foo won't work?
jnthn Correct.
moritz_ huh, can an attribute in PIR only be a PMC?
jnthn You need to say "our method" for that.
moritz_ (and not an int) 15:17
jnthn moritz_: Yes. :-/
moritz_ let me say "huh".
masak jnthn: ok.
jnthn moritz_: And a lexpad too.
moritz_: Which is one thing that'll need to change in Parrot before we do native types.
chromatic++ mentioned knowing how to do that for lexpads, mind. 15:18
But I still suspect we may see proper support for native types on another backend first.
PerlJam Does that "suspect" really mean "I'm working on it and I expect to beat chromatic to the punch"? :) 15:19
moritz_ we need more chromatics :-)
jnthn PerlJam: I'm actually disciplining myself not to get distracted on the backends stuff until Rakudo * is out.
PerlJam moritz_: indeed.
mathw jnthn: something to do in .NET perhaps
PerlJam jnthn++ discipline is good
mathw wonders what the big release after rakudo * will be called 15:20
Rakudo Nebula?
:)
Super Rakudo Galaxy :D
jnthn Rakudo ** # includes slice support!
mathw (that's the one with Parrot, .NET, JVM and LLVM backends)
PerlJam Rakudo Nova ... seeding galaxies everywhere with fresh Perl 6 matter 15:21
Rakudo * can also be read as "Rakudo splat", so maybe Rakudo * has a whole other meaning we're not aware of ;) 15:22
Su-Shee I wouldn't go for stellar names unless you really dig puns on speed of light versus rakudo :)
mathw well of course it's also Rakudo Whatever
PerlJam Su-Shee: the more punnable, the better 15:23
jnthn -Opun
mmm...I has a stroopwafel.
moritz_ is envious 15:24
I pushed the refactor_mob_generation to the nqp-rx github repo
masak mathw: last I heard, it'll be 'Rakudo Star' for at least a couple of releases, since the name refers to a distribution, not a release.
moritz_ it now has a constructor in the Regex::Match class 15:25
not yet used, not yet tested
plan is to call that from Regex::Cursor.MATCH
masak jnthn: I don't have a girlfriend to give stroopwafels to like moritz_, but I gave one to a girl friend. :)
moritz_ and then build a Perl 6 Match object
jnthn masak: I actually have an incredibly large supply thanks to (Netherlands Perl Workshop)++. Maybe enough to bring a packet to Uppsala. ;-) 15:26
masak jnthn: mmm. :)
jnthn: I won't hold it against you if you do. :)
jnthn
.oO( Might hold it against me if I don't...best not accidentally the whole supply. )
15:27
masak :P
jnthn: knowyourmeme.com/photos/4165 15:29
jnthn masak: lol 15:32
moritz_ rakudo: 'foo' ~~ /<alpha>+/; say $<alpha>.PARROT
p6eval rakudo db0f85: OUTPUT«Method 'PARROT' not found for invocant of class 'ResizablePMCArray'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
moritz_ so...
masak hm...
moritz_ rakudo: 'foo' ~~ /<alpha>/; say $<alpha>.PARROT
p6eval rakudo db0f85: OUTPUT«Method 'PARROT' not found for invocant of class 'Regex;Match'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
masak internals poking out... :/ 15:33
moritz_ aye
that's what I'm trying to fix atm
but it's hard
masak nod.
jnthn can imagine that as being tricky. :-/ 15:34
15:36 bbkr left
dalek p-rx: becd0e9 | duff++ | (3 files):
remove un-perly fatarrow extension
15:37
jnthn ...wasn't that patch from a while ago? :-/ 15:42
moritz_ I don't understand the cstack at all
PerlJam jnthn: the fatarrow one?
jnthn yeah 15:43
oh, no
There was another fatarrow one a little while back
moritz_ and how it interacts with caparray
PerlJam I'd added a fatarrow extension for fperrad and friends. It was unperly and pmichaud said he was going to remove it. I notice he hadn't yet, so I did before it propagated too much. 15:44
jnthn Ah, OK.
moritz_ the problem was that it parsed "a" => 1 and a => 1 the same way 15:45
so it would break the named arg vs. positional arg distinction
jnthn Yes
It's better than NQP tries to stay a proper subset, IMHO.
masak really liked webchick.net/files/women-in-floss.pdf 15:48
15:52 bbkr joined
Su-Shee uah. ;) 16:00
masak Su-Shee: what? :)
Su-Shee this is an insult to women like me. seriously. I _hate_ those kind of argumentation. un-be-lie-va-ble. 16:01
masak Su-Shee: oh, you'll have to explain that. the presentation seemed very balanced to me. 16:02
but I'm male, so I'm sort of biased by design :)
Su-Shee besides the social factor - "not just rtfm - take 30 seconds to point the way" WTF? why need women to be cuddles and pointed to the documentation instead of just ... doing rtfm?
16:02 buubot left
jnthn I didn't see how that particular one related to women at all, fwiw. 16:03
RTFM is always quite unhelpful.
Su-Shee jnthn: exactly. either that - then we could say "the foss culture of just saying rtfm sucks" - but saying that _this_ is something to drive women away.. well..
jnthn It's a good point, but...yes, I found that weird.
16:04 buubot joined
Su-Shee what I essentially hate most is: we're talking grown up upper level educated women here usally. they _have_ to learn to jump over their socialisation. and all this pointing to men in foss and asking _them_ for change.. well, change yourself first. 16:05
16:05 flity left
masak Su-Shee: why, according to you, are there so few women in FOSS circles? 16:06
16:06 flity joined
huf why are there so few men teaching in kindergartens? 16:06
i'm not saying it's the right approach but cant we just accept some things as is 16:07
?
Su-Shee masak: because of the huge amount of time it takes to participate - which women if they have it - usally divide between more things than just open source and hacking.
diakopter why are there so few men bearing children?
huf diakopter: sadly, technological reasons
but sooooooon....
masak Su-Shee: ah, so because more men are monomaniacs, essentially... :)
Su-Shee masak: and plain disinterest. there are few women doing technology anway - probably of this number, the number of women in foss might even not be that low. 16:08
masak nod.
Su-Shee masak: and they usally have more opportunity to be monomaniacs. be it for social acceptence reasons or be it for age. 16:09
masak Su-Shee: it makes sense.
Su-Shee but for this to change, women have to decide to change themselves. programming foss ain't going to get any easier - so it takes you even _more_ time to get into it.
and I'm sorry to say: but if you _really_ get shocked in a 600 men-3 women channel by the three asses you _OF COURSE_ will encounter: then you have no business on the internet. 16:10
16:10 sundar joined
Su-Shee and obviously you missed that there are 597 men behaving appropriately. 16:11
(which is a damn great quota, I'd say.)
bbkr and this ratio is even worse on #perl7 :)
16:13 clintongormley left
masak bbkr: what's this obsession about Perl 7? I'm not even getting started sucking on the Perl 6 candy. :P 16:14
huf better start perl7 now so it'll be ready for christmas 2097?
huf hides
masak Su-Shee: my mother has similar complaints about "wonem's networks" and the like. she says "I don't consider being a woman a factor in being an entrepreneur. why would I join a network that pretends it is?" 16:15
s/wonem/women/
16:18 cdarroch joined, cdarroch left, cdarroch joined
Su-Shee masak: I had my epiphany when I saw myself in a discussion about outing some rapist in the neighbourhood. all women threw all their energy onto the outing, the campaign - essentially _him_. instead of teaching themselves self defense and focussing on _themselves_. 16:18
masak Su-Shee: good point.
maybe men have an easier time thinking of themselves first. :) 16:19
Su-Shee so the lesson is: do foss, write code, focus on the cool guys, ignore the rest (or get a sharp tongue) and first and foremost: ask yourself what you can change about your female behavior.
16:19 Psyche^ joined, Psyche^ is now known as Patterner
Su-Shee example is usally: it's not personally against you specifically as a woman if you get the full beat down of "your code is shit". ;) 16:20
masak heh. 16:21
I sometimes forget women tend to put an equivalence sign there. :)
Su-Shee masak: it's mostly that the culture of political resistance and change and emancipation tends to search for something to fight against instead of something to be engaged _for_
masak Su-Shee: aye. 16:22
a bit of "ok, so we're reached the land of potentiality, but we're unable to dismantle the movement that brought us here"
Su-Shee like: your fight against privacy violations of companies instead of engaging yourself in a information has to be free movement.
pugssvn r30199 | lwall++ | [STD, gimme5] various tiny speed tweaks, fossil removal
masak or like p6l keeping on producing spec when we should really be doing implementation :) 16:23
Su-Shee seriously: afterall - I just don't know what women are avoiding in foss. it's cheap. it's documented in miles of papers. it's open. it's there. you just have to sit down on your computer and _do_ it.
masak Su-Shee: could be just an accidental assymmetry. it tilted over early on and never changed. 16:24
probably not so accidental, even, since a lot of other factors favor men in FOSS.
but it could definitely be self-reinforcing. 16:25
Su-Shee yeah well - in the end the factors doesn't matter. either you do foss or you don't. either you take the power you want or you don't get it. if our grandmother's would have waited for things to change, I still wouldn't have a banking account. 16:26
masak :)
TimToady We who are Live White Males have been trained to think that we're supposed to be good Dead White Males someday, so we erect monuments to ourselves...
Su-Shee *hihi* :)
TimToady ...but knowing that, it still doesn't excuse us from not trying to do something monumental. :) 16:27
Su-Shee well, a nice monument would look great in every woman's living room as well. ;)
16:28 Patterner left
Su-Shee masak: aren't you supposed to be the prime example of an egaliterian society in sweden? 16:28
masak Su-Shee: we're pretty egalitarian, IIUC. 16:29
Su-Shee: still doesn't mean men aren't pigs sometimes.
and still doesn't mean there aren't stupid gender-based injustices.
Su-Shee masak: let's call it the "viking heritage" maybe. ;)
masak if it were only that... :)
Su-Shee masak: sure - but: I don't see the masses of swedish women flocking into science and computing as well. 16:30
16:30 Psyche^ joined, Psyche^ is now known as Patterner
masak Su-Shee: true. 16:30
Su-Shee: it's a male-dominated landscape in the natural sciences and C.S.
Su-Shee if you go by numbers women surpassed in germany men two or three years ago in terms of grades, education and going to university. still: not into science and computing. 16:31
masak nod.
girls get higher grades here too, in almost all levels of education.
Su-Shee (german newspapers are full of articles recently about the discrimination of boys :) 16:32
masak there's discrimination both ways, sure. but it's often in different ballparks.
Su-Shee masak: still don't choose science or computing.. not even for the sake of never being unemployed or the salaries or the freedom to choose your jobs instead of applying against 46856 competitors.. 16:33
moritz_ also it was long a taboo to talk about sexual abuse of boys/men
masak prepares to go swimming
16:38 mberends left
masak Su-Shee: ok, so the solution is not for communities to cater for women, it's for women to think about themselves? 16:38
16:39 iblechbot joined
masak or about accepting that maybe women aren't interested in FOSS? 16:42
lue interesting conversation :) 16:46
16:47 lue left
Su-Shee masak: I personally think so, yes. 16:48
masak: it's really not about the average joe foss hacker having to change.
masak Su-Shee: ok. thank you, this helped me as a male get a different perspective on this discussion than I had before. 16:49
16:49 chromatic joined, lue joined
lue hooray for segfaults :/ 16:49
Su-Shee masak: I personally consider for example allison or the kernel woman whose name I forgot more of a role model. to my view, those women just _do_ foss.
16:50 kidd joined
masak Su-Shee: Jacinta Richardson? aye, agree. 16:50
chromatic Valerie Aurora?
Su-Shee lemme look. 16:51
lue In S02, state variables are defined as "lexically scoped but persistent names". What does the persistent part mean?
16:52 sundar left
Su-Shee YES! 16:53
I know her as val henson.
masak seems she did a s/henson/aurora/
lue hi masak! o/
Su-Shee though I know that her opinion is more along the lines of this presentation pdf. 16:54
masak lue: hi! I'm just leaving for a nice swim.
lue: will I return to find awesome activity on RT? :)
swimming & 16:56
16:56 masak left
lue I'm leaving for a couple of days, so no :/ 16:56
When I'm back though, I'll be sure to pile up all the old, resolved tickets and set them on fire :) 16:59
Anyway, can anyone explain to me the difference between a my variable and a state variable? 17:00
17:02 envi^home left
Su-Shee phenny: tell masak, I just remembered the foss exception of the rule: the arduino/maker/wearables community. 17:03
phenny Su-Shee: I'll pass that on when masak is around.
chromatic lue, a state variable gets initialized once. They have the same scoping rules, but the value of the state variable persists even as control flow exits its scope. 17:06
Think of it as a closed over variable that doesn't require an outer lexical scope to persist. It's like a telegraph with no cat.
lue So... my is a wimp, and dies as soon as the program leaves that scope, while state is a solider, who will stand there until the whole thing's called off? 17:08
TimToady rakudo: sub incr { state $s = 0; say $s++ }; incr; incr; incr; incr;
p6eval rakudo db0f85: OUTPUT«Symbol '$s' not predeclared in incr␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 137 (compilers/pct/src/PCT/HLLCompiler.pir:101)␤»
TimToady alpha: sub incr { state $s = 0; say $s++ }; incr; incr; incr; incr; 17:09
p6eval alpha 30e0ed: OUTPUT«0␤1␤2␤3␤»
TimToady you'll note also that the initializer only runs once
oh, chromatic said that
chromatic C'mon, TimToady. Get on the trolley! 17:10
chromatic checks off another life goal
TimToady I don't think my trolley connects with your trolley yet...
chromatic By airplane it does.
lue and obviously, state is NYI in rakudo...
TimToady chromatic++ and I can't agree on state either :)
lue If you need help, my TARDIS is just a ways away. It can help connect your trolleys 17:11
TimToady I thought TARDIS could only go backward in time, not forward (well, not forward faster than anyone else goes forward)
huf i thought it can do anything the writers want it to do 17:12
TimToady it's probably the disagreement about state that prevents our trolleys from connecting...
lue where is my, our, has, and so on implemented in Rakudo? 17:13
TimToady I will admit that chromatic's trolley is probably a bit friendlier, Portland being all full of...er...Portlanders...and Silicon Valley being all full of...who knows what...
17:13 kidd left
TimToady lue: grep and friends are your friends too 17:14
17:14 holli joined
lue (It does go forward. The only thing the TARDIS can't do is blend in with its location (broken Chameleon unit). That's why it's always a blue '50s Police Box) 17:14
I did try grep, but it comes up with every single occurance of 'my'. (trying 'has') 17:15
TimToady I have no idea where anything is, and only a vague notion of when it is.
you probably want to look for <has> or :has or some such 17:16
17:16 Alias left
jnthn lue: Everything, looking for things that care about $*SCOPE will probably be more meaningful. 17:16
lue I found something in Grammar.pm, that's probably it.
17:16 Alias joined
jnthn *Everywhere, even. :-) 17:16
my/state/our etc generallly just set $*SCOPE and leave over things to worry about how to scope themselves.
lue alright, I'll (try) to (almost) fix the fact that state is NYI after getting some stuff done. 17:18
lue &
17:18 pausenclown left 17:20 rv2733 left 17:25 Trashlord left 17:26 Trashlord joined 17:29 iblechbot left 17:43 espadrine joined
pugssvn r30200 | lwall++ | [STD] be clearer about if() {...} and $x = given {...} errors 17:45
17:56 dakkar left
moritz_ jnthn: if you have some time, please look in the refactor_mob_generation branch of nqp-rx 17:58
jnthn: I'm having problems writing/calling a constructor - maybe you have some ideas on how to fix that
t/nqp/29-make.t ........... too few named arguments: no argument for required parameter 'orig'
current instr.: 'parrot;Regex;Match;new' pc 2603 (src/Regex/Match.pir:34)
18:00 astrojp joined
jnthn moritz_: Are the named paramters actually all required, or is it OK if some are missing? 18:02
moritz_: Note that nameds don't default to optional in PIR
You have to add :optional as well 18:03
moritz_ jnthn: it's ok for them to be required...
jnthn: what I want is basically first create an empty object
on which you can call .new with all those named arguments to create a "real" match object 18:04
jnthn match = new ['Regex';'Match']
rong
moritz_ I thought so 18:05
jnthn match = get_hll_global ['Regex'], 'Match' should fetch the protoobject.
moritz_ ok
and then I can call .new on the protoobject?
jnthn yes 18:06
Just replace the rong with the rite and it might work. :-)
lue > ./perl6 -e "sub incr { state $s = 0; say $s++ }; incr; incr; incr; incr;" 18:07
Malformed state at line 1, near "= 0; say +"
ever so closer :)
moritz_ jnthn: even then I get the same errors... which suggests that it's not called from where I thought it was called 18:08
jnthn Ah.
:-/
[particle] start a trace
18:09 dukeleto joined
jnthn moritz_: Is the backtrace indicative at all? 18:09
[particle]: Last time I did that I won a free segfault. :-/
moritz_ called from Sub '_block11' pc 0 (EVAL_1:5)
called from Sub 'parrot;PCT;HLLCompiler;eval' pc -1 ((unknown file):-1)
jnthn Oh, ouch.
lue afk
jnthn That's...early.
Oh, maybe not.. 18:10
Hmm
moritz_ jnthn: ... it's called from the stage 0 compiler. sigh.
jnthn moritz_: Ah. :-/ 18:11
moritz_ doesn't seem to be the problem 18:13
actually I also used match = new ['Regex';'Match'] within the constructor itself
fail :(
[particle] ack 'new \[' <moritz's code> 18:14
moritz_ that's what i#ve used 18:15
[particle] :)
jnthn moritz_: The problem isn't new \[ though, it's things doing .'new' elsewhere, I guess. 18:17
alester Remember the -Q 18:24
If I can possibly help it, I avoid all the backslashin' 18:25
[particle] \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 18:26
i have plenty to spare.
moritz_ alester: I do use \Q quite often 18:27
alester not \Q, -Q
ack 'new [' -Q
is the same as
ack 'new \['
moritz_ erm, that's what I meant. But typing is hard :-)
18:28 Patterner left 18:36 cdarroch left 18:38 alfieANDfred joined, alfieANDfred left, cdarroch joined, cdarroch left, cdarroch joined 18:39 clintongormley joined, SmokeMachine left
alester I hope my fixin' up of the gc/ dir isn't pointless 18:41
18:44 lichtkind joined
lichtkind jnthn: o/ 18:45
jnthn o/ 18:46
Mozem ti pomoct? :-)
lichtkind jnthn: ještě ne diky 18:47
jnthn Phew. :-) 18:48
lichtkind jnthn: slovak is also hard to me :9
jnthn: but i wouldnt exlude that because i want to master now special blocks and parameter traits 18:49
jnthn Yes, your Czech response did parse after throwing away the j and wondering what the mekcen was doing over the last e. :-)
lichtkind: Ooh, I know a little bit about traits. :-) 18:50
lichtkind: I need to go eat soon though, but I'm around most of the evening. :-)
lichtkind jnthn: i also needed second to get that Mozem is weird form of mužem :9 18:53
i think first i will check if all www.perlfoundation.org/perl6/index....ure_traits are in index A 18:54
jnthn lichtkind: It's možem if I'd typed it properly. :-) 18:55
lichtkind jnthn: and hej all my 3 talks were accepted, that mean real work since all are new :) :( :)
jnthn lichtkind: Ooh, where at?
German Perl Workshop?
lichtkind yes 18:56
jnthn Cool
lichtkind you will be there?
pisa i submitted put i seemed to be first :)
jnthn lichtkind: Don't think I can make it to GPW. 18:57
Already trying to do Nordic and French and maybe Ukrainian...
18:58 payload joined 18:59 SmokeMachine joined
lichtkind jnthn: i wantent attent the letvian, but hm i .. where is nordic this year? 19:02
moritz_ iceland 19:03
jnthn It's gonna be cool. 19:04
OK, dinner time! \o/
bbiab
19:04 payload left
moritz_ rakudo: say 0.9 * 2**20 19:17
p6eval rakudo db0f85: OUTPUT«943718.4␤»
19:19 _jaldhar joined 19:20 jaldhar left 19:30 vapace joined
dalek kudo: 9a4cabb | chromatic++ | src/ (2 files):
[ops] Moved P6LowLevelSig initialization to the PMC out of allocate_signature
19:30
19:30 ilogger2 joined 19:32 Gothmog_ joined, pyrimidine joined
chromatic can't figure out how to rebuild Rakudo's C components with debugging symbols. 19:35
19:36 ShaneC joined
lue and so, I bid you adieu for a few days 19:44
19:54 pmurias joined
pugssvn r30201 | lwall++ | [Cursor] win back some speed by letting cursor_xact cheat on immutability 19:57
moritz_ Moose 1.0 has been uploaded to cpan 19:58
stevan++
jnthn chromatic: That's odd...must be something platform specific. I get them. 20:01
TimToady yes, stevan++, but STD's most time consuming routine is currently Try::Tiny::try, pulled in by Moose, alas
PerlJam TimToady: patches welcome! ;) 20:02
TimToady I just want to complain.
I'm no good at Perl 5 internals... 20:03
sjohnson heheh
that makes two of us
moritz_ chromatic: your last patch made two test in t/spec/S12-attributes/instance.t fail 20:04
jnthn moritz_: It didn't. 20:06
moritz_: It's a "if you get lucky it passes" one.
moritz_: I'll fix it soon. 20:07
moritz_ oh
then sorry for the noise
jnthn me-- to blame for that.
moritz_ is it... attribs are stored in hashes?
jnthn No, no worries...it does come and go.
Yes, it's that.
moritz_ we've had that in alpha too
jnthn Well
The silly thing is
I worked out how to handle it fine in the metamodel
But this time managed to screw it up in the compilation stage. :-/ 20:08
Easy fix, anyways.
20:09 dukeleto joined
jnthn chromatic: Huh...how long have I been missing init_int for?! 20:10
chromatic: Anyway, nice patch...I only knew of the init_pmc and thought init_str had got deprecated. Maybe I'm hazy though.
chromatic A couple of weeks.
20:10 hirschnase joined
jnthn chromatic: Oh. 20:10
chromatic: I don't feel bad for missing it when I wrote that code a few months ago then. ;-) 20:11
chromatic Nope, it's definitely an improvement.
jnthn Yeah, it's much nicer way to do it.
20:11 perlpilot joined 20:12 hirschnase left 20:14 dukeleto left, pugssvn joined, mberends joined
perlpilot feather is all kinds of painful today 20:15
$ uptime
20:14:20 up 1 day, 5:04, 3 users, load average: 40.78, 33.76, 18.72
jnthn I think that counts as "load above average" 20:16
20:17 dukeleto joined, PerlJam joined
mathw evening 20:22
loadavg 40 is not good!
20:23 dukeleto left
perlpilot I expect PerlJam to disappear soon too 20:23
20:24 dukeleto joined
perlpilot is having trouble talking to that particular IRC instance 20:24
20:28 pugssvn left 20:30 pugssvn joined 20:40 colomon left
lichtkind what difference between CATCH and CONTROL? 20:40
moritz_ CONTROL is for control exceptions 20:41
and CATCH for all other exceptions
jnthn As far as I grok it, CONTROL catches control exceptions (like next/last/return etc) where as CATCH catches the others.
Gah, beaten. :-)
lichtkind thanks both 20:43
20:46 colomon joined 20:47 ive joined, pmurias left 20:50 colomon_ joined, colomon left, colomon_ is now known as colomon 20:52 dalek joined
lichtkind theses special blocks have same namespace as surrpounding block right? 20:54
20:55 ash__ joined
moritz_ they are not visible inside a namespace 20:55
but since in Perl 6 almost all lookups are either lexical or dynamic (and not namespace), that doesn't really matter 20:56
perlpilot lichtkind: they exist more in a when than a where :)
ash__ does anyone know if irc.perl.org listens on any non-standard irc ports? like how freenode listens on 8001
BinGOs are you on irc.perl.org? 20:57
type /stats P
lichtkind moritz_: but in other words if i defcla an var in BEGIN block its not known in sourrounding block? 20:58
ash__ BinGOs: i am not on irc.perl.org, its blocked on my campus for some reason
i think its the port thats blocked
perlpilot ash__: you don't have a feather account? 21:00
moritz_ lichtkind: correct
ash__ perlpilot: umm... i don't think i have one...
perlpilot (not that it'd help you today with feather's aperiodic heightened load average)
moritz_ lichtkind: but you can use BEGIN as a statement prefix
std: sub a { BEGIN my $x = 3 * 3; ...; $x } 21:01
p6eval std 30201: OUTPUT«ok 00:01 108m␤»
BinGOs ash__: scsys.co.uk:8002/41324
lichtkind moritz_: great now i understand what was explained there with expression
BinGOs should be the same on all the servers 21:02
jnthn moritz_: Note that mixing BEGIN and lexicals that are meant to outlast the BEGIN ain't likely to end well ATM. 21:04
moritz_ rakudo: BEGIN say 3 21:05
p6eval rakudo db0f85: OUTPUT«3␤»
moritz_ jnthn: I didn't even know that BEGIN as a statement prefix worked :-)
rakudo: my $x = 3; BEGIN $x = 5; say $x
p6eval rakudo db0f85: OUTPUT«Symbol '$x' not predeclared in <anonymous>␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 137 (compilers/pct/src/PCT/HLLCompiler.pir:101)␤»
moritz_ ah, that's what you meant :-)
jnthn yeah 21:06
Things like my $x = BEGIN time; work though
rakudo: sleep 2; say time; say BEGIN time; 21:07
p6eval rakudo db0f85: OUTPUT«1269550347.5115␤1269550345.24536␤»
moritz_ rakudo: say 1269550345.24536 - 1269550347.5115
p6eval rakudo db0f85: OUTPUT«-2.26614␤»
jnthn Heh. Since it computes it at the appropriate point during the parse, you can use it as a way to see how long it takes to get from the parse at that point to execution. ;-) 21:08
21:13 _jaldhar joined 21:17 hicx174 joined 21:22 holli_ joined, eternaleye joined 21:26 Trashlord joined 21:27 Trashlord is now known as Guest88978 21:28 wknight8111 joined, eternaleye left 21:30 eternaleye joined 21:31 colomon left 21:33 pyrimidine left 21:43 payload joined
lichtkind jnthn: thanks i use a quote from you for docs 21:44
jnthn uh oh, I hope it wasn't one where I said something silly.
lichtkind moritz_: i used something from you too :) 21:45
jnthn: no its exactly "(like next/last/return etc)"
ecplaining control
jnthn oh, that's not so incriminating. :-)
21:49 ignacio_ joined, payload left 21:54 pmurias joined 21:58 perlpilot left, iblechbot joined
chromatic db9c0ea is a bit risky, but it seems to help. 22:00
If it's not right, jnthn should know enough to make it right.
22:02 sundar joined
jnthn ->constraints? 22:04
I thought I'd removed that. :-/
Checking.
ah, no, it still lives on. 22:05
dalek kudo: db9c0ea | chromatic++ | src/pmc/perl6multisub.pmc:
[PMC] Fixed a memory leak in Perl6MultiSub of candidate constraints and types.
22:06
kudo: 4b7dbf3 | chromatic++ | src/pmc/perl6multisub.pmc:
[PMC] Tidied code in Perl6MultiSub PMC; no functional changes.
jnthn chromatic: It looks sane. 22:10
I think.
The candidate sorter isn't the simplest bit of code. :-)
mberends in rakudo/build/Makefile.in, is the order of module names in CORE_SOURCES significant? I'd like to re-order them in the split-gen-settings-2 branch. 22:18
moritz_ mberends: yes, it is significant (at least right now) 22:19
jnthn Yes, it is.
For example, whatever you do, make sure traits.pm stays first.
moritz_ mberends: because they are concatenated, and some modules rely on type names being known
jnthn It defines is export 22:20
If you don't have that first, then probably no exports work. ;-)
And what moritz_++ said.
moritz_ -> bed 22:21
22:21 nihiliad joined
moritz_ good $rest_of_waking_time and then sleep to all UTC-ish channel inhabitants :-) 22:21
mberends thanks moritz_, good UTC-night 22:22
jnthn o/ moritz_ :-) 22:23
mberends compiling each one separately, there are lots of patches to go in such as stub classes and use MONKEY_TYPING. I wonder how their PIR will shape up when they are all concatenated.
jnthn mberends: I'm not sure.
use MONKEY_TYPING has no PIR side-effects.
mberends I can but try
jnthn It's purely parse-time
mberends: You're probably discovering now why it's not such a trivial task, anyways. 22:24
mberends yes. hmm, Seq.pm compiled separately says Missing block at line 18 :-(
the block is probably not missing 22:25
lichtkind mberends: cheers
mberends hi lichtkind
lichtkind mberends: there is massive action going on need help :) 22:28
mberends lichtkind: what massive action?
lichtkind in tpf in pcde wiki 22:29
and pc.de wiki
jnthn
.oO( There's massive action in Rakudo too...oh wait, that's actions.pm )
22:32
22:37 kfo_ joined 22:38 pmurias left 22:42 kfo left, kfo_ is now known as kfo 22:45 ignacio_ left 22:47 riffraff joined
sundar Hi... I'm trying to learn Perl6 and do some Project Euler problems with it... Is Moritz's "Perl 5 to 6" the best current documentation? 22:48
lichtkind jnthn: :) 22:49
jnthn: is CATCH also executed when next is called?
mberends sundar: it's current, so begin there, but then continue reading more from perl6.org 22:50
lichtkind sundar: try the tablets bit there are still very incomplete 22:51
sundar lichtkind: What are the "tablets"?
22:52 nihiliad left
lichtkind sundar: www.perlfoundation.org/perl6/index...._6_tablets 22:52
the indexes are comprehensive 22:53
the rest in construction
pugssvn r30202 | lwall++ | [Cursor] no need to keep xact pointer for bound submatches 22:59
sundar lichtkind: whoa, the index is very useful indeed. thanks.. 23:00
snarkyboojum sundar: depending on your programming expertise, the Perl 6 advent calendar has some fantastic info in it perl6advent.wordpress.com/2009/12/0...t-calendar 23:01
lichtkind sundar: all 5 inecies :)
23:02 ash__ left
snarkyboojum sundar: there's also quite a few Perl 6 examples out there, check out github.com/perl6/perl6-examples 23:06
TimToady sundar: and pretty much all the links you follow from perl6.org will be useful on some level or other. 23:10
the "best" current documentation in the sense of completeness is the synopses. 23:11
but it's not terribly well organized, and it's reference, not tutorial
23:12 colomon joined, iblechbot left, colomon_ joined
sjohnson hows it going colomon 23:13
colomon_ checking in from Ambercon!
sundar snarkyboojum: great, that even has a list of Euler problems, which was what I set out to write.
TimToady sundar: perhaps most importantly, there are some slightly bitrotted Project Euler problems already done in svn.pugscode.org/pugs/examples/euler
after you've tried coming up with your own solutions, you could compare to the old ones, and if yours works better, replace the ones that are there 23:14
jnthn colomon_: Having fun? :-)
TimToady we can give you a pugs repo commit bit if you like
colomon_ yes! 23:15
lots of old friends here.
23:15 ive left
TimToady shadow walking, are you? 23:15
colomon_ TimToady: not yet, but soon... ;)
23:16 colomon left 23:17 colomon_ is now known as colomon
sjohnson statistically speaking, #perl6 is the friendliest place on freenode today 23:17
colomon has killed off the impostor...
sundar TimToady: Thanks.. I found some solutions at github.com/perl6/perl6-examples/tre...ter/euler/ too, and to me they appear to teach more of the power of Perl6 and also that 'timtoady'.. :) 23:19
23:20 masak joined
masak ahoy, landlubbers! 23:20
phenny masak: 17:03Z <Su-Shee> tell masak I just remembered the foss exception of the rule: the arduino/maker/wearables community.
jnthn masak: ahej!
masak hm. I've heard about that exception. 23:21
it's an interesting one.
jnthn: the night shift begins!
jnthn \o/
jnthn fetches a beer
masak [backlogging] "a telegraph with no cat"? 23:22
23:23 ash_ joined
masak std: grammar G { regex foo { :has $!bar; } } 23:24
p6eval std 30201: OUTPUT«===SORRY!===␤Semicolon must be quoted at /tmp/Haq22rH48R line 1:␤------> grammar G { regex foo { :has $!bar;⏏ } }␤FAILED 00:01 108m␤»
masak hm, 'has' probably isn't a scope declarator :) 23:25
is it possible to emulate loops with macros?
I mean, without the macro substitutor thingy itself looping indefinitely.
jnthn has is a cope declarator.
masak what's a cope? 23:26
jnthn A scope with a missing s.
masak :)
jnthn :-P
bkeeler ello ello
masak checks what S05 has to say about scope declarators in regexes
bkeeler: \o
jnthn masak: I doubt has makes that much sense as a scope delcarator in a regex though 23:27
Just as it doesn't make much sense inside a method either.
(Heck knows what happens if you try it... :-))
masak jnthn: well, I wanted to see if STD could parse it.
jnthn Aye
masak jnthn: S05:544 says it should be OK.
jnthn Syntacticly or semanticly?
masak syntactically.
bkeeler A regex is a method in that context. Would you use has in a method? 23:28
jnthn Ah
bkeeler: I hope not.
:-)
masak no, I wouldn't.
jnthn At least, I've never seen it done.
masak it doesn't belong in that scope.
jnthn masak: I suspect it may be OK syntactically, but should fail a semantic check.
masak but jnthn said it's a scope declarator, so it should be allowed syntactically.
jnthn Yes, I'm a bit surprised on that front.
Maybe it's just an LTA message.
masak no, I think STD shouldn't fail.
provided that 'has' *is* a scope declarator. 23:29
I mean, it has traits of not being one. 23:30
23:30 riffraff left
bkeeler Well, when I was doing the grammars, I pretty much copied what STD had 23:31
jnthn masak: It's parsed like this:
token mod_internal:sym<:my>
In STD
Not using scope_declarator
masak ok.
jnthn here it is in full: 23:32
token mod_internal:sym<:my> { ':' <?before ['my'|'state'|'our'|'anon'|'constant'|'temp'|'let'] \s > [:lang($¢.cursor_fresh(%*LANG<MAIN>)) <statement> <eat_terminator> ] }
bkeeler Hmm, OK I guess I didn't copy that
jnthn bkeeler: We probably only know what to do with my right now anyway, tbh. 23:33
bkeeler Hmm, company it seems 23:36
Was a short rakudo hacking session :/
bbl 23:37
jnthn tries to summon energy to fix that embarassing attributes fail. 23:39
23:39 cognominal left 23:40 cognominal joined
masak pugs: class A {}; class B { trusts A } 23:40
p6eval pugs: ( no output )
masak pugs: class A { has $!foo }; class B { trusts A; method bar(A $a) { say $a!foo } }; B.new.bar(A.new) 23:41
p6eval pugs: OUTPUT«␤»
23:41 nihiliad joined
masak pugs: class A { has $!foo }; class B { trusts A; method bar(A $a) { say $a!foo } }; B.new.bar(A.new(:bar(42))) 23:42
p6eval pugs: OUTPUT«␤»
masak hm.
23:43 Alias joined
TimToady you've got your trusts in the wrong class 23:47
the class defining the private variable is the one doing the trusting
jnthn never quite figured out how trusts should be implemented. 23:48
TimToady also, your calling syntax is wrong according to S12:1314
masak oh wow, am I wrong tonight. 23:49
masak checks
jnthn $a!foo would call a private method.
jnthn forgets the syntax for getting at a private attribute. 23:50
m6locks through a method? 23:52
at least, that's the kosher way
masak indeed. but we're trying to do it with trust. :)
jnthn Yes, but has $!a doesn't imply a method. :-)
cognominal ! instead of . ? 23:53
23:54 fda314925 joined
masak I sense a degree of confusion in this discussion :P 23:54
m6locks haha
cognominal compiling rakudo takes about an hour on my mac 2Go. Things have gone wrong the last few weeks. :(
m6locks how about adding a dot before it
liek .$!a 23:55
masak cognominal: yes. it's a Parrot memory problem. it's being worked on.
ash_ cognominal: a whole hour? dang.... i don't think mines that bad, but i might not be paying close attenntion
cognominal ho, I a twit from chromatic about that 23:56
I don't mind the compilation length but being unable to do anything with my mac in the mean time. 23:57
masak colomon: you might want to limit virtual memory use. I'm on a Mac, and I do that.
er, cognominal. sorry :/
colomon no worries. ;)
m6locks oh yeah and nice is a nice tool also 23:58
setting low priority
cognominal masak, that would trigger parrot garbage collection?
that would be better than swapping :)
masak cognominal: seems to for me.
ash_ how do you limit the virtual memory? 23:59
i haven't ever done that before on a mac