»ö« 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
|