»ö« 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! | tinyurl.com/p6contest
Set by moritz_ on 28 December 2010.
Util When it works with ..^ , I will show it off to Atlanta.pm; "Infinity minus one" is a cool concept! (Yes, I know it is really "Whatever", but they will just see it as an infinite list) 00:01
masak in this case, it's more like "the length (of the thing indexed) minus one"... :)
of course, if the array is infinite... :)
Util Yes, and I love how the use of * there devolves/dovetails to the new [*-1] manner of reverse indexing. 00:03
(in re: in this case... , not "array is infinite") I am a slow typist
lue hello again #perl6 o/ 00:07
jnthn o/ lue 00:08
masak Util: actually, it was [*-1] that led to the Whatever star having a role as an autocurry device.
lue considers continuing learning C++ today, and decides Bool::True 00:09
masak lue: will you be writing some C++ code? 00:10
Util masak: Yes, historically true. I am preoccupied by elements of the Perl 6 design that "dovetail" (for a future blog post); I did not mean to imply causality. 00:11
lue It's what my GCC frontend project will likely be in, so I decided I may wish to learn it :) rdstar.wordpress.com/2011/01/22/so...p6-on-gcc/
masak lue: yep, I saw that one. 00:12
lue: does that mean you'll be writing a Perl 6 parser engine in C++?
s/parser/grammar/ 00:13
Util: sounds like a nice post.
lue If all goes well, yes. What the project sets out to do is turn Perl 6 code into the AST that GCC uses to compile to various architectures. 00:15
00:16 VXZ left
masak lue: making something the size of STD in C++ is quite a big undertaking. I'd recommend trying to interface with STD if possible. 00:16
lue I'll cheat^W utilize as much as I can :D 00:19
masak yes. and do consider it "utilizing" rather than "cheating" :) 00:21
jnthn is utilizing Parrot's nqp-rx to help on the way to a bootstrapped nqpclr :) 00:22
It's easier to only have to invent one piece at a time. :)
masak lue: Andrew Shitov is the only one I know who has written a Perl 6 parser in C++, using a generics framework 'boost' that contains a parser library. he did a very-very small subset of STD. 00:23
jnthn And it was bloody fast. :) 00:24
masak lue: but the subset he did, he did all the way (without using gcc). he had Perl 6 code translated to C++, and then executed real fast.
lue: his code is still out there somewhere.
lue: talks.shitov.ru/ppt/bapm2009/faster-perl6-en.pdf 00:25
'night, #perl6.
jnthn heh, I saw taht talk
o/ masak
00:25 masak left
lue rakudo: sub is_prime($n) { for 2 .. $n - 1 -> $d { return 0 unless $n % $d; }; return 1; }; say is_prime(15511); 00:32
00:32 cafesofie joined
p6eval rakudo 388eed: OUTPUT«1␤» 00:32
lue it's gotten a *little* faster since the talk [microscopically faster, but still :)] 00:33
00:42 snearch left
jnthn Enough for today. I *think* I'm on track to have nqp-rx grammars using 6model tomorrow. With a bit of luck, I'll even be able to push that change into the bootstrap. 00:44
Tene :D 00:45
jnthn: how much do you have working on CLR and JVM these days?
00:45 molaf__ joined
jnthn Tene: Best way I can think to answer is that the CLR version passes everyting in github.com/jnthn/6model/tree/master/t/nqp 00:46
Tene: JVM version is way further behind in terms of test coverage, but has potential to catch up fast. 00:47
Tene 'k, thanks :)
jnthn The JVM version managed for the first time to init the meta-model and a mini setting and say hello world a week ago. :) 00:48
mberends++ for that :)
00:49 molaf_ left
lue jnthn: Is my understanding of 6model correct, in that I could potentially use it in my P6-for-GCC project, or is my understanding way off on what it is? 00:51
The way I understand it, 6model is a sort of interface to use in creating a Perl 6 compiler. 00:52
jnthn lue: 6model is a meta-model design 00:53
lue: That is, it is a way to handle the various object oriented functionality that Perl 6 needs.
lue: It's implemented so far in varying states of completeness on Parrot, the CLR and JVM. 00:54
So in theory it's fairly portable. In practice, how hard it is to port it depends on what your target has to offer.
lue So it makes the OOP aspects of P6 easier to implement? [ I'm only making sure I'm getting it ] 00:56
jnthn Well, only after you've implemented it. :) 00:57
sorear Tene: I have a complete STD parser running on the CLR 00:58
jnthn It gives you a design that I believe will cover the stuff Perl 6 needs in terms of OO.
01:02 sji left
dalek ecza: 3e85a71 | sorear++ | / (3 files):
Operator handling unification (postfix)
01:02
jnthn -> sleep &
lue Would it by any chance replace src/metamodel ? 01:03
night jnthn! o/
01:13 rgrau` left 01:24 rgrau left, MayDaniel left 01:45 hudnix joined
dalek ecza: bee6460 | sorear++ | / (3 files):
Operator handling unification (prefix)
01:45
02:00 whiteknight left 02:03 whiteknight joined 02:18 lue left 02:31 cafesofie left 02:40 andre__ joined, andre__ is now known as Guest32641, klunky left
dalek ecza: 63e2b4c | sorear++ | src/ (2 files):
Operator handling unification (infix)
02:43
02:45 cafesofie joined 02:49 whiteknight left 03:08 hudnix left
sorear rakudo: my @foo; say @foo[0].PARROT 03:10
p6eval rakudo 388eed: OUTPUT«Perl6Scalar->␤»
sorear rakudo: my @foo = 5; say @foo[0].PARROT
p6eval rakudo 388eed: OUTPUT«Perl6Scalar->Int␤»
03:20 VXZ joined 03:47 cafesofie left 03:57 cafesofie joined 04:01 felliott left, cafesofie left 04:02 cafesofie joined 04:23 Su-Shee_ joined, drbean joined 04:27 Su-Shee left 04:31 envi joined 04:32 xinming left 04:34 xinming joined 04:35 cafesofie left, cafesofie joined 05:05 solarion left 05:10 solarion joined 05:43 Patterner left 05:45 Psyche^ joined, Psyche^ is now known as Patterner 05:51 rod_ joined 06:27 lue joined
lue hello! o/ 06:27
rod_ hi...0/ 06:28
06:29 cafesofie left 06:32 cafesofie joined 06:36 am0c joined 06:40 masak joined, orafu left 06:41 orafu joined 06:42 drbean left, cafesofie left
lue buubot: seen bkeeler 06:43
aloha: seen bkeeler
aloha lue: Sorry, I haven't seen bkeeler.
masak morning, #perl6. 06:44
lue hello, masak! o/ 06:45
how long does STD take to compile on the average computer? 06:47
TimToady it takes about 30 seconds on a fast computer 06:48
lue I'm going to guess 30 minutes for me :D 06:50
diakopter lue: you're a fast/60 computer?
lue
.oO(feather has the stuff needed for STD on a <11-year-old server, right?)
I have a processor that goes... oh I can't remember, just a second. (I know it's under 1GHz) 06:51
06:53 cafesofie joined
lue hears faint cries from the masses to get a new computer, and ponders stealing a better one from his future self. 06:53
sorear GHz is far from everything 06:55
I suspect STD is actually cache-bound on most hardware
06:55 rod_ left
sorear it's approximately 20 times faster on diakopter's Nemerle than my Northwood 06:56
lue I have the feeling RAM ought be an issue though. (384MiB)
06:56 mica_ella_tuazon joined
masak mica_ella_tuazon! \o/ 06:57
lue: can you even compile Rakudo with that?
lue Hey, it didn't take that long! I guess either a) compilation of STD has gotten faster, or b) I was waay to impatient the other times I've tried compiling.
mica_ella_tuazon \o/.......friend...
lue Last time I tried compiling Rakudo was way back in Spring/Early Summer 2010, when I first came here. I've heard rumors it wouldn't be as painful to compile on my comp nowadays. 06:58
.oO(Ah, I remember all those times my computer would commit instantaneous suicide in the middle of core.pm > core.pir)
06:59
sorear you could always join my cabal... I know for a fact it builds in 384, that's what I've got 07:03
sorear is trying to figure out what the Parcel resulting from zip(@a; @b) looks like
masak sorear: when you do, let us know... 07:08
I wouldn't rule out some sludge in the form of wishful thinking around the multidim ;
diakopter lolz at 'Nemerle' 07:10
I suspect you mean Nehalem 07:11
lue what's compiling after the line `Compiled ./Cursor.pm6' ? 07:12
07:16 ram_ joined
ram_ hello all 07:16
masak ram_: hi! 07:17
ram_: lue needs more of you. :P
ram_ ok..
I am from India..
masak welcome, ram_ from India!
ram_ thansk masak
thanks* 07:18
masak in here, Perl 6 already happened :) and it's great.
ram_ where can i download
masak perl6.org
ram_ nice
whats new
masak ram_: Rakudo is the most feature-rich Perl 6, but Niecza is coming strong, and is faster. 07:19
ram_ whats rakudo
why differebnt names
masak rakudo: say "hi, ram_"
p6eval rakudo 388eed: OUTPUT«hi, ram_␤» 07:20
masak niecza: say "hi from me too, ram_"
p6eval niecza v1-184-g63e2b4c: OUTPUT«hi from me too, ram_␤»
masak ram_: different names because unlike Perl 5, there's a specification and many implementations.
ram_ wow.. nice 07:21
ok whats one thing noticebaly changed in perl6 07:22
masak ah, from Perl 5?
well, we have sub signatures.
ram_ ok 07:23
masak rakudo: say foo { my ($a, $b) = @_; say $b }; foo(1, 2, 3) # Perl 5 style
p6eval rakudo 388eed: OUTPUT«Could not find sub &foo␤ in main program body at line 22:/tmp/AryXGcOotd␤»
masak er.
rakudo: sub foo { my ($a, $b) = @_; say $b }; foo(1, 2, 3) # Perl 5 style
p6eval rakudo 388eed: OUTPUT«2␤»
masak like that.
but now...
sorear diakopter: Yes, I do.
masak rakudo: sub foo($a, $b, $) { say $b }; foo(1, 2, 3)
p6eval rakudo 388eed: OUTPUT«2␤» 07:24
masak ram_: shorter, and more informative.
ram_ oh... that was good
ypu guys are amazing
sorear masak: there are several interlocking bits of sludge
ram_ perl6 seems to be coolest thing to learn
masak ram_: for me Perl 6 helped me understand Perl 5 better. 07:25
ram_ oh ya
thata a plus
masak ram_: Perl 5 is better if you want things done above all else. Perl 6 is better if you want understanding too. :)
sorear masak: multidim array subscripts are connected to the fine structure of Parcels, which are connected to the nature of list assignment, the behavior of one-element slices, polycontext 'return', and the precise handling of 'is rw' on subs
masak: I suspect both Rakudo and Niecza get all of those things wrong, and I suspect they cannot be improved one at a time 07:26
masak sorear: nod.
sorear: this takes a broadside approach of some kind.
diakopter [OT trivia]: in what movie does Hayden Christiansen play 'Luke'?
er, Hayden Christensen
lue aaaah, my computer is getting slower by the second (at least I know STD's compiling) 07:27
07:28 bacek joined
sorear starts to write, sub zipop($fn) { sub (|@lists) { ... 07:29
07:30 ram_ left
diakopter o_O 07:31
sorear basically I don't know how to effectively write a "list infix" operator in Perl 6 07:33
except for secret primitives 07:34
07:34 lue left 07:38 lue joined
lue And that's what happens when the compilation process get so memory-consuming it takes a few minutes to get to typing ^C, and doing *that* is memory-consuming enough that my IRC client couldn't stay connected to the internet. 07:40
*sigh* :) 07:41
sorear lue: ulimit is your friend. :)
lue: also, try my compiler - I have binaries!
masak sorear++ 07:42
lue ?(your compiler == niecza)
sorear Bool::True 07:45
07:45 kfo_ joined
lue Actually, I would try compiling STD on the server I do all my P6 work on, but cpan won't let me install the dependencies w/o root 07:46
sorear use cpanm instead
it uses about 1/20 the memory, is 20 times faster, and doesn't need root
what are you waiting for?
masak cpanm++ 07:47
lue catapults over several Under Construction signs left behind during the Geocities takedown to find cpanm 07:48
07:48 kfo left
apejens cpanminus 07:50
dalek odel: 8df8c58 | (Martin Berends)++ | java/ (6 files):
[java/compiler] replacing JST::Temp with JST::Local about halfway done
07:51
sorear lue: Why do you want to compile STD using the outdated Perl5 harness anyway? :p 07:52
lue [with laughing sobs] I can't win. It won't let me install to /usr/local/bin , and there doesn't appear to be any (easy) way to change it. 07:53
apejens there is
-l,--local-lib Specify the install base to install modules
lue sorear: I actually just wanted to see if I could possibly interface with it in my P6-on-GCC project, when I get started on it.
08:05 drbean joined 08:09 GinoMan joined 08:23 lamstyle joined 08:27 kaare_ joined
dalek odel: 25e6eed | (Martin Berends)++ | java/compiler/ (2 files):
[java/compiler] completed the conversion from JST::Temp to JST::Local
08:42
lue goodnight Camelia-land! o/ 08:53
moritz_ g'night lue
masak sleep well, lue. dream of more RAM.
08:55 cafesofie left 09:17 cafesofie joined 09:27 justatheory left 09:28 drbean left 09:42 amkrankruleuen joined 09:49 rgrau joined
dalek odel: 65877f0 | (Martin Berends)++ | java/compiler/JST2Java.pm:
[java/compiler] update codegen for JST:: New and If nodes
09:49
09:57 cafesofie left 09:58 cogno joined 10:01 lopaway left 10:02 Su-Shee_ is now known as Su-Shee 10:08 karupanerura joined 10:13 cogno left
dalek odel: 1fd57eb | (Martin Berends)++ | java/compiler/JST2Java.pm:
[java/compiler/JST2Java.pm] update codegen for JST::Literal node
10:31
10:43 drbean joined
dalek odel: ca389d4 | (Martin Berends)++ | java/compiler/JST2Java.pm:
[java/compiler/JST2Java.pm] update codegen for JST::ArrayLiteral
10:44
10:53 kalkin- left
moritz_ regarding masak's coding contest... I thought arnsholt had submitted some solutions too? 10:54
I don't see any on the overview page 10:55
arnsholt: or did you just write and not submit them? 10:56
masak: and I find it weird that you discuss correctness under the the heading "Algorithmic efficiency" 10:58
11:02 pmurias joined
pmurias lue: re p6-on-gcc you are aware that's a project that has little chance of going anywere, targeting the GCC is almost the same as targeting C, and the hardest part is not emitting code but implementing the runtime 11:04
? 11:06
11:07 mica_ella_tuazon left 11:09 cogno joined
dalek odel: 8b8eca6 | (Martin Berends)++ | java/compiler/PAST2JSTCompiler.pm:
[java/compiler/PAST2JSTCompiler.pm] port diverse bits from dotnet/
11:25
11:34 whiteknight joined 11:39 coldhead left 11:40 cogno left, cogno joined
moritz_ phenny: tell masak that the p2 review is neither in the archive nor on the front page of your blog. Pity. 11:53
phenny moritz_: I'll pass that on when masak is around. 11:54
11:55 dual left 11:56 Guest32641 left, klunky joined 12:04 xinming left, xinming joined, cogno left
dalek odel: 41ef0a1 | (Martin Berends)++ | java/compiler/Grammar.pm:
[java/compiler/Grammar.pm] sync with dotnet/ counterpart. They are identical, so there is a good case for having a single instance of this file in common/.
12:07
12:08 rgrau left 12:09 klunky left
mberends pmurias: +1 about the GCC and runtime, but think about how much fun lue++ can have finding out why ;) 12:14
12:15 am0c left
pmurias it can be intresting as an exercise but from my vague recollection of the GCC it isn't very friendly nor fun 12:16
s/GCC/GCC ast/
mberends :) 12:18
12:34 x3nU joined
x3nU hi 12:34
jnthn morning, #perl6 12:36
12:36 x3nU left
moritz_ mornin' jnthn 12:36
12:37 risou joined
jnthn mberends: Wow! Lots of hackin' 12:41
12:41 dual joined
mberends jnthn: yes, even right now :) 12:42
jnthn mberends: :D
mberends no additional tests passed yet, which might have been your next question ;)
jnthn (shared grammar) Reasonable idea. 12:43
I think actions too should be equally tractable.
mberends Actions.pm is over 99% the same, only the java version needs some bootstrapping patches atm. 12:44
12:44 kaare_ left
mberends (currently checking diffs on that file) 12:44
masak morrn', jnthn.
phenny masak: 11:54Z <moritz_> tell masak that the p2 review is neither in the archive nor on the front page of your blog. Pity.
12:45 kaare_ joined
masak moritz_: will investigate. 12:45
jnthn o/ masak 12:46
mberends: I'm guessing the P6Object.pm bits? 12:52
mberends jnthn: yes 12:53
jnthn OK, that's just loading an extra module rather than bootstrappy. :) 12:54
12:56 pmurias left
dalek odel: b40d504 | (Martin Berends)++ | java/compiler/Actions.pm:
[java/compiler/Actions.pm] almost synced with dotnet/ counterpart, missing just not loading core libraries because P6Objects is not ready.
12:59
p-rx/nom: e282329 | jonathan++ | src/HLL/Grammar.pm:
Get two of the cheats into HLL::Grammar proper. This first one adds .O (just a wrapper around the PIR) and the second translates .panic into NQP.
13:08
flussence ooh, the Terminus font can display that funny unicode newline thing that p6eval uses, now. 13:10
13:19 MayDaniel joined 13:28 MayDaniel left 13:35 klunky joined 13:41 felliott joined 13:42 rgrau joined 13:43 am0c joined, rhizo joined
masak moritz_: p2 should now be back; thanks for the heads-up. the dates for the two were identical, and p2 must've disappeared in a .sort -- feels like there's a rakudobug to be had here... 13:47
13:48 cogno joined
masak rakudo: class A { has Int $.t }; say [A.new(:t(3)), A.new(:t(2)), A.new(:t(2)), A.new(:t(1))].sort( *.t ).elems 13:49
p6eval rakudo 388eed: OUTPUT«4␤»
masak but it's not as simple as that.
rakudo: class A { has Int $.t }; say ~[A.new(:t(3)), A.new(:t(2)), A.new(:t(2)), A.new(:t(1))].sort( *.t )>>.WHICH
p6eval rakudo 388eed: OUTPUT«269053600 269110728 269080160 269146544␤»
masak I'll get you, Bug. :) 13:50
13:58 cogno left 13:59 dju left 14:00 am0c left 14:02 dju joined 14:07 risou left
masak ah; no, for some reason I had decided to hash on the timestamp in psyde... :) no rakudobug. 14:07
14:08 JimmyZ joined
dalek p-rx/nom: 250d2a3 | jonathan++ | src/HLL.pir:
Re-shuffle include order so that for the earlier bootstrap stages the old cheats in HLL::Grammar take precedence.
14:09
p-rx/nom: a0f4265 | jonathan++ | src/HLL/Grammar.pm:
Add LANG, MARKER, MARKED. Partial ports to NQP, with some embedded PIR still.
jnthn masak: 1 blog post a day should be enough for anyone... :P 14:11
14:13 sji joined
masak jnthn: timestamp, not date. :) 14:15
Number One Sign that ISO-8601 was well-thought-out: sorting dates of that format is the same as sorting with infix:<leg>. 14:16
14:21 VXZ left 14:22 drbean left 14:44 cogno joined
dalek p-rx/nom: 583c7bf | jonathan++ | src/HLL/Grammar.pm:
Add EXPR and related, plus ternary, to HLL::Grammar.
14:46
14:54 stifynsemons joined
masak today's autopun: 15:02
rakudo: role FactoryJoke[Str $type] { method make { say "Help, I am trapped inside a $type factory!" } }; FactoryJoke["role"].make
p6eval rakudo 388eed: OUTPUT«Help, I am trapped inside a role factory!␤»
dalek p-rx/nom: 659a99f | jonathan++ | src/HLL/Grammar.pm:
Get the remaining HLL::Grammar cheats put into NQP bodies, and in one case just port entirely to PIR. In theory, this should be all that's needed to switch Grammar/Actions over to 6model. In reality, there's some bug(s) somewhere. :-(
jnthn masak: :P
15:07 cogno left 15:12 masak left, masak joined 15:19 MayDaniel joined
mberends roles on the floor 15:21
15:21 icwiener joined
masak :) 15:21
today's mini-challenge: write a datatype that works like download.oracle.com/javase/6/docs/a...eeSet.html -- elements are inserted in order, no duplicate elements, good access performance characteristics. try to make the API fit naturally among extant data types in Perl 6. 15:22
it's a self-sorting Set.
masak learns in the backlog that he's four years older than Tene 15:33
wouldn't have guessed that.
Tene orly? What would you have guessed? 15:34
masak about the same age, or you one or two years older.
then again, I never'd've successfully guessed sorear's age either :P
Tene Back when I was teaching linux classes, I often had students guess my age as at least ten years older than I really am. 15:35
masak do you have a long, thick beard?
Tene My girlfriend tends to be guessed at much younger than she really is, too. We sometimes get very dirty looks when we're out in public together. ;)
masak heh :) 15:36
jnthn Beards seem to be, like, $age += $a_bunch
Tene No, I keep my beard pretty short.
It grows far too fast and thick for shaving to actually do much, so I just don't bother until it starts annoying me. 15:37
masak :)
15:40 cogno joined 15:54 pmurias joined 15:59 cogno left 16:05 colomon left 16:10 envi left 16:32 starcoder left 16:36 starcoder joined 16:50 shi joined 16:51 sji left 16:59 JimmyZ left 17:03 nadim_ left 17:12 icwiener left 17:13 fhelmberger joined
dalek p-rx/nom: 3887fc5 | jonathan++ | src/ (3 files):
Switch grammars over to 6model. This includes changes to get protoregexes working again. Sadly, due to some other bug, much is still broken.
17:20
p-rx/nom: 28c49b3 | jonathan++ | src/Regex/Cursor2.pir:
Unbreak language transitioning - probably a copy-pasto.
p-rx/nom: 37173b1 | jonathan++ | src/HLL/Grammar.pm:
Fix a translate-o in HLL::Grammar.LANG.
p-rx/nom: 5763b4a | jonathan++ | t/nqp/45-smartmatch.t:
Skip some tests that are Parrot-dependent and could never work in a portable NQP.
p-rx/nom: 43af670 | jonathan++ | src/NQP/Actions.pm:
Avoid trying to emit meta-object calls for methods/regexes that are written outside of a package; cleans up the last issues with the tests and mostly unbreaks NQP setting compilation.
diakopter jnthn: did you see my note about pulling Util's pull requests for 6model 17:26
jnthn diakopter: No, I musta missed it. 17:27
diakopter: Did you already pull them or did you want me to? 17:28
17:30 thundergnat joined
jnthn diakopter: Can't find your note either. :( 17:31
dalek odel: 4081240 | util++ | / (2 files):
Fix typo.
17:32
odel: 8f6a5f6 | util++ | common/NQP/NQPSetting.pm:
Change Northern-Englander slang to friendlier spelling.
odel: a0fc0dd | util++ | dotnet/compiler/PAST2DNSTCompiler.pm:
Change stray tabs to spaces.
17:36 justatheory joined
diakopter jnthn: :) somewheres in the backlog; I shoulda stashed it in phenny 18:04
18:18 thundergnat left 18:29 cogno joined 18:36 nadim_ joined 18:41 cogno left 18:48 wamba joined 18:49 crythias joined 19:00 cogno joined
sorear good * #perl6 19:01
19:02 GinoMan left 19:03 colomon joined 19:04 GinoMan joined
colomon 's Internet is back! 19:05
colomon has just been told he needs to shovel some more coal. 19:06
19:07 pmurias left, shi left
moritz_ /o\ 19:07
19:09 cogno left 19:10 klunky left
masak colomon: your Internet is coal-driven? 19:11
colomon No, Henry's trains are coal-driven.
masak ah.
moritz_ thought it was IP-over-smoke-signs
mberends hopes the dutch internets are windmill-driven 19:13
19:18 cogno joined
lue hello world! o/ 19:18
masak \o
lue You can always use the carrier-pigeon protocol, if nothing else tools.ietf.org/html/rfc2549 19:20
(actually, that link is an amendment to tools.ietf.org/html/rfc1149) 19:21
19:22 cogno left 19:30 pmurias joined
pmurias hi 19:32
lue hello! o/
19:33 Intensity left
lue pmurias: I refute your doubt about the project! Although I do agree that information is ('scarce'|'technical'). 19:33
19:33 kst left
pmurias lue: how do you refute my doubt? 19:34
19:34 kst joined
lue optimism and clever hiding spots. 19:36
lue ducks
19:37 wallberg joined 19:42 s_mosher left, wallberg left 19:43 wallberg joined
masak wallberg: \o 19:44
19:44 coldhead joined
wallberg hi there :-) 19:44
masak: cool contest! nice indeed :-) 19:48
masak thank you. :) 19:49
I'm already looking forward to the next year.
19:50 thundergnat joined 19:51 imax joined 19:58 cschimm1 left
dalek p-rx/nom: 125d4ab | jonathan++ | src/setting/Hash.pm:
Unbreak setting compilation.
19:59
p-rx/nom: 910fcac | jonathan++ | src/NQP/ (2 files):
Only add the return exception handler when there's a return statement in a routine. On Parrot, adding one to a sub that doesn't use it makes the invocation over 3 times more costly; since EXPR and so forth are now wrapped in NQP subs, we really need to save on this.
p-rx/nom: 6a1bb2a | jonathan++ | src/metamodel/reprs/P6opaque. (2 files):
A little sloppy programming saw every attribute get/bind in P6opaque accidentally cause the creation of two GC-ables. This brings that down to zero, as it was intended to be.
thundergnat Is there any shorthand (built in) way in perl 6 to build an array of explicit numeric values? Short of actually writing out the actual array and inserting commas? 20:01
tadzik emm 20:02
thundergnat something that is interpeted as [1,2,7,14,35]. [<1 2 7 14 35>] is close but is an array of numbery strings.
moritz_ <0 1 2 3> is supposed to return a list/Parcel of nmbers
tadzik rakudo: my @a = 1, 2, 3, 4; say @a.perl
p6eval rakudo 388eed: OUTPUT«[1, 2, 3, 4]␤»
moritz_ which happen to remeber their original string form
thundergnat tadzik: hmm. yes but how about if you need to build a multi level array? 20:03
Is there anything like 'quote numeric'? [qn/1 2 3 4 5/]
tadzik hmm, multi level?
like my @a = [1, 2], [3, 4];?
thundergnat multi dimentional 20:04
moritz_ thundergnat: the [] help with multi dimensional
and inside you can use any literals you want
thundergnat moritz_: doh. I may be over thinking this.... :( 20:05
20:07 shi joined
thundergnat I have some large two dimentional arrays I am constructing by typing in values and was trying to to just type the lists without needing to insert explicit commas between each value. 20:09
wolverian "dimensional", by the way.
thundergnat But if I use the [<1 2 3>] list constructor, they are interpreted stringily. 20:10
masak :)
moritz_ thundergnat: that's a rakudo limitation
thundergnat: you can always +<< them
or +« if you prefer
thundergnat Normally that wouldn't matter but in this case it makes a difference.
masak rakudo: say (+«<1 2 3>)[0].WHAT
p6eval rakudo 388eed: OUTPUT«Num()␤»
masak should be Int, but at least it isn't Str. 20:11
thundergnat oooo.
let me try that.
moritz_ you can also ».Int them if they are supposed to be ints 20:12
thundergnat Rats actually.
masak rakudo: say <1 2 3>».Rat[0].WHAT 20:13
p6eval rakudo 388eed: OUTPUT«Rat()␤»
thundergnat See gist.github.com/792379 for what I'm trying to do
and why it makes a difference to me
20:15 cschimm1 joined 20:20 klunky joined
thundergnat The [<1 2 3>».Rat] will work for me, thanks. I still think it would be nice to have a generic numeric "quoting" like qn/1 2 3/ though. 20:22
moritz_ <...> is that 20:23
it's just NYI in rakudo
thundergnat Ah! cool. 20:24
masak thundergnat: the things that come out will be something with both a Str and an Int/Num/Rat nature. 20:28
thundergnat masak: Seems like a lot of overhead... 20:30
moritz_: BTW, congratulations on $family++ 20:31
moritz_ thundergnat: thanks
it's both a source of joy and sorrow :-)
thundergnat I'm sure. :)
masak thundergnat: no overhead in the best case, since the things are literals. 20:32
moritz_ wonders how that's going to look in the implementations
masak class IntStr is Int is Str { #[ cough cough ] } 20:34
er, #`[ ... ]
moritz_ and that for every core numeric type?
20:35 klunky left
moritz_ rakudo: print 'cough ' while True; 20:35
p6eval rakudo 388eed: OUTPUT«(timeout)gh cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough
..cough …
20:36 dorlamm joined
masak rakudo: loop { print 'cough ' } 20:37
p6eval rakudo 388eed: OUTPUT«(timeout)gh cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough cough
..cough …
moritz_ oh come on, way too idiomatic
pmurias sorear: how are named arguments passed to methodcall nam op? 20:38
masak moritz_: yes, for every numeric type. but now that you mention it, it would be really cool if it had bindings into literal parsing in such a way that when someone extends the grammar with a new literal, the corresponding StrNewliteral hybrid automatically popped into existence.
a new literal type and its parsing, that is. 20:39
moritz_ ETOOMUCHMAGIC
masak either that's way too much to ask... yes.
but we should consider how that use case would work.
user-added literals shouldn't be second class, I think. 20:40
moritz_ right
so... we need real junctive types?
pmurias what is IntStr? 20:41
moritz_ doesn't want to be the who proposes it in earnest to jnthn
pmurias and what would StrNewLiteral do?
dalek ast: d37e5d1 | (Kodi Arfer)++ | S03-operators/range.t:
[range.t] Marked tests for RT #76950.
20:42
kudo: 7787c15 | moritz++ | build/Makefile.in:
cc_hasjit config item is gone
20:44
masak pmurias: it would have a Str aspect and a NewLiteral aspect, just like all the other not-pure-Str objects falling out of <...> 20:45
masak --> early night
good night, zebras.
moritz_ gute nacht masak
20:46 masak left 20:47 tylerni8 joined, tylerni8 left
jnthn Gah. So I switched grammars to 6model at last and got a HUGE performance regression. :-/ Well, thought it may be due to wrapping methods that were PIR ones up in NQP bodies and re-writing some to NQP. Added an opt. Minor improvement. Next up, discovered attribute access was rather less efficient than planned. Fixed that. Still awful. 20:52
Turns out I'd screwed up the method cache construction in the class meta-object, so method dispatches were 50x slower than they shoulda been.
moritz_ good news is: if you fix it, it might be not so slow anymore :-) 20:53
jnthn Now the NQP test suite runs faster than before I switched grammars over to 6model, even though some bits are less efficient due to the NQP => PIR move, and that's still before the work to actually really take advantage of 6model...
The mistake was so silly I'm almost embarassed to check in the fix. :P 20:54
moritz_ jnthn: if you just committed it with message "fix some thinkos", nobody would have noticed :-) 20:55
jnthn: now you can commit it as "sped up method calls by a factor of 50"
and be a hero!
dalek p-rx/nom: 5d9c643 | jonathan++ | src/metamodel/how/NQPClassHOW.pm:
Fix a really silly bug in method cache construction.
20:56
p-rx/nom: 1e0c709 | jonathan++ | src/metamodel/rakudoobject.c:
A cleaned up version of the method finding code. No functional changes, was just easier to reassure myself this bit wasn't the problem by factoring it this way, when hunting the issue fixed in the previous commit.
jnthn moritz_: darn, that woulda been a good idea. :P
Anyway, good news is that grammars now run on 6model.
moritz_ \o/
jnthn Match objects actually are still using the old object system. But that'll be not too bad to deal with.
Having worked on this, I'm quite sure there's still plenty of wins to be had too. 20:57
In some places I expect we're boxing/unboxing more than we used to, even though other opts bring the overall time out ahead of where it was. 20:58
moritz_ wonders if creation of failed Match objects is really necessary 20:59
jnthn And with the natively typed attributes work it should be possible to box even less stuff.
e.g. the current position and the target string needn't be.
Whee. With the method cache fixed and the bootstrap updated, nqp-rx builds itself faster too. :) 21:02
moritz_ well, of course :-)
dalek p-rx/nom: e11a117 | jonathan++ | src/stage0/ (5 files):
Update the bootstrap to use 6model during the parsing all the way through the build. At this point, there's still a bunch of clean-up work to do to eliminate the old cursor and the rename Cursor2 back to just Cursor.
21:03
jnthn Darn, wish I'd found this issue earlier.
I'd have had faster builds the whole weekend.
moritz_ tries a nom build on newest parrot 21:04
jnthn moritz_++
sorear pmurias: CgOp.methodcall($obj, "method", ":name", $value)
jnthn I'm still lagging back a bit.
sorear pmurias: iirc
moritz_ jnthn: current PARROT_REVISION misses what, 3 releases? :-) 21:05
jnthn moritz_: Wow. :) 21:06
moritz_: OK, the Parrot I'm testing with ain't *that* far behind. :-)
moritz_: BTW, where is the current value to go in PARROT_REVISION obtained from?
21:07 flussence left
jnthn The version number and sha1 chunk are obvious but the number that goes between them is from ...? 21:07
21:07 flussence joined
moritz_ git describe --tags # in parrot repo 21:08
sorear It's the number of commits since the release.
moritz_ parrot_config git_describe
jnthn ah, thanks. 21:09
sorear: I guess that's what it was, but didn't fancy counting them by hand. P
*:P
21:10 wamba left 21:12 apejens left
pmurias sorear: that seems a bit wird 21:13
how is the backend supposed to determin if it's a named literal by checking the type?
21:14 apejens joined
sorear pmurias: yes 21:16
lue I shall vworp my way into a future time at #perl6 . Unfortunately, I haven't a time machine, so just afk for now :) 21:17
moritz_ niecza: multi f($x) { say "positional" }; multi f(:$x) { say "named" }; f "x" => 3
p6eval niecza v1-184-g63e2b4c: OUTPUT«===SORRY!===␤␤Multi routines NYI at /tmp/vHH0haoASm line 1:␤------> multi f($x) { say "positional" }⏏; multi f(:$x) { say "named" }; f "x" =>␤␤Multi routines NYI at /tmp/vHH0haoASm line 1:␤------> itional" }; multi f(:$x) {
..say "named" }[3…
moritz_ niecza: sub f(:$x) { say "named" }; f "x" => 3 21:18
p6eval niecza v1-184-g63e2b4c: OUTPUT«Unhandled exception: Excess arguments to MAIN f, used 0 of 1 positionals␤ at /tmp/X2tH0jEwWa line 0 (MAIN f @ 0)␤ at /tmp/X2tH0jEwWa line 1 (MAIN mainline @ 2)␤ at /home/p6eval/niecza/lib/SAFE.setting line 1037 (SAFE C432_ANON @ 1)␤ at
../home/p6eval/niecza/lib/SAFE.setting line …
moritz_ niecza: sub f(:$x) { say "named" }; f x => 3
21:18 plobsing_ joined
p6eval niecza v1-184-g63e2b4c: OUTPUT«named␤» 21:18
pmurias sorear: would it be possible to have more structure in the op tree?
dalek ast: 62713eb | moritz++ | S03-operators/range.t:
[range.t] fix plan
21:19
moritz_ jnthn: nom builds on newest parrot, but 'make test' isn't clean 21:22
pmurias sorear: is there a reason to duplicate the invocant in nam-methodcall?
moritz_ t/nqp/52-vtable.t ............... get_pmc_keyed() not implemented in class 'Undef'
21:22 plobsing left
jnthn moritz_: That's not surprising. 21:22
moritz_: Right.
moritz_: There's a few that are regressed still.
moritz_: Mostly ones that are to do with Parrot integrationy bits.
moritz_: If it's just that and the odd one in t\hll then please bump the PARROT_REVISION. 21:23
moritz_ t/hll/02-modules.t .............. Method 'WHO' not found for invocant of class 'RakudoObject'
jnthn *nod*
Yup, that one is fail here too
moritz_ jnthn: nopaste.snit.ch/28626 is the full test summary 21:24
21:24 kjeldahl joined
jnthn thanks, checking 21:24
moritz_: Yes, consistent with that I have. 21:25
moritz_ then I'll push
jnthn moritz_++
Thanks!
dalek p-rx/nom: ff8c915 | moritz++ | build/PARROT_REVISION:
bump PARROT_REVISION to something non-ancient
jnthn moritz_: Hmm. Configure.pl --gen-parrot spews out a bunch of errors here :( 21:26
moritz_: gist.github.com/792454 21:27
Hmm, this looks...familiar...
dalek ast: fd5e4b1 | (Kodi Arfer)++ | S03-operators/assign.t:
[assign.t] Added tests for #76734.
21:29
p-rx/nom: 1401ec6 | jonathan++ | build/gen_parrot.pl:
Apply gen_parrot.pl fix as also found in Rakudo's gen_parrot.pl to avoid a Win32 issue.
21:30
jnthn moritz_: Don't worry, see ^^
moritz_ doesn't worry 21:32
moritz_ -> sleep 21:36
jnthn night, moritz_
21:39 karupanerura left
sorear pmurias: more structure would be possible, but it would massively complicate NAMOutput - right now, low-level op trees consist only of arrays and strings, which means they can be passed directly to to-json 21:39
thundergnat jnthn: do you get the "fatal: No names found, cannot describe anything." warning when you build rakudo under windows? or is it just me? see RT 82524
sorear pmurias: also, my last profiler run came up saying that low-level op trees are the largest memory sink in niecza, so I'm very wary to touch them in a way that might use more space
p,moritz_: as for duplicating the invocant - it's mostly historical 21:40
jnthn thundergnat: Yes, I've seen that. Didn't get chance to look more closely yet.
sorear the duplication needs to happen, but it could be pushed down a level or two; I need to try this and benchmark it at some point 21:41
thundergnat jnthn: Theres a patch in 82524. It's a quoting issue. 21:42
21:45 dorlamm left 21:49 colomon left
dalek p-rx/nom: f508992 | jonathan++ | src/metamodel/reprs/P6opaque.c:
Switch from malloc to the fixed size allocator for object bodies.
21:56
22:00 thundergnat left
pmurias sorear: how does memory does niecza use? 22:07
sorear pmurias: O(file size) 22:08
pmurias sorear: we could reduce the memory usage of the optree by building an binary representation directly (in C#)
or just building JSON directly without creating an array 22:09
as STD.nam takes only 2.9M
but maybe premature optimalisation is not worth it at that point 22:10
22:15 jedai_ joined 22:16 kaare_ left
dalek tpfwiki: (Herbert Breunung)++ | www.perlfoundation.org/perl6/index....tor_tablet 22:17
22:18 jedai left 22:19 lichtkind joined
dalek tpfwiki: (Herbert Breunung)++ | www.perlfoundation.org/perl6/index....kup_tablet 22:23
22:25 lichtkind left
pmurias avar: i'm adding a common lisp backend to niecza (a Perl 6 compiler currently targeting .NET), as you attempted something similiar for kp6 may i ask your opinion on some implementation choices 22:26
22:27 crythias left 22:31 PacoLinux left 22:39 noganex_ joined 22:43 noganex left 22:50 sji joined 22:51 shi left, Limbic_Region joined 23:01 felliott left 23:02 colomon joined 23:04 felliott joined, tarski joined 23:09 imax left 23:31 sji left
jnthn I blug: 6guts.wordpress.com/2011/01/24/well...ng-6model/ 23:43
Darn, where'd my weekend go...
:)
23:43 MayDaniel left
dalek ast: 3f869dd | (Kodi Arfer)++ | S03-operators/range.t:
[range.t] Fixed fudge syntax.
23:52
23:53 kst left 23:54 kst joined