»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
00:02 aindilis joined 00:06 dmol joined 00:19 Pleiades` left 00:23 Pleiades` joined
ren1us m: class A = {}; my $a = A.new(); my $w = $a.WHICH; my $good = True; for (0 .. 20000) { if ($a.WHICH ne $w) { $good = False; } }; say $good; 00:32
camelia rakudo-moar e9e842: OUTPUT«===SORRY!=== Error while compiling /tmp/NRZaSTs8Z2␤Unable to parse class definition␤at /tmp/NRZaSTs8Z2:1␤------> class A ⏏= {}; my $a = A.new(); my $w = $a.WHICH;␤ expecting any of:␤ statement list…»
ren1us m: class A {}; my $a = A.new(); my $w = $a.WHICH; my $good = True; for (0 .. 20000) { if ($a.WHICH ne $w) { $good = False; } }; say $good; 00:33
camelia rakudo-moar e9e842: OUTPUT«False␤»
ren1us that strikes me as bad.
colomon p6: class A {}; my $a = A.new(); my $w = $a.WHICH; my $good = True; for (0 .. 20000) { if ($a.WHICH ne $w) { $good = False; } }; say $good; 00:34
camelia rakudo-jvm e9e842: OUTPUT«(timeout)» 00:35
..rakudo-moar e9e842: OUTPUT«False␤»
..rakudo-parrot e9e842, niecza v24-109-g48a8de3: OUTPUT«True␤»
ren1us at least parrot's behaving 00:36
00:36 Pleiades` left
colomon pm: class A {}; my $a = A.new(); my $w = $a.WHICH; my $good = True; for (0 .. 2000) { if ($a.WHICH ne $w) { $good = False; } }; say $good; 00:37
ren1us p6: class A {}; my $a = A.new(); my $w = $a.WHICH; my $good = True; for (0 .. 2000) { if ($a.WHICH ne $w) { $good = False; } }; say $good; 00:38
camelia rakudo-{parrot,jvm,moar} e9e842, niecza v24-109-g48a8de3: OUTPUT«True␤» 00:39
00:40 dmol left, Pleiades` joined
ren1us it doesn't just occur with high iterations, though. the issue popped up for me with multiple changes in value over just ~100 iterations 00:41
dalek p/qast_lazy_annotation: b8de192 | (Timo Paulssen)++ | / (9 files):
initial work on making QAST annotations lazily allocated

with these, m-test passes
00:42
timotimo ^ a tiny bit of per-backend work is required here, if anybody would like to fix this up for java and parrot, that would be spiffy
i'm getting into stage optimize for rakudo's setting now :3 00:44
Cannot find method 'can' ← *snrk* 00:45
spectest time \o/ 00:46
dalek p/qast_lazy_annotation: 31cdd29 | (Timo Paulssen)++ | src/QAST/ (2 files):
forgot to check this file in; also need has_ann method
00:57
kudo/qast_lazy_annotation: 33d0dce | (Timo Paulssen)++ | src/Perl6/ (4 files):
first pieces of QAST annotation allocation lazyness

this gets us to a bunch of passing spec tests.
00:58
timotimo gonna head to bed for now
^ seems to break whatever code chaining (with comparison operators like <) 01:03
t/spec/S32-io/IO-Socket-Async.t - seems unreliable; 1x 0 fails, 2x 1 fails, 1x 2 fails 01:06
other than that, spectests are almost completely clean. cool :)
01:06 hoverboard joined 01:10 hummeleB1 left 01:17 hoverboard is now known as moistcherry 01:20 Sqirrel left
timotimo saves about 11mb of ram in the core setting compilation on moarvm (out of 785 mb) 01:21
o/ #perl6 01:23
vendethiel o/ 01:24
01:25 Su-Shee_ joined 01:28 Su-Shee left 01:31 zengargoyle left 01:33 klapperl left 01:34 klapperl joined 01:45 raiph joined 01:50 Sqirrel joined 02:02 raiph left 02:03 Alina-malina joined 02:05 immortal joined, immortal left, immortal joined 02:06 erkan left 02:09 Pleiades` left 02:13 Pleiades` joined 02:25 jnap1 left 02:33 btyler joined, atroxaper joined 02:34 moistcherry is now known as hoverboard 02:37 PZt joined 02:38 atroxaper left 02:39 xragnar_ joined, xragnar left, xragnar_ is now known as xragnar
dalek ecs: 67579a1 | (Stéphane Payrard)++ | S05-regex.pod:
:args named parcel argument in Grammar.parse
02:39
ast: 1bc8a5f | (Stéphane Payrard)++ | S05-grammar/example.t:
test for Grammar.parse with :args

