| Time |
S |
Nick |
Message |
| 00:06 |
|
|
tokuhiro_ joined #perl6 |
| 00:06 |
|
|
colomon joined #perl6 |
| 00:48 |
|
|
hypolin joined #perl6 |
| 01:35 |
|
|
Circlepuller joined #perl6 |
| 01:55 |
|
|
cognominal joined #perl6 |
| 02:02 |
|
|
Traceur joined #perl6 |
| 02:02 |
|
|
gootle joined #perl6 |
| 02:03 |
|
|
leprevost joined #perl6 |
| 02:03 |
|
|
Traceur joined #perl6 |
| 02:30 |
|
|
Guest71100 joined #perl6 |
| 02:35 |
|
|
renormalist joined #perl6 |
| 02:40 |
|
|
orafu joined #perl6 |
| 02:49 |
|
|
replore joined #perl6 |
| 02:50 |
|
|
lawrmcfa joined #perl6 |
| 02:50 |
|
cognominal |
src/utils/ in rakudo seems to contain fossil code. According to git blame, It has not been touched since Feb 2008 and does not appear anywhere in the Makefile |
| 02:51 |
|
cognominal |
it's old code for generating doc from parsed Perl code |
| 02:54 |
|
|
daniel-s joined #perl6 |
| 02:59 |
|
|
nlpplz joined #perl6 |
| 03:16 |
|
|
gootle joined #perl6 |
| 03:20 |
|
|
pmichaud joined #perl6 |
| 03:20 |
|
|
nemesys joined #perl6 |
| 04:21 |
|
|
popl joined #perl6 |
| 04:22 |
|
|
telex joined #perl6 |
| 04:36 |
|
|
telex joined #perl6 |
| 05:19 |
|
|
birdwindupbird joined #perl6 |
| 05:20 |
|
|
anuby joined #perl6 |
| 05:20 |
|
|
Traceur joined #perl6 |
| 05:21 |
|
|
Playb3yond joined #perl6 |
| 05:23 |
|
|
Traceur joined #perl6 |
| 05:29 |
|
|
fgomez joined #perl6 |
| 05:30 |
|
moritz |
n: say times.new(:roman) |
| 05:30 |
|
p6eval |
niecza v22-7-g7df6137: OUTPUT«Unhandled exception: Cannot unbox a Variable[] from an object of repr P6opaque at /home/p6eval/niecza/lib/CORE.setting line 1534 (Parcel.raw_elems @ 4)  at /home/p6eval/niecza/lib/CORE.setting line 1584 (Parcel.gist @ 10)  at /home/p6eval/niecza/lib/C… |
| 05:31 |
|
|
Traceur left #perl6 |
| 05:35 |
|
|
sirrobert joined #perl6 |
| 05:37 |
|
|
SamuraiJack joined #perl6 |
| 05:44 |
|
|
lawrmcfa joined #perl6 |
| 06:02 |
|
|
sirrobert joined #perl6 |
| 06:04 |
|
|
nebuchadnezzar joined #perl6 |
| 06:25 |
|
|
kaleem joined #perl6 |
| 06:30 |
|
|
aharoni joined #perl6 |
| 07:00 |
|
jnthn |
morning, #perl6 |
| 07:04 |
|
|
brrt joined #perl6 |
| 07:04 |
|
brrt |
\o perl6 |
| 07:09 |
|
sorear |
o/ |
| 07:10 |
|
|
xinming_ joined #perl6 |
| 07:11 |
|
tadzik |
oh hello |
| 07:19 |
|
|
kurahaupo joined #perl6 |
| 07:31 |
|
|
cognominal joined #perl6 |
| 07:31 |
|
|
wk joined #perl6 |
| 07:37 |
|
arnsholt |
o/ |
| 07:50 |
|
|
flightrecorder joined #perl6 |
| 07:53 |
|
|
FROGGS joined #perl6 |
| 08:03 |
|
|
mishin joined #perl6 |
| 08:04 |
|
|
fhelmberger joined #perl6 |
| 08:05 |
|
|
mucker joined #perl6 |
| 08:09 |
|
|
wamba joined #perl6 |
| 08:23 |
|
brrt |
is there stuff other than parcels that can flatten on the callee-side? |
| 08:27 |
|
|
kresike joined #perl6 |
| 08:27 |
|
kresike |
hello all you happy perl6 people |
| 08:28 |
|
tadzik |
oh hey kresike |
| 08:28 |
|
brrt |
\o kresike |
| 08:28 |
|
brrt |
basically |
| 08:28 |
|
brrt |
my question is |
| 08:29 |
|
brrt |
should callee-side flattening be polymorphic |
| 08:29 |
|
kresike |
tadzik, brrt o/ |
| 08:29 |
|
jnthn |
brrt: I still think the thing you are calling callee-side flattening is really all handled in Array/List and not really much to do with calling conventions. |
| 08:33 |
|
|
wk joined #perl6 |
| 08:35 |
|
brrt |
jnthn: i kind of agree, the point being |
| 08:36 |
|
brrt |
the prototypical example of a p6 function being called with a javascript array |
| 08:36 |
|
brrt |
and, not having pmcs |
| 08:36 |
|
brrt |
wait… i have to think about this a bit |
| 08:43 |
|
|
cognominal joined #perl6 |
| 08:47 |
|
|
dakkar joined #perl6 |
| 08:48 |
|
|
fgomez joined #perl6 |
| 08:51 |
|
brrt |
at any rate, that is a case of data compatibility |
| 09:08 |
|
|
am0c joined #perl6 |
| 09:50 |
|
|
Psyche^ joined #perl6 |
| 09:55 |
|
|
Psyche^ joined #perl6 |
| 10:09 |
|
|
fhelmberger joined #perl6 |
| 10:10 |
|
|
daxim joined #perl6 |
| 10:48 |
|
|
Tracer joined #perl6 |
| 10:54 |
|
|
dju joined #perl6 |
| 11:05 |
|
|
Su-Shee_ joined #perl6 |
| 11:05 |
|
|
Traceur joined #perl6 |
| 11:08 |
|
|
Tracer joined #perl6 |
| 11:17 |
|
|
fhelmberger joined #perl6 |
| 11:20 |
|
|
brrt joined #perl6 |
| 11:26 |
|
|
cognominal joined #perl6 |
| 11:27 |
|
|
am0c joined #perl6 |
| 11:35 |
|
|
cognominal_ joined #perl6 |
| 11:35 |
|
|
fhelmberger joined #perl6 |
| 12:08 |
|
brrt |
is an aggegrate (cqrs terminology) a bit like a document |
| 12:08 |
|
brrt |
i.e, it contains the 'full graph' of some domain object |
| 12:08 |
|
|
fridim_ joined #perl6 |
| 12:13 |
|
jnthn |
I don't really see it like a document. Mostly I see it as a representation of the current state of some domain entity, ideal for validating further changes to it. Yes, it may encapsulate a fairly complex object graph if needed. |
| 12:13 |
|
brrt |
right…. |
| 12:14 |
|
jnthn |
If you're doing event sourcing, then I find the aggregate best thought of as "a model of the past, useful for making decisions about a requested change now" |
| 12:14 |
|
brrt |
hmm, in a note taking application, would the full list be an aggegrate, or a single item on the list? |
| 12:15 |
|
brrt |
btw, that is how i understood it at first, but the cqrs.nu site has me a bit confused |
| 12:21 |
|
jnthn |
A note taking application feels like a curious domain to apply CQRS to. :) The way I've found easiest to figure out aggregate boundaries is to work out my events, then commands, then look at what invariants need to be enforced. The invariants you need tend to give a good clue to the aggregate boundaries. |
| 12:22 |
|
jnthn |
What confused you on cqrs.nu, ooc? I do have a commit bit there... :) |
| 12:22 |
|
|
mtk joined #perl6 |
| 12:25 |
|
brrt |
less curious than it seems when you have multiple users applying changes to the same data :-) |
| 12:25 |
|
|
rindolf joined #perl6 |
| 12:26 |
|
brrt |
but thats good advice |
| 12:26 |
|
brrt |
well, basically it isn't that confusing, its just me still 'thinking' in the foreign-key-model |
| 12:27 |
|
jnthn |
brrt: Oh, if you're in a collaborative domain then yes, it's good. :) |
| 12:28 |
|
brrt |
well, the internet inherently makes everything collaborative :-) even if its just 1 person using multiple devices |
| 12:30 |
|
brrt |
also, i have many 'eventish' things happening to this system |
| 12:30 |
|
brrt |
'if not answered in n days send it to <x>' etc |
| 12:31 |
|
jnthn |
aha |
| 12:37 |
|
moritz |
sounds to me a bit like a ticket system |
| 12:39 |
|
brrt |
yeah, thats a bit what it is |
| 12:39 |
|
brrt |
but its vague at this point |
| 12:43 |
|
|
wamba joined #perl6 |
| 12:49 |
|
[Coke] |
rn: say.HOW.say |
| 12:49 |
|
p6eval |
niecza v22-7-g7df6137: OUTPUT«===[0mSORRY!===[0m��Unsupported use of bare 'say'; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument at /tmp/C2uy1Dkr86 line 1:�------> say�.HOW.say��Unhandled exception: Check failed�� at /ho… |
| 12:49 |
|
p6eval |
..rakudo 870d18: OUTPUT«Null PMC access in get_bool() in attributes at src/stage2/gen/nqp-mo.pm:1151 in method perl at src/gen/CORE.setting:791 in method gist at src/gen/CORE.setting:786 in sub say at src/gen/CORE.setting:7250 in method say at src/gen/CORE.setting:781 in bloc… |
| 12:49 |
|
[Coke] |
\o/ |
| 12:51 |
|
brrt |
what is a saga, by the way? |
| 12:51 |
|
brrt |
oh, nm |
| 12:56 |
|
|
integral joined #perl6 |
| 12:56 |
|
|
integral joined #perl6 |
| 12:57 |
|
|
hash_table joined #perl6 |
| 13:00 |
|
|
bluescreen10 joined #perl6 |
| 13:00 |
|
|
PacoAir joined #perl6 |
| 13:14 |
|
|
integral joined #perl6 |
| 13:14 |
|
|
integral joined #perl6 |
| 13:25 |
|
|
GlitchMr joined #perl6 |
| 13:27 |
|
|
flightrecorder joined #perl6 |
| 13:27 |
|
|
FROGGS joined #perl6 |
| 14:00 |
|
|
stopbit joined #perl6 |
| 14:02 |
|
|
dju joined #perl6 |
| 14:06 |
|
|
Su-Shee joined #perl6 |
| 14:10 |
|
|
rindolf joined #perl6 |
| 14:16 |
|
|
dju joined #perl6 |
| 14:28 |
|
masak |
brrt: a saga is an old '70s notion of dividing a big transaction into many reversible steps, so as not to globally lock an entire database for a large batch job, which was a problem at the time. |
| 14:29 |
|
brrt |
… thanks :-) |
| 14:30 |
|
|
arlinius joined #perl6 |
| 14:30 |
|
moritz |
.oO( an epic tale ) |
| 14:38 |
|
* brrt |
thought epic was a noun |
| 14:38 |
|
jnthn |
Can be a noun also. |
| 14:39 |
|
jnthn |
.oO( It was an epic epic... ) |
| 14:39 |
|
[Coke] |
it's especially nouny when used agily. |
| 14:40 |
|
brrt |
as in epicly, or is that forbidden? |
| 14:40 |
|
arnsholt |
epically perhaps? |
| 14:41 |
|
|
hash_table joined #perl6 |
| 14:44 |
|
[Coke] |
epicac? |
| 14:56 |
|
|
benabik joined #perl6 |
| 15:00 |
|
|
fgomez joined #perl6 |
| 15:02 |
|
|
simcop2387 joined #perl6 |
| 15:06 |
|
|
bluescreen10 joined #perl6 |
| 15:09 |
|
|
Pleiades` joined #perl6 |
| 15:27 |
|
|
Woodi joined #perl6 |
| 15:27 |
|
|
Pleiades` joined #perl6 |
| 15:30 |
|
|
wamba joined #perl6 |
| 15:33 |
|
kresike |
bye folks |
| 15:44 |
|
|
benabik joined #perl6 |
| 15:45 |
|
|
Pleiades` joined #perl6 |
| 16:07 |
|
|
kaare__ joined #perl6 |
| 16:12 |
|
|
dju joined #perl6 |
| 16:14 |
|
|
MayDaniel joined #perl6 |
| 16:33 |
|
|
wk joined #perl6 |
| 16:58 |
|
|
snearch joined #perl6 |
| 17:00 |
|
|
snearch joined #perl6 |
| 17:04 |
|
|
fhelmberger joined #perl6 |
| 17:08 |
|
|
mikemol joined #perl6 |
| 17:13 |
|
|
fhelmberger joined #perl6 |
| 17:23 |
|
|
fhelmberger joined #perl6 |
| 17:24 |
|
|
fhelmberger_ joined #perl6 |
| 17:26 |
|
|
fglock joined #perl6 |
| 17:27 |
|
|
lawrmcfa joined #perl6 |
| 17:30 |
|
|
kikulli joined #perl6 |
| 17:36 |
|
colomon |
phenny: tell sorear Rakudo absolutely murders Niecza for timing when parsing a 1.3 meg STEP file -- Niecza takes over 100x as long to parse it. |
| 17:36 |
|
phenny |
colomon: I'll pass that on when sorear is around. |
| 17:40 |
|
jnthn |
How long does Rakudo take, ooc? |
| 17:43 |
|
|
spider-mario joined #perl6 |
| 17:50 |
|
colomon |
jnthn: on the machine in question, just under 6 minutes |
| 17:50 |
|
jnthn |
That's...hardly fast. |
| 17:51 |
|
colomon |
I certainly wouldn't object to a 100x speedup for Rakudo. :) |
| 17:51 |
|
jnthn |
:) |
| 17:52 |
|
jnthn |
Well, it all starts with --profile... :) |
| 17:52 |
|
colomon |
perl6 --profile ? |
| 17:52 |
|
jnthn |
yeah |
| 17:52 |
|
jnthn |
And redirect stderr to callgrind.foobar |
| 17:52 |
|
colomon |
doh! |
| 17:53 |
|
colomon |
perl6 --profile blah 2> callgrind.foobar ? |
| 17:53 |
|
jnthn |
*nod* |
| 17:54 |
|
colomon |
now running |
| 17:55 |
|
colomon |
jnthn++ |
| 17:58 |
|
PerlJam |
what's a STEP file? |
| 17:59 |
|
PerlJam |
and rakudo++ for beating niecza in a speed race ;-) |
| 18:00 |
|
|
Pleiades` joined #perl6 |
| 18:06 |
|
sorear |
colomon: can you send me the code and the file? I bet this is a bug |
| 18:06 |
|
phenny |
sorear: 17:36Z <colomon> tell sorear Rakudo absolutely murders Niecza for timing when parsing a 1.3 meg STEP file -- Niecza takes over 100x as long to parse it. |
| 18:08 |
|
colomon |
sorear: grab https://github.com/colomon/perl6-ISO_10303-21 and then run mono /path/to/niecza/run/Niecza.exe -Ilib bin/step-scan.pl t/CAx/clamp.stp |
| 18:09 |
|
colomon |
jnthn: profile run is done... but I need be running a fresh outfit to the library for my wife (some sort of horrible tea accident has happened) |
| 18:09 |
|
Ulti |
how can parising just 1.3MB take 6 minutes, are you doing something ontop of just parsing? |
| 18:10 |
|
Ulti |
this is floppy era amounts of data :/ |
| 18:10 |
|
sorear |
Ulti: welcome to #perl6 |
| 18:10 |
|
[Coke] |
w e l c o m e t o # (timeout) |
| 18:10 |
|
colomon |
Ulti: nope, I'm just checking to make sure the file can be parsed. I don't actually do anything with the parse yet. |
| 18:10 |
|
Ulti |
I dunno the perl6 I've been running hasn't made me feel like the IO is slow, but I guess I haven't done too much |
| 18:11 |
|
colomon |
Ulti: it's not the I/O, it's the parsing. |
| 18:11 |
|
colomon |
afk # emergency library run |
| 18:12 |
|
Ulti |
also 6x100 minutes for parsing a 1.3MB file :'( |
| 18:13 |
|
Ulti |
one thing that might be cool is having some form of segmenting or chuncking tocken so that a parser can run in parallel |
| 18:14 |
|
Ulti |
*token |
| 18:14 |
|
|
Chillance joined #perl6 |
| 18:15 |
|
Ulti |
so the first top level chunk token is matched a few times then a thread starts up to parse the internals of it whilst another one deals with the next chunk |
| 18:15 |
|
Ulti |
plenty of computers are hexacore so your 6 minutes goes down to 1 for free |
| 18:31 |
|
|
fhelmberger joined #perl6 |
| 18:40 |
|
|
mtk joined #perl6 |
| 18:40 |
|
|
fgomez joined #perl6 |
| 18:51 |
|
|
_edwin joined #perl6 |
| 19:10 |
|
|
kevouze joined #perl6 |
| 19:11 |
|
colomon |
jnthn: ping? |
| 19:13 |
|
kevouze |
Hi. I am conducting a survey about newcommer experience in the Perl community. |
| 19:13 |
|
jnthn |
colomon: pong |
| 19:13 |
|
tadzik |
hello |
| 19:13 |
|
kevouze |
http://blogs.perl.org/users/ke[…]ies---survey.html |
| 19:13 |
|
kevouze |
Are there people here who would be keen to fill in the survey? It would interesting be able compare Perl6 practices with other perl projects. |
| 19:13 |
|
kevouze |
You just need to have joined Perl within the last 2 years. |
| 19:13 |
|
tadzik |
I like survey, I'll do it |
| 19:13 |
|
kevouze |
thanks |
| 19:13 |
|
colomon |
jnthn: so, I've got a 121K callgrind profile output file. (Seems small?) What do I do with it? |
| 19:14 |
|
tadzik |
unless I'm longer in the community, hm |
| 19:14 |
|
kevouze |
you are too old :) |
| 19:14 |
|
tadzik |
hey! I'm young! :P |
| 19:14 |
|
tadzik |
my first yapc was last year, but I've been in Perl Mongers group for about 3-4 years |
| 19:14 |
|
kevouze |
It have been told Perl6 is very newcomer oriented, it would be nice to have some data about PErl 6 |
| 19:15 |
|
tadzik |
I know someone to give the survey to |
| 19:15 |
|
jnthn |
colomon: Look at it with kcachegrind |
| 19:15 |
|
kevouze |
Would people here mind telling other Perl contributors about the survey? The dataset wil be released under CC license and available to Perl. |
| 19:16 |
|
kevouze |
thanks |
| 19:19 |
|
colomon |
jnthn: installing kcachegrind on my Linux box. :) |
| 19:23 |
|
|
birdwindupbird joined #perl6 |
| 19:24 |
|
|
kevouze_ joined #perl6 |
| 19:31 |
|
colomon |
jnthn: 90% of the time is spent in parse |
| 19:32 |
|
|
wamba joined #perl6 |
| 19:32 |
|
jnthn |
Does any particular rule stand out? |
| 19:33 |
|
jnthn |
Feel free to mail me the profile output also. |
| 19:34 |
|
colomon |
Okay, just e-mailed it. Sorry, trying to do two things at once here. |
| 19:35 |
|
colomon |
Looks like MATCH is taking a lot of the time? |
| 19:35 |
|
colomon |
I'm not really sure what to look for in grammar profiles. |
| 19:37 |
|
sirrobert |
colomon try stepping through it in the debugger... I find that super useful. |
| 19:39 |
|
jnthn |
colomon: Yes, MATCH is taking up a huge amount of time |
| 19:39 |
|
jnthn |
But also !reduce...hmm |
| 19:39 |
|
jnthn |
Do you have any action methods? |
| 19:39 |
|
colomon |
but that's to be expected, right? I mean, MATCH is most of what the program is doing, I'd think.... |
| 19:39 |
|
colomon |
jnthn: no |
| 19:41 |
|
jnthn |
Whoa. |
| 19:41 |
|
jnthn |
Yeah, something is really up. |
| 19:41 |
|
jnthn |
This is a very useful find. |
| 19:44 |
|
_edwin |
http://rosettacode.org/wiki/Fo[…]wer_series#Perl_6 |
| 19:44 |
|
colomon |
real-world-applications++ |
| 19:46 |
|
colomon |
jnthn: have you grabbed my source code yet? |
| 19:47 |
|
jnthn |
Not yet |
| 19:49 |
|
colomon |
colomon: sorear: grab https://github.com/colomon/perl6-ISO_10303-21 and then run mono /path/to/niecza/run/Niecza.exe -Ilib bin/step-scan.pl t/CAx/clamp.stp |
| 19:49 |
|
colomon |
:) |
| 19:50 |
|
sorear |
fwiw, I conjecture that a missing :: is causing quadratic behavior in LTM |
| 19:50 |
|
sorear |
but I haven't had a chance to confirm this |
| 19:51 |
|
colomon |
sorear: missing in my code, or in Niecza? |
| 19:56 |
|
sorear |
colomon: in your code |
| 19:57 |
|
colomon |
sorear: you have a place in mind? it's easy enough to test. |
| 19:57 |
|
sorear |
but, if it is something up with your code, what is Rakudo doing to not be so affected? |
| 19:57 |
|
sjn |
_edwin: that code just looks.... nice! |
| 19:58 |
|
sorear |
colomon: no, this is just based on this being the problem the last 2-3 times I wrote a parser that was a hundred times slower than expected |
| 20:00 |
|
_edwin |
sjn, thanks. it's glacially slow, though :/ |
| 20:02 |
|
* sjn |
can imagine |
| 20:06 |
|
_edwin |
std: https://gist.github.com/3861090 |
| 20:06 |
|
p6eval |
std 77327a4: OUTPUT«ok 00:02 65m» |
| 20:06 |
|
_edwin |
phew |
| 20:07 |
|
_edwin |
niecza does not like it, though |
| 20:08 |
|
colomon |
_edwin: probably is the infix:<+>, etc. |
| 20:09 |
|
colomon |
I've never gotten extending arithmetic operators to work well in niecza. |
| 20:09 |
|
colomon |
_edwin: why does class FPS have @.coeffs? |
| 20:10 |
|
_edwin |
niecza wants me to predeclare the multi infixes, it seems |
| 20:10 |
|
_edwin |
colomon, shouldn't it? do you mean has vs. is? |
| 20:11 |
|
colomon |
_edwin: actually, I see the issue now. |
| 20:12 |
|
_edwin |
i got past the multi complain of niecza, but then niecza hangs :( |
| 20:12 |
|
colomon |
I think perhaps it would be better organized if it was "role FPS" (with no @.coeffs) and then there was an "explicit coeffs FPS" class which (like all the practical FPS classes) "does FPS" |
| 20:12 |
|
tadzik |
:) |
| 20:12 |
|
colomon |
still, that's a really neat piece of code you've got there! |
| 20:13 |
|
_edwin |
colomon, I see your point. maybe going to tweak it a bit |
| 20:15 |
|
colomon |
_edwin: I'm delighted with your code! I think it compares really nicely to the other versions I've looked at there. |
| 20:17 |
|
_edwin |
I also like the Haskell solution |
| 20:18 |
|
_edwin |
yes, most of the others are not nice, and worse I think some miss the point of the mutual definition of sine and cosine |
| 20:20 |
|
_edwin |
and Ada calls the formal power series a "Taylor series" which makes my mathematical parts cringe ;) |
| 20:21 |
|
colomon |
_edwin: btw, I am (slowly) working at getting gamma into Niecza. And hopefully once we've got a proof-of-concept implementation it can sneak over to the spec and Rakudo. |
| 20:23 |
|
_edwin |
from an abstract point-of-view I like the prospect of the gamma function in the spec. however, it is hard to get right numerically, isn't it? |
| 20:24 |
|
colomon |
_edwin: errr, I dunno. You may well may know more about it than I do. |
| 20:26 |
|
* _edwin |
trying to find it in the gsl source |
| 20:31 |
|
_edwin |
gamma.c in libgsl has 1685 lines :} |
| 20:32 |
|
_edwin |
no idea how much of this numerical math-fu is needed to get a gamma implementation that is "good enough" for CORE |
| 20:33 |
|
colomon |
hmm, I didn't realize there was a complex version... |
| 20:34 |
|
colomon |
or is there? |
| 20:34 |
|
* colomon |
vainly tries to remember if he did anything significant with gamma in his college career... |
| 20:34 |
|
_edwin |
yes, it can be analytically continued |
| 20:35 |
|
_edwin |
I think to everything except the non-positive integers |
| 20:38 |
|
|
kurahaupo joined #perl6 |
| 20:44 |
|
dalek |
rakudo/nom: f0acedf | jnthn++ | src/Perl6/Metamodel/ (3 files): |
| 20:44 |
|
dalek |
rakudo/nom: Make the method cache authoritative in some cases. |
| 20:44 |
|
dalek |
rakudo/nom: |
| 20:44 |
|
dalek |
rakudo/nom: This makes it much cheaper for things that are doing can style checks, |
| 20:44 |
|
dalek |
rakudo/nom: which is the case for grammars without any actions, .? and so forth. |
| 20:44 |
|
dalek |
rakudo/nom: colomon++ for the profile that led to this. |
| 20:44 |
|
dalek |
rakudo/nom: review: https://github.com/rakudo/raku[…]commit/f0acedfc5a |
| 20:44 |
|
jnthn |
colomon: I'd be interested to know how much that helps. |
| 20:44 |
|
colomon |
jnthn: pulling... |
| 20:47 |
|
_edwin |
colomon++, I followed the first part of your advice already (ExplicitFPS) |
| 20:51 |
|
jnthn |
colomon: On memory usage, note taht: |
| 20:51 |
|
jnthn |
token standard_keyword { <upper> [ <upper> | <digit> ]* } |
| 20:51 |
|
jnthn |
This will make match objects for every single character, since <upper> captures. If you won't need to get at the actual individual characters, do |
| 20:51 |
|
jnthn |
token standard_keyword { <.upper> [ <.upper> | <.digit> ]* } |
| 20:52 |
|
_edwin |
hm, as long as FPS is a class, implementing its method coeffs { ... } in a derived class by an attribute @.coeffs works |
| 20:52 |
|
jnthn |
Which calls the rule but won't capture. |
| 20:52 |
|
colomon |
jnthn++ jnthn++ |
| 20:52 |
|
jnthn |
Maybe similar for character |
| 20:52 |
|
jnthn |
And some of the others :) |
| 20:52 |
|
_edwin |
when I change to "role FPS" I get an error that ExplicitFPS does not implement the method coeffs |
| 20:53 |
|
_edwin |
it seems the implicit accessor method does not count towards the role |
| 20:53 |
|
colomon |
_edwin: you can easily explicitly define it, obviously, but I am surprised, I admit. |
| 20:53 |
|
_edwin |
is it a bug or a feature? :} |
| 20:53 |
|
jnthn |
Well, things at composition time have to happen in some order. |
| 20:54 |
|
colomon |
_edwin: I think you need jnthn for that question. :) |
| 20:54 |
|
jnthn |
At the moment roles are composed *then* we compose attributes. |
| 20:55 |
|
jnthn |
iirc, it has to be that way because roles can contribute attributes that need accessors generating too |
| 20:55 |
|
jnthn |
Is the issue that the role has a required method? |
| 20:55 |
|
_edwin |
yes |
| 20:55 |
|
jnthn |
Yeah... |
| 20:55 |
|
jnthn |
I don't think we can fix that by swapping around the order compose does things. |
| 20:55 |
|
jnthn |
But I agree it's icky |
| 20:56 |
|
_edwin |
and the derived class just "has @.coeffs" and not "method coeffs { @.coeffs }" |
| 20:56 |
|
jnthn |
Yeah |
| 20:56 |
|
jnthn |
I suspect it's possible for the role applier to give back a list of things that are required |
| 20:56 |
|
jnthn |
But not complain about them immediately |
| 20:56 |
|
jnthn |
And then we check if they're there later |
| 20:57 |
|
sirrobert |
is there a way in code to know whether I'm in the debugger or not? |
| 20:57 |
|
sirrobert |
I have a small bit of code that breaks if I'm in the debugger and not if I'm not. I want it to auto-disable when I'm debugging. |
| 20:57 |
|
_edwin |
oh, when I switch to a role FPS and supply the require method, I get "maximum recursion depth exceeded" |
| 20:57 |
|
jnthn |
sirrobert: Er, I'd whine at the guy who wrote the debugger to fix it :) |
| 20:58 |
|
sirrobert |
ok =) who wrote it? |
| 20:58 |
|
jnthn |
_edwin: I think you want method coeffs { @!coeffs } |
| 20:58 |
|
jnthn |
_edwin: I think the requirement/accessor thing should really be fixed. Please file a ticket. |
| 20:58 |
|
jnthn |
sirrobert: That'd be me :) |
| 20:59 |
|
sirrobert |
jnthn: heh ok |
| 20:59 |
|
jnthn |
sirrobert: I need to sleep rather soon, but if you can file a github issue at https://github.com/jnthn/rakudo-debugger/issues I'll be happy to look at in in the next day or so. |
| 20:59 |
|
colomon |
jnthn: the change to p6 shaved a minute off the time -- now 4m54s instead of ~6m |
| 20:59 |
|
sirrobert |
let me put together the golfiest script I can to show you the problem. |
| 21:00 |
|
colomon |
jnthn: I'll run another profile and see what's up this time. |
| 21:00 |
|
_edwin |
jnthn, thanks, the @!coeffs helps |
| 21:00 |
|
colomon |
and try your suggested changes to the grammar as well. |
| 21:00 |
|
jnthn |
colomon: Shaving a minute off with a patch I did in half an hour ain't bad. :) |
| 21:01 |
|
colomon |
jnthn: agreed! |
| 21:01 |
|
jnthn |
Also around 15% - 20% gain is the upper bound of what I expected, so seems it hit about there. |
| 21:01 |
|
colomon |
jnthn: it is much appreciated. |
| 21:01 |
|
colomon |
jnthn: but I'd love to get it down to, say, one minute. :) |
| 21:02 |
|
jnthn |
Well, it spends a huge amount of time creating match objects, which is not only memory but also time. |
| 21:03 |
|
PerlJam |
jnthn: just add some code to preallocate them ;) |
| 21:03 |
|
colomon |
jnthn: yes, I'm doing a prelim timing on my Mac before trying that change (while I run another profile on the linux box) |
| 21:05 |
|
sirrobert |
jnthn: https://gist.github.com/3861432 (breaks the debugger but not rakudo) |
| 21:05 |
|
sirrobert |
jnthn: btw, great job on the debugger =) made my life much easier (jnthn++) |
| 21:06 |
|
sirrobert |
looking forward to when some key features get in =) |
| 21:06 |
|
|
grondilu joined #perl6 |
| 21:06 |
|
grondilu |
my @a = 1 .. *; say (@a »*» 2)[^3] |
| 21:06 |
|
grondilu |
rn: my @a = 1 .. *; say (@a »*» 2)[^3] |
| 21:06 |
|
p6eval |
niecza v22-7-g7df6137: OUTPUT«(timeout)» |
| 21:06 |
|
p6eval |
..rakudo 870d18: OUTPUT«» |
| 21:07 |
|
jnthn |
grondilu: hyperops are eager |
| 21:07 |
|
jnthn |
sirrobert: ah, I see what's going on... |
| 21:07 |
|
grondilu |
there is no lazy alternative? |
| 21:07 |
|
sirrobert |
do tell =) |
| 21:08 |
|
colomon |
grondilu: @a X* 2 |
| 21:08 |
|
grondilu |
rn: my @a = 1 .. *; say (@a X* 2)[^3] |
| 21:08 |
|
colomon |
or @a.map(* * 2) |
| 21:08 |
|
p6eval |
niecza v22-7-g7df6137: OUTPUT«(timeout)» |
| 21:08 |
|
p6eval |
..rakudo 870d18: OUTPUT«2 4 6» |
| 21:08 |
|
sirrobert |
jnthn: is the debugger trying to flush stdout, but I've redefined the class without a flush? |
| 21:08 |
|
jnthn |
sirrobert: Yeah, but I think I'm gonna fix the debugger to tie itself to the normal $*OUT. |
| 21:09 |
|
grondilu |
rn: my @a = 1 .. *; say (map * *2, @a)[^3] |
| 21:09 |
|
sirrobert |
good idea =) |
| 21:09 |
|
jnthn |
sirrobert: So people debugging things that do IO capturing won't run into this. |
| 21:09 |
|
p6eval |
niecza v22-7-g7df6137: OUTPUT«(timeout)» |
| 21:09 |
|
p6eval |
..rakudo 870d18: OUTPUT«2 4 6» |
| 21:09 |
|
jnthn |
sirrobert: While I have a debugger user to hand: what features do you miss most? |
| 21:09 |
|
sirrobert |
++jnthn: great. Also, I should probably make that bit o' code into an ecosystem module that's robust. |
| 21:10 |
|
sirrobert |
jnthn: 1) ability to add breakpoints from within code (rather than just within the debugger) |
| 21:10 |
|
colomon |
grondilu: in niecza, the timeout is from @a = 1..*, I think. |
| 21:10 |
|
colomon |
n: my @a := 1 .. *; say (@a X* 2)[^3] |
| 21:10 |
|
sirrobert |
jnthn: 2) ncurses stuff =) |
| 21:10 |
|
p6eval |
niecza v22-7-g7df6137: OUTPUT«2 4 6» |
| 21:10 |
|
sirrobert |
jnthn: 3) step over/in/out |
| 21:11 |
|
sirrobert |
those are the huge three |
| 21:11 |
|
sirrobert |
jnthn: (in no particular order) |
| 21:11 |
|
grondilu |
colomon: ok, thanks |
| 21:11 |
|
sirrobert |
jnthn: I think I would want step to be step over by default, then step into/out by specific command |
| 21:12 |
|
sirrobert |
jnthn: (or maybe "si" for step into, "so" for step out, and "s/<enter>" for step over |
| 21:13 |
|
jnthn |
sirrobert: Step over/step in/step out should be quite doable. |
| 21:13 |
|
sirrobert |
jnthn: OH! and 4) make 'self' available. debugging currently doesn't let me see object properties. |
| 21:13 |
|
sirrobert |
jnthn: thanks =) |
| 21:14 |
|
jnthn |
Oh! |
| 21:14 |
|
sirrobert |
jnthn: I use the debugger almost daily =) |
| 21:15 |
|
jnthn |
sirrobert: Thanks for the ideas, I've turned them into GitHub issues :) |
| 21:15 |
|
sirrobert |
woot =) thanks |
| 21:16 |
|
jnthn |
I've got a 40 min slot at Nordic Perl Workshop at the weekend to show/talk about the debugger. :) |
| 21:16 |
|
sirrobert |
heh nice |
| 21:16 |
|
sirrobert |
I use it a LOT |
| 21:16 |
|
jnthn |
So I've been hoping to get some new things in to talk about :) |
| 21:16 |
|
sirrobert |
heh nod |
| 21:16 |
|
_edwin |
jnthn, I will file a rakudobug tomorrow. needing some sleep now, bye |
| 21:16 |
|
jnthn |
_edwin: Thanks, see you o/ |
| 21:17 |
|
colomon |
jnthn: using <.digit> instead of <digit> in a few places there shaved another 10% off the runnining time. |
| 21:17 |
|
colomon |
jnthn++ |
| 21:18 |
|
sirrobert |
jnthn: fwiw, I would order them 4,3,1,2 probably. |
| 21:18 |
|
jnthn |
sirrobert: I know shamefully little about ncurses so that's probably wise :) |
| 21:19 |
|
colomon |
jnthn: though that's with the older rakudo |
| 21:20 |
|
sirrobert |
jnthn: heh |
| 21:21 |
|
jnthn |
colomon: Yeah. Doing similar with <upper> may yield a another such improvement. |
| 21:22 |
|
colomon |
you mean internally (in token upper) or where upper is used? |
| 21:23 |
|
jnthn |
Where it's used |
| 21:23 |
|
jnthn |
token standard_keyword { <upper> [ <upper> | <digit> ]* } |
| 21:23 |
|
jnthn |
Like in that one |
| 21:23 |
|
jnthn |
Suppose there's a keyword like foobar then at the moment this will create six match objects, one per character. |
| 21:24 |
|
[Coke] |
colomon: http://boingboing.net/2012/10/[…]per-mario-br.html |
| 21:24 |
|
jnthn |
Whereas in reality you probably only care about the keyword as a whole. |
| 21:24 |
|
colomon |
jnthn: right, I already got keyword (based on your previous suggestion) |
| 21:24 |
|
* [Coke] |
wonders if it would make sense to flip the sense of what gets a match object. |
| 21:25 |
|
jnthn |
[Coke]: Probably not; you only tend to care about this in your handful of tokenizer-y things. |
| 21:26 |
|
jnthn |
Most of the rest of the time you do care about that pieces. |
| 21:26 |
|
colomon |
jnthn: ah, so in (for instance) token page I might as well add the dot to <reverse_solidus> |
| 21:26 |
|
colomon |
because I never care about that value at all. |
| 21:26 |
|
jnthn |
colomon: Yes |
| 21:26 |
|
jnthn |
non_q_char may be another example |
| 21:26 |
|
jnthn |
(where you don't care) |
| 21:26 |
|
jnthn |
I don't know the thing you're parsing well enough to guess these :) |
| 21:27 |
|
jnthn |
token special may or may not be cheaper if written as a char class |
| 21:27 |
|
jnthn |
The code probably gets more readable though :) |
| 21:28 |
|
jnthn |
<[ ! " * ... ]> instead of '!' | '"' | '*' | ... |
| 21:29 |
|
jnthn |
Time for some sleep & |
| 21:30 |
|
sirrobert |
wave |
| 21:30 |
|
* colomon |
is littering dots throughout his grammar... |
| 21:31 |
|
colomon |
jnthn++ and good night |
| 21:31 |
|
colomon |
jnthn: sleep well and dream of large speedups |
| 21:31 |
|
sirrobert |
what bot handles karma? |
| 21:32 |
|
|
fgomez joined #perl6 |
| 21:32 |
|
colomon |
karma jnthn |
| 21:32 |
|
aloha |
jnthn has karma of 2766. |
| 21:35 |
|
sirrobert |
colomon: thanks =) |
| 21:36 |
|
sirrobert |
ok, I'm out. wave |
| 21:56 |
|
grondilu |
r: say (1, 2) Z+ (10, 20, 30); |
| 21:56 |
|
p6eval |
rakudo f0aced: OUTPUT«11 22» |
| 21:57 |
|
* grondilu |
would have liked to get 11 22 30 |
| 21:59 |
|
grondilu |
I mean, isn't there a simple way to do vectorial addition in arbitrary dimension? |
| 22:00 |
|
colomon |
nr: say (1, 2) >>+<< (10, 20, 30) |
| 22:00 |
|
p6eval |
niecza v22-7-g7df6137: OUTPUT«Unhandled exception: Ran off end of non-dwimmy left at /home/p6eval/niecza/lib/CORE.setting line 1437 (die @ 5)  at /home/p6eval/niecza/lib/CORE.setting line 3126 (ANON @ 32)  at /home/p6eval/niecza/lib/CORE.setting line 3133 (_hyper_posi @ 11)  at … |
| 22:00 |
|
p6eval |
..rakudo f0aced: OUTPUT«Lists on both side of non-dwimmy hyperop of infix:<+> are not of the same lengthleft: 2 elements, right: 3 elements in sub hyper at src/gen/CORE.setting:12184 in block at src/gen/CORE.setting:12163 in block at /tmp/WMPGy1AzyL:1» |
| 22:00 |
|
colomon |
nr: say (1, 2) <<+>> (10, 20, 30) |
| 22:00 |
|
p6eval |
rakudo f0aced, niecza v22-7-g7df6137: OUTPUT«11 22 31» |
| 22:01 |
|
colomon |
still no 11 22 30 |
| 22:01 |
|
colomon |
*not |
| 22:01 |
|
grondilu |
r: say (1, 2, 0, 0 ... *) Z+ (10, 20, 30); # but that's kind of cheating |
| 22:01 |
|
p6eval |
rakudo f0aced: OUTPUT«11 22 30» |
| 22:02 |
|
|
supernovus joined #perl6 |
| 22:03 |
|
|
hash_table joined #perl6 |
| 22:05 |
|
grondilu |
r: sub infix:<V+>(@a, @b) { my @z := 0, 0 ... *; @a > @b ?? (@a Z+ (@b, @z)) !! ((@a, @z) Z+ @b) }; say (1, 2) V+ (10, 20, 30) |
| 22:05 |
|
p6eval |
rakudo f0aced: OUTPUT«11 22 30» |
| 22:05 |
|
supernovus |
Uhg, I wish rakudo used github's bug tracker instead of the monstrosity that is rt. |
| 22:09 |
|
|
cognominal joined #perl6 |
| 22:11 |
|
supernovus |
Two quick questions. 1.) Anyone with a rakudo commit bit want to look at https://rt.perl.org/rt3/Public[…]ay.html?id=115120 it's a small easy patch that adds an important feature to the pack function. 2.) How does one go about getting a commit bit on rakudo? |
| 22:13 |
|
|
fgomez joined #perl6 |
| 22:13 |
|
supernovus |
gotta run, bbl |
| 22:17 |
|
TimToady |
grondilu: 0, 0, ... * is better spelled 0 xx * |
| 22:18 |
|
TimToady |
also, spec has , * meaning that on the end of a list, but I don't know if anyone implements that |
| 22:18 |
|
|
tokuhiro_ joined #perl6 |
| 22:30 |
|
|
kevouze joined #perl6 |
| 22:31 |
|
[Coke] |
supernovus: submit a TPF CLA. |
| 22:32 |
|
[Coke] |
http://www.perlfoundation.org/[…]license_agreement |
| 22:34 |
|
[Coke] |
supernovus - is there a test in roast that patch makes pass? |
| 22:37 |
|
[Coke] |
(If no one beats me to it, I'll try to apply that patch tonight after $kidstuff. |
| 22:42 |
|
|
cognominal joined #perl6 |
| 22:51 |
|
|
raiph joined #perl6 |
| 22:55 |
|
|
sftp joined #perl6 |
| 22:57 |
|
|
skids joined #perl6 |
| 23:21 |
|
|
gfldex joined #perl6 |
| 23:25 |
|
|
_jaldhar joined #perl6 |
| 23:39 |
|
|
free203 joined #perl6 |
| 23:50 |
|
|
thou joined #perl6 |