»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend! Set by sorear on 4 February 2011. |
|||
00:01
jevin left,
molaf left
00:03
[Coke] left
00:04
[Coke] joined
00:06
jevin joined
00:09
[Coke] left
00:11
[Coke] joined
00:13
soh_cah_toa_ joined,
soh_cah_toa left
00:15
[Coke] left
00:16
eiro left,
rhr left,
Woodi left,
domm left,
literal left,
soh_cah_toa_ is now known as soh_cah_toa
00:20
eiro joined,
domm joined,
rhr joined,
Woodi joined
00:22
[Coke] joined
00:26
[Coke] left
00:28
[Coke] joined
00:32
[Coke] left
00:34
[Coke] joined
00:35
ccc joined
00:38
[Coke] left
00:40
[Coke] joined
00:42
donri left
00:45
[Coke] left
00:46
[Coke] joined
00:51
[Coke] left
00:53
[Coke] joined
00:56
thou joined
00:59
[Coke] left
01:00
[Coke] joined
01:01
woosley joined
01:05
[Coke] left
01:07
[Coke] joined
01:11
[Coke] left
01:13
[Coke] joined
01:14
araujo left
01:17
[Coke] left
01:19
[Coke] joined
01:22
mkramer1 joined
01:24
[Coke] left
01:25
mkramer2 joined
01:26
[Coke] joined,
tomaw is now known as 13WAAIF5K
01:28
mkramer1 left
01:30
[Coke] left
01:32
[Coke] joined
01:37
[Coke] left
01:38
[Coke] joined
01:40
wolfman2000 joined
01:41
whiteknight left
01:43
[Coke] left
01:45
[Coke] joined
01:47
literal joined
01:49
[Coke] left
01:51
[Coke] joined
01:57
[Coke] left
01:58
[Coke] joined
02:00
[particle] left
02:01
[particle] joined
02:02
abercrombie left
02:03
[Coke] left
02:05
[Coke] joined
02:10
[Coke] left,
abercrombie joined
02:11
[Coke] joined,
agentzh joined
02:16
[Coke] left
|
|||
lue | hm, nom silently fails when I try to use for 1..2**30 . I have a feeling it's cos the range is too big. [I know it's an issue with nom, because there's debugging text it should print every iteration of the loop] | 02:17 | |
02:18
[Coke] joined
02:23
[Coke] left
|
|||
colomon | nom: say 2**30 | 02:23 | |
p6eval | nom 53b1d8: OUTPUT«1073741824» | ||
colomon | nom: (1..2**30).map({ .say }) | 02:24 | |
p6eval | nom 53b1d8: ( no output ) | ||
colomon | nom: (1..2**3).map({ .say }) | ||
p6eval | nom 53b1d8: ( no output ) | ||
colomon | nom: for 1..2**3 { .say } | ||
p6eval | nom 53b1d8: OUTPUT«12345678» | ||
colomon | nom: for 1..2**30 { .say } | 02:25 | |
02:25
[Coke] joined
|
|||
p6eval | nom 53b1d8: OUTPUT«(timeout)» | 02:25 | |
lue | although 2**15 (halving the exponent) works just fine [unfortunately, project euler wants 2**30] | ||
colomon | you do realize that doing anything 2**30 times in rakudo will take at least days, right? | 02:26 | |
02:27
ccc left
|
|||
lue | yes :/ [I did the math while testing the code with more sane values] | 02:27 | |
I got it down to 1024 loops every 3-4 seconds, but that doesn't help much :) | 02:28 | ||
02:30
[Coke] left
|
|||
colomon | nom: say 2**20 | 02:30 | |
p6eval | nom 53b1d8: OUTPUT«1048576» | ||
colomon | nom: say 2**20 / 3600 | ||
p6eval | nom 53b1d8: OUTPUT«291.271111111111» | ||
colomon | nom: say 2**20 / 3600 / 24 | ||
p6eval | nom 53b1d8: OUTPUT«12.1362962962963» | ||
colomon | so that's like 40 days to finish at 1024 every 3-4 seconds... | 02:31 | |
02:31
[Coke] joined
|
|||
lue | I'd question PE's sanity on picking 2**30, but then I remember they don't use P6 :) | 02:32 | |
[ah well, off to try another problem...] | 02:33 | ||
colomon | what problem is it? | ||
lue | number 301 | 02:35 | |
lue fears the theoretical nim game with the smallest stack containing 2**30 stones | 02:36 | ||
02:36
[Coke] left
|
|||
colomon | lue: I'd be really surprised if they picked 2**30 AND a brute-force solution is the only way to tackle the problem... | 02:40 | |
lue | .oO(is just me, or do euler problems (at least the more recent ones) rely a bit too much on really large numbers?) |
02:51 | |
nom: say "bolton".reverse; say reverse("bolton"); | 03:12 | ||
p6eval | nom 53b1d8: OUTPUT«boltonbolton» | ||
abercrombie | nom: say "bolton".flip; say flip("bolton") | 03:14 | |
p6eval | nom 53b1d8: OUTPUT«notlobnotlob» | ||
abercrombie | Why there is a 'reverse' method for Str? | 03:19 | |
plobsing | better question, why doesn't it return ipswitch? | 03:20 | |
lue | nom: say "bolton".reverse.perl | ||
p6eval | nom 53b1d8: OUTPUT«("bolton",).list» | ||
plobsing | it is the *parrot* vm after all | ||
lue | reverse converts the Str to a one element array, apparently. [that's not very dwimmy] | 03:21 | |
03:21
Trashlord left
03:24
Su-Shee_ joined
|
|||
Tene | abercrombie: it's part of the general philosophy of making scalars behave like one-item lists. | 03:25 | |
jlaire | lue: many project euler problems have a obvious but slow algorithm, and a less obvious but fast algorithm | 03:26 | |
including 301 | |||
Tene | perl6: 1.map: *.say | ||
p6eval | niecza v9-5-gec4c616: OUTPUT«1» | ||
..rakudo a55346: ( no output ) | |||
..pugs: OUTPUT«Inf*** Cannot cast from VList [VBool True] to Pugs.AST.Types.VCode (VCode) at /tmp/aJKPeqTRmS line 1, column 1 - line 2, column 1» | |||
03:26
Su-Shee left
|
|||
Tene | perl6: "foo".map: *.say | 03:26 | |
p6eval | pugs: OUTPUT«Inf*** Cannot cast from VList [VBool True] to Pugs.AST.Types.VCode (VCode) at /tmp/7Z7XyDZ1hA line 1, column 1 - line 2, column 1» | 03:27 | |
..niecza v9-5-gec4c616: OUTPUT«foo» | |||
..rakudo a55346: ( no output ) | |||
Tene | Huh; I wonder why rakudo fails there | ||
nom: "foo".map: *.say | |||
p6eval | nom 53b1d8: OUTPUT«*» | ||
Tene | nom: "foo".map: { say $^i } | ||
p6eval | nom 53b1d8: ( no output ) | ||
abercrombie | The memory leak problem finally got fixed? | 03:32 | |
03:34
araujo joined
03:41
wolfman2000 left
04:01
birdwindupbird joined
|
|||
sorear | good * #perl6 | 04:02 | |
oopsie, forgot to report #phasers | 04:06 | ||
04:07
cognominal___ joined
|
|||
sorear | colomon: template<typename S> class MyRole<S> : public S { ... }; class MyClass : public MyRole<SuperClass> { ... } | 04:09 | |
colomon: not strictly roles, but described in the roles paper as one of the most similar prior systems | 04:10 | ||
04:10
cognominal_ left
|
|||
sorear | pmichaud: plobsing: IIUC (and currently implemented in Niecza), CATCH { die $! } has the effect of creating a second exception (from the die) while simultaneously rethrowing the original unhandled exception, and is an easy way to get a 2-simultaneous-exceptions scenario | 04:14 | |
plobsing: pmichaud: I'm not thrilled with this, or with the spec behavior of LEAVE { die } for that matter. | 04:15 | ||
plobsing | .oO( leave and let die ) |
04:24 | |
so what happens to the second pending exception if the first bubbles all the way to the top? does it get dropped? | 04:26 | ||
04:44
jedai left
|
|||
sorear | plobsing: the set of pending exceptions stays together as it bubbles up, and they are all printed before exit | 05:08 | |
TimToady: Consider my int $x,$y,$z; ...; $x = ($y + $z) div 2; | 05:09 | ||
TimToady: the user probably intends for the sum to be calculated as a fixnum. Is it possible to get these semantics in Perl 6? | |||
TimToady | int is just a storage type; temporary calculations are done in Int semantics, by current spec, methinks | 05:14 | |
course, you have an undeclared $y and $z there... :P | |||
sorear | yeah, current spec requires Int semantics iiuc too. | ||
just thinking it may be sub-optimal for DWIM | 05:15 | ||
I want to make it easy to transcribe C algorithms into Perl 6 | |||
also, we need to make +> :rotate work somehowe | 05:16 | ||
TimToady | :rotate(32) or some such maybe | 05:17 | |
05:18
jevin left
05:19
jevin joined
05:28
soh_cah_toa left,
SHODAN joined
|
|||
sorear | flussence: I still want a code mockup for warning tests. | 05:48 | |
05:49
xinming_ joined
|
|||
mberends | sorear: good morning, what should be fixed/added next in compiler.pod? | 05:50 | |
05:52
xinming left
05:53
cexsum left
|
|||
sorear | mberends: good morning. I haven't read your version yet, I'll do that now | 05:56 | |
05:59
donri joined,
donri left,
donri joined
|
|||
sorear | mberends: all good up to the last paragraph | 06:02 | |
mberends: rawscall is raw static (method) call; it allows calls into C# libraries from Perl 6, like earlier versions of Niecza (before I started taking backend portability more seriously) defined say using (rawscall System.Console.WriteLine (obj_getstr {@args.join('')})) | 06:03 | ||
mberends: the downcall mechanism is very hairy | 06:04 | ||
mberends | sorear: interesting. I thought last night about writing something about the bootstrapping implications of downcall | 06:05 | |
sorear | mberends: run/Niecza.exe is linked against run/Kernel.dll (from the bootstrap zipball), but code you compile with Niecza.exe should link against obj/Kernel.exe (compiled from lib/*.cs) | ||
obj/Kernel.dll | |||
the CLR allows you to load two incompatible assemblies with the same name, as long as you load them in different "application domains" | 06:06 | ||
mberends | sorear: thanks! I'll also delete the old content and continue writing up CLRBackend.cs | 06:07 | |
sorear | the C# DownCall method performs the necessary voodoo to create a second appdomain for running code, then invoke the back back end :) in CLRBackend.cs in the child appdomain | ||
mberends | back back end :-) | 06:08 | |
06:09
koban` joined,
koban` left
|
|||
mberends | anyone interested in Niecza could learn and help a lot by checking and editing the documentation - this is vital to engage more contributors | 06:12 | |
I'd like to "dumb it down" further, to lower the barriers to entry | 06:13 | ||
06:24
Su-Shee_ is now known as Su-Shee
06:26
wtw joined
06:33
birdwindupbird left,
birdwindupbird joined
06:35
wamba joined
|
|||
sorear | mberends: well I'm going to sleep now. I'd like to point out that the internal representation is a bit more nuanced than a "tree of Op", but that might be a needed pedagogical simplification, I dunno. | 06:44 | |
mberends | sorear: I agree, it's grossly oversimplified. I think for some things, the detailed explanation is positioned better out of sequence. | 06:46 | |
sorear: I'll try to figure out a friendly way to say more about AST's. I think there may be a need for a separate parser doc. | 06:48 | ||
With some more work, this content could become a nice conference talk :) | 06:50 | ||
06:56
ernanitecc joined
|
|||
moritz | o/ | 07:00 | |
07:00
ernanii joined
|
|||
mberends | good moritz morning | 07:00 | |
moritz | :-) | 07:01 | |
moritz wishes martin a good moritz too | |||
mberends | mor<Tab> runs so naturally through the fingers :) | 07:02 | |
07:02
ernanitecc left
|
|||
moritz | I wonder if that should tab-complete to "methods of rationality" | 07:04 | |
mberends | :-) | 07:05 | |
07:08
uasi joined
07:09
ernanitecc joined
07:10
ernanitecc left
07:11
masak joined
|
|||
masak | good moritz everyone. | 07:11 | |
07:12
ernanii left
|
|||
moritz | good mberends, masak | 07:12 | |
masak++ # backlogging before speaking up | |||
masak | phenny: tell ashleydev that yes, macros can be both AST-based and unhygienic. just defer all variable checks until macro-apply-time, and then have $x in the macro be the same as $x outside the macro. it's probably easier to implement than hygiene. | 07:14 | |
phenny | masak: I'll pass that on when ashleydev is around. | ||
masak | might even be a stepping-stone to real, hygienic macros. | 07:15 | |
mberends | good moritz masak | 07:16 | |
07:19
agentzh left
|
|||
mberends | masak: would you consider implementing your macro work on Niecza as well as Rakudo? Their AST's should be broadly similar. It would be a big win for portability. | 07:20 | |
masak | mberends: I would, if it seemed easy. it doesn't seem easy. | ||
mberends: Niecza still cheats with BEGIN time. | 07:21 | ||
today's autopun sighting: twitter.com/robinannsmith/status/1...1020806144 | 07:24 | ||
mberends | lol | 07:25 | |
moritz | and the link I clicked after the autopun was creatingev.com/post/9610965432/i-ju...eta-copied | 07:27 | |
07:27
daxim joined
|
|||
moritz | and in the corresponding HN thread: "In a country with a billion people, even if you're one in a million, there's still 1000 people just like you." | 07:28 | |
07:29
dark_x joined,
mj41 joined
|
|||
masak | that's not just literally true, but probably a good explanation for a lot of phenomena in China. | 07:29 | |
schools, careers, family planning... | 07:30 | ||
moritz | while working on my blog thingy, I noticed that I didn't like the traditional error messages | 07:32 | |
daxim | 6 million is a small city, and nothing ever interesting happens | ||
moritz | "Cannot open file 'foo/bar.json' for writing: No such file or directory" | ||
it doesn't tell me *why* the program is trying to open that file for writing | |||
07:32
agentzh joined
|
|||
masak | good point. | 07:33 | |
to find out why, you generally go to the file and line. | |||
daxim | ' " quotes in error messages suck, if you want to grep in logs, they usually need shell quoting | ||
mberends | Given our genetic diversity, we are all probably one in a million when you fuzz the iris scans and fingerprints. Our uniqueness comes from our software and memory. | 07:34 | |
moritz | daxim: what would you use? | ||
daxim: also when I grep error messages, I usually search for either the message or the file name, not both | 07:35 | ||
is that a real concern? | |||
daxim | typographic correct quotes. that was actually an improvement when gnu tools' english po started using that | 07:36 | |
moritz | daxim: typographic correct quotes are very language dependent, and usually not in ASCII | 07:37 | |
daxim | it's a concern, yes, not a big one, but one of the 1000 papercuts | ||
screw ascii | |||
moritz | I'd rather not screw my error messages | ||
I'm fine with non-ASCII for basically everything else | |||
but error messages are sufficiently fundamental that I want them to work even in UTF-8-insane environments | 07:38 | ||
YMMV of course | 07:39 | ||
daxim | that argument isn't convincing. look who is inconvenienced and who is not, you'd choose the wrong tradeoff | ||
moritz | "that argument isn't convincing" isn't a convincing argument. | ||
07:39
im2ee joined
|
|||
daxim | fine, I'll draw a matrix. | 07:40 | |
masak | moritz: good luck convincing someone of that! | ||
moritz | masak: :-) | ||
07:42
ccc_ joined
|
|||
masak | moritz: but back to good error messages with the "why" in them. what would one look like? | 07:43 | |
moritz | "Cannot open '$filename' for storing a blog post in it: $!" (maybe) | 07:44 | |
masak | "Wanted to open '$filename' to store a blog post, but got this: $!", maybe? | 07:45 | |
moritz | maybe | ||
daxim | style who is inconvenienced | ||
moritz 'foo.json' people grepping using the phrase, cannot just paste, need shell quoting | |||
daxim ‛foo.json’ people with insane unicode setup, will see âfoo.jsonâ or �foo.json� | |||
second group is in the minority, why pander to them? that's not good design. | 07:46 | ||
moritz | daxim: you forgot the people who want to copy&paste the file name (which might contain whitespace) along with the quotes for using them in the shell | ||
moritz -> afk | 07:47 | ||
daxim | surrounding something at the outer borders with quotes is easier than positioning the cursor accurately and backwhacking | ||
mberends sneaks the babby meme into a circularity discussion in the forthcoming niecza/docs/compiler.pod | 07:53 | ||
daxim | hardware.slashdot.org/comments.pl?s...d=37260704 # language war, this one arguing for smaller languages because they're easy to implement | 07:57 | |
mberends applies the troll filter to that. Slashdot used to be fun, but is difficult to enjoy nowadays. | 08:01 | ||
masak | daxim: Perl 6 is a small language with a big setting. | 08:03 | |
flussence | sorear: I did those, see irclog.perlgeek.de/perl6/2011-08-29#i_4343345 | 08:05 | |
mberends thinks Perl 6 is a big language with an even bigger setting </troll> ;) | 08:28 | ||
masak | indeed, it doesn't have 7 primitives and almost no syntax, as does Lisp. | 08:35 | |
08:38
wk joined
|
|||
jnthn | morning, #perl6 | 08:39 | |
mberends | good moritz jnthn # tabs again :) | 08:40 | |
masak | good mberends jnthn | 08:42 | |
jnthn | oh heh, it's not just me that sometimes tries to tab complete morning... :) | ||
Though I always managed to catch it in time before hitting enter ;) | |||
mberends | we need smarter irc clients | ||
jnthn | Yeah, it should just know what I want to submarine. | 08:43 | |
wait, what... | |||
:) | |||
masak | haha, you pushed tab and it just gully completely wrench! | 08:44 | |
mberends | perhaps jnthn's computer became full of eels during his break | 08:45 | |
08:47
drbean joined
|
|||
mls | morning perl6! | 08:48 | |
jnthn: nqp's 6model/multi_dispatch.c:nqp_multi_dispatch() leaks mem | 08:49 | ||
because the sort_candidates result is not cached | 08:50 | ||
masak | good mls, morning! | ||
mls | masak, mberends, morning, good! | ||
mberends | eh :) | 08:51 | |
jnthn | mls: Yeah, I still didn't get around to adding the caching there. It'll almost certainly perform awfully without it. In reality, I don't think anything is really using multi-dispatch in nqp yet, or barely. But it certainly needs sorting out. | 08:52 | |
mls | compiling the setting calls it a couple of hundred times | 08:53 | |
nothing really worrysome, though | |||
jnthn | Yeah, that's what I mean. It's not on a hot path where we call it tens of thousands of time, like other things we do. | ||
Anyway, if you want to add the caching there, that'd be very welcome. It's just an un-todone todo :) | 08:54 | ||
mls | by coping the code from nom? | 08:55 | |
jnthn | It's not quite that easy, I fear. | ||
Since we store/handle multis a bit differently in NQP due to lack of code objects (we use raw Parrot subs for stuff at the moment) | |||
mls | aaw. | ||
jnthn | But should be do-able. | 08:56 | |
Also, the thing nom does isn't a true "multi-dispatch cache" (more) | |||
It just caches the sorted candidate list. It's possible to build something smarter. | |||
github.com/jnthn/6model/blob/maste...chCache.cs # a C# sketch (working) of something smarter that I'd like to port at some point | |||
08:57
dakkar joined
|
|||
mls | speaking of speed improvmends: I ran callgrind on the setting compilation, and about 20% of the time is spent in Parrot_SixModelObject_find_method | 08:59 | |
jnthn | Whoa. | 09:00 | |
That's good to know. | |||
mls | (the includes the ->ext_call->runops->... subcalls) | ||
jnthn is a bit surprised...but then, that's the point of profiling instead of guessing :) | |||
Yeah, it should only do that when we call on something that's not yet been composed. | |||
09:00
Mowah_ joined
|
|||
jnthn hadn't expected so many calls of that nature | 09:01 | ||
mls | it seems like many method caches are not published | 09:02 | |
flussence | (if anyone else wants to poke fun at what I wrote up there, go ahead :) | ||
mls | (btw, should it also cache negative hits? i.e., is the cache authoritative? | 09:03 | |
jnthn | Well, we publish at composition time, so yeah, anything uncomposed will have no method cache and fall back into find_method | 09:04 | |
mls | if yes, you might want to add if (VTABLE_exists_keyed_str(interp, st->method_cache, name)) return PMCNULL; | ||
09:04
SHODAN left
|
|||
cognominal___ | hi. what is the meaning of the second parameter in an action? | 09:04 | |
mls | cause, the VTABLE_get_pmc_keyed_str doesn't distinguish between entry not found and entry is PMCNULL | 09:05 | |
jnthn | I didn't yet treat it as authoritative, though that's the goal. Well, kinda. Even if it's "authoritative" in Perl 6, it's not always going to mean we don't need to look harder. Many classes have fallbacks, for example. | ||
masak | cognominal___: it's the key. | ||
mls | ok, so forget about the VTABLE_exists_keyed_str test... ;) | 09:06 | |
cognominal___ | yea, I see its value is often 'open'. I forgot what it means. | ||
jnthn | mls: Yeah. It's going to need to be a little smarter than that. | ||
masak | it could be anything we pass in from the grammar. | ||
cognominal___ | thx, now I see. that's the {*} hack. | 09:07 | |
masak | right. | 09:08 | |
did that ever get spec'd? | |||
jnthn | I...seem to recall it being destined to go away. | 09:09 | |
09:09
pernatiy joined
|
|||
cognominal___ | masak: in glossary.pod | 09:09 | |
09:10
orafu left,
orafu joined,
thou left
|
|||
cognominal___ | As a follower to the discussion about implementing grammars for languages like javascript or coffeescript. I think that rules <ws-eopr> and <ws-eterm> to be used (when definid) in place of <ws> by EXPR would be nice. <ws-eopr> would be called when expecting an operator and <ws-eterm> would be called when expecting a term. | 09:14 | |
09:20
wamba left
09:25
daniel-s left,
daniel-s joined
09:30
dark_x left
09:42
envi left
10:13
MayDaniel joined
|
|||
dalek | ecza: 0b103d1 | (Martin Berends)++ | docs/compiler.pod: [docs/compiler.pod] save work in progress |
10:17 | |
10:18
im2ee left,
wamba joined
10:22
im2ee joined
10:38
Trashlord joined
10:48
MayDaniel left
10:55
woosley left
|
|||
tadzik | good moritz #perl6 | 11:01 | |
11:02
Mowah_ left
|
|||
colomon | \o | 11:03 | |
mberends | o/ | 11:10 | |
tadzik | I tend to treat irc client as vim sometimes, and expect it to autocomplete everything based on the last occurence of a certain word. I probably need a vim-based irc client :) | 11:11 | |
moritz | tadzik: or a plugin | ||
tadzik | moritz: for vim, or for weechat? | 11:12 | |
moritz | tadzik: irssi is scriptable in perl 5, for example | ||
tadzik | yeah, I know. weechat is a bit acmeist in this case :) | ||
pmichaud | good morning, #perl6 | 11:13 | |
tadzik | good morning pmichaud | ||
jnthn | o/ pmichaud | 11:14 | |
moritz | \o | ||
tadzik | so the release hits this weekend at any cost? | 11:22 | |
pmichaud | I don't know.... while out walking and thinking about it last night I'm not sure I'm comfortable with an august release with what we have. | 11:25 | |
I mean, what .pm group do we "punish" by naming this release after them? ;-) | 11:26 | ||
masak | pmichaud! \o/ | ||
pmichaud | anyway, I'm working on the branch renames now in a practice repo. | ||
masak | Moon.pm | ||
pmichaud | I thought about Atlantis.pm | ||
masak | "This release s(t)inks!" | ||
pmichaud | if we're in agreement that the release really isn't up to our standards, perhaps we shouldn't release (more) | 11:27 | |
we can also put out a 2011.08 release in early september. I think there's precedent for this -- iirc, one of ubuntu's releases was delayed for a couple of months but still kept the same release number (more) | 11:28 | ||
I'm not saying we'll delay by a couple of months, just that it doesn't _have_ to occur today. | |||
masak | if we delay, I think we should announce that just as we announce releases. | ||
might give people something to look forward to. | 11:29 | ||
pmichaud | yes, there would be an announcement | ||
"give people something to look forward to" isn't a good idea, imo | |||
historically, Perl 6 has done too much of that already. | |||
we can talk about what we have and where we stand, but shouldn't promise too much about what will show up | 11:30 | ||
afk for a bit-- kid wakeups | |||
masak | oh, true. | 11:31 | |
I really meant "not allow people to walk away because nothing happens" | |||
masak throws a mug | |||
the reason for the delay is, at bottom, a good thing. I think that should be explained. | 11:33 | ||
people have expended lots of energy, and will expend lots more, to build a better Rakudo. | |||
the announcement-instead-of-a-release-announcement should reflect that, even if it doesn't promise things. | 11:34 | ||
pmichaud | anyway, yes, my intention was to make an announcement for whatever we decide to do, not just to let the situation fall into a black hole | 11:36 | |
11:36
Su-Shee left,
Su-Shee joined
|
|||
masak | splendid. | 11:38 | |
12:10
mtk left,
mtk joined
12:13
13WAAIF5K is now known as tomaw
12:14
isBEKaml joined,
wk left
12:16
wk joined
|
|||
felher | masak: is there a way to look over your shoulder while your work on macros evolves? i.e. is there a nom-branch or something like that? | 12:17 | |
isBEKaml | masak: macros! is that like aspects in Java? or macro defs in C ? :) | ||
arnsholt | No, like macros in Lisp | 12:18 | |
Which are super-mega-awesome =D | |||
isBEKaml | hmm, I don't know have any lispiness on me. :( | ||
all I know (from what I read), they sound a lot like pointcuts and concerns in AOP. | 12:19 | ||
masak | felher: I have a local branch. | 12:20 | |
felher: at some point, I'll push it, and from then on I'll try to push often. | |||
I'll also try and blog regularly. | |||
isBEKaml | or with a strange consistency. =) | ||
masak | isBEKaml: there are operational similarities between pointcuts and macros, yes. | ||
isBEKaml: macros don't have the action-at-a-distance of aspects. | 12:21 | ||
pmichaud | oh, I didn't get a chance to review masak++'s proposal last night :(. Will do that momentarily. (masak: apologies) | ||
felher | masak: thnx. sounds good to me :) | ||
masak | pmichaud: no worries. | ||
pmichaud | I don't want to be a blocker there :) | ||
tadzik | proposal? | 12:22 | |
isBEKaml | masak: Well, I have seen the same excitement that arnsholt++ exhibited about macros, but never got around to seeing them firsthand. | ||
masak: Guess I'll get to see that in p6 and feel the excitement. :) | 12:23 | ||
arnsholt | In somewhat technical terms, macros let you create your own syntactical abstractions | 12:24 | |
In other words, you can extend the language in directions you ordinarily can't | |||
isBEKaml | arnsholt: a concrete example? | ||
tadzik | macro statement_prefix:<###> {} | ||
to implement Smart Comments | 12:25 | ||
pmichaud | yeah, I still doubt that one (based on the current grammar) | ||
masak | me too. | ||
pmichaud | it'd have to be comment:<###> something, at best. | ||
isBEKaml | tadzik: now, what are smart comments? Sorry, I'm just confused. | ||
pmichaud | even then it might not be sufficient without some more grammar tweaks | ||
masak | isBEKaml: !cpan Smart::Comments | ||
ooh, first time I use DuckDuckGo syntax on the channel :P | 12:26 | ||
tadzik has that as 'cpan smart-comments' in the browser itself | |||
isBEKaml | masak: there's a module for that? Damn, cpan's got everything (only fault, it doesn't have a thesaurus!) | ||
pmichaud | "Smart comments" are a module created by TheDamian -- it allows debugging and other useful features to be placed in code; sometimes they're normal comments, sometimes they do useful things (depending on the 'use' statement) | ||
sbp | duck ♡ | ||
isBEKaml | dukgo? you too? :D | 12:27 | |
masak | isBEKaml: yes. in fact, the '!' syntax was what settled it for me. so nice. | ||
isBEKaml: you should try the new metacpan :) | |||
isBEKaml | masak: yeah, the bang syntax is pretty useful. I use to search Stackoverflow! | 12:28 | |
masak | I do !w a lot. | ||
and !dictionary | |||
tadzik | I do !g a lot, to be honest ;) | ||
huf | i like that google disregards it so i can do !things no matter which search engine i'm using atm :) | 12:29 | |
isBEKaml | Oh, smart comments. Like masak++ said, they do sound a lot similar to AOP in java. | ||
masak | I didn't say that :P | ||
isBEKaml | tadzik: that would just defeat dukgo now, won't it? ;) | ||
masak: well, not a lot! :P | |||
tadzik | isBEKaml: not really. It's just that when ddg doesn't produce good enough results, I can just add !g to the query to switch to google | 12:30 | |
12:30
JimmyZ joined
|
|||
masak | macros look like subs or operators, but are "called" at parse-time. | 12:30 | |
isBEKaml | tadzik: or allow it to recommend google. ;) | ||
masak | in terms of the DLX code I'm writing, I could write the algorithm using ordinary hashes, but have them look like objects with methods using macros. | 12:31 | |
which would give me pretty code *and* no overhead from objects. | |||
pmichaud | I've just cleaned up (removed) some of the outdated branches in the rakudo repo on github; here's a list of the ones that remain: pmichaud.com/sandbox/branches.txt | 12:32 | |
masak | put differently, macros can be a convenient carpet under which to sweep some of a language's syntactical deficiencies. | 12:33 | |
pmichaud | if anyone feels strongly about keeping or removing anything I've listed there, let me know soon. Or just remove the branch yourself if you're the one nominally in charge of the branch. | ||
isBEKaml | hmm, one thing that worked quite well with macros is that they were implemented only in dynamic programming languages. (Lisp, for eg). I'm not quite sure if macros can be fit in at compile time (while it's at runtime in the case of java) | ||
masak | isBEKaml: er. | 12:34 | |
isBEKaml: macros *do* execute at compile time. | |||
isBEKaml | masak: I was referring to dynamic languages that have macros (executed at compile time, ofcourse) | 12:35 | |
masak | isBEKaml: anyway, if you count C macros, then macros definitely mesh with static languages. | 12:36 | |
flussence | .oO( I can imagine implementing PHP with maybe a few dozen macros... ) |
||
isBEKaml | flussence: tell that to a Mr.Lerdorf! :P | 12:37 | |
tadzik | podparser can be buried, I'll do that | ||
gsoc-podparser as well, it's merge | |||
d | |||
I don't really remember what str-indent is about, probably some hard to track nombug, will take a look in a while | 12:38 | ||
flussence | I think that's master Str.indent... | ||
isBEKaml | masak: Either I'm confused or I haven't seen the full power of macros in C. From whatever little I got out of reading them, C macros don't extend the language in ways that "sweep" their deficiencies under the carpet. | ||
masak: Granted, this won't be the first time I'm confused.. | 12:39 | ||
tadzik | flussence: it's created by me, so I'm not so sure :) | ||
flussence | oh | ||
tadzik | otoh, it's from april :/ | ||
12:40
bluescreen10 joined
|
|||
masak | isBEKaml: granted, they do it quite clumsily in C, but they still do just that. | 12:40 | |
flussence | (I wonder if enough of nom works to port that function to it now...) | ||
isBEKaml | masak: Okay, I'll wait and watch how this evolves in p6. :) | 12:41 | |
tadzik | flussence: nah, that branch is definitely master-based | 12:42 | |
jnthn | pmichaud: nom-install can go now that nom is installable :)] | 12:44 | |
tadzik | and seems that it has been merged already | ||
removing | |||
meh, I should start doing my physics :/ | 12:47 | ||
12:47
JimmyZ_ joined
|
|||
tadzik | waking up on 1 PM doesn't help motivation at all | 12:48 | |
12:48
JimmyZ left,
JimmyZ_ is now known as JimmyZ
|
|||
pmichaud | jnthn: deleted nom-install branch | 12:52 | |
moritz | fwiw, nom-exceptions is still important for me | 12:53 | |
(I'll rename it myself if necessary) | |||
12:53
Holy_Cow joined
|
|||
pmichaud | updated branches.txt to KEEP nom-exceptions | 12:54 | |
isBEKaml | moritz,pmichaud: Aren't you guys running on master? It's nom based now? | ||
pmichaud | isBEKaml: not yet. I'm about to make the switch (like, in the next hour or so) | 12:55 | |
tadzik | pmichaud: str-indent has been removed, as is podparser and gsoc-podparser | ||
pmichaud | I've already done a test switch at github.com/pmichaud/rakudo (a fork of rakudo/rakudo) and it seems to work just fine. | ||
tadzik++ tadzik++ tadzik++ # one karma per branch delete | |||
tadzik | :) | ||
taking a look at nom-buf now | 12:56 | ||
isBEKaml | pmichaud: Ohh, so this will be the first time there will be a nom release? :) | ||
moritz | it seems that github doesn't easily allow renaming of master branch | ||
pmichaud | no, it's quite easy. | ||
moritz | one has to change the default branch on the web interface fist | ||
pmichaud | you just have to set the .... right | ||
moritz | *first | ||
isBEKaml | s:2nd/will be/is/ | ||
12:56
Chillance joined
|
|||
pmichaud | isBEKaml: the next release, whenever it ends up being, will be nom-based. | 12:56 | |
there's not a lot of point to making another ng-based release, other than perhaps to keep things on schedule. | 12:57 | ||
isBEKaml | pmichaud: ISTR there should be a release now (couple weeks after parrot release)? | 12:58 | |
pmichaud | isBEKaml: we had to postpone it... the nom branch really isn't release-quality yet | ||
isBEKaml | are we skipping it for a nom promise next time? (sorry for the pun) | ||
JimmyZ | Will operators be marco-ish? | ||
isBEKaml | JimmyZ: you can see operators all over the place! (I feel too punny) | 12:59 | |
Marco polo. | |||
pmichaud | we can make a release now if we want... and as of yesterday I was thinking we should do that... but after working on it a bit yesterday I decided that an incomplete and regression-full release may be harder to explain and deal with (for our users) than a simple postponement. | ||
JimmyZ | s/marco/macro/ | ||
pmichaud | JimmyZ: many operators will be inlinable, which makes them have some of the characteristics of macros. | 13:00 | |
masak | JimmyZ: TimToady says he considers short-circuiting operators such as infix:<&&> to be macros. | 13:01 | |
JimmyZ: that would explain why they short-circuit, i.e. don't always evaluate their rhs. | |||
isBEKaml | pmichaud: I see. Thanks for the clarification. Even as I have been away from the channel, I was following p6 and parrot news. Thanks again. | 13:02 | |
pmichaud | oh! github already has a version of my list available! github.com/rakudo/rakudo/branches | ||
JimmyZ | something like sub *fix:<XXXX>() is inlinable { } ? | ||
jnthn | JimmyZ: No | ||
pmichaud | JimmyZ: yes, but you don't need the "is inlinable" part -- the optimizer can figure it out on its own. | 13:03 | |
jnthn | JimmyZ: It's up to the optimizer. | ||
Also, it isn't just operators, any suitable sub could be inlined. | |||
isBEKaml | masak: I don't know if p6 subs/methods have fixity like operators. | ||
jnthn | (Since operators are just subs anyway.) | ||
pmichaud | github++ | ||
tadzik | I find this list more helpful: github.com/rakudo/rakudo/branches/nom | 13:04 | |
isBEKaml | they always bind to the left, don't they? $some.<some_method> or $some <some_method> | ||
pmichaud | 1800 commits since the branch from ng | ||
JimmyZ is curious how optimizer figure it out ;) | |||
pmichaud | jnthn: can the jnthn-opts branch go away? | 13:05 | |
tadzik | . o O ( jnthn opts in ) | 13:06 | |
masak | isBEKaml: p6 ops *are* subs/methods. | ||
jnthn | pmichaud: yeah | ||
pmichaud: It's master-based | |||
pmichaud | jnthn: deleting | ||
13:07
mtk left
|
|||
pmichaud | jnthn: deleted jnthn-opts | 13:07 | |
isBEKaml | masak: ah, 'kay. | ||
jnthn | pmichaud: iirc, the thing I was looking at in it is actually done in nom :) | ||
pmichaud | isBEKaml: fixity on operator subs is done using traits. | ||
sub infix:<xyz>($a, $b) is assoc<right> { ... } | 13:09 | ||
isBEKaml | pmichaud: Ah, that's pretty cool. Unfortunately, the only reference I could find in spec is in S06, with protos. | 13:10 | |
pmichaud | look for "is assoc" in S06. | ||
S06#2160 | |||
JimmyZ just realized Perl 6 doesn't use inheritance | 13:11 | ||
jnthn | JimmyZ: er, what? :) | ||
pmichaud | okay, I'm about ready to do the branch renames. Any last-minute concerns or objections? | ||
masak | JimmyZ: class A is B {} | 13:12 | |
tadzik | for science! | ||
jnthn | JimmyZ: We have inheritance. :) | ||
pmichaud | Once I do the rename, people will likely need to delete existing repos and re-clone from rakudo/rakudo. | ||
13:12
mtk joined
|
|||
tadzik | bah, and I almost compiled nom-buf ;) | 13:12 | |
pmichaud | tadzik: I can wait a short bit (in fact, I'm still a few minutes out) | ||
Su-Shee | on the subject of nom... ;) is.gd/jo2Vow | ||
JimmyZ | maybe I'm confused between traits and inheritance | 13:13 | |
tadzik | pmichaud: let me just check the state of that | ||
JimmyZ: 'is' doesn't always mean inheritance | |||
pmichaud | tadzik: okay, no rush. | ||
isBEKaml | jnthn: yeah, don't know what JimmyZ was referring to. maybe he got sifted in between mixins and inheritance. | ||
pmichaud | yes, here we still have some ambiguity as to what the meaning of "is" is. :-) | ||
tadzik | grr, it now needs over 70% of my memory | ||
JimmyZ | PHP 5.4 introduced trait | ||
just like scala | 13:14 | ||
tadzik | that shows me why I wasn't working on anything settings related recently | ||
isBEKaml | JimmyZ: weird, I was trying not to think of Scala when I saw pmichaud++ tell me about traits. :D | ||
pmichaud | moritz: a lot of the branches in the rakudo repo seem to have you as the last committer; can I summarily remove any of those branches that haven't had a commit in 2011? | 13:15 | |
JimmyZ | isBEKaml: I agree with pmichaud++ | ||
pmichaud | moritz: see github.com/rakudo/rakudo/branches -- especially the branches starting with "num-conversion" and below | ||
JimmyZ | isBEKaml: well, and also PHP 5.4 too | 13:16 | |
tadzik | pmichaud: okay, nom-buf is still broken, no need to worry about it now | 13:17 | |
Could not find sub &postfix:<++> | |||
pmichaud | I'm afk for about 15 mins. Will do the branch rename when I return. | 13:18 | |
(barring objections) | |||
isBEKaml | JimmyZ: Well, I haven't done anything with PHP. But yeah, there's a lot of overlap here that it's so easy to get lost. :) | 13:19 | |
13:19
Holy_Cow left
|
|||
JimmyZ | isBEKaml: PHP are more like java && scala now :( | 13:20 | |
13:22
im2ee left
|
|||
isBEKaml | JimmyZ: Heh. No! .oO(It's now up to programmers to compartmentalise their brains) | 13:22 | |
JimmyZ | isBEKaml: I'm say syntactic sugar, hehe | 13:23 | |
saying | |||
13:23
envi_laptop joined
|
|||
moritz | pmichaud: I'll go through the branches and delete mine myself | 13:24 | |
13:25
im2ee joined,
xenagi joined
|
|||
xenagi | perl6: say 3 | 13:25 | |
p6eval | pugs, rakudo a55346, niecza v9-6-g0b103d1: OUTPUT«3» | ||
isBEKaml | JimmyZ: yeah, I understood that. So, next time you're dealing with another language, google that syntax first! ;) | ||
masak | \o/ | ||
13:25
woosley joined,
bluescreen10 left
13:28
wk left
|
|||
mberends | pmichaud: after the #phasers discussion where everyone but you were against 'ng', and then we could not unanimously bikeshed another name, are we also heading for ng: on the evalbot? | 13:30 | |
mberends still actively dislikes 'ng' | 13:31 | ||
isBEKaml | niecza: my int $x = 42; say $x; | 13:32 | |
p6eval | niecza v9-6-g0b103d1: OUTPUT«===SORRY!===Malformed my at /tmp/dNeWlQd8tE line 1:------> my ⏏int $x = 42; say $x;Parse failed» | ||
isBEKaml | niecza: my Int $x = 42; say $x; | ||
p6eval | niecza v9-6-g0b103d1: OUTPUT«42» | ||
bbkr_ | niecza: my Int $x = 2147483647 + 1; say $x; | 13:34 | |
p6eval | niecza v9-6-g0b103d1: OUTPUT«2147483648» | ||
isBEKaml | bbkr_: is that int max? | 13:35 | |
bbkr_ | max of int32 | ||
masak | mberends: I wouldn't mind either '2011.07: ' or 'beijing: ' | 13:36 | |
moritz | patches to evalbot welcome and trivial. | ||
mberends | masak: same here | ||
moritz: my thought is rather that it saves us so much time spent on explanations if the names match | 13:37 | ||
flussence | I like the 'beta' name | 13:38 | |
pmichaud | I veto 'beta'. | ||
isBEKaml | niecza: my Int $x = 2147483647; say $x + 42; | ||
p6eval | niecza v9-6-g0b103d1: OUTPUT«2147483689» | ||
pmichaud | I absolutely do not want the existing 'master' to be somehow known as the "beta version of Rakudo" | ||
it was never intended as such. | |||
flussence | point taken :) | ||
pmichaud | I'm fine for just about any name as a replacement for 'ng' | 13:39 | |
(except 'beta') | |||
isBEKaml | niecza: my Int $x = 2147483647; say $x ** $x; | ||
13:39
buubot_backup left
|
|||
isBEKaml | :) | 13:39 | |
p6eval | niecza v9-6-g0b103d1: OUTPUT«(timeout)» | ||
pmichaud | also, I'm going to hold off on the branch rename until I have the corresponding announcement ready to go (which I'm drafting now) | 13:40 | |
that way I can release the announcement as soon as the repo is convertged | |||
mberends prefers 'beijing' after the foregoing opinions | |||
dalek | albot: 154c42c | moritz++ | evalbot.pl: target rename: nom => rakudo, rakudo => b (b is common to "bejing" and "b<vetoed>" |
||
13:40
bluescreen10 joined
|
|||
isBEKaml | b: say 42 # am I too fast? :D | 13:41 | |
moritz | isBEKaml: yes | ||
evalbot control restart | |||
13:41
p6eval left,
p6eval joined,
ChanServ sets mode: +v p6eval
|
|||
moritz | b: say 1 | 13:42 | |
p6eval | b a55346: OUTPUT«1» | ||
pmichaud | I'm going to remove the validate-test-pm and leave_exceptions branches on github. They're both from 2009. | ||
flussence | if anyone new asks, I'll say "b" is for "bread". It's been in a cupboard for a few weeks and it's slightly mouldy now. | ||
masak | moritz: under the common prefix rule, you could've gone with 'be' :P | ||
moritz | masak: I could have. | ||
tadzik | bee | 13:43 | |
pmichaud | "to 'be', or not to 'be'" | ||
That is the question. | |||
I prefer 'b' to 'be', fwiw. | |||
isBEKaml | but the bee is going to sting camelia. | ||
tadzik | is it a question? | ||
mberends | flussence++ # :D | ||
jnthn | b**2|<-[b]>**2 | ||
moritz | anyway, further evalbot bikeshedding may happen in the form of patches. | ||
moritz feels his part is done | |||
mberends | morning++ | 13:44 | |
tadzik | ;) | ||
mberends | er, moritz++ | ||
tadzik | silly github, never shows all branches | ||
pmichaud | github.com/rakudo/rakudo/branches looks *much* nicer now. Thanks all. | ||
tadzik | it used to be "showing 19 of 21", now it's Showing 8 of 11 branches | ||
13:44
sftp_ joined
|
|||
tadzik | and now 6 of 9. Gah | 13:45 | |
daxim | what's alpha? | ||
moritz | daxim: an auld branch | ||
13:45
sftp left
|
|||
isBEKaml | daxim: before beta, from the time before time. | 13:45 | |
pmichaud | before ng | ||
tadzik | bng | ||
pmichaud | 'alpha' was the development line before we had protoregexes and nqp-rx | 13:46 | |
isBEKaml | .oO (I'm new to perl6, wtf is happening here? ) | ||
moritz | back in the days when we had backslash escapes in char classes, <?after> and :P5 | ||
... and lots of Null PMC accesses | 13:47 | ||
pmichaud | and << quoted $words >> | ||
moritz | I'd even say Null PMC excesses | ||
isBEKaml | and .perl needed parens | ||
moritz | it did? | ||
JimmyZ didn't thint so | 13:48 | ||
isBEKaml | yeah, I even remember asking a qn about it. (or I misremember) | ||
JimmyZ | think | ||
pmichaud | can we eliminate the 'require' branch? last updated 2010-09-24 by moritz++ | 13:49 | |
same for 'match_g' branch? | |||
isBEKaml | moritz: match_g? that's from 2010. | 13:50 | |
moritz | please keep both for now | ||
13:50
drbean left
|
|||
pmichaud | okay, np. | 13:50 | |
13:50
drbean joined
|
|||
pmichaud | I'm happy to be under 10 branches now :) | 13:50 | |
isBEKaml | scumbag github, why do you not show all branches in the branch list page? :) | 13:51 | |
pmichaud | isBEKaml: if you switch branches, it switches the list of branches in the branch list page. I'm not sure the relationship yet. | ||
isBEKaml | pmichaud: Switch branches(8). Showing branches 6 of 9? :| | 13:52 | |
pmichaud | yeah, I think it has an off-by-one error somewhere. | ||
flussence | try the "network" tab, that supposedly gives you a gui of every single branch. | ||
(maybe it only shows which others existed at the time of the selected one?) | 13:53 | ||
13:56
sayu joined
13:57
risou_awy is now known as risou
14:01
buubot_backup joined,
wk joined
14:03
wamba left,
sayu left
|
|||
isBEKaml | b: say 42.perl | 14:09 | |
p6eval | b a55346: OUTPUT«42» | ||
isBEKaml | b: 42.say.perl | 14:10 | |
p6eval | b a55346: OUTPUT«42» | ||
tadzik | eh? | ||
isBEKaml | b: 42.say.say.say.perl | ||
p6eval | b a55346: OUTPUT«42Bool::TrueBool::True» | ||
isBEKaml | is that right? | 14:11 | |
tadzik | doesn't seem so | ||
isBEKaml | 42.say.perl | ||
tadzik | b: say (say 42).WHAT | ||
p6eval | b a55346: OUTPUT«42Bool()» | ||
tadzik | oh, ok | ||
side effect of say() | |||
masak | yes, it's correct. | ||
tadzik | so 42.say.perl is (42.say).perl, .perl() not being printed | ||
isBEKaml | I was expecting, 42 and Bool.True when I chained perl to say. | ||
tadzik | you didn't print the latter | 14:12 | |
b: say 42.say.perl | |||
p6eval | b a55346: OUTPUT«42Bool::True» | ||
tadzik | so in your case, .perl was in void context | 14:13 | |
isBEKaml | ah, okay. We usually do $sth.perl.say, so when I did $sth.say.perl, I thought I was chaining .perl to .say. Glad 'b' did the right thing. | 14:14 | |
14:14
[particle] left
14:15
[particle] joined
14:17
wk left
|
|||
isBEKaml | I'll be out in a while. 'night, folks! | 14:17 | |
14:18
mkramer2 left,
isBEKaml left
|
|||
pmichaud | draft announcement for branch rename: pmichaud.com/sandbox/nom.txt | 14:18 | |
comments/patches welcome | |||
flussence | rakudo: say 'b' ~ ( [X~] 'a'..'z'.pick(5, :replace) ); | ||
p6eval | rakudo 53b1d8: OUTPUT«babcdefghijklmnopqrstuvwxyz» | 14:19 | |
moritz | so | ||
that the "nom" branch is now the "master" branch. | |||
flussence | rakudo: say 'b' ~ ( [X~] ('a'..'z').pick(5, :replace) ); | ||
p6eval | rakudo 53b1d8: OUTPUT«bkhorz» | ||
moritz | please make that 'the old "nom" branch' | ||
or 'the branch known as "nom" so far' | |||
on second thought, "old" isn't good :-) | 14:20 | ||
pmichaud | right. | ||
flussence | .oO( hm, 'bkhorz' is a bit less pronouncable than 'bread' ) |
||
tadzik | I can take care of RT too | ||
flussence | "the branch formerly known as nom" | ||
14:21
jaldhar left,
wtw left
|
|||
arnsholt | flussence: Then it can be renamed just "the branch" in a little while | 14:21 | |
14:22
wk joined
|
|||
arnsholt | And finally some weird astral Unicode character ^_^ | 14:22 | |
mberends | pmichaud: nom's runtime speed is slower than master. I have figures for that. | 14:23 | |
pmichaud | mberends: which parts? | 14:24 | |
our experience thus far is that compile speed is faster | |||
moritz | huh? | ||
pmichaud | sorry, runtime speed is faster | ||
mberends | the startup times are quicker but the per-statement execution times are slower | ||
14:25
mattp_ joined
|
|||
pmichaud | is there some way we can get access to those times, or get the methodology used so we can evaluate elsewhere? | 14:27 | |
flussence | .oO( /usr/bin/script -t + use Devel::Trace; ? ) |
14:29 | |
moritz | rakudo: use Devel::Trace; say 1 | ||
p6eval | rakudo 53b1d8: OUTPUT«use Devel::Tracesay 11» | ||
mberends | pmichaud: so far I've been using the new --timing option added to tools/test_summary.pl | 14:30 | |
14:30
im2ee left
|
|||
pmichaud | that option exists in both nom and ng? | 14:31 | |
14:31
im2ee joined
|
|||
pmichaud | I've updated the draft announcement to simply say "some performance regressions" | 14:31 | |
reload pmichaud.com/sandbox/nom.txt to see the latest. | 14:33 | ||
PerlJam | pmichaud: btw, have you considered just getting rid of the "master" branch and forego all the branch renaming? | 14:34 | |
pmichaud | PerlJam: briefly, yes. | 14:35 | |
TimToady | I'd just leave it "master" myself | ||
and leave it in the past, like "modern" :) | |||
pmichaud | I think leaving it as 'master' is likely to confuse git folks. | ||
TimToady | yeah, there's that | ||
14:36
masak left
|
|||
PerlJam | I like the way the perl5 repo gives blead instead of master. We could do the same with nom. | 14:36 | |
TimToady | rename master to clotted then :) | 14:37 | |
pmichaud | I'd be okay with eliminating 'master' as a branch name, and simply setting the default branch to 'nom' | ||
I know that jnthn++ was a little sad to see the 'nom' label go. | |||
TimToady | I think renaming things like this is a bit insane | ||
PerlJam | TimToady: me too :) | ||
pmichaud | well, if we have a 'master' branch I think it has to actually be the master, or else we shouldn't have one at all. | 14:38 | |
TimToady | no reason nom can't stay nom that I can see | ||
it's only the master thing that is confusing folks | |||
pmichaud | so, I'd still rename 'master' to 'ng', but leave 'nom' as 'nom' and switch it to be the default. | ||
PerlJam | pmichaud: aye. get rid of master :) | ||
TimToady | it's a reserved word, alas | ||
PerlJam | "reserved word"? | 14:39 | |
pmichaud | I'd like to hear +1/-1/other from jnthn+masak+moritz+mberends on that notion, though, since they've commented on the topic in the past. | ||
TimToady | reserved by git, anyhoo | ||
PerlJam | TimToady: are you sure? It's just a default name as far as I can tell. | ||
flussence | it's just convention AFAIK... | 14:40 | |
moritz | pmichaud: 0 | ||
TimToady | it's about as reserved as anything gets in git :) | ||
pmichaud | PerlJam: I think TimToady++ means "reserved by convention" | ||
PerlJam | oh, I see. | ||
TimToady | and Star Trek NG is in the past now too :) | ||
pmichaud | lol | ||
PerlJam | moritz: 0 == neutral? | ||
moritz | PerlJam: yes | 14:41 | |
PerlJam | just checking | ||
pmichaud | TimToady and PerlJam are +1 on leaving nom as "nom" (just confirming) | ||
I'm 0. | |||
PerlJam | pmichaud: yep | ||
pmichaud | I'm actually about 0.5, since it means no funny "you need to reclone the repo" stuff. | 14:42 | |
mberends | I think any branch can be set to what you get when you do 'git clone', and I think the 'nom' name is rather cute, so I support this new suggestion. | ||
'master' is probably the default branch name only when you create a new repo. | 14:43 | ||
PerlJam | pmichaud: it does mean that you need to communicate to everyone that "nom" is where all of the development takes place though ;-) | ||
pmichaud | PerlJam: we've communicated that already, though, many times :) | ||
JimmyZ | I'm -1 on leaving nom as "nom" :) | ||
flussence | you don't need to reclone the entire repo for a branch rename... but it does make things easier. | 14:44 | |
TimToady | the basic problem is that we are mixing up two different levels of naming | 14:45 | |
PerlJam | flussence: indeed, that's the thought that led me to suggest not renaming, because that makes things even easier :) | ||
mberends | JimmyZ: what's your reason? | ||
TimToady | we'd like to have names for versions that stick forever, and 'nom' is currently serving as that name, as well as the name of a branch | 14:46 | |
pmichaud | pmichaud.com/sandbox/nom-2.txt has a version of the announcement that doesn't involve a nom->master rename. | 14:47 | |
rephrased the second paragraph a bit (reload) | 14:48 | ||
mberends | pmichaud: s/many problems/problems/ # it's not that bad | 14:49 | |
PerlJam | TimToady: humans just aren't very good with "forever" though. | ||
pmichaud | PerlJam: and it's been that way for as long as I can remember. :-P | ||
moritz | pmichaud: "New incoming tickets will be evaluated against | ||
the new 'master' branch" | |||
pmichaud: that seems fossiled | |||
14:50
kaare_ joined
|
|||
pmichaud | moritz: now fixed, thanks for catching that | 14:50 | |
TimToady | PerlJam: Gutsy Gibbon is still Gutsy Gibbon | ||
PerlJam | pmichaud: you should use gist.github.com for these so we can just patch it :) | 14:51 | |
pmichaud: s/to file to/to file/ | |||
pmichaud: In the same paragraph moritz just mentioned | |||
pmichaud | PerlJam: fixed. | 14:52 | |
TimToady | so I guess I'm okay with the notion that old master's real name is 'ng', since that's what it always was | ||
pmichaud | right. we've essentially used 'master' as a branch meaning "default development branch". But we can use the "default branch" capabilities more directly for that, I suspect. | 14:53 | |
14:54
uasi left
|
|||
pmichaud | at any rate, we can certainly do master->ng without nom->master at this stage, and if for some reason it doesn't work out we can then still do nom->master later. | 14:55 | |
14:55
thou joined
|
|||
pmichaud | but I'm betting it won't be necessary or desirable. | 14:55 | |
jnthn | eep, I was mentioned, but I've gotta go for the train | 14:57 | |
back later ^ | |||
er, & | |||
pmichaud | the biggest difference to end-users for this announcement is that if you clone the repository, you default to the 'nom' version of Rakudo instead of the one that was used to build 2011.07 | 14:58 | |
JimmyZ | mberends: It's not terminal point :) | 15:00 | |
cognominal___ | will github point by default to nom? | 15:01 | |
flussence | there's an option there to set the default branch to display | ||
mberends | JimmyZ: ah, ok. Would you like to call the branch 'Ultimate' ? :) | ||
TimToady | .oO(Ultimate Untruth) :) |
15:02 | |
moritz | cognominal___: yes | ||
JimmyZ | mberends: it's a on going branch, I think | ||
pmichaud | all branches are ongoing, though. | ||
cognominal___ | that's a git setting or a github setting? | ||
moritz | cognominal___: git | ||
JimmyZ | alpha is a terminal branch, I think? | 15:03 | |
moritz | right, the not-onging branches are called "tags" | ||
JimmyZ: mberends recently updated alpha | |||
pmichaud | JimmyZ: it's only terminal in the sense of "we don't do much there" | ||
JimmyZ | pmichaud: yeah | ||
pmichaud | okay, I have to run some errands. Additional comments on branch renames and draft announcement greatly welcomed. | 15:04 | |
bbi30, I hope. | 15:05 | ||
JimmyZ | or if it's worth, I'm +1 too | 15:06 | |
im2ee | Does exist something like LWP::Simple (or UserAgent), WWW::Mechanize or IO::Socket::INET for v6? | 15:07 | |
moritz | im2ee: there's a LWP::Simple. See modules.perl6.org | ||
im2ee | moritz, great! I didn't see it when i was looking there yesterday. Thanks :) | 15:08 | |
And others? | |||
IO::Socket? :) | |||
And how to install modules for p6? :) | 15:09 | ||
moritz | IO::Socket::INET is core | ||
im2ee: read the top of that page | |||
im2ee | What does it mean? | ||
moritz | it links to Panda, our module installer (at least I hope it still does :-) | ||
rakudo: say IO::Socket::INET.new | |||
p6eval | rakudo 53b1d8: OUTPUT«Nothing given for new socket to connect or bind to in method new at src/gen/CORE.setting:4947 in <anon> at /tmp/YIkXDpotXd:1 in <anon> at /tmp/YIkXDpotXd:1» | ||
im2ee | So it is build-in? :) Great! | 15:10 | |
15:10
uasi joined
|
|||
im2ee | moritz, thank You very much again. :) | 15:10 | |
moritz | im2ee: you're welcome. Have fun hacking! | 15:11 | |
sorear | good * #perl6 | 15:14 | |
mberends | o/ sorear | ||
moritz | \o sorear | 15:15 | |
sorear | flussence: thanks | 15:19 | |
15:34
envi_laptop left
15:36
xenagi left
|
|||
sorear | How do you set default branches? | 15:37 | |
15:37
agentzh left
15:39
cosimo left
15:41
cosimo joined
|
|||
colomon | lolifinallyblogged: justrakudoit.wordpress.com/2011/08/...ex-issues/ | 15:44 | |
15:45
alester joined
|
|||
sbp | colomon: use the first quadrant associate or its conjugate? | 15:47 | |
colomon | Is there a reason for that other than convenience? | ||
*that choice | |||
moritz | sbp: feeding.cloud.geek.nz/2008/12/setti...-bare.html | ||
sorry, meant sorear | 15:48 | ||
moritz tabfails | |||
sbp | no, just convenience, but I use that in finding complex factors for example. you could do it so that the unit you get over is 1 instead of one of the other complex units, but I think it turned out to be better to normalise to first quadrant or conjugate for some reason... [tries to remember why...] | ||
moritz | sorear: iiuc, that sets the default branch when cloning that repo. Inside an existing repo, a "default branch" doesn't make much sense | ||
sbp | it might have just been that examples in mathematical textbooks tend to normalise in that way, so then it makes things easier when looking them up, you don't have to do quadrant transformations in your head | 15:49 | |
in some cases you can normalise to the first *octant*, gaussian primes for example | 15:50 | ||
15:50
uasi left
|
|||
sbp | (when studying the composition of the primes only) | 15:51 | |
15:56
MayDaniel joined,
alester left,
alester joined
15:59
alester_ joined,
alester left,
alester_ is now known as alester
|
|||
colomon | Kahan, W. Branch cuts for complex elementary functions; or, Much ado about nothing's sign bit. In Iserles, A., and Powell, M. (eds.), The State of the Art in Numerical Analysis. Clarendon Press (1987), 165-211. | 16:01 | |
Hmmm... anyone have access to that? Util? | |||
im2ee | I have problem with installing panda. tadzik wrote in README that i have to have TAP::Harness - it's perl5's module? | 16:08 | |
16:09
JimmyZ left
|
|||
im2ee | Ok, nothing. :D | 16:09 | |
Sorry | |||
16:11
pyrimidine left
|
|||
pmichaud | back again | 16:12 | |
16:17
birdwindupbird left
16:23
mtk left
16:24
mtk joined,
wamba joined
16:30
mj41 left,
wamba left
16:34
woosley left
16:39
uasi joined
16:43
mtk left
16:44
cognominal___ left,
cognominal___ joined,
mtk joined,
uasi left
16:45
wamba joined
16:49
MayDaniel left
16:50
wk left
16:53
mj41 joined,
wamba left,
wamba joined
16:56
im2ee left
16:57
im2ee joined
16:58
wamba left,
wamba joined
16:59
wamba left,
wamba joined,
dakkar left
|
|||
tadzik | im2ee: yes it is, but I'm quite sure you have it installed :) | 17:07 | |
I should probably use parrot_prove inside panda | |||
17:14
wamba left
|
|||
abercrombie | nom evalbot doesn't work now? | 17:16 | |
tadzik | rakudo: say $=POD.elems | 17:17 | |
p6eval | rakudo 53b1d8: OUTPUT«0» | ||
tadzik | it's nom | ||
pmichaud | I think that nom: ought to work also | ||
as well as rakudo: | |||
"rakudo: | |||
oops | |||
"rakudo:" should be "whatever branch rakudo considers as default, while "nom:", "b:", and "alpha:" should refer to specific branches | 17:18 | ||
tadzik | +1 | ||
abercrombie | oh,so what should I type if I want to use the Rakudo July? | 17:19 | |
Since there are some differences between the old Rakudo and the new one | |||
17:20
wamba joined
|
|||
pmichaud | currently that's "b: " | 17:20 | |
b: say 'hello'; | |||
p6eval | b a55346: OUTPUT«hello» | ||
abercrombie | Thanks. And what's the alpha one? | ||
pmichaud | alpha is the version that we had until early 2010 | 17:21 | |
abercrombie | I see. Thank you. | ||
pmichaud | alpha is basically what was available in the 2010-01 release | ||
17:32
kfo_ joined
17:35
kfo left
17:43
masak joined
|
|||
masak | pmichaud: -1 | 17:43 | |
pmichaud: I think it's a bad idea not to have a 'master' branch. | |||
pmichaud | ...because? | ||
masak | because it deviates from a very established practice. | 17:44 | |
pmichaud | established for rakudo, or for a wider community? | ||
masak | for everyone that uses git. | ||
and it will become a FAQ. and I don't really see the benefit. | |||
granted, there are much more important issues than branch naming, but this seems just an unnecessary complication. | 17:45 | ||
pmichaud | okay, vote noted (and I can agree with your reasoning) | 17:49 | |
all of the git tutorials refer to 'master', if nothing else. | |||
otoh, at some point a project likely gets large enough that defaulting to 'master' doesn't make sense | |||
what does the linux kernel repo use, ooc? | |||
masak | good question. | 17:50 | |
flussence | linux uses pretty much every branch/tag feature in git. There is a master, but people generally do stuff in other branches and it all gets rebased+merged later | ||
pmichaud | rebased+merged into what, though? | 17:51 | |
flussence | into master, which I assume gets tagged as a release/RC once all the merging's complete that cycle | 17:52 | |
it's more of a temporary working area than something users are expected to follow | |||
(at least, as I understand from observing it and reading a bit) | |||
pmichaud | if users aren't expected to follow 'master', then perhaps it makes sense for us to not use 'master' for primary development in the rakudo repo either. | 17:53 | |
mberends | masak: currently all Rakudo contributors are fine with working in the 'nom' branch even without the convenience of it being the default. The FAQ's have not been so F. | ||
pmichaud | mberends: I think I found the reason for the slowdown in your test timings | 17:55 | |
mberends | yay! | ||
.oO( I hope it's not 'say' ) |
|||
pmichaud | it's most certainly 'say' | ||
because 'say' on nom does a lot more than 'say' does in master | 17:56 | ||
say in nom has to .gist all of its elements | |||
say in master just prints them all out | |||
mberends | hmm, that possibility had crossed my mind | ||
pmichaud | I have some timings for it... just a sec | ||
mberends | I've make a fork of github.com/perlpilot/benchmark to investigate speed more deeply, that might also yield some useful data points | 17:59 | |
pmichaud | gist.github.com/1184208 # timing differences in ng vs. nom | ||
17:59
molaf_ left
|
|||
pmichaud | ng takes 2.17ms to perform the loop, master takes 2.20ms. That's noise-level-ish. | 17:59 | |
but to do the "is", ng takes 2.87ms, while nom takes 8.82ms | 18:00 | ||
it's the test harness that is slower in nom | |||
and it's worse when timings are enabled, because there are two 'says' | 18:01 | ||
gist.github.com/1184224 # when timings are enabled, greater difference | 18:02 | ||
mberends | then to me it is justifiable to replace 'say' with 'pir::say' in Test.pm, suitably documented | ||
pmichaud | even just replacing it with print() ought to be a lot faster. | ||
it avoids the .gists | |||
at any rate, it's really not nom that is slower at runtime, it's the cost of using 'say' in Test.pm that seems to be the bulk of the slowdown | 18:03 | ||
mberends | ok, that gives me options to try out and implement the best one, fsvo best. :) | ||
pmichaud++ | 18:04 | ||
sorear wonders how to test Test.pm6 | |||
I guess redirecting $*OUT would do well | |||
pmichaud | when timings are enabled, the difference is 3.64ms (ng) versus 11.55ms (nom) on my system. | ||
(that's the different in 'is') | |||
*difference | 18:05 | ||
abercrombie | Hi, what's the counterpart in perl6 of the perl5's "while(<STDIN>){ using $_ }"? I read an article mentioned "for =$*IN {using $_}" but I couldn't verify it | ||
mberends | I'll do more benchmarking when the 'say' delays are eliminated, looking for other differences. | ||
flussence | any article using that = syntax is ancient | 18:06 | |
pmichaud | another way of looking at it: adding the test timings increases the per-test cost by 9.3ms on my system | ||
flussence | use $*IN.lines | ||
pmichaud | and that overwhelms the cost of the test itself, by two orders of magnitude | ||
abercrombie | I tried this also, but the output gave me some language I don't recognize | ||
rakudo: for $*IN.lines {say $_} | |||
p6eval | rakudo 53b1d8: OUTPUT«Land der Berge, Land am Strome,Land der Äcker, Land der Dome,Land der Hämmer, zukunftsreich!Heimat bist du großer Söhne,Volk, begnadet für das Schöne,vielgerühmtes Österreich,vielgerühmtes Österreich!Heiß umfehdet, wild umstrittenliegst dem Erdteil du inmi… | ||
pmichaud | er, maybe just one order of magnitude | 18:07 | |
anyway, timings become dominated by the cost of producing the timings, not the tests themselves | 18:08 | ||
djanatyn | Hmm. | ||
HTML::Template is kinda...weird. | |||
I mean...>_> | |||
<TMPL_VAR_NAME> # why? | |||
mberends | pmichaud: I'll experiment with accumulating the timings in an array, and outputting them all at the end. | 18:09 | |
pmichaud | that might speed up the time needed for testing, yes. | 18:10 | |
as far as getting accurate times on the tests, we need to record the timestamp *before* the result is output | |||
although I guess that doesn't quite work either | |||
the way timings are set up, I guess we have to make the cost of outputting a result as small as possible | 18:11 | ||
right now 'say' is kind of expensive for that. | |||
mberends | push is much faster | ||
pmichaud | not necessarily in nom | ||
arrays aren't cheap either :) | |||
but yes, the use of "# t=..." in the test output kind of assumes that the time needed for say/print are negligable relative to the tests. | 18:12 | ||
18:12
wallberg joined
|
|||
mberends | ok, I can assign two scalars, before and after, and push between test times | 18:12 | |
tadzik | err, why does say() use .gist, but print() does not? | ||
pmichaud | print stringifies | ||
iirc, it's the "machine-oriented" form of output. | 18:13 | ||
say is more dwimmy now. | |||
tadzik | odd, methinks | ||
pmichaud | take it up with the language designer :) | ||
flussence | (why would .gist be significantly slower than .Str in the first place?) | ||
pmichaud | flussence: it might not be all .gist, either. | 18:14 | |
there could be other things in 'say' that are slowing it down. | |||
mberends | ok, assigning times before and after a test will not require an array either | ||
pmichaud | and it might not be all 'say', either, it could be something in 'is' | ||
18:14
masak left
|
|||
pmichaud | mberends: I don't quite understand how one can properly box a test in the current approach | 18:15 | |
mberends | the time emitter is located in 'proclaim' | ||
pmichaud | right, it just gives the time of the proclaim | ||
and we infer the time of the test by calculating the difference since the previous proclaim | |||
which necessarily involves the time needed to output the 'ok' result. | |||
plus the time needed to output the previous proclaim. | 18:16 | ||
mberends | yeah, much too simplistic it turns out | ||
so I can use two scalars to eliminate the 'say' time | |||
pmichaud | I don't understand where the additional scalar will go, though. | ||
but, I don't have to understand at this point. :) | 18:17 | ||
tadzik | so the bottleneck is actually Test.pm itself? | ||
pmichaud | tadzik: Test.pm slows things down, yes. | ||
mberends | I have an idea in mind, let me try to implement it after some afk stuff | ||
pmichaud | tadzik: but that's kind of to be expected -- certainly it takes longer to do a comparison and output results than it does to compute the result of a simple arithmetic operation, for example. | ||
18:17
im2ee left
|
|||
pmichaud | mberends++ | 18:17 | |
tadzik: which takes longer... $i++ for 1,2,3; or is $i, 3, 'for 1,2,3 does three iterations' | 18:18 | ||
18:18
im2ee joined
|
|||
pmichaud | I can argue that the second takes longer, if only because it has to do a lot more work than the simple for loop and increment :) | 18:18 | |
tadzik | true | ||
but having all those optimizations and stuff we are still pulled down by the smartness of say() :) | 18:19 | ||
pmichaud | so yes, when we're testing very simple primitives, the test harness tends to make things a lot slower than they would be if they weren't there | ||
oh, proclaim already uses 'print' | 18:20 | ||
those nested blocks will certainly slow things down for now, also. | 18:21 | ||
flussence | .oO( idea for a benchmark - glxgears.pl6 :) |
||
pmichaud | although I guess only on failing/todo tests | ||
tadzik | it's not a benchmark! :P | ||
pmichaud | it's not a benchmark, but it got used as one :) | ||
(and it is a benchmark, because we always talk about the time needed to run spectests :) | 18:22 | ||
flussence | tadzik: it's not a *GL* benchmark, sure :) | 18:23 | |
18:23
risou is now known as risou_awy
|
|||
pmichaud | anyway, I'm glad to know that nom underneath is still faster, except perhaps for output | 18:23 | |
and we can perhaps improve output speed -- that's not been something we've optimized for | 18:24 | ||
s/faster/as fast/ | |||
flussence | (didn't nom have all that work to reduce the number of parrot objects things used? or was that in both?) | 18:25 | |
pmichaud | nom reduces the number of objects being created, yes. | 18:26 | |
at least, it theoretically does so. I don't know that we've measured it to make certain that's the case. | |||
I could probably improve --stagestats to also report on the number of objects created. At least I can do that in nqp and nom; not so easy to do in ng | 18:27 | ||
18:29
MayDaniel joined
18:39
daxim left
18:41
birdwindupbird joined
18:45
REPLeffect left
|
|||
pmichaud | masak: ping (wishful ping) | 18:50 | |
18:52
colomon left
|
|||
PerlJam | pmichaud: Did you come to a decision on renaming nom to master or not? | 18:56 | |
pmichaud | PerlJam: masak had a -1 vote. (my ping is because I want to explore that vote a bit with him) | ||
PerlJam | oh. | 18:57 | |
pmichaud | and I'm still wanting to hear from jnthn | ||
mberends | about to edit Test.pm and tools/test_summary.pl, assuming 'nom' branch | ||
pmichaud | branches are still not moved yet | ||
so yes, 'nom' branch is current development branch | |||
at the moment I'm still leaning towards "no master branch" | |||
PerlJam | Was masak's -1 because "master is a git convention we shouldn't break"? | 18:58 | |
18:58
REPLeffect joined
|
|||
pmichaud | PerlJam: irclog.perlgeek.de/perl6/2011-08-31#i_4353071 | 18:59 | |
I think we're all agreed that the current master branch moves somewhere else | 19:00 | ||
so the real question is whether we do nom->master or leave nom where it is. | |||
19:00
gabiruh left
|
|||
pmichaud | and I'm wondering if masak++ modifies his vote slightly under the knowledge that if we leave 'nom' alone today, that doesn't prevent us from later doing nom->master if we discover that it is indeed a FAQ/issue for git folks | 19:00 | |
mberends | is this another solution: master is what non-developers pull from, developers always commit to non-master branches, release managers update master from development branches? | ||
pmichaud | that substantially increases the work of the release manager, I think. | 19:01 | |
and I don't want non-developers pulling from git in general anyway. tarballs and distributions are what non-developers pull from. | 19:02 | ||
PerlJam | I don't see how it will become a FAQ | ||
pmichaud | someone who is a non-developer should be doing 'git checkout <release>' anyway. | ||
(if they're wanting to pull from github) | |||
PerlJam | perl5 doesn't have a master branch and I don't think it's ever been a problem for them. | 19:03 | |
pmichaud | yes, I'm a bit dubious on whether it will become a FAQ. And if it does become a FAQ, it's no more work to do nom->master then than it would be to do it now. | 19:04 | |
mberends | PerlJam: I've forked Benchmark, how do you feel about me changing the time functions to fraction second resolution? | ||
PerlJam | mberends: feel free. | ||
pmichaud | ...which time functions, ooc? | ||
tadzik | time() I believe | 19:05 | |
mberends | yes | ||
pmichaud | time() is spec'ed to return Int | ||
(in p6) | |||
mberends | that's why I'd like to change Benchmark, not Rakudo | ||
pmichaud | wfm | ||
PerlJam | mberends: I assume you'd use some PIR to do this? | ||
pmichaud | I don't know what Benchmark is | ||
19:05
commitlurker joined
|
|||
tadzik | github.com/perlpilot/benchmark/ | 19:06 | |
pmichaud | actually time() isn't specced in p6 | ||
term:<time> is | |||
tadzik | what's the rationale for that | ||
? | |||
pmichaud | PerlJam: sub-second time values are pir::time__N() in rakudo/nqp :) | 19:07 | |
mberends | PerlJam: there is a pir:: option and a now.to-posix[0] option which is a bit slower | ||
pmichaud | s/a bit/a lot/ | ||
mberends | that's why Test.pm doesn't use it either | 19:08 | |
pmichaud | exactly :) | ||
PerlJam | I've never viewed Benchmark.pm (Perl 5 or Perl 6) as much good at dealing with fine-grained timing, but if you think it could be useful thus, go for it :) | 19:09 | |
mberends | it has potential... | ||
commitlurker | pmichaud: github.com/pmichaud/rakudo/commit/...ab3#diff-4 > looks like the file regressed on some stuff like .pir instead of .nqp etc... | ||
tadzik | maybe we have a need for Time::HiRes which wouldn't be Parrot only | ||
pmichaud | tadzik: well, Time::HiRes would presumably abstract away the underlying machine details | 19:10 | |
tadzik | yep | 19:11 | |
pmichaud | commitlurker: +1 -- when I do the switchover for real I'll be sure to not regress that file. | ||
commitlurker: thanks for catching that | |||
commitlurker | np, good work on perl6 btw guys :) | ||
got to run now | |||
pmichaud | commitlurker: thanks! | ||
19:11
commitlurker left
|
|||
mberends | hmm, didn't lurk much | 19:12 | |
not very committed to lurking | |||
pmichaud | lurking on the commits, not the channel :) | ||
19:20
mkramer joined
19:27
mkramer left
19:29
birdwindupbird left
19:38
ab5tract joined
19:40
MayDaniel left
19:47
REPLeffect left
19:48
colomon joined
19:51
cognominal_ joined
19:54
cognominal___ left
19:58
sftp_ left
19:59
sftp joined,
mkramer joined,
mkramer left
|
|||
mberends | \o/ some tests are clocking in at < 1ms, pmichaud++ for fingering 'say' | 20:00 | |
20:01
REPLeffect joined
20:02
jevin left
20:05
jevin joined
20:35
mkramer joined
|
|||
cotto_work | are some nqp tests ( t/qregex/01-qregex.t) expected to fail? | 20:35 | |
20:39
bluescreen10 left
20:40
mkramer left
20:43
kaare_ left
20:58
bluescreen10 joined
|
|||
lue | good moritz #perl6 o/ | 20:59 | |
mberends | o/ | ||
lue | I just found mu/docs/p6types \o/ . Too bad it's 3 years out of date and I insist on doing it all from scratch anyway :) | 21:01 | |
[speaking of which, now would be a good time to get back to reading S02...] | 21:02 | ||
dalek | kudo/nom: 2bac6a9 | (Martin Berends)++ | / (2 files): [lib/Test.pm] improve accuracy of test timing, pmichaud++ for diagnosing This change affects the results in docs/test_summary.times that are created by 'perl tools/test_summary.pl --timing'. Prior to this commit the time calculated for each test included the time taken by print or say to produce the TAP output. A recent apparent slowdown in test performace was traced to 'say' taking longer due to added functionality. With this commit the time spent producing TAP output is excluded from test times, making them shorter and more accurate. |
21:03 | |
lue | ooh, mberends++ | 21:04 | |
mberends | it's a big improvement. Tomorrow I'll backport the fix to master and alpha as well. | 21:07 | |
pmichaud | back from lunch | 21:09 | |
21:10
dorlamm joined
|
|||
pmichaud | cotto_work: I typically get 4 failures in 01-qregex.t | 21:10 | |
mberends++ # much better approach | 21:12 | ||
cotto_work | pmichaud: thanks | 21:13 | |
mberends | on an OS X server, the time between two successive pir::time__N calls is 2 microseconds :) | ||
21:13
donri left
|
|||
pmichaud | with or without boxing? | 21:24 | |
mberends | with boxing | 21:25 | |
$time_before = nqp::p6box_n(pir::time__N); # and same into $time_after | 21:26 | ||
21:27
y3llow_ joined,
pothos_ joined
21:28
dorlamm left,
wallberg left
21:29
MayDaniel joined,
pothos left,
y3llow left,
y3llow_ is now known as y3llow
21:30
pothos_ is now known as pothos
|
|||
pmichaud | so, not too bad at all when boxing is included | 21:32 | |
still a bit more than we'd like... but we can live with it for now | |||
does my num $time_before = pir::time__N(); work, ooc? | 21:33 | ||
21:33
im2ee left
|
|||
pmichaud | nom: my num $time_before = pir::time__N(); # checking | 21:33 | |
rakudo: my num $time_before = pir::time__N(); # checking | |||
p6eval | rakudo 53b1d8: ( no output ) | ||
pmichaud | rakudo: my num $time_before = pir::time__N(); say nqp::p6box_n($time_before); | ||
p6eval | rakudo 53b1d8: OUTPUT«1314826419.60683» | ||
pmichaud | looks like it does. | ||
21:34
alester left
|
|||
pmichaud | rakudo: my num $a = pir::time__N(); my num $b = pir::time__N(); say nqp::p6box_n(nqp::sub_n($b, $a)); | 21:34 | |
p6eval | rakudo 53b1d8: OUTPUT«1.9073486328125e-06» | ||
pmichaud | afk for a bit | 21:35 | |
mberends | the new timings all have a hard floor of a few milliseconds removed from them, so the differences between times will be more apparent | ||
flussence | ooh, kernel.org got broken into | 21:36 | |
lue wonders how many are aware of the lost A20, S27, and S28 drafts... | 21:38 | ||
flussence | oh, that reminds me... can I poke someone to go update S26.html? There's been a lot of FormattingCode fixes since the current version there | 21:42 | |
21:44
wamba left
|
|||
tadzik | moritz once told me how to do that, but I don't really remember :) something in /var/somewhere I believe, let me see | 21:45 | |
okay, I know where to put it. Do you have a fresh html lying around? | |||
flussence | yep: raw.github.com/gist/1140332/795a15...6/s26.html | 21:46 | |
lue | flussence: I like how kernel.org took the opportunity to promote git :) [also, Version 3 is stable‽ wow!] | 21:49 | |
flussence | been stable for a few weeks now (it's only 2.6.40 renumbered) | ||
sorear | good * #perl6 | 21:50 | |
21:50
mj41 left
|
|||
mberends | \o sorear | 21:50 | |
lue | good moritz sorear o/ | 21:51 | |
21:51
Sarten-X left
|
|||
tadzik | Sorry, user tjs is not allowed to execute '/bin/cp s26.html /var/www/syn/S26.html' as root on feather. | 21:52 | |
so much for updating | |||
sorear | tadzik: Juerd has made it very clear that even though I have unrestricted root sudo, I am not allowed to create accounds or modify sudoers | 21:53 | |
tadzik: what command(s) do you need me to run? | 21:54 | ||
flussence | sorear: we're trying to get S26 slightly more up to date, that link I gave a few lines up is the newer version | 21:55 | |
flussence afk for a while | 21:57 | ||
tadzik | sorear: cp /home/tjs/s26.html /var/www/syn/S26.html | ||
sorear | done | 22:01 | |
22:02
Sarten-X joined
|
|||
tadzik | thank you | 22:04 | |
flussence: I see you've decided to keep formatting codes in their hand-written forms | 22:05 | ||
oh, some of them | |||
lue feels he should spend his computer's mass-upgrade time figuring out how to redo the SUPERNOVA parser, and does so. | 22:07 | ||
22:08
MayDaniel left
22:10
molaf joined
|
|||
tadzik | I'm looking forward to your thoughts on this | 22:10 | |
lue | my main goal in the redo is a nice clean way to handle blocks-in-blocks (which I'd have to figure out still if I decided instead to tackle formatting codes) | 22:13 | |
just looking at S26.html gives me the tuits to work on SUPERNOVA [ so I can generate an S26.html of my own, of course :) ] | 22:17 | ||
tadzik | :) | 22:20 | |
dalek | ecza: 252c6a5 | sorear++ | lib/Test.pm6: Implement {,eval_}{succeed,fail}s_ok per flussence++ |
22:21 | |
lue | btw, any update on block formatting? | ||
22:22
dual left
|
|||
tadzik | nothing spec | 22:23 | |
well, there is something | |||
=begin foo :formatted<I> and so | |||
22:26
envi_laptop joined,
dual joined
|
|||
lue | Some of the codes would be interesting if allowed for block formatting, e.g. L<> | 22:27 | |
tadzik | hmmm | 22:28 | |
maybe there needs to be away to express the very same semantics with a more sensemaking syntax | 22:29 | ||
like =begin formatting :there :we :go or so | |||
22:32
phenny left,
nsh- left
|
|||
lue | =begin foo :linkto<foo.org> perhaps? | 22:32 | |
I happen to like =begin foo : format<I> and such, it just becomes funny for some of the codes [perhaps those funny cases get their own config options] | 22:33 | ||
tadzik | I mean something universal, which could easily resemble all formatting codes capabilities. :formatted<B> is nice, but how do you make it :formatted<L[whatever]> or something? | ||
22:34
pjcj left,
phenny joined
|
|||
lue | .oO(:formatted<L«linkmania»>) I'd outright disallow L<> for block formatting, if I didn't think there was a single edge case for needing it I'm not aware of |
22:34 | |
22:35
nsh_ joined
|
|||
tadzik | why, perhaps making a whole block of text linking to something. Making something impossible because I don't see a use of it doesn't make sense tome | 22:36 | |
lue | exactly, I want to avoid doing that. | 22:37 | |
22:39
buubot_backup left
|
|||
lue | Just brainstorming [I'm not sure how I feel about this idea], how about each formatting code being its own config? e.g. =begin foo :B :L<linkmania> | 22:41 | |
tadzik | like | 22:42 | |
22:42
pjcj joined
|
|||
tadzik | :formatting<foo> was probably to keep things like this under one namespace | 22:42 | |
22:43
cexsum joined,
ponbiki joined
|
|||
lue | indeed, just a thought. | 22:44 | |
22:45
Holy_Cow joined
|
|||
lue | Ooh! How about, if the text of the block is a link [perhaps a large one], then :format<L> . If you want to turn the text in the block into a link :format<L«|link.org»> (display text implied to be block contents) | 22:46 | |
22:46
Holy_Cow left
|
|||
sorear pokes flussense | 22:47 | ||
22:49
bluescreen10 left
|
|||
lue | nom: my @a = "hai", 3, "we"; say @a; say @a.perl; # never thought I'd see this again | 22:58 | |
22:59
buubot_backup joined
|
|||
lue | um... | 22:59 | |
tadzik | rakudo: | ||
rakudo:my @a = "hai", 3, "we"; say @a; say @a.perl; | 23:00 | ||
rakudo: my @a = "hai", 3, "we"; say @a; say @a.perl; | |||
p6eval | rakudo 2bac6a: OUTPUT«hai 3 weArray.new("hai", 3, "we")» | ||
lue | oh, so now nom is master? [or does rakudo: now go for the more common nom] | ||
tadzik | the latter | ||
lue | [perhaps my error was caused by the use of the REPL. Trying w/o it.] | ||
Oh, i see. I type @.perl instead of @a.perl [and got a Null PMC error as a result] | 23:01 | ||
s/type/typed/ | |||
23:01
Chillance left
23:09
literal is now known as l,
l is now known as Guest99833
23:10
Guest99833 is now known as literal
|
|||
flussence unafk (didn't expect to be so long, whoops) | 23:10 | ||
sorear++ # things in backlog | 23:14 | ||
lue | .oO(wow. mu/misc/pX looks veeery interesting...) |
23:18 | |
23:27
envi_laptop left
|
|||
dalek | : 524730d | lue++ | AUTHORS: Added my name to AUTHORS, for real this time. |
23:31 | |
23:34
uasi joined,
Psyche^ joined
23:38
wolfman2000 joined,
Patterner left,
Psyche^ is now known as Patterner
23:49
uasi left
23:58
molaf left
|