»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by moritz on 25 December 2014.
Kristien Is there a nicer way to do the for loop? 00:00
Couldn't find an each function or something like that
masak map?
Kristien map is lazy 00:01
AFAIK
masak troo
but you're feeding things into it, so that shouldn't be a problem, I think.
vendethiel m: : 1..* Z @lines ==> map { "$^i: $^l" } ==> map(&say); 00:02
camelia rakudo-moar f12020: OUTPUT«===SORRY!=== Error while compiling /tmp/CkJoJ8iYDB␤Invocant colon not allowed here␤at /tmp/CkJoJ8iYDB:1␤------> :⏏ 1..* Z @lines ==> map { "$^i: $^l" } ==␤»
Kristien m: sub each(&f, @xs) { for @xs { &f($_) } }; each (1, 2, 3, 4, 5), &say
camelia rakudo-moar f12020: OUTPUT«Type check failed in binding &f; expected 'Callable' but got 'Parcel'␤ in sub each at /tmp/bboYqen_J_:1␤ in block <unit> at /tmp/bboYqen_J_:1␤␤»
Kristien m: sub each(&f, @xs) { for @xs { &f($_) } }; each &say, (1, 2, 3, 4, 5)
camelia rakudo-moar f12020: OUTPUT«1␤2␤3␤4␤5␤»
vendethiel m: : 1..* Z @lines ==> map { "$^i: $^l" } ==> each(&say);
camelia rakudo-moar f12020: OUTPUT«===SORRY!=== Error while compiling /tmp/uWM3fyBizI␤Invocant colon not allowed here␤at /tmp/uWM3fyBizI:1␤------> :⏏ 1..* Z @lines ==> map { "$^i: $^l" } ==␤»
Kristien m: map &say, (1, 2, 3, 4, 5)
camelia rakudo-moar f12020: OUTPUT«1␤2␤3␤4␤5␤»
vendethiel m: 1..* Z @lines ==> map { "$^i: $^l" } ==> each(&say);
camelia rakudo-moar f12020: OUTPUT«===SORRY!=== Error while compiling /tmp/t3qGX7Nwwy␤Variable '@lines' is not declared. Did you mean '&lines'?␤at /tmp/t3qGX7Nwwy:1␤------> 1..* Z @lines⏏ ==> map { "$^i: $^l" } ==> each(&say);␤ expecting any…»
Kristien well it only shows that because I force it to print the result of say
how about
vendethiel m: 1..* Z <a b c> ==> map { "$^i: $^l" } ==> each(&say);
camelia rakudo-moar f12020: OUTPUT«===SORRY!=== Error while compiling /tmp/QrAAdolFhD␤Undeclared routine:␤ each used at line 1␤␤»
vendethiel oh,yes, you declared it 00:03
Kristien: sink()
Kristien m: sub ignore(Any $x) { }; ignore(map(&say, (1, 2, 3, 4, 5)))
camelia ( no output )
vendethiel which is like ml's sink
m: 1..* Z <a b c> ==> map { "$^i: $^l" } ==> map(&say);
camelia rakudo-moar f12020: OUTPUT«1: a␤2: b␤3: c␤»
vendethiel this works though
Kristien no 00:04
it only works in this case because the output of map is iterated over
I need eager map which returns Nil
00:04 dayangkun left
vendethiel m: 1..* Z <a b c> ==> map { "$^i: $^l" } ==> map(&say); 1 00:05
camelia rakudo-moar f12020: OUTPUT«1: a␤2: b␤3: c␤»
Kristien but sink should work
m: my @lines = "Hello", "World"; sink { 1..* Z @lines ==> map { "$^i: $^l" } ==> map &say }; 00:06
camelia rakudo-moar f12020: OUTPUT«1: Hello␤2: World␤»
Kristien Dankeschön! 00:09
00:10 espadrine_ left
Kristien I like sub each(&f, @xs) { for @xs { &f($_) } } better, though. 00:14
Plays nicely with ==>.
I guess sink is implicit when an expression is used as a statement in non-return position? 00:15
masak aye 00:16
Kristien When a good Perl 6 book comes out I'll be the first one to buy a copy! 00:18
masak "a good Perl 6 book" might be our biggest weakness... :/ 00:19
we tried to do it as a community effort once, and ran into difficulties. 00:20
00:30 zakharyas left
Kristien Methods like join and uc seem to be callable without . 00:35
m: say(join(' ', <1 2 3>))
camelia rakudo-moar f12020: OUTPUT«1 2 3␤»
Kristien however, I can only find documentation of methods 00:36
Is this special behaviour for method calls or am I overlooking something?
m: say(<1 2 3>.join(' ')) 00:39
camelia rakudo-moar f12020: OUTPUT«1 2 3␤»
vendethiel Kristien: it's there if you put the "is export" on the method, IIRC
m: class Foo { method bar is export { 1 } }; bar(Foo.new);
camelia rakudo-moar f12020: OUTPUT«===SORRY!=== Error while compiling /tmp/RFlM_J46TP␤Undeclared routine:␤ bar used at line 1. Did you mean 'bag'?␤␤»
vendethiel no, so, probably just declared below.
(I know what is export does, but I thought it also did that)
Kristien > Methods also take the "is export" trait: the method will then be exported as a multi sub that takes the object as the first parameter:
vendethiel right :-) 00:40
masak I don't know if that's supposed to work or not, but I can say this: 00:44
the notion that the sub form of built-in methods are an exported form of the method in Perl 6 has been replaced by other things. 00:45
usually, the sub is just defined in the setting, and calls the corresponding method. 00:46
Kristien m: class Foo { method bar is export { 1 } }; import Foo; say bar(Foo.new); 00:47
camelia rakudo-moar f12020: OUTPUT«1␤»
vendethiel Kristien++ # smarter than me
masak hey, it works :)
Kristien :D
masak what I said still holds true, though. 00:48
I don't end up exporting methods a lot.
IIRC, even Perl 5 lore considers it a Bad Thing.
Kristien This is also interesting: 00:51
This works:
m: sub filter-profanity(Str $s) { $s.subst(/Java/, '****', :g) }; "Perl 6 is so much more fun than Java!" ==> filter-profanity() ==> uc() ==> say()
camelia rakudo-moar f12020: OUTPUT«PERL 6 IS SO MUCH MORE FUN THAN ****!␤»
Kristien whereas this fails:
m: sub filter-profanity(Str $s) { $s.subst(/Java/, '****', :g) }; "Perl 6 is so much more fun than Java!" ==> filter-profanity ==> uc ==> say
camelia rakudo-moar f12020: OUTPUT«===SORRY!=== Error while compiling /tmp/71EN2a_iYq␤Preceding context expects a term, but found infix ==> instead␤at /tmp/71EN2a_iYq:1␤------> fun than Java!" ==> filter-profanity ==>⏏ uc ==> say␤»
00:51 agentzh joined
vendethiel Kristien: you currently need () after a call inside a ==> 00:52
m: 'a' ==> say
camelia rakudo-moar f12020: OUTPUT«===SORRY!=== Error while compiling /tmp/Eod2xKzdcT␤Unsupported use of bare 'say'; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument␤at /tmp/Eod2xKzdcT:1␤------> 'a' ==> say⏏<EOL>…»
vendethiel m: 'a' ==> say() 00:53
camelia rakudo-moar f12020: OUTPUT«a␤»
Kristien "currently" so will it not stay that way?
vendethiel well, it works in std
std: 'a' ==> say
camelia std f9b7f55: OUTPUT«===SORRY!===␤Unsupported use of bare 'say'; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument at /tmp/AWH6U6dwVw line 1:␤------> 'a' ==> say⏏<EOL>␤Check failed␤FAILED 00:00 134m␤»
vendethiel TimToady: can you confirm that's a STD bug?
or maybe masak++ can find the RT ticket associated to this one
Kristien ==> is most shiny. |> was my favourite feature in LiveScript and F#
vendethiel we completly and utterly stole it from f#, yes :P 00:54
Kristien I wonder if Arabs like normal calls better. :)
vendethiel I think elixir did that as well
Kristien In Elixir x |> f(1) is sugar for f(x, 1)
In LiveScript and F# it's sugar for f(1) x 00:55
Well in F# it's slightly different
TimToady well, we're still trying to figure out what feed operators are
Kristien in F# it's sugar for let __1 = x; f(1) x
because of order of evaluation being LTR always
TimToady and we certainly didn't steal it from F#
Kristien uh s/x$/__1/ 00:56
TimToady it's really just the idea of Unix pipes that can transmit objects, is all
I think we thought of it before PowerShell
Kristien Joe the Plumber is proud.
vendethiel TimToady: sorry, my "we" was from LiveScript ;-) 00:57
TimToady as for join, that can't be done by 'is export' because the order of arguments is different
ok
vendethiel Kristien: I'd certainly like f# better with more curry 00:58
Kristien vendethiel: LasagnaScript steals it from Elixir because almost no JS APIs are curried.
vendethiel Kristien: that's why prelude.ls has curry()
Kristien Meh 00:59
I kinda implemented protocols btw :P
masak wait... LasagnaScript?
vendethiel masak: Kristien's altJS :P 01:00
also, ls's |> allows for the "_" placeholder, so that if a API is considered "poxy", you can just work around it. ('foo' |> fn arg1, _)
masak I see.
Kristien vendethiel: I generalised that; % operator takes any term and turns it into a function, turning %n into the nth argument
vendethiel this is like clojure's %, right? 01:01
Kristien jawohl, except it doesn't restrict to calls
E.g. %%1 is the identity function. %(%1 * %2 + %3) and %try { foo(%1) } finally { bar() } are other examples. 01:02
vendethiel oh, pretty good 01:03
Kristien Not sure about nesting of them though. Could disallow or make %n pick arguments from the innermost %-function
masak a little bit like we use whatever and placeholder parameters for in Perl 6.
Kristien If you want a constant function returning a number you have to parenthesise the number though, so %(42) instead of %42 01:05
since the latter will try to yield the 42nd argument :P
01:05 BenGoldberg left 01:06 BenGoldberg joined 01:10 spider-mario left 01:28 telex left 01:30 telex joined 01:42 beastd left
masak 'night, #perl6 01:48
Kristien masak: goodbye 01:50
psch hi #perl6 \o 01:51
vendethiel: you mis-containered %num-to-notes in your PR :)
vendethiel: it's still neater though ;) 01:52
vendethiel psch: mmh?
did I? :p sorry!
psch vendethiel: yes, you scalared it, even though it's a hash
vendethiel: also, there's a tad more in the repo now, including a README, and tritone-in-c.pl has fallen to the wayside 01:53
vendethiel psch: 'twas a typo, sorry :( 01:54
psch vendethiel: it's fine. the repo is a collection of stuff i'm trying and that file in particular was just a check to see if what i'm imagining could be feasible :) 01:55
tony-o_ jnthn: ab5tract: bsd32 fails to build JVM perl6 too with the same error
too weird
01:56 fil_ left
tony-o_ ab5tract: what 686 linux distro did you use? 01:58
02:00 Kristien left 02:08 ggoebel111111111 joined 02:09 retupmoc1 joined, nine_ joined, felher_ joined 02:10 Psyche^ joined, robins joined 02:11 Tux__ joined, xinming_ joined, breinbaa1 joined 02:12 broquain1 joined 02:14 raydiak_ joined 02:16 Pleiades` left, Patterner left, vukcrni left, raydiak left, xinming left, ggoebel111111119 left, breinbaas left, |Tux| left, tadzik left, mattp_ left, avuserow left, robinsmidsrod left, retupmoca left, nine left, broquaint left, lestrrat left, felher left, mattp__ joined, Pleiades` joined 02:18 avuserow joined 02:20 tadzik joined 02:21 vukcrni joined 02:22 cxreg joined, skaufman_ joined 02:23 japhb_ joined 02:24 [particle]1 joined, nebuchad` joined 02:26 simcop2387_ joined 02:27 TimToady_ joined, slavik1 joined, risou is now known as 17SABKHBC, risou joined, VAB17AF joined, lestrrat joined 02:28 gfldex left, gfldex joined 02:29 rmgk_ joined, rmgk left, rmgk_ is now known as rmgk 02:33 daxim_ joined, agentzh left 02:35 cxreg2 left, skaufman left, TimToady left, japhb left, nebuchadnezzar left, petercommand left, [particle] left, 17SABKHBC left, slavik left, simcop2387 left, daxim left, simcop2387_ is now known as simcop2387 02:40 Ben_Goldberg joined, [particle] joined 02:41 kst` joined 02:44 [Coke]_ joined, huf_ joined, bartolin_ joined, Juerd_ joined, cosimo_ joined 02:45 ab5tract_ joined, BinGOs_ joined, osfamero1 joined, krunen_ joined, yeltzooo joined 02:46 Gothmog_1 joined, bcode_ joined 02:49 [particle]1 left, BenGoldberg left, bcode left, dalek left, IllvilJa left, PZt left, [Tux] left, lue left, pnu left, Juerd left, krunen left, jferrero left, BinGOs left, Gothmog_ left, bartolin left, woolfy left, ab5tract left, renormalist left, kst left, osfameron left, huf left, [Coke] left, yeltzooo9 left, dg left, cosimo left, charsbar_____ left, bcode_ is now known as bcode, Juerd_ is now known as Juerd, Gothmog_1 is now known as Gothmog_ 02:50 jferrero joined 02:51 renormalist joined 02:52 dg joined, TimToady_ is now known as TimToady, TimToady left, TimToady joined 02:55 lue joined 02:56 IllvilJa joined 02:57 gfldex left 02:58 [Tux] joined 02:59 charsbar_____ joined 03:00 woolfy joined 03:02 pnu joined, dalek joined, pnu left, pnu joined, ChanServ sets mode: +v dalek 03:15 VAB17AF joined 03:29 dj_goku left, dj_goku_ joined, dj_goku_ left, dj_goku_ joined 03:37 Maddingu1 joined 03:39 kaare__ joined 03:41 ugexe_ joined 03:45 kst` is now known as kst 03:48 stux|RC joined, Timbus_ joined 03:50 silug_ joined, noganex joined 03:52 Timbus left, stux|RC-only left, Alina-malina left, molaf_ left, kaare_ left, silug left, ugexe left, Maddingue left 03:54 noganex_ left, molaf_ joined 03:58 dj_goku_ left 04:18 dj_goku joined, dj_goku left, dj_goku joined 04:35 dj_goku left 04:38 dj_goku joined, dj_goku left, dj_goku joined
skids .tell japhb "The last statement in a module with more than one statement seems to have some extra-sinky context (because it supplies the return value of "use" I think). I just put 1; at the end of the module to prevent that." 04:58
yoleaux skids: I'll pass your message to japhb.
timotimo i don't think we have return values from use
TimToady the last statement of a module file should be sunk just as much as the other statements; if not, it's a bug 05:13
in fact, the 1; should be complaining about a useless use of '1' in a sink context 05:16
skids Well, I can't get it do error anymore so maybe it is fixed? I'll try with the code I needed to put it in way back when. 05:19
TimToady and, in fact, it doesn't complain, so it's a bug I thnk
if the final statement is a for loop, that used to require a more explicit sink 05:20
nowadays we autosink any loop in a statementlist
skids Yeah, no complaints about the final 1; in my Sum module, which uses it in most of the files. 05:22
TimToady but it does seem to sink the final statement anyway, just won't complain about useless use there for some reason 05:23
m: module Foo { 42; 43; 44 }
camelia rakudo-moar f12020: OUTPUT«WARNINGS:␤Useless use of constant integer 42 in sink context (line 1)␤Useless use of constant integer 43 in sink context (line 1)␤Useless use of constant integer 44 in sink context (line 1)␤»
TimToady warns there 05:24
m: module Foo; 42; 43; 44
camelia rakudo-moar f12020: OUTPUT«WARNINGS:␤Useless use of constant integer 42 in sink context (line 1)␤Useless use of constant integer 43 in sink context (line 1)␤Useless use of constant integer 44 in sink context (line 1)␤»
TimToady and there, huh
but use seems to suppress the final one somehow 05:25
skids It used to more than sink it, it somehow extra-double-super-secret-sunk it and punned the role. I have to yank out all the 1s and try all combos of precomp to see if there is still any such problem. 05:26
TimToady weird, if I put a module foo; at the front of my foo.pm, it warns on the last one now
so the whole file is treated as a block that might return a value, but if we switch into module, it enforces sink on the last statement 05:27
skids .tell japhb well, maybe read the backlog before doing what I just said. 05:29
yoleaux skids: I'll pass your message to japhb.
05:30 adu joined
skids m: (role A { }).HOW.WHAT.say; A.HOW.WHAT.say; # scratches head, wishes he had more time to read code. 05:50
camelia rakudo-moar f12020: OUTPUT«(Perl6::Metamodel::ParametricRoleHOW)␤(Perl6::Metamodel::ParametricRoleGroupHOW)␤»
06:02 Alina-malina joined 06:08 atroxaper joined 06:54 espadrine_ joined
japhb_ Thanks for taking a gander at my Role problem, skids. 07:11
07:11 japhb_ is now known as japhb
japhb .botsnack 07:11
yoleaux :D
04:58Z <skids> japhb: "The last statement in a module with more than one statement seems to have some extra-sinky context (because it supplies the return value of "use" I think). I just put 1; at the end of the module to prevent that."
05:29Z <skids> japhb: well, maybe read the backlog before doing what I just said.
moritz \o 07:16
07:30 adu left 07:32 darutoko joined, espadrine joined 07:33 espadrine_ left 07:36 xfix joined 07:52 rindolf joined
FROGGS[mobile] o/ 08:04
08:04 prime left
FROGGS[mobile] mornäng 08:04
08:05 Ben_Goldberg left, Ben_Goldberg joined 08:09 adu joined 08:11 prime joined 08:28 xinming_ left 08:29 xinming joined
moritz .ask jnthn is there a good reason to keep $!started in Proc::Async private? sounds like potentially useful information for the caller 08:37
yoleaux moritz: I'll pass your message to jnthn.
dalek ast: 7eb85d9 | usev6++ | S32-str/substr-rw.t:
Add test for RT #114526 (fudged 'skip' for Parrot)
08:42
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=114526
dalek ast: f16e55e | usev6++ | S32-str/sprintf.t:
Fudge two tests (todo) since error message would change with NQP PR 219
08:48
08:52 zby_home joined
dalek c: 1517511 | moritz++ | lib/Type/ (2 files):
Start to documtn Proc::Async
08:54
09:05 agentzh joined, ptc_p6 joined 09:06 atroxaper left, telex left 09:08 telex joined
dalek p: 878c6ae | usev6++ | src/HLL/sprintf.nqp:
Change message for mismatch between specified arguments in directives and supplied arguments
09:11
p: 6fa84cc | usev6++ | t/hll/06-sprintf.t:
Adjust error message for directives/arguements mismatch in nqp tests
p: 5a33762 | moritz++ | / (2 files):
Merge pull request #219 from usev6/master

Improve error message for sprintf
09:16 jakesyl left 09:17 jakesyl joined 09:22 nebuchad` is now known as nebuchadnezzar 09:23 vendethiel left 09:24 vendethiel joined 09:27 mr-foobar left 09:30 molaf__ joined 09:33 molaf_ left, Ben_Goldberg left 09:34 Ben_Goldberg joined 09:35 Ben_Goldberg left, Ben_Goldberg joined 09:36 Rounin joined 09:39 kaare__ is now known as kaare_ 09:46 vendethiel left 09:50 BinGOs_ is now known as BinGOs, zby_home left, BinGOs left, BinGOs joined 10:00 espadrine_ joined 10:01 virtualsue joined 10:04 espadrine left 10:09 vendethiel joined 10:11 bjz_ joined, bjz left 10:13 Ben_Goldberg left 10:19 gfldex joined 10:27 sz joined, mvuets joined, sz left 10:29 abraxxa joined 10:30 szabgab joined, breinbaa1 left
szabgab rakudo: say 19+23 10:30
camelia rakudo-{parrot,moar} f12020: OUTPUT«42␤»
masak good antenoon, #perl6 10:37
10:42 breinbaas joined 10:43 zby_home_ joined, zby_home_ left 10:49 agentzh left
moritz good *, masak 10:53
dalek c: 1c9eace | moritz++ | lib/Type/ (2 files):
Document X::Proc::Async::AlreadyStarted
10:59
szabgab hello ppl 11:01
moritz \o szabgab
szabgab I have a really strange bug on the Perl6Maven site
\o moritz
beside it leaking memory like hell :)
once in a while it seems as if the regex engine stopped working 11:02
ab5tract_ m: my $x = '\E]45;65H'; say $x.substr(/45/,77)
camelia rakudo-moar f12020: OUTPUT«No such method '!cursor_start' for invocant of type 'Int'␤ in sub substr at src/gen/m-CORE.setting:7679␤ in method substr at src/gen/m-CORE.setting:4097␤ in block <unit> at /tmp/161RXUN10t:1␤␤»
moritz szabgab: are you ever using user-supplied strings in regexes?
11:03 Woodi left
szabgab every time someone visits the site, it loads a file, parses it using some regexes 11:03
do you mean the regex part?
I think no
let me check
but I finish the sentence first :)
moritz oh, you weren't
then go ahead :-)
ab5tract_ ah, never mind.. another confusion of subst and substr 11:04
szabgab so the code parses the header that looks like =title Title
but sometimes it seems it stops the parsing
and does not recognize the matching rows
then after the restart (I have to restart the server every 30 requests) it works again 11:05
so far I could not figure out what might trigger the behaviour
pastebot? 11:06
moritz none here
just use gist.github.com or so
szabgab gist.github.com/szabgab/35359cfe441fd0a9f9fb 11:07
those seem to be the only regexes 11:08
but that's just my code, maybe some of the modules I use...
Maybe the template module?
moritz which one do you use?
szabgab Template::Mojo 11:09
Eerything is Rakudo Star 2014.12 except Bailador which I've patched
I thin Bailador builds regexes on-the-fly 11:11
from the routes in the application
moritz but I hope those aren't user-input
szabgab If that's what you were after
not from the end-user
from the source code of Perl6::Maven 11:12
moritz but I think my question as mis-guided. I thought the regexes hangs, but it seems they simply don't match=
s/=/?/
szabgab right
they stop matching
and never resume matching
moritz can you identify the place where the first stop matching? 11:13
11:13 rurban_ joined
szabgab probably not 11:14
I might need to add lots of logging and that might help
moritz well, I haven't heard of this phenomenon before 11:15
szabgab OK, if there is nothing obvious to you, then I'll just add more code to be able to log the requests well
moritz it might or might not help
szabgab and then I might have better input
11:16 espadrine_ left
szabgab is there a logging module ? 11:16
11:17 spider-mario joined 11:20 isBEKaml joined
moritz I'm not aware of any 11:23
dalek kudo/nom: 6429a22 | moritz++ | src/core/Proc/Async.pm:
Proc::Async.write: accept Blob, not Buf
11:24
szabgab ok, thanks 11:26
11:37 kjs_ joined 11:41 szabgab left
rurban_ got now msvc on win64 working 11:56
dalek kudo/nom: 7e8d8af | moritz++ | src/core/Proc/Async.pm:
Proc::Async: fix exception throwing
12:00
12:11 rindolf left
dalek line-Python: c26bd6e | (Stefan Seifert)++ | .gitignore:
.gitignore file
12:13
12:15 abraxxa left 12:18 jluis_ joined 12:19 Kristien joined 12:31 kjs_ left 12:38 rmgk_ joined, rmgk left, rmgk_ is now known as rmgk
Kristien hola #perl6 12:50
masak \o 12:54
vendethiel: which would you say was the first altJS? has someone written a history/chronicle about them? which altJS languages do you think will be in use/remembered 20 years down the line, and why? 12:55
12:56 rurban_ left 12:57 jluis_ left
vendethiel masak: GWT would probably be it 13:00
masak oh, right.
GWT is basically abandoned now, is it? 13:01
13:02 virtualsue left
vendethiel masak: I think gmail still uses it? 13:03
masak oh, mebbe.
vendethiel masak: sorry, apparently it isn't anymore. But it seems chrome web store and google groups use it groups.google.com/forum/#!msg/goog...WzIrZ1vzcJ 13:04
it was from 2011 though, so maybe not up to date
masak ah.
interesting that Gmail moved off it.
I wonder why.
vendethiel masak: I'm not *sure* it did. gwt's website doesn't mention it -- it mentions adwords and wallet 13:05
masak *nod*
vendethiel masak: GWT 2.7 on nov 14. I don't think it's been "abandoned" -- it's just that no one wants to write java
masak fair enough 13:07
isBEKaml masak: Gmail didn't abandon GWT - but AFAICR, they maintain their own version of GWT 13:10
masak: that was in addition to open source releases of GWT (by its own team) 13:11
masak ugh
13:11 jluis_ joined
isBEKaml yeah, as I read it back then - their use of GWT was simply too complex and it cannot be integrated into the main release. 13:11
so they had to maintain their own internal version of GWT 13:12
Kristien masak: Objective-C is also pretty old 13:20
I mean Objective-J
masak heard about it, but not more'n that 13:21
what is it?
Kristien It's Objective-C except with JavaScript instead of C.
masak but... hm. 13:22
JS already has an object system. and a syntax for method calls.
I guess I don't see the point.
Kristien Objective-J has a new separate object system xD
masak o.O 13:23
they must've not liked the first one...
moritz
.oO( how did that happen? :-)
13:28
13:29 adu left
masak random thought: P6 is a bigger breaking change than py3k because Larry had more to atone for than Guido (language-wise) 13:30
ab5tract_ masak: that's an interesting perspective 13:34
masak maybe that's obvious, I dunno. the Perl 5 line didn't shirk from sinning if it got the job done.
Perl 6 aims to do better. Python somehow always did.
13:37 Kristien left
ab5tract_ for that generation of dynamic languages, it seems to me that python "won" in the sense that it runs the spectrum of teaching to sysadmin to web to science and back again 13:38
and i always take the POV that perl 6 caused some sort of irreperable harm to the reputation of perl 5 with a grain of salt 13:39
because it was pretty clear to me that people were leaving perl 5 to python at a pretty big clip even prior to the announcement 13:40
masak yes, Python sure has mindshare. 13:42
and deservedly, if you ask me. I say that as someone who loves Perl.
(and as one who isn't all that into indentation-as-blocks) 13:43
ab5tract_ it is almost certainly a retcon on my part, but i always took the design of python as directly inspired by perl, but in the sense that guido's design was in realizing the power of exploring a language where DWIM is reinforced by the fact that !(TMTOWTDI) 13:44
moritz as a relative beginner in python, I find that it seldom DWIM 13:45
but it usually gives an error instead of doing the wrong thing 13:46
ab5tract_ moritz: that's because when there is one way to do it, 'do what i mean' takes on a new dimension where you must 'mean what you do'
when TMTOWTDI, meaning what you do can come free-form, even retaining the jazz definition; the multiplicity is a double edged sword, though. that's why part of p5's continued popularity is at least partly a result of the "modern perl" movement, which advocated heavily for trimming down the cuteness and dark magic 13:51
13:56 isBEKaml left
ab5tract_ i'm a huge fan of TIMTOWTDI, but i've always largely attributed python's near-universal appeal (minus the haters-for-life) to guido's rejection of the principle 13:56
14:00 osfamero1 is now known as osfameron
ab5tract_ what makes perl 6 so appealing to me is that it really does feel like it has been carefully designed to host that multiplicity of 'ways to do it', while addressing things like the dangers of building a monkey patching culture by making it basically unnecessary *and* still provide support for it :) 14:02
*providing
dalek ast: 3101a04 | usev6++ | S11-modules/export.t:
Add test for RT #84280
14:03
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=84280
dalek c: c9d67d3 | moritz++ | lib/Type/ (3 files):
Document a bit more of Proc::Aync, related exceptions
14:06
14:08 Kristien joined
moritz lizmat: Proc::Async.say doesn't use .gist to stringify its argument. Is that intentential? 14:09
14:12 jluis_ left
moritz m: say $*KERNEL.signal('KILL') 14:16
camelia rakudo-moar 7e8d8a: OUTPUT«9␤»
moritz m: say $*KERNEL.signal('SIGKILL')
camelia rakudo-moar 7e8d8a: OUTPUT«9␤»
moritz m: say $*KERNEL.signal(SIGKILL)
camelia rakudo-moar 7e8d8a: OUTPUT«9␤»
moritz m: say $*KERNEL.signal(9)
camelia rakudo-moar 7e8d8a: OUTPUT«9␤»
14:17 jluis_ joined, Peter_R joined
Kristien m: say $*KERNEL.WHAT 14:18
camelia rakudo-moar 7e8d8a: OUTPUT«(Kernel)␤»
Kristien Interesting.
dalek c: 3b83fb1 | moritz++ | lib/Type/Proc/Async.pod:
mostly finish documenting Proc::Async
14:22
14:22 rindolf joined
lizmat moritz: Proc::Async.say not gisting is probably an oversight 14:25
14:28 mr-foobar joined
dalek c: 83a1c78 | moritz++ | lib/Type/Proc/Async.pod:
Add a note that only MoarVM supports Proc::Async
14:28
Kristien m: ObjAt.new 14:29
camelia ( no output )
Kristien Segfaults on my machine :P
moritz :(
14:30 sirdancealot joined
dalek ast: bc2983c | moritz++ | S17-procasync/basic.t:
start to test some exceptions for Proc::Async
14:31
Kristien seems to be an old bug 14:34
dalek ast: e223c44 | moritz++ | S17-procasync/basic.t:
Proc::Async: test more exceptions
14:35
Kristien Stuff like Set uses WHICH to determine equality right?
moritz identity 14:36
Kristien right
good
moritz (sorry for being pedantic) 14:37
Kristien And it should be perfectly fine to override WHICH for immutable user-defined types?
lizmat Kristien: yes, that's the idea 14:38
Kristien Nice.
Perl 6 is well-designed. 14:39
moritz can anybody on windows confirm that 'type' on the command line without arguments reads from STDIN?
or do I have to use 'copy con' or such weird magics? 14:40
lumimies moritz: It does not 14:43
type con: seems to 14:44
moritz lumimies: thanks 14:48
Kristien This is interesting: gist.github.com/rightfold/f05c4d4c31e09ca0d9bf 14:53
moritz Kristien: the REPL has known problems with natively typed variables
Kristien OK!
moritz Kristien: basically, it starts a new compilation unit for each line
Kristien: but to make the previous variables available, it copies them into an outer scope 14:54
Kristien: and that doesn't work well yet in some corner cases
Kristien I have to implement a REPL soon. 14:55
moritz +1 14:56
Kristien I think I have an idea of how I'll do it.
14:58 jmark joined 14:59 _4d47 joined
dalek ast: 67bb8b3 | moritz++ | S17-procasync/basic.t:
more tests for Proc::Async

in particular:
  * test .write and .print, open for writing
  * .close-stdin
  * more exceptions
15:07
Kristien Just a reduction over the lines of stdin :P 15:08
vendethiel moritz: it doesn't either here :P 15:12
15:14 virtualsue joined
[Tux] what is the perl way to do «my Str $foo = function (); is_valid_utf8 ($foo) and "UTF8".say» ? 15:15
where full-ASCII would return False 15:16
15:16 rurban_ joined 15:18 Ben_Goldberg joined
moritz [Tux]: checking of a Str is valid utf-8 is mixing of levels 15:19
[Tux] ?
moritz [Tux]: Str is an encoding-indepenent sequence of codepoints (later hopefully graphemes)
Kristien > Perl 6 is well-designed. 15:20
[Tux] fine :) 15:21
Ben_Goldberg Somewhere hidden behind the Str is a Buf, which will contain some form of utf, but that's a separate level.
moritz [Tux]: what do you want to achieve in the end?
[Tux] So, how can I check id *all* codepoints in a string are inside ASCII?
moritz all($str.ords) < 128 # but probably not most efficient 15:22
[Tux] wants to copy as much as possible of Text::CSV_XS (perl5) to Text::CSV (perl6)
it is lazy, so I do not care about performance there
Kristien encode it to ASCII and check for encoding errors 15:23
that's what I'd do
I don't like hardcoding 128
moritz m: say so 'abc' ~~ /^ <[\x0 .. \x127]>* $ /
camelia rakudo-moar 7e8d8a: OUTPUT«True␤»