partially deborked the rest of the tests
02:53
cognominal github.com/rakudo/rakudo/pull/279 02:58
03:29 hoverboard left 03:36 atroxaper joined 03:38 kaare_ joined 03:39 ren1us left 03:42 bjz_ joined 03:43 atroxaper left 03:48 bjz_ left
PerlJam cognominal++ 03:54
03:56 modcure left 04:06 [Sno] left 04:17 BenGoldberg left 04:28 rurban joined 04:32 rurban left 04:34 kaare_ left 04:40 btyler left 04:43 hoverboard joined 04:57 atroxaper joined 05:00 kaare_ joined 05:01 atroxaper left
nwc10 as a footnote to my e-mail about the hackathon in Salzburg: www.nntp.perl.org/group/perl.perl6....g9598.html 05:11
05:12 thou left
nwc10 The venue is less than 4km from Germany, so it's almost the "German Perl 6 hackathon" that people were keen to have this year. 05:13
05:16 PZt left 05:22 kaleem joined 05:29 hoverboard left 05:34 PZt joined 05:37 [Sno] joined 05:45 bjz_ joined 05:50 bjz_ left 06:18 rindolf joined, denis_boyun_ joined 06:21 lizmat joined 06:35 hoverboard joined 06:36 darutoko joined 06:44 SamuraiJack joined 06:48 denis_boyun_ left 06:55 thou joined
ChoHag Can I have a method in a role which modifies the behaviour of a method of the consuming class? 06:56
Mostly for cosmetic reasons. I could always just use different method names in the role & class. 06:57
06:58 atroxaper joined
lizmat afaik, not with standard role consuming, as any method in a class will override the method in the role 06:59
06:59 thou left
lizmat which is the only way you can do resolution of consuming two roles with identical method names 07:00
commut&
07:00 lizmat left 07:03 atroxaper left 07:05 anaeem1_ left 07:07 zakharyas joined 07:08 SamuraiJack left
ChoHag Why does this work: > my $rx = rx/abc/; $rx.perl; 07:11
regex (Mu: *%_) { #`(Regex|140087721929376) ... }
But this doesn't: > my %rh = { rx/abc/ => 1 }; $rh.perl;
{"" => 1}
Where does the second regex go?
timotimo m: my $rxobj = rx/abc/; say $rxobj.Str;
camelia rakudo-moar e9e842: OUTPUT«␤»
timotimo m: my $rxobj = rx/abc/; say $rxobj.perl; 07:12
camelia rakudo-moar e9e842: OUTPUT«regex (Mu: *%_) { #`(Regex|139834052115832) ... }␤»
timotimo that's why; .Str is called to generate a key
ChoHag Ah.
Presumably a hash is not the best choice then for a map of test => actions?
Or do I just need to not use Str somehow? 07:13
timotimo you can have a hash that takes Object Keys 07:14
07:14 igorsutton joined
timotimo m: my %objhash{Any} = rx/abc/ => -> { say "yay!" }, rx/def/ => -> { say "nay" }; for %objhash -> $pair { say "testing ", $pair.key.perl; if "abc" ~~ $pair.key { $pair.value() } } 07:15
camelia rakudo-moar e9e842: OUTPUT«testing regex (Mu: *%_) { #`(Regex|140564895669568) ... }␤testing regex (Mu: *%_) { #`(Regex|140564895670392) ... }␤»
timotimo hm, almost.
m: say "abc" ~~ rx/abc/ 07:17
camelia rakudo-moar e9e842: OUTPUT«「abc」␤␤»
timotimo m: my $pair = rx/abc/ => "hi there"; say "abc" ~~ $pair.key 07:18
camelia rakudo-moar e9e842: OUTPUT«「abc」␤␤»
timotimo m: my %h{Any} = rx/abc/ => "hi there"; say %h.perl; say %h.keys[0].WHAT
camelia rakudo-moar e9e842: OUTPUT«Hash[Any,Any].new(regex (Mu: *%_) { #`(Regex|140086181605032) ... } => "hi there")␤(Regex)␤»
timotimo m: my %h{Any} = rx/abc/ => "hi there"; say %h.perl; say "abc" ~~ %h.keys[0] 07:19
camelia rakudo-moar e9e842: OUTPUT«Hash[Any,Any].new(regex (Mu: *%_) { #`(Regex|140502318527160) ... } => "hi there")␤「abc」␤␤»
timotimo oh, duh :)
m: my %objhash{Any} = rx/abc/ => -> { say "yay!" }, rx/def/ => -> { say "nay" }; for %objhash -> $pair { say "testing ", $pair.key.perl; if "abc" ~~ $pair.key { $pair.value.() } }
camelia rakudo-moar e9e842: OUTPUT«testing regex (Mu: *%_) { #`(Regex|139878260821112) ... }␤yay!␤testing regex (Mu: *%_) { #`(Regex|139878260821936) ... }␤»
timotimo there we go; i was getting the key, not invoking it
on the other hand, i'd suggest a list of pairs instead of a hash
gotta go for now 07:20
07:22 pecastro left 07:24 SamuraiJack joined, FROGGS joined
timotimo ChoHag: did that help? 07:33
07:35 dmol joined 07:42 spider-mario joined 07:53 brrt joined 08:00 virtualsue joined 08:04 virtualsue left 08:05 denis_boyun_ joined 08:12 Alula_ joined 08:13 FROGGS left
ChoHag "use a list of pairs" did. 08:15
08:17 Su-Shee_ is now known as Su-Shee 08:19 hoverboard left 08:20 lizmat joined
lizmat bienvenue de la carrefour numerique au cite des sciences en Paris 08:24
ChoHag Hello from Hampshire. 08:25
08:25 fhelmberger joined
dalek rlito: 55096c6 | (Flavio S. Glock)++ | TODO-perlito5:
Perlito5 - TODO update
08:30
08:32 jack_rabbit left 08:34 anaeem1_ joined 08:35 anaeem1_ left
lizmat r: say nqp::where(1).WHAT 08:37
camelia rakudo-{parrot,jvm,moar} e9e842: OUTPUT«(Int)␤»
lizmat jnthn: seems nqp::where is already returning a boxed Int
so there's no need to box it in Mu::WHERE: nqp::p6box_i(nqp::where(self)) 08:38
or am I missing something
08:39 SevenWolf left
jnthn lizmat: Yes, you are. 08:43
08:43 thou joined
jnthn lizmat: How did you determine it's a boxed thing? 08:44
lizmat: I suspect it's just the code-gen auto-boxing it for you, 'cus you did e.g. .WHAT on it.
lizmat: I don't know how things are today; I know the code-gen for MoarVM will always do the right thing in that regard.
lizmat ah, ok
jnthn lizmat: I forget if Parrot's code-gen is a bit more sensitive.
It certainly was at one point
But maybe not since the QAST do-over 08:45
lizmat anyway, I shouldn't touch Mu::WHERE then :-)
08:46 pecastro joined
jnthn lizmat: Well, doing it that way isn't harmful, as the compiler would emit it anyway. 08:46
On Moar/JVM bakcends, at least.
lizmat but would it not be boxed twice now? 08:47
08:47 thou left
jnthn huh? 08:48
The auto-boxing happens if the thing is used in a context that needs an object.
nqp::p6box_i does not supply such a context; it's a think that needs a native int.
lizmat ah, indeed: 08:51
r: my int $a=42; say $a.WHAT # WHAT autoboxes
camelia rakudo-{parrot,jvm,moar} e9e842: OUTPUT«(Int)␤»
cognominal lizmat: "... du carrefour numérique ..." :) 08:58
09:00 atroxaper joined
lizmat merci :-) 09:00
je pense que je suie trop moderne :-) 09:01
*suis
cognominal see you tomorrow
arnsholt Doesn't penser que take the subjunctive? O:) 09:02
jnthn But subjunctives are hard... :P 09:03
arnsholt And sort of superfluous in French (but don't tell l'Académie Française =)
Apparently Spanish still uses them to give different shades of meaning, but French has pretty much stopped doing that entirely 09:04
09:04 atroxaper left
cognominal even many french got it wrong : "si j'aurais (sic) su, je n'aurais (sic) pas venu" 09:04
arnsholt Yeah, there's a huge gap between actual spoken French and the prescriptive written version 09:06
Thankfully I can mostly get away with not thinking about the subjunctive, since it's often identical to the normal present when spoken =)
lizmat refrains from speaking French online :-)
arnsholt I usually refrain from speaking it when not in France, but I don't mind eavesdropping when there are French-speaking people around =) 09:09
moritz Norwegian killed my French 09:11
whenever I try to remember a word in French, my brain helpfully comes up with the Norwegian word (if I know it) 09:12
brrt moritz, how does that happen :-) norwegian and french are not exactly similar 09:13
arnsholt It's very common 09:15
Apparently all languages that you're learning and where your skill is in the lower range, it all gets sorted into a big bag labelled "miscellaneous" or something like that 09:16
xiaomiao gets worse when you learn more languages 09:17
jnthn The big bag is great for pulling multi-language puns out of, though. :)
jnthn sucks at all languages, but can pun ok :P
arnsholt That is true =)
brrt apparently, the grammatical word / sentence structure of spoken language is not encoded in the sounds - i.e. there is no distinction between a end-of-sentence pause, an end-of-word pause, and an end-of-syllable pause 09:24
i.e. the grammar of language is 'constructed' by the brain on top of the sounds, on the basis of what its knows of the language 09:25
and i wonder how this relates to computer languages, i.e. the criticism of perl being line noise
xiaomiao I think that's mostly because perl deviates from most other languages in two ways 09:27
one is implicit stuff, which is "offensive" to some
brrt which is natural in real languages 09:28
xiaomiao and the other is the very high "density" achieved by using almost every ascii-character in the syntax
09:28 FROGGS joined
xiaomiao it takes some time to understand that, and figure out why it's not bad 09:28
brrt as does c, by the way, and c++
dalek kudo/nom: bb75fa7 | (Elizabeth Mattijsen)++ | src/core/CompUnitRepo/Local/ (2 files):
CURL::(File|Installation) are value based

