»ö« 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/NRZaSTs8Z2Unable to parse class definitionat /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/tmpfileUnrecognized character name PILE OF POOat /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/Oxd22DiwHrUndeclared 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
|