So provide a .WHICH and make sure there will always only be one for any given path.
jnthn As somebody with sufficiently crappy eyesight that my parsing speed depends heavily on shape-matching words, and actually having to read the letters in words slows me down, Perl using all the chars on the keyboard to make different things visually stand out is really helpful for me. 09:30
dalek ecs: f87f96b | (Elizabeth Mattijsen)++ | S99-glossary.pod:
Add CURL lemma
09:35 donaldh joined
cognominal woolfy in a few minutes in the live feed : cite-sciences.ubicast.eu/lives/living-lab/ 09:42
timotimo will she be speaking french, too? :( 09:44
cognominal I don't think so. journeesperl.fr/fpw2014/talk/5520 09:45
timotimo ah, i've seen that talk before
vendethiel is he presenting ruby on rails :) ? 09:47
09:47 Psyche^_ joined 09:48 sqirrel_ joined
lizmat hopes that woolfy is back in time from shopping 09:48
vendethiel oooh I hate these websites that think shift+? is a good thing to override for they help stuff. IM FRENCH AND I HATE YOU 09:49
cognominal real programmers use QWERTY : all the good stuff without shift. 09:51
vendethiel real programmers don't use the family computer...
09:51 Psyche^ left
cognominal you can configure your profile to QWERTY. My laptop is really AZERTY. 09:53
vendethiel I know, but then I have to change it every time 09:54
09:59 treehug88 joined 10:07 cosimo joined 10:11 brrt left
lizmat woolfy postponed until 14:00 10:19
cognominal r: say (class C {}).HOW ~~ Perl6::Metamodel::ClassHOW 10:26
camelia rakudo-moar e9e842: OUTPUT«===SORRY!===␤Could not find symbol '&ClassHOW'␤»
..rakudo-jvm e9e842: OUTPUT«Could not find symbol '&ClassHOW'␤ in method <anon> at gen/jvm/CORE.setting:12847␤ in any find_method_fallback at gen/jvm/Metamodel.nqp:2627␤ in any find_method at gen/jvm/Metamodel.nqp:948␤ in any at gen/jvm/BOOTSTRAP.nqp:1684␤ in block at…»
..rakudo-parrot e9e842: OUTPUT«Could not find symbol '&ClassHOW'␤ in method <anon> at gen/parrot/CORE.setting:12838␤ in any find_method_fallback at gen/parrot/Metamodel.nqp:2710␤ in any find_method at gen/parrot/Metamodel.nqp:949␤ in any at gen/parrot/BOOTSTRAP.nqp:1696…»
jnthn m: say Metamodel::ClassHOW 10:27
camelia rakudo-moar e9e842: OUTPUT«(Perl6::Metamodel::ClassHOW)␤»
cognominal ok 10:29
nwc10 t/spec/S32-io/IO-Socket-Async.t sometimes fails:
not ok 4 - Echo server
(that was on MoarVM, and on the inline branch, so might be especailly special) 10:30
10:31 donaldh left
sergot hi #perl6 o/ 10:31
10:31 thou joined 10:34 donaldh joined 10:36 thou left
masak \o :) 10:38
10:41 SamuraiJack left, SamuraiJack joined 10:45 kivutar joined
colomon \o 10:53
10:55 SamuraiJack left 10:57 SamuraiJack joined 11:01 atroxaper joined 11:06 atroxaper left
dalek kudo/nom: 46b9d27 | (Elizabeth Mattijsen)++ | src/core/CompUnitRepo/Local/ (2 files):
Normalize .gist and add .perl for roundtripping
11:06
sergot Polish Perl Workshop 2014, only Saturday for now: www.youtube.com/playlist?list=PLf0...du3lHbqGz- 11:18
11:20 kurahaupo joined
colomon used git-svn-migrate on his main $work repo last night... 11:23
11:26 SamuraiJack left 11:41 SamuraiJack joined
masak sergot++ 11:46
lizmat m: CompUnitRepo::Local::File.new(".").WHAT # works fine 11:47
camelia ( no output )
lizmat m: CompUnitRepo::Local::File.new(".").WHAT.say # huh? 11:48
camelia rakudo-moar 46b9d2: OUTPUT«Cannot look up attributes in a type object␤ in method gist at src/gen/m-CORE.setting:20843␤ in sub say at src/gen/m-CORE.setting:13797␤ in method say at src/gen/m-CORE.setting:1057␤ in block at /tmp/xcsZ8spQJz:1␤␤»
lizmat apparently, the say is trying to .gist the output of WHAT
and that fails, because the WHAT returns a CURL::Local::File object, rather than a Str ? 11:49
banging my head trying to figure out what makes this .WHAT special
:-(
dalek kudo/nom: 1ce594c | (Elizabeth Mattijsen)++ | src/core/CompUnitRepo/Local/ (2 files):
Add some typing, to be sure
11:50
11:51 rurban joined
tadzik oh, when sunday's up I will know how much time did my talk really take :) 11:51
masak .oO( it took 3 hours, but we were all riveted by that hand controller, so we didn't want to tell you ) 11:52
tadzik heh
I actually did absolutely nothing with steroids since then
but I got sort of sucked into the bachelors thingy 11:53
masak what's that?
tadzik the thesis I write
well, wrote, basically :)
masak oh, that kind of bachelor's. 11:54
tadzik oh yes 11:55
I still like the "engineer" title better
11:58 mr-foobar joined
vendethiel notices that masak's slides are plain basic. Whew, still got a chance ! 12:00
12:00 cognominal left 12:01 cognominal joined
masak "plain basic"? 12:02
12:03 atroxaper joined
vendethiel masak: blank background 12:03
tadzik GOTO 10
vendethiel masak: the container, not the content ;)
masak yes, form is important. 12:04
vendethiel saw the camels Woolfy++ showed him 2 days ago
cognominal Woolfy is live btw 12:06
vendethiel oh :)
cognominal: the sound is terribly low
12:07 atroxaper left
cognominal they can't do anything about it. 12:07
you know, computers...
vendethiel damn these computers.
ooh, much better 12:08
cognominal asymmetric marketting 12:09
vendethiel cognominal: may I show you my slides, a bit later :) ? You'll tell me what you think 12:12
cognominal sure 12:13
12:13 dmol left 12:15 ren1us joined 12:20 thou joined 12:21 jnap joined 12:23 mr-fooba_ joined, mr-foobar left, BenGoldberg joined 12:24 thou left 12:27 mr-fooba_ left
[Coke] "But this doesn't: > my %rh = { rx/abc/ => 1 }; $rh.perl;" <- you changed sigils, btw. 12:28
masak also, if you use the % sigil, then you don't need the {} 12:29
12:30 anaeem1_ joined 12:31 sqirrel_ left 12:32 fhelmberger left
lizmat gives up trying to understand why CURL::File.new(".").WHAT.say bombs 12:33
12:44 jsn_ joined 12:45 atroxaper joined
masak m: class C {}; class C::D {}; say C.WHAT; say C::D.WHAT 12:53
camelia rakudo-moar 1ce594: OUTPUT«(C)␤(C::D)␤»
12:56 jsn_ left 12:58 mr-foobar joined, sqirrel_ joined
masak so there's something that distinguishes CURL::File from C::D. 12:59
m: class CURL::File {}; say CURL::File.WHAT
camelia rakudo-moar 1ce594: OUTPUT«(CURL::File)␤»
12:59 kaare_ left, telex left
masak ...and it's not the name ;) 12:59
13:00 telex joined 13:01 ren1us left
atroxaper There is C::D and D::C (i.e. CURL::File) 13:03
13:03 rurban left 13:06 donaldh left 13:09 guru joined, guru is now known as Guest52186, Guest52186 is now known as ajr_ 13:14 rurban joined 13:15 molaf joined 13:16 virtualsue joined 13:19 atroxaper left 13:20 atroxaper joined
lizmat jnthn: would it be an idea to write a Lock class that would allow .protect(code), but would just execute the code 13:22
(and have that available in parrot)
so that we can easily protect some sensitive code (like pushing to *@INC) transparently on all backends? 13:23
13:24 atroxaper left
dalek kudo/nom: e030a7b | (Elizabeth Mattijsen)++ | src/core/CompUnitRepo/Local/ (2 files):
Make sure we use absolute paths internally
13:27
13:27 mr-foobar left
dalek kudo/nom: f412f8a | (Elizabeth Mattijsen)++ | src/core/ (3 files):
Only store in @*INC what actually exists

Please note that this is just runtime, it doesn't change anything in the configuration.
13:33
13:34 sqirrel_ left 13:35 prevost joined 13:37 woolfy joined
[Coke] ^^ so if someone dyanmically creates that path after the program starts, it won't be used? 13:40
13:40 kaleem left, virtualsue left 13:41 virtualsue joined
lizmat that's the idea... 13:41
there's nothing stopping you creating a path and shoving an entry in @*INC at runtime 13:42
for that path
vendethiel is almost done writing his slides
lizmat [Coke]: does that alleviate your worries ?
vendethiel I still don't know when I'm due :D.
vendethiel wrote more than he thought he {w,c}ould 13:43
lizmat vendethiel: passed your worry to elbeho
vendethiel++
vendethiel ha, thanks
(it's totally in french though, I don't speak english :P)
lizmat pas de probleme 13:44
vendethiel: you're on at 17:30 tomorrow
[Coke] lizmat: what if the path is created outside of the perl process? 13:45
lizmat as long as you add the @*INC entry *after* the path is created, you're fine 13:46
vendethiel lizmat: eh, but there's somebody at 17h20 !
lizmat vendethiel: I'm just telling you what elbeho told me
:-)
I guess the program will change :-)
vendethiel is a bit lost
13:46 mr-foobar joined
lizmat vendethiel: why? if elbeho says it's at 17:30, it will be (or a close approximation of) :-) 13:47
vendethiel lizmat: I sure hope so :P
13:47 SamuraiJack_ joined 13:48 SamuraiJack left
vendethiel Okay, at some point I'm just gonna drop my slides and start talking "normally". 13:48
13:49 atroxaper joined, BenGoldberg left
lizmat that would be best, and don't forget to breathe inbetween :-) 13:49
13:50 mr-foobar left
vendethiel did I do that ? 13:50
13:50 mr-foobar joined
woolfy vendethiel: and remember that most people in the room are in awe of you, because you have the guts to go on stage and present slides, and they don't dare to, or don't know how to... 13:50
vendethiel woolfy: I certained wouldn't dare or know how to. 13:51
13:51 wooden joined, wooden left
vendethiel this is all just an accident. Probably good one, though. 13:51
(as opposed to head-hitting accidents)
timotimo the last time i did a talk - a lightning talk about Lojban - i used the "illusion of transparency" trick to become calm and present well
vendethiel oh, I'm not afraid of speaking :). I'm far too talkative to be scared :D. 13:52
as lizmat, she had to listen to me for so long her hair grew below her shoulders.
ask* lizmat
lizmat hehe, I'm used to listening a lot :-)
13:53 BenGoldberg joined 13:54 SamuraiJack_ left, xusia joined
[Coke] lizmat: how do you know to add the INC entry if you didn't create the dir? 13:54
(I'm not saying this is a common usage, but isn't this a change from p5?) 13:55
lizmat it *is* a change from p5
but S11 changes in a lot of ways from p5
[Coke] ok. 13:56
lizmat I'm not even sure we need to expose @*INC as such
that by itself feels very p5ish
in any case, that change reduces the number of @*INC entries on my machine from ~10 to 2 13:57
13:58 [Sno] left
lizmat if it should be possible to add a non-existing path to @*INC, we can always add a flag to the constructor for it 13:59
woolfy I am sure we will applaud ventethiel for giving a briliant presentation! 14:03
14:04 xinming_ joined, scumdog joined, btyler joined 14:07 xinming left, treehug88 left 14:08 thou joined 14:09 hummeleB1 joined, kaare_ joined
lizmat jnthn: is there a reason why Promise.vow is not just using a simple $lock.protect( {} ) structure ? 14:13
vendethiel Okay, talk is ready. I tried on my sis' and I talked for 20min (and 35 seconds, but I'm sure you guys will forgive me :p) 14:20
lizmat yes, we will :-) 14:22
moritz typically my actual presentation speed is higher than when I practise, 'cause I'm a bit more excited
that might remove the extra 35s :-)
14:24 SamuraiJack_ joined 14:34 lizmat_ joined
[Coke] S99 glossary says: 14:35
Last Modified: 30 June 2014
^^ let's use metadata instead of text to figure this out. :P
14:36 lizmat left
FROGGS .oO( But what describes the metadata? ) 14:37
14:38 brrt joined
dalek kudo/nom: d8cd804 | (Elizabeth Mattijsen)++ | / (2 files):
Give parrot basic $lock.protect(&code) facility
14:41
vendethiel to talk about a method, do you write Array#[]? Array::[] ?
lizmat_ Array.method
14:42 lizmat_ is now known as lizmat
vendethiel alrighty 14:42
lizmat if it is a sub: Foo::sub
vendethiel yea, I guess you need :: to talk about packages
lizmat jnthn: if Promise.vow uses $lock.protect, it deadlocks some spectests, does that make sense? 14:43
14:43 atroxaper left 14:44 atroxaper joined
[Coke] I have never heard our glossary def of edsel. for me it's "old tech" 14:47
14:48 treehug88 joined, atroxaper left
lizmat WP calls if an alias for "failure" 14:52
14:52 ren1us joined
geekosaur in the US it's something of an idiom for somethingt hat was pushed hard and flopped hard 14:52
14:52 scumdog left
lizmat because it tried to be everything to everybody, but in the end was not special enough for anybody 14:53
the product of market research gone awry
dalek ecs: dbfaf58 | coke++ | S99-glossary.pod:
minor fixes, updates
14:58
lizmat [Coke]++ 15:04
15:06 atroxaper joined
dalek ecs: a93489e | coke++ | S99-glossary.pod:
add twigil
15:10
15:10 zengargoyle joined
[Coke] perlcabal.org/syn/S28.html#Secondar...wigils%22) doesn't mention OO twigils of ., ! 15:11
... which makes sense given the wrapper, I suppose. Perhaps we need a better place to doc twigils.
... like the place in S02. 15:12
S28 should just link to that, then, IMO.
15:12 igorsutton left 15:13 atroxaper left, atroxaper joined 15:18 atroxaper left 15:22 ivanshmakov left 15:24 atroxaper joined 15:26 ivanshmakov joined 15:28 brrt left
dalek ecs: 2b04097 | coke++ | S99-glossary.pod:
fix twigil link
15:33
15:40 zakharyas left 15:42 [Sno] joined 15:50 Mouq left 15:53 Rotwang joined
rurban_ perl5 MAD is now being removed 15:57
timotimo what is this MAD thing?
geekosaur a badly bitrotted thing that was at one point intended to help with p5 to p6, iirc 15:59
15:59 SamuraiJack_ left
geekosaur bitrotted enough that it makes more sense to kill it and try again later, than to try to fix it now 15:59
tadzik I didn't know Perl 5 had Perl6-related things 16:01
16:02 FROGGS left
tadzik MAD = Misc Attribute Decoration; unmaintained attempt at preserving 16:02
the Perl parse tree more faithfully so that automatic conversion to
Perl 6 would have been easier.
ooops
here though: perl5.git.perl.org/perl.git/commit/...4c8f67d072
47 files changed, 1590 insertions(+), 14338 deletions(-)
geekosaur considering how many things added to recent p5 came from (or were at least inspired by) p6...
vendethiel :) 16:03
lizmat no wonder jhi remains #1 in the number of lines changed in p5
vendethiel jhi ? 16:04
lizmat Jarkko Hietaniemi 16:05
perl 5.8 pumpkin (among other things)
vendethiel doesn't know what a perl pumpkin is 16:06
[Coke] release manager, basically.
geekosaur "patch pumpkin", woth the "pumpking" being the gatekeeper / release manager
[Coke] (but much more so than a rakudo release manager) 16:07
lizmat www.perlmonks.org/index.pl?node_id=813451
Patrick Michaud (pmichaud) is the Perl6 pumpkin 16:09
which basically means that if we can't decide about the implementation of a Perl 6 feature, he has the final word
dalek kudo-star-daily: e0d3110 | coke++ | log/ (13 files):
today (automated commit)
lizmat [Coke], geekosaur, jnthn, masak: agree with that definition in Perl 6 context? 16:10
geekosaur it's reasonable; the historical aspects don't apply, but then they don't really apply to perl 5 any more either 16:11
16:16 rurban left 16:19 FROGGS joined
[Coke] lizmat: I'm happy to defer to pmichaud most times. I don't know that he's still pumpking, though. 16:20
16:22 woolfy left 16:23 rurban joined
lizmat [Coke]: github.com/rakudo/rakudo at the bottom still says so 16:23
:-)
FROGGS he's the project manager, that is how I understand it 16:24
16:26 molaf left
lizmat end of day one at the FPW, socializing commences... 16:27
afk&
16:27 lizmat left 16:31 pecastro left 16:39 molaf joined 16:43 bluescreen10 joined
dalek rl6-roast-data: 466852e | coke++ | / (6 files):
today (automated commit)
16:45
16:49 REPLeffect left
dalek ast: f7da720 | rurban++ | S32-list/roll.t:
Parrot-fudge tests that rely on $*EXECUTABLE_NAME
16:58
ast: 3dd009a | (Tobias Leich)++ | S32-list/roll.t:
Merge pull request #42 from rurban/master

Parrot-fudge tests that rely on $*EXECUTABLE_NAME
16:59 REPLeffect joined 17:00 erdic joined 17:05 guru joined 17:06 guru is now known as Guest3830 17:08 hoverboard joined, immortal left, ajr_ left 17:09 dmol joined 17:19 carlin joined 17:30 jnap1 joined 17:32 Guest3830 left 17:33 jnap left 17:36 denis_boyun_ left 17:38 anaeem1_ left 17:40 atroxaper left 17:54 dmol left 18:00 kaare_ left 18:09 anaeem1_ joined 18:14 raiph joined 18:25 Ben_Goldberg joined, BenGoldberg left, Ben_Goldberg is now known as BenGoldberg 18:26 itz joined 18:29 hummeleBop1 joined 18:30 hummeleB1 left
FROGGS r: say "\c[LINE FEED (LF)]".ord 18:37
camelia rakudo-jvm d8cd80: OUTPUT«(timeout)»
..rakudo-{parrot,moar} d8cd80: OUTPUT«10␤»
vendethiel FROGGS: with numbers :P 18:39
FROGGS hmm?
vendethiel oh no, I read the pugs one :)
BenGoldberg r: say "\c[PILE OF POO]".ord; 18:40
camelia rakudo-jvm d8cd80: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Unrecognized character name PILE OF POO␤at /tmp/tmpfile:1␤------> say "\c[PILE OF POO⏏]".ord;␤»
..rakudo-{parrot,moar} d8cd80: OUTPUT«128169␤»
18:43 denis_boyun_ joined, treehug8_ joined
btyler benscheirman.com/2014/06/regex-in-swift/ I hadn't realized that swift could declare operators ("func =~ infix { <stuff to wrap ugly regex and present it like perl/ruby> }") 18:44
er, sorry, messed it up. you predeclare the operator (operator =~ infix {}) and attach a func to it later 18:46
18:46 treehug88 left
FROGGS why do they implement the old syntax? :P 18:49
arrgggg!! Unmarshallable foreign language value passed for parameter 'module_context' 18:54
18:54 ren1us left, krunen joined
vendethiel FROGGS: the question is : why did no other language get it right before ? 18:56
FROGGS vendethiel: they do not want to scare off users I suppose 18:57
vendethiel FROGGS: mmh ?
18:58 ilogger2 joined, ChanServ sets mode: +v ilogger2
FROGGS so, these older languages would need to change a lot to do what Perl 6 has now 18:58
and that would perhaps drive users away
but I dunno, I'm just a hacker :o)
vendethiel Syntax is not that relevant, really. 18:59
rurban_ FROGGS: which icu version does camelia use?
vendethiel I'm talking about reusability
FROGGS rurban: no idea
rurban_ had to kill my browser for 10 minutes to get better benchmark results
I can try it icu 4.8 and 4.4 also for the parrot whitespace issues. Maybe I have a too new one 19:00
FROGGS rurban: I have icu 4.8.1.1, and the tests work for me too
rurban_ I was testing with 5.2
FROGGS hmmmm
we'd need to work around these icu changes 19:01
rurban_ It could be unicode 6.0 - 6.2 which my parrot supports now
yes
FROGGS I'm glad that MoarVM has the unicode database built-in...
timotimo m: say (1+2i, 2+3i, 4+4i, 1+1i).classify({ $_.re, $_.im }); 19:02
camelia rakudo-moar d8cd80: OUTPUT«p6listitems may only be used on a List␤ in method classify-list at src/gen/m-CORE.setting:9550␤ in method classify at src/gen/m-CORE.setting:1577␤ in block at /tmp/lmYCkyzzt1:1␤␤»
timotimo m: say [1+2i, 2+3i, 4+4i, 1+1i].classify({ $_.re, $_.im });
camelia rakudo-moar d8cd80: OUTPUT«p6listitems may only be used on a List␤ in method classify-list at src/gen/m-CORE.setting:9550␤ in method classify at src/gen/m-CORE.setting:1577␤ in block at /tmp/f59yfRmHSM:1␤␤»
timotimo ... oh?
p: say [1+2i, 2+3i, 4+4i, 1+1i].classify({ $_.re, $_.im }); 19:03
camelia rakudo-parrot d8cd80: OUTPUT«Can not get attribute '$!items' declared in class 'List' with this object␤ in method classify-list at gen/parrot/CORE.setting:9481␤ in method classify-list at gen/parrot/CORE.setting:9461␤ in method classify at gen/parrot/CORE.setting:1581␤ i…»
timotimo p: say (1+2i, 2+3i, 4+4i, 1+1i).classify({ $_.re, $_.im });
camelia rakudo-parrot d8cd80: OUTPUT«Can not get attribute '$!items' declared in class 'List' with this object␤ in method classify-list at gen/parrot/CORE.setting:9481␤ in method classify-list at gen/parrot/CORE.setting:9461␤ in method classify at gen/parrot/CORE.setting:1581␤ i…»
timotimo p6: say List.new(1+2i, 2+3i, 4+4i, 1+1i).classify({ $_.re, $_.im }); 19:04
camelia rakudo-jvm d8cd80: OUTPUT«().hash␤»
..niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: Excess arguments to List.new, used 1 of 5 positionals␤ at /home/p6eval/niecza/lib/CORE.setting line 0 (List.new @ 1) ␤ at /tmp/tmpfile line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4595 (ANON @ 3) …»
..rakudo-parrot d8cd80: OUTPUT«Can not get attribute '$!items' declared in class 'List' with this object␤ in method classify-list at gen/parrot/CORE.setting:9481␤ in method classify-list at gen/parrot/CORE.setting:9461␤ in method classify at gen/parrot/CORE.setting:1581␤ i…»
..rakudo-moar d8cd80: OUTPUT«p6listitems may only be used on a List␤ in method classify-list at src/gen/m-CORE.setting:9550␤ in method classify at src/gen/m-CORE.setting:1577␤ in block at /tmp/tmpfile:1␤␤»
timotimo m: say [1+2i, 2+3i, 4+4i, 1+1i].categorize({ ($_.re, $_.im) }); 19:07
camelia rakudo-moar d8cd80: OUTPUT«("1" => [Complex.new(1, 2), Complex.new(1, 1), Complex.new(1, 1)], "2" => [Complex.new(1, 2), Complex.new(2, 3)], "3" => [Complex.new(2, 3)], "4" => [Complex.new(4, 4), Complex.new(4, 4)]).hash␤»
19:16 anaeem1 joined 19:18 anaeem1 left
rurban_ I've added the missing parrot unicode charcater names as github.com/parrot/parrot/issues/1075 19:18
19:26 treehug88 joined 19:32 anaeem1_ joined, anaeem1_ left 19:33 anaeem1_ joined
[Coke] we need to be clear about which version of unicode is being tested/supported. 19:35
19:35 treehug88 left
[Coke] (will help avoid cross-version test failures) 19:35
rurban_ I checked the UnicodeData.txt versions. LINE FEED always was "LINE FEED (LF)" (from 4.0 until 6.3) 19:36
www.unicode.org/Public/
unicode 2.0 - 3.0 used "LINE FEED" only
unicode 1.0 had no name 19:37
FROGGS this might be to blame/check also: nqp/src/vm/parrot/ops/nqp.ops:3183:inline op is_uprop(out INT, in STR, in STR, in INT) :base_core {
rurban_ I'll check now what's up with icu
19:38 anaeem1_ left
rurban_ Oh, good catch FROGGS 19:38
FROGGS: But didn't you say your nqp/perl6-p passes these tests? 19:40
FROGGS it does 19:41
rurban_ So I can only think of icu
FROGGS things is that we can perhaps still query icu in a way to get at that information
rurban_ I'll try to get at the bottom of this
FROGGS rurban_++
19:50 treehug88 joined 19:52 bluescreen10 joined 19:53 bluescreen10 left, bluescreen10 joined 19:54 bluescreen10 left 19:55 kaare_ joined, treehug88 left, bluescreen10 joined, anaeem1 joined 19:56 bluescreen10 left, bluescreen10 joined 20:00 itz joined, cognominal__ joined 20:02 denis_boyun__ joined
rurban_ It's parrot already failing in find_codepoint "NEXT LINE (NEL)" => -1 20:03
20:05 itz left, spider-mario joined 20:07 itz joined 20:12 Rotwang joined 20:13 guru joined 20:14 guru is now known as Guest50848, Guest50848 is now known as ajr_ 20:21 denis_boyun__ left, ren1us joined 20:22 pecastro joined 20:35 kaare_ left
rurban_ icu refuses to resolve "LINE FEED (LF)". tchrist against for it bugs.python.org/issue12753, python was against it as they "are not defined in the Unicode standard" 20:38
... tchrist argued for it 20:39
20:39 [Sno] joined 20:41 dmol joined
timotimo i wonder what raydiak is up to these days 20:42
colomon masak: I'm puzzled by Text::Markdown
rurban_ Oh I understand now. "LINE FEED (LF)" is indeed not the proper unicode name, <control> is. "LINE FEED (LF)" is just the name alias. that's why icu fails. need to find this API now 20:49
FROGGS yay! I fix my hang in v5's statmentlist rule! 20:53
rurban_: that is what I was thinking
we put a lot of effort in parsing the unicode database to get all names and aliases right for MoarVM 20:54
rurban_ I wonder why everybody else does this too. perl5, python, moar, ... does ibm really not provide this API?? 20:55
20:56 spider-mario left
FROGGS rurban: I see it that way: when I have code that uses unicode stuff, and I know it works with the compiler of my choice version 1.2.3, I don't wanna see it broken because somebody has a newer libicu 20:57
20:57 spider-mario joined
FROGGS that is why Perl 6 is meant to let you choose your unicode version for your part of your program 20:57
(not that this is supported right now, but this will get important some day) 20:58
rurban_ I don't see that any icu version ever could produce a correct result for control chars so far. They refused to support these names. Looking now how to search for Name_Alias 20:59
timotimo how much ram does a single copy of the database cost?
FROGGS good question 21:01
[Sno] Holland:Spain 5:1 - gz Oranje :) 21:09
FROGGS m: Holland:Spain 21:11
camelia rakudo-moar d8cd80: OUTPUT«===SORRY!=== Error while compiling /tmp/Oxd22DiwHr␤Undeclared name:␤ Holland:Spain used at line 1␤␤»
[Sno] big issue 21:12
that must be supported
FROGGS ahh, I don't know :o)
I don't even like Tennis
[Sno] Holland:Spain must produce "eliminated" or "weggefegt"
FROGGS *g* 21:13
21:14 bluescreen10 left
[Sno] btw FROGGS - you tell me when p6 can support native binding - I'd like to add support like Unix::Statgrab to p6, too 21:16
or tell Liz and she tells me next niederrhein.pm 21:17
FROGGS [Sno]: we have NativeCall that should do the trick 21:18
[Sno] nope
FROGGS no?
why not?
[Sno] I tried to explain that to you in Lyon and to someone in Kiev
FROGGS ahh, I remember some weird discussion :o) 21:19
but sadly not too many details :/
[Sno] because NativeCall want eg. to know about bitwidth of parameters
FROGGS yes, that is something that needs to get better
[Sno] I have some experience with native binding in several "VM"'s 21:20
the concept of native call don't work for API's like libstatgrab
SDL is written for special bitwidth, iirc - for portable data types 21:21
FROGGS problem is when we do not have a piece of code that needs some feature, it is hard to implement it
no, not really
[Sno] so if you need piece of code, check out libstatgrab ;) 21:22
FROGGS you also have to care about endianess and graphic card hardware etc
[Sno] but in SDL you can control all that, can't you?
FROGGS how have are about that when making the bindings, and for some bits the "user" has to care 21:23
s/how/you/ 21:24
grrr
you have to care about*
(I'm tired)
[Sno] "you" in sense of "you as the author of the C library"?
FROGGS you as the author of the Perl module that provides the bindings 21:25
[Sno] we shouldn't mix to much side-discussions in there
the Perl module can't guess the bindings - we tried in Kiev and it failed and dumped always
FROGGS you usually can't guess, correct 21:26
[Sno] what is needed is some kind of registering as XSUB in p5 provides (newXSproto_portable ...) 21:27
C code can guess easily 21:28
FROGGS well, you have more information at that point, information you cannot obtain by just looking at a lib 21:29
[Sno] precisely - and p6 should provide a way to get the "more of information" in some way 21:31
anyway - tired, too
FROGGS yeah 21:32
[Sno] but let's keep in touch regarding that
FROGGS perl6-m -MNativeCall -e 'sub get_cpu_totals() returns Int is native("libstatgrab") { * }; say get_cpu_totals()' 21:33
140576014886592
[Sno] long running monitoring appliances isn't a worst early adopter scenario for p6 ;)
FROGGS now we'd need to unpack that mem to cpu_percent_t :o)
[Sno] but it doesn't return in - it returns a pointer to a list of structs
while sizeof(int), sizeof(long) and sizeof(long long), size_t, time_t and void * are surprisingly different here and there (depending on compiler settings etc.) 21:35
padding of structures is interesting, too
FROGGS yes, these are things that are hard to implement, but still possible 21:36
[Sno] I think, having an API like all other VM's provide to C side would be sufficient 21:37
jnthn I suspect NativeCall should export c_int, c_long, c_long_long, c_size_t and so forth.
[Sno] jnthn: and how code the padding? enums?
FROGGS perl6-m ../statgrab.pl 21:38
cpu_percent_t.new(user => 2.80321910516779e-39, kernel => 0e0, idle => 7.00820190575056e-40, iowait => 0e0, swap => 2.63626055885674e-38, nice => 0e0)
jnthn Struct padding is already computed by the alignment of the system you're doing the calls on.
FROGGS does not look that correct yet
[Sno] FROGGS: call it twice
wait a second between the calls
FROGGS perl6-m ../statgrab.pl
cpu_percent_t.new(user => 2.80491607760809e-39, kernel => 0e0, idle => 7.0124898790514e-40, iowait => 0e0, swap => 2.64180325480253e-38, nice => 0e0) 21:39
[Sno] jnthn: the passing might change depending on compiler flags or __attribute__()
passing => padding
FROGGS perl6-m ../statgrab.pl 21:40
cpu_percent_t.new(user => 9.8447437286377e0, kernel => 2.46111631393433e0, idle => 87.6699752807617e0, iowait => 0.0959397628903389e0, swap => 0e0, nice => 0.0241753086447716e0)
that's better
[Sno] rtfm helps ;)
FROGGS I used the wrong C function before
[Sno] how? which wrong one? 21:41
FROGGS %Cpu(s): 9,8 be, 2,5 sy, 0,0 ni, 87,6 un, 0,1 wa, 0,0 hi, 0,0 si, 0,0 st
first I called get_cpu_totals, and the latter was cpu_percent_t *cpu_percent_usage(void);
but you see, the numbers are correct 21:42
the %Cpu line is from `top`
that is the script: gist.github.com/FROGGS/ab192c9eac80bcd1b3c0 21:43
[Sno] but those cpu percent is just gaming ;)
jnthn Well, I don't think [Sno]'s point is "can we get it correct on one system", it's "can we get it correct portably"
[Sno] jnthn: correct
and cpu_percent is finally double[6] - so it's easy
FROGGS all I can say it that it looks like it is working for my little case here 21:44
[Sno] fs_stats is more difficult
network_iface_stats isn't to easy, either 21:45
FROGGS [Sno]: but you see you can play around with it... and when you hit a bug when trying to make fs_stats work, then we have something we can solve
IMO that is a better approach then waiting for me to tell you that it works when it works 21:46
[Sno] FROGGS: it's not worth the time, because it doesn't work portable
FROGGS [Sno]: how do you know? 21:47
[Sno] FROGGS: because we tried in Kiev ;)
FROGGS can you provide the script?
[Sno] p6 only know about int32 or int64 etc.
FROGGS: we didn't keep it after it only dumps 21:48
FROGGS :/
[Sno] but jnthn was around, he might remember
jnthn FROGGS: I already have cases where this happens on Windows vs Linux, fwiw. A C "long" can mean something different between those two.
[Sno] I told you what I think what is required - some native API
21:48 atroxaper joined
jnthn "native API" is kinda underpsecified... 21:49
FROGGS [Sno]: I cannot implement or fix something with that vague sentence, sorry
[Sno] I might have not much experience in writing new languages - but I have strong experience in binding native code into VM's in a portable way
FROGGS I'd prefer to have some specific code that cannot work right now, like calling a specific C-function and handling its return value 21:50
[Sno] let's start with: need to allocate and free VM variables (scalar, arry, hash) 21:51
need to assign values to scalars
jnthn [Sno]: Uh, you *don't* every free things explicitly at a VM level in anything Perl 6 runs on.
*ever
That's Perl 5 thing, assuming ref counting.
But it sounds like you'd like us to recreate XS.
[Sno] jnthn: nope - there're other ways doing that 21:52
jnthn uh, Perl 5 think.
[Sno] but finally any kind of marshalling needs to define a way to exchange data structures ;)
jnthn Yes, that's the point of the CArray and CStruct REPRs.
21:53 atroxaper left
FROGGS [Sno]: why do you want to alloc+free a scalar? isnt it enough to pass stuff to C function and get proper Perl 6 values back? 21:53
jnthn And there's no reason we can't parameterize them on layout strategy.
21:53 Sqirrel joined
[Sno] FROGGS: there're thing you cannot control (lack of information) when calling from perl6 -> native 21:53
jnthn: it's a runtime (link time) thing 21:54
FROGGS still, allocating a Perl 6 variable won't help you there
[Sno] it's a start
jnthn [Sno]: Most things in Perl 6 are :P
[Sno] to many special cases (enum, attribute(packed), attribute(aligned), ...)
so what you need is code a mapping where you know value range of src and tgt 21:55
XS (perl5 api) is little bit over-complex
so no need to repeat 21:56
jnthn Yes, my point in this is specifying the mapping should be *declarative*, not imperative.
[Sno] I don't get the sematic finesse of this sentence ;)
how can you specify a declarative mapping when you don't know the compiler settings for default values of sizeof(enum), attribute(packed), attribute(aligned) 21:58
in C, changing enums might change their size - but once created mapping at C level isn't affected 21:59
and think about binding Go libraries, Fortran code or C++ classes 22:00
with a native api (as Lua, Perl5, Python, ... provide) one can easily register objects and methods and have small facades/proxies calling the native objects 22:01
c++ exported functions name mangeling can be "interesting" - at least when you never seen the compiler before 22:02
jnthn For the cases where we can't reaonably have NativeCall work out, there's absolutely nothing stopping you writing such an adapter. It's just that it's this time a things NativeCall understands => the library adapter. 22:03
In fact, I think people already did this.
[Sno] yes, it's the last fallback 22:04
but always prefer better solutions
22:04 itz left
jnthn Asking for a "native API" to "the VM" in a Perl 6 context doesn't make a lot of sense. Which VM? 22:04
[Sno] it's a several step request
JVM supports it - and it's likely possible to define in Perl6 to call "external JVM functions/methods" 22:05
otherwise it wouldn't be possible to call Java code
jnthn Link me the thing you're referring to with "JVM supprots it".
22:06 denis_boyun joined
jnthn (So I've actually got a concrete example of what you're after.) 22:06
[Sno] a few years ago in a Project we played with that
I have to dig, but I always assumed there was a way
FROGGS okay, one problem with sg_get_fs_stats is that the returned structure starts with the char*, and I don't know how to build up my CStruct class 22:07
[Sno] we finally abondoned JVM for Perl5, because XS suits our requirements much better
22:08 pecastro left
FROGGS jnthn: how would I declare an 'is native' sub when the C function looks like: foo(&bar) { ... } ? 22:10
[Sno] jnthn: quick google search results in stackoverflow.com/questions/903530/...dlinkerror being something we played with (I cannot swear - it's a 70% chance)
but maybe NativeCall with some extensions as FROGGS suggest with a "compiler" for loader would be sufficient 22:12
so a "h2p6 statgrab.h" creates the loader for the system it runs on 22:13
22:13 ajr_ left, jsn_ joined 22:18 Khisanth left
FROGGS perl6-m ../statgrab.pl 22:19
cpu_percent_t.new(user => 9.68340015411377e0, kernel => 2.42127728462219e0, idle => 87.8722076416016e0, iowait => 0.0930133536458015e0, swap => 0e0, nice => 0.0231136325746775e0)
sg_fs_stats.new(device_name => "/dev/sda1", fs_type => "ext3", mnt_point => "/")
that CArray bit is ugly: gist.github.com/FROGGS/e61246c87d9b01998fd0 22:20
22:22 anaeem1 left
FROGGS but it works nicely here... last time I used NativeCall it did not supported sized ints at all :o) 22:23
gnight
[Sno] FROGGS: show 2nd entry from fs_stats ;) 22:24
22:29 BenGoldberg joined 22:30 treehug88 joined 22:31 treehug88 left, treehug88 joined 22:32 Mouq joined, Khisanth joined
dalek c/redesign-sketch: c04689e | Mouq++ | sketch/ (21 files):
Change colors and create menu in the header

Begin sketching redesign based on imgur.com/a/y1dHo .
This commit changes the colors of the index page to match and adds the menu items and the css to make the header look decent from many sizes.
22:34
Mouq (I've wanted to work on this for mooonths) 22:35
22:36 Rotwang left, denis_boyun__ joined, denis_boyun left
FROGGS Checking for library containing sg_get_process_stats_r... no 22:37
*******************************************
Couldn't find libstatgrab (at least 0.90)
:o(
22:38 Khisanth left 22:41 denis_boyun__ left 22:50 spider-mario left 22:53 Khisanth joined 22:57 ivanshmakov joined 23:02 carlin_ joined 23:06 FROGGS joined, xenoterracide joined
xenoterracide can do generics in p6? 23:12
Mouq has no idea what generics are 23:14
flussence Duck typing? 23:15
segomos_ typless variables?
+e 23:16
23:18 obra_ left
Mouq If it's related to msdn.microsoft.com/en-us/library/vs...00%29.aspx 23:18
, we do have parametric roles 23:19
Which I believe are the same thing?
xenoterracide generics are actually more like compiletime templates 23:21
you put parameters in place of class/interface, and it becomes strict typed 23:22
not sure on parametric roles though
basically it's a template for types 23:25
Mouq xenoterracide: huh. I'm sure masak knows :) 23:28
xenoterracide Mouq: reading s14 yes I'd say parametric roles achieves basically the same thing 23:38
23:47 Pleiades` joined 23:49 oetiker joined