»ö« 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:00
kupopo left
00:12
nbrown_ left,
Akagi201 joined
00:13
PZt left
00:14
lizmat joined
00:17
Akagi201 left
00:32
gmunoz left
00:33
gmunoz joined
00:42
aborazmeh joined,
nbrown_ joined
00:43
aborazmeh left
00:46
aborazmeh joined
00:49
dolmen joined
00:53
nbrown_ left
00:55
aborazmeh left
01:06
gmunoz left
01:11
xenoterracide joined,
erkan left
01:13
Akagi201 joined,
gmunoz joined
01:17
Akagi201 left
01:22
FROGGS_ joined
01:24
Sqirrel left
01:25
FROGGS left
01:48
nbrown_ joined
01:53
nbrown_ left
01:58
klaas-janstol joined
01:59
kst` joined
02:00
dolmen left
02:01
kst left
02:02
klaas-janstol left
02:04
Akagi201 joined
02:15
jimmyz joined
|
|||
jimmyz | r: constant fib = 0, 1, *+* ... *; say fib[100000] | 02:15 | |
camelia | rakudo-{parrot,jvm} c793d8: OUTPUT«(timeout)» | 02:16 | |
..rakudo-moar c793d8: OUTPUT«P6opaque: no such attribute '$!storage' in method reify at src/gen/m-CORE.setting:7722 in method reify at src/gen/m-CORE.setting:7716 in method gimme at src/gen/m-CORE.setting:8205 in method exists_pos at src/gen/m-CORE.setting:8193 in …» | |||
jimmyz | TimToady, jnthn: ^^ | ||
fib[99999] works | 02:19 | ||
02:22
nbrown_ joined
02:26
nbrown_ left
02:28
gtodd1 joined
02:29
gtodd left
|
|||
jimmyz | masak: ^ | 02:31 | |
02:32
jimmyz left
|
|||
btyler | .tell colomon I added a rough draft for encoding values to JSON::Jansson, next up is adding an option to parse JSON into perl6 data structures (rather than preserving them as jansson objects)...or something more pressing for your use case, if you have something in mind | 02:33 | |
yoleaux | btyler: I'll pass your message to colomon. | ||
02:35
akaseki joined
|
|||
btyler | for other folks -- any feedback much appreciated: github.com/kanatohodets/p6-json-jansson | 02:35 | |
one trouble with the approach I'm taking is that I end up needing to implement all of positional/associative, and it isn't clear to me what exactly needs implementing in order to confidently say "this will behave just like a p6 array/hash/etc" | 02:36 | ||
02:38
Salai left
02:39
kurahaupo joined
02:41
noganex_ joined
02:43
noganex left
02:46
Sqirrel joined
02:49
PZt joined
|
|||
gtodd1 | perlgeek.de/blog-en/perl-6/2013-repl-trick.html still digging the REPL trick | 02:53 | |
02:53
gtodd1 is now known as gtodd
03:04
_sri left
03:06
kst`` joined
03:07
kst` left,
_sri joined
03:25
BenGoldberg left
03:44
jack_rabbit joined
03:52
fling left
03:53
fling joined
|
|||
masak | morning, #perl6 | 03:57 | |
m: constant fib = 0, 1, *+* ... *; say fib[99999] | 04:01 | ||
camelia | rakudo-moar c793d8: OUTPUT«1605285768272981969703501699166323590285867163980464844832239016803082277106148858007382799983341986487069902980550885975477322351434706230637004409049784072899949196507083084156794116251699801486721736223390722427570186888655751529235613410338408870193727…» | ||
masak | m: constant fib = 0, 1, *+* ... *; say fib[100_000] | 04:02 | |
camelia | rakudo-moar c793d8: OUTPUT«P6opaque: no such attribute '$!storage' in method reify at src/gen/m-CORE.setting:7722 in method reify at src/gen/m-CORE.setting:7716 in method gimme at src/gen/m-CORE.setting:8205 in method exists_pos at src/gen/m-CORE.setting:8193 in …» | ||
masak | yeah, that seems like an arbitrary limit... | ||
m: constant fib = 0, 1 ... *; say fib[100_000] | 04:03 | ||
camelia | rakudo-moar c793d8: OUTPUT«P6opaque: no such attribute '$!storage' in method reify at src/gen/m-CORE.setting:7722 in method reify at src/gen/m-CORE.setting:7716 in method gimme at src/gen/m-CORE.setting:8205 in method exists_pos at src/gen/m-CORE.setting:8193 in …» | ||
masak | m: constant fib = 0, 1 ... *; say fib[99_999] | ||
camelia | rakudo-moar c793d8: OUTPUT«99999» | ||
masak | m: constant fib = 0 xx 100_000; say fib[99_999] | 04:04 | |
camelia | rakudo-moar c793d8: OUTPUT«0» | ||
masak | m: constant fib = 0 xx 100_000; say fib[100_000] | ||
camelia | rakudo-moar c793d8: OUTPUT«Nil» | ||
masak | m: constant fib = 0 xx 100_001; say fib[100_000] | 04:07 | |
camelia | rakudo-moar c793d8: OUTPUT«P6opaque: no such attribute '$!storage' in method reify at src/gen/m-CORE.setting:7722 in method gimme at src/gen/m-CORE.setting:8205 in method exists_pos at src/gen/m-CORE.setting:8193 in method at_pos at src/gen/m-CORE.setting:8166 in…» | ||
masak | m: constant fib = 0 xx 100_001; say fib[99_999] | ||
camelia | rakudo-moar c793d8: OUTPUT«0» | ||
masak | m: constant fib = 0 xx 100_002; say fib[100_000] | ||
camelia | rakudo-moar c793d8: OUTPUT«P6opaque: no such attribute '$!storage' in method reify at src/gen/m-CORE.setting:7722 in method gimme at src/gen/m-CORE.setting:8205 in method exists_pos at src/gen/m-CORE.setting:8193 in method at_pos at src/gen/m-CORE.setting:8166 in…» | ||
04:07
kaare_ joined
|
|||
masak | ok, so it doesn't necessarily involve infix:<...> | 04:08 | |
I'm now going for breakfast, and then I'll be scope-down until my talk. | |||
& | 04:09 | ||
lizmat | morning masak | 04:13 | |
morning #perl6 | |||
please note the the title and the tone of my presentation has changed: act.yapc.eu/ye2014/talk/5704 | |||
04:15
kaare__ joined,
Pleiades` left
04:16
Pleiades` joined
|
|||
lizmat also does a scope down until the talk | 04:17 | ||
04:17
kaare_ left
04:20
thou left
04:25
xinming_ joined,
xinming left
04:36
Psyche^_ left
04:37
Psyche^ joined
05:05
kst``` joined
05:06
rindolf joined
05:07
kst`` left
05:13
rindolf left
05:14
rindolf joined
05:16
Akagi201 left
05:23
kurahaupo left
05:24
woolfy joined
05:30
SamuraiJack joined
05:35
dolmen joined
05:37
akaseki is now known as Salai
05:45
rindolf left,
rindolf joined
05:48
kurahaupo_ joined
06:02
pmurias joined
06:03
thou joined
06:06
FROGGS[mobile] joined
06:08
thou left
|
|||
FROGGS[mobile] | morning | 06:08 | |
nwc10 | morning | ||
FROGGS[mobile] | masak++'s talk is starting in 22 minutes? | 06:09 | |
nwc10 | I hope not. I think it's 82 minutes | ||
FROGGS[mobile] | ohh, okay | ||
06:11
rindolf left,
rindolf joined
06:13
erkan joined,
erkan left,
erkan joined
06:14
gmunoz left
|
|||
masak | FROGGS[mobile]: don't scare me like that! :P | 06:22 | |
FROGGS[mobile] | *g* | 06:23 | |
sorry, I just woke up and subtracted the tz offset twice | 06:24 | ||
06:26
xenoterracide left
06:27
rindolf left
06:28
rindolf joined
06:32
gmunoz joined
|
|||
pmurias | CALLER stops inlining unless it's absence is proven by static analysis? | 06:37 | |
06:37
gmunoz left
06:38
Ven joined
06:39
dolmen left
|
|||
Ven | o/, #perl6 | 06:40 | |
06:41
rindolf left
06:42
rindolf joined
06:43
rindolf left,
rindolf joined
06:44
gmunoz joined
06:50
gmunoz left
06:51
Salai is now known as akaseki
06:53
akaseki is now known as Salai
|
|||
woolfy | Good morning... | 07:03 | |
lizmat and I are in a very nice big room in Sofia, at YAPC::EU. We invite all Perl 6-ers and other Perl-people to a hackathon in our room. We have 18 seats and excellent connection. And food and drinks. | 07:04 | ||
It will be on Monday 25th in room 10.01 in the Metropolitan Hotel, starting as soon as we wake up. Can be as early as 10:00. | 07:05 | ||
I will make sure that the front desk give people who mention "Perl Hackathon" access to the elevator. | 07:06 | ||
I will add a page to the wiki of YAPC::EU. | 07:08 | ||
07:10
rindolf left,
rindolf joined
|
|||
tadzik | half of the talks I'm planning for today are done by female speakers | 07:12 | |
and there are collisions! | |||
I can't get over how fantastic that is | |||
07:12
gmunoz joined
|
|||
Ven | tadzik: not sure why you think collisions are so great. :P | 07:16 | |
tadzik | Ven: I'm not happy about them, but it's a sign of good times that they're there | ||
Ven | tadzik: I'm kidding, I'm kidding. It's a great news indeed :) | 07:17 | |
tadzik | :) indeed | ||
07:17
gmunoz left
07:18
gmunoz joined
07:24
gmunoz left
07:25
gmunoz joined
|
|||
Ven | masak++ up next | 07:26 | |
woolfy | Hackathon on Monday (of course, we hope some Perl6-ers can make it): act.yapc.eu/ye2014/wiki?node=Hackathon | 07:27 | |
07:27
FROGGS_ is now known as FROGGS
|
|||
FROGGS | woolfy: I'll join remotely :/ | 07:28 | |
07:29
darutoko joined
07:30
gmunoz left,
gmunoz joined
|
|||
FROGGS | I have no sound!! /o\ | 07:30 | |
ahh, better :o) | 07:31 | ||
masak: hello :o) | |||
woolfy | FROGGS: nice | ||
TimToady | lack of sound considere harmful | 07:34 | |
*red | |||
Ven | .o( red means harm, as usual ) | 07:35 | |
wut | 07:36 | ||
TimToady | at least I'm not the only one misspelling things around here | 07:37 | |
tadzik | is there a reason why .get() is a part of Socket::INET rather than than Socket itself? | 07:42 | |
TimToady | YOU_ARE_HERE | 07:51 | |
07:51
thou joined
|
|||
TimToady | this is more or less what we do for the setting | 07:52 | |
Ven | you goto? | 07:56 | |
07:56
thou left
|
|||
Ven | .oO( Gotta use that to build an adventure where you are the hero ) |
07:59 | |
TimToady | thought that was called a cactus stack... | ||
woolfy | Oh my, in 27 minutes lizmat's talk will begin and we're still in the hotel | 08:01 | |
She has been working frantically since 06:00 this morning. | |||
Because jnthn++ and masak++ and even mst++ changed lots of stuff the last few days with their talks | 08:02 | ||
TimToady | LoL works! | ||
so does lol! | |||
m: say LoL, lol; | |||
camelia | rakudo-moar c793d8: OUTPUT«(LoL)» | ||
tadzik | what a bargain | ||
you don't even need slangs | 08:03 | ||
TimToady | term:<LOL> | ||
nwc10 | we can heckle-by-proxy if you like. :-) | ||
TimToady | you're authorized :) | ||
woolfy | One more time plugging the Hackathon: act.yapc.eu/ye2014/wiki?node=Hackathon | 08:04 | |
TimToady | pause is just the YOU_ARE_HERE of the rest of the block as a continuation; we just limit YOU_ARE_HERE to a call scope currently | 08:05 | |
that's what the SETTING does | 08:06 | ||
08:07
lizmat left,
woolfy left
08:09
dolmen joined
|
|||
TimToady | the setting can do that too | 08:10 | |
maybe we just write the setting in terms of a pause | |||
well, the compiler kinda does that too with the setting, compiling code and then jumping to it | 08:12 | ||
so the primitives are already kinda there | |||
Ven | oh c'mon, lisp has been doing that forever ;-) | 08:13 | |
TimToady | mention the YOU_ARE_HERE as a kind of pause if you like | 08:15 | |
08:15
dolmen left
08:16
pmurias left
|
|||
FROGGS | masak: so, how do we make subclassing Perl6::Grammar/Actions work? :o) | 08:18 | |
TimToady | rewrite the compiler in Perl 6 :) | ||
FROGGS | use: Perl6::Grammar :from<NQP> | ||
m: use Perl6::Grammar:from<NQP> | |||
08:18
mrf joined
|
|||
camelia | ( no output ) | 08:18 | |
08:18
zakharyas joined
|
|||
FROGGS | m: use Perl6::Grammar:from<NQP>; grammar Foo is Perl6::Grammar { }; say Foo | 08:19 | |
camelia | rakudo-moar c793d8: OUTPUT«No such method 'gist' for invocant of type 'Foo' in sub say at src/gen/m-CORE.setting:14117 in block <unit> at /tmp/xwyN0EDvdi:1» | ||
FROGGS | TimToady: I don't wanna do that :o) | ||
I mean, it would be awesome and perhaps helpful in the end, but it would also be like five times slower than it is now | 08:20 | ||
what I am thinking about now is that masak wants to change method statementlist too perhaps, without breaking future changes of that method too often | 08:22 | ||
08:22
dolmen joined
|
|||
FROGGS | would it be possible to inherit from a class, take a method from the parent class and inject/remove statements, and the expose that method as our own? | 08:22 | |
TimToady | we merely have to write it in the subset that compiles down at least as efficiently as nqp :P | 08:23 | |
FROGGS | true | ||
how? | |||
:D | |||
08:23
dwarring left
|
|||
TimToady | that's obvious, torment the implementors! duh! | 08:23 | |
you just need to treat the continuation of the current statement as the YOU_ARE_HERE that you serialize | 08:24 | ||
FROGGS | I'd think hllizing grammars and cursors might be enough | ||
TimToady | well semantically | 08:25 | |
FROGGS | hmmm | ||
TimToady | messing with that concept syntactically is of course an interesting problem that remains | ||
FROGGS | what I'd like to see first is that we would be able to add rules to statement_control and so on | 08:26 | |
TimToady | but pause is sort of a {YOU_ARE_HERE} that is null, and just returns, much like the -n and -p settings return to the loop around your program | ||
your program is already in a sequence of statements within the setting | 08:27 | ||
masak | thanks to my lovely audience for all the nice heckling :> | 08:31 | |
TimToady | yeah, they offered to, and then they didn't :) | 08:32 | |
nwc10 | is t/spec/S17-supply/watch_path.t expected to spectest fail on OS X? | ||
masak | oh, there was some heckling :) | ||
nwc10 | you could ask liz for me :-) | ||
TimToady | what you get for talking on the morning of the last day of the conference :P | ||
masak | heh :) | 08:33 | |
masak lizzens to lizmat | |||
nwc10 | oh, nice | ||
ok 1 - make sure we don't have a file 1..22 | |||
Trace/BPT trap | |||
I can't debug that during a talk | |||
TimToady is silent right now :) | 08:37 | ||
Ven | I actually decided that, instead of trying to mess up with the parent process' bit to change something's, I'll just generate `alias`es in some .sh file :P | 08:38 | |
TimToady | splat! | 08:39 | |
oh, thought it was a windshield :) | |||
masak | heh :) | ||
TimToady: no, the butterfly has a 10 feet wingspan! | |||
08:40
SamuraiJack left
|
|||
masak | "the new Perl is Perl 6" -- it's too early to pull that lever, IMHO. | 08:40 | |
Ven | masak: who said that? | 08:41 | |
TimToady | it's me! | ||
masak | Ven: watching a lizmat talk live. | ||
TimToady | it's just like a...a pause! | 08:42 | |
TimToady is pretty stupid... | 08:43 | ||
'this death star is fully operational' | 08:44 | ||
yes, use the mic | 08:46 | ||
FROGGS | TimToady: I like you anyway :o) | ||
Ven | masak: one, that one talk :P | ||
masak | :P | ||
Ven | oh, it's that one talk, but a new one instead | ||
masak | yes. | ||
Ven | wow, she just said I was stupid :P | ||
AAAH | |||
masak | data point: we have too many outsider-facing names. | ||
08:46
gfldex joined
|
|||
masak | ideally, it should be just "Perl 6" -- but it tends to be Perl 6, rakudo, moar, panda, rakudobrew... | 08:47 | |
maybe nqp too. | |||
FROGGS | and parrot | ||
masak | right. | ||
Ven | that's what happens when you take the internals for granted :P | 08:48 | |
masak | there's nothing wrong with all of these sub-projects, but we should provide paths/onramps where they don't constitute an obstacle. | ||
TimToady | INTERCAL backend!!! | ||
nwc10 | sat with my work colleague for breakfast - he was only aware of parrot and JVM, and JVM was not his faviourite thing | ||
TimToady | we'll get threading for free!! | ||
Ven | That question was staged! I know it! | ||
TimToady | NFG | ||
masak | Ven: nope. :) | ||
jnthn | No, it was certainly asked off-stage... :P | 08:49 | |
TimToady | well, we'll see about that... | 08:52 | |
we've already implemented several 80%s... | |||
FROGGS | I think we are better then 80/80 to over Perl 6 1.0 | 08:53 | |
cover* | |||
ribasushi: I care, and the many deps need to be written | 08:54 | ||
08:55
zakharyas left
|
|||
masak frowns in the general direction of predictions, promises, and estimates | 08:55 | ||
FROGGS | ribasushi: and it takes time for me to write all DBIx::Class deps... | ||
masak: I do not make any promise :o) | |||
so, making lists of what needs to be done is the right thing here | 08:56 | ||
perhaps this will pull ppl in | |||
nwc10 | lists of lists? ;-) | ||
FROGGS | *g* | ||
indeed | 08:57 | ||
Ven | the person doing what? | ||
masak | Ven: p5-p6 interop. | ||
Ven: there was a TPF grant for doing that. | 08:58 | ||
Ven | that is, FROGGS, or something else? | ||
masak | Ven: not FROGGS. | ||
FROGGS | no, diakopter | ||
masak | Ven: lizmat is being discrete and not naming names :) | ||
Ven | I got that, but I was wondering mostly about the project itself | ||
TimToady | batteries are supplied by distributors, not core | 08:59 | |
someone point out the success of the Linux model | |||
Perl 6 is just the kernel, in that model | |||
nwc10 | jnthn: 30% of setting load was rel2abs? | 09:00 | |
09:02
dg joined
|
|||
TimToady | thanks | 09:02 | |
jnthn | nwc10: Seems so, from the profiler, yes. | 09:03 | |
moritz | is that because rel2abs is so slow, or because it's called so often? | ||
Ven | so, jnthn++'s async talk is this afternoon, right? | ||
nwc10 | I believe that's still "left as an excercise to the readler" | ||
FROGGS | moritz: isnt it always a mix of both? :o) | 09:04 | |
TimToady | Ven: yes, 1450 Sofia time | ||
someone point out the success of the Linux model:) | |||
FROGGS | *g* | ||
TimToady | oops. | ||
which is, conveniently, 450 here | |||
darn scrolling touchpad... | 09:05 | ||
FROGGS | you can glue it to your desk | ||
TimToady | it sees both my hands and thinks I'm doing two-fingered scrolling | ||
FROGGS | or shorten then cable | ||
Ven | that means 1350 my time, eh. | ||
TimToady | so, time for another nap here... | 09:07 | |
zzz & | |||
moritz | FROGGS: often enough one of them clearly dominates | ||
09:08
dolmen left
09:11
Ven left,
Ven joined
|
|||
masak is now re-enjoying speakerdeck.com/stevan_little/perl...a-dead-end | 09:12 | ||
09:15
jack_rabbit left
09:27
psch left
09:28
Ven left
09:29
isBEKaml_mobile joined
09:31
Ven joined
|
|||
Ven | masak: well, what happened to moe? | 09:32 | |
09:40
thou joined
09:44
thou left,
Ven left
|
|||
FROGGS | m: my $b = Buf.new(1, 2, 3); $b[1] = 22; say $b # jnthn: would you mind allowing that? | 09:46 | |
camelia | rakudo-moar c793d8: OUTPUT«Cannot modify an immutable Int in method assign_pos at src/gen/m-CORE.setting:1812 in sub postcircumfix:<[ ]> at src/gen/m-CORE.setting:2511 in block <unit> at /tmp/Dv3VyArOYs:1» | ||
09:46
Ven joined
09:50
isBEKaml_mobile left
09:55
anaeem1 joined
09:57
kst```` joined
|
|||
masak | Ven: I'd kinda like to hear stevan's answer to that, too. | 09:57 | |
Ven | well, my goto.p6 is done \o/ | 09:58 | |
FROGGS | O.o | ||
09:58
kst``` left
|
|||
Ven | which has nothing in common with masak++'s talk, btw. | 09:58 | |
masak | Ven: the second-hand stories I hear vary between (a) the more he evolved it, the more he realized he was rebuilding Perl 6, and (b) he realized that building a language/compiler is hard work. | 09:59 | |
FROGGS | yeah, that nothing you can do on a sunday afternoon | 10:00 | |
10:01
lizmat joined
|
|||
masak | niner++! # github.com/niner/Inline-Perl5/blob...e_perl5.pl | 10:02 | |
tadzik | aww yiss | 10:03 | |
masak | what's the coolest thing we can do with this new Awesome Powar? | ||
tadzik | cgi.pm | 10:04 | |
nine_ | tadzik: where are you right now? | ||
tadzik hides | |||
nine_: hidden | |||
FROGGS | under a table perhaps :o) | ||
tadzik | :) | ||
nine_ just realized that maybe I don't want to know... | 10:05 | ||
mrf | nine_: now I want an imbedded perl interp inside mod_perl imbedded in perl6 :D | 10:08 | |
10:14
Ven left
|
|||
lizmat | around the 6th Lightning Talk will be one of mine:"A State Of Perl 6" | 10:20 | |
slightly updated from the OSCON one | |||
masak | \o/ | ||
10:21
Akagi201 joined
|
|||
masak | m: say "foo".encode.WHAT | 10:24 | |
camelia | rakudo-moar c793d8: OUTPUT«(utf8)» | ||
masak | m: say "foo".encode.^mro | ||
camelia | rakudo-moar c793d8: OUTPUT«(utf8) (Any) (Mu)» | ||
masak | m: say utf8.^methods | 10:25 | |
camelia | rakudo-moar c793d8: OUTPUT«decode encoding new elems bytes chars Numeric Int list subbuf unpack contents of Str at_pos Bool Stringy gist perl» | ||
10:25
BizarreCake joined
|
|||
masak | m: say utf8.^methods(:local) | 10:25 | |
camelia | rakudo-moar c793d8: OUTPUT«decode encoding new elems bytes chars Numeric Int list subbuf unpack contents of Str at_pos Bool Stringy gist perl» | ||
FROGGS | jnthn: the Digest module segfaults in one of its tests :/ (MVM_gc_worklist_add) | 10:26 | |
masak | m: say Buf.^methods(:local) | ||
camelia | rakudo-moar c793d8: OUTPUT«new elems bytes chars Numeric Int decode list subbuf unpack contents encoding of at_pos Bool Str Stringy gist perl» | ||
FROGGS | masak: they do the Blob role that implements these | ||
masak | m: say Buf.^methods>>.name.Set === utf8.^methods>>.name.Set | 10:28 | |
camelia | rakudo-moar c793d8: OUTPUT«True» | ||
masak | m: say utf8.^does(Blob) | ||
camelia | rakudo-moar c793d8: OUTPUT«True» | ||
masak | m: say Buf.^does(Blob) | ||
camelia | rakudo-moar c793d8: OUTPUT«True» | ||
10:29
jaffa4 joined
|
|||
FROGGS | jnthn: and this segfault goes away by using MVM_SPESH_DISABLE=1 | 10:29 | |
masak | FROGGS: try unsetting it and setting MVM_SPESH_OSR_DISABLE=1 instead | 10:30 | |
10:30
spider-mario joined
|
|||
FROGGS | jnthn: it segfaults with MVM_SPESH_OSR_DISABLE=1 # masak++ | 10:31 | |
10:31
spider-mario left
|
|||
FROGGS | jnthn: it passes with MVM_SPESH_INLINE_DISABLE=1 | 10:31 | |
10:34
spider-mario joined
10:35
mj41 joined
|
|||
masak | the current talk by Mark Overmeer in Vitosha is crazy. | 10:35 | |
he's talking about how an important CPAN module Digest::SHA got broken by an "improvement" that treats the bytestream input as UTF-8 strings. | 10:36 | ||
10:36
kst````` joined
|
|||
itz | File::Slurp (and probably much more) is also broken wrt utf-8 | 10:37 | |
masak | Perl 5 programmers don't have it easy; this whole talk wouldn't have existed if they'd had the Str/Buf distinction. | ||
moritz | only possible (and likely) due to p5's deep-rooted confusion about byte strings and text strings | ||
masak | aye. | ||
10:38
dolmen joined,
kst```` left
|
|||
masak | but all levels of the chain (p5, core, modules, module author, module users) are compounding the problem. | 10:38 | |
moritz | I've done my best to inform people about the problem, but it seems like a struggle against wind mills | 10:39 | |
for everybody who understands it, there three more who try but don't, and five more than don't even try | 10:40 | ||
masak | moritz: the questions part seems to confirm this. | 10:41 | |
moritz | in some sense, it's a really tough problem in p5 design space | ||
masak | moritz: the first question/comment started "I think you're basically wrong about everything..." | ||
jaffa4 | what is the time over there? | ||
moritz | p5 is really "only different types for things with different shapes" | ||
masak | jaffa4: 13:41 | ||
moritz | a scalar and a hash have different-enough shapes to warrant separate types ($ vs. %), but there's no real mechanism for core-types below the scalar level | 10:42 | |
which is why still no good solution has been found | 10:43 | ||
a partial solution might be to have three user-introspectable string types, "byte only", "text only", and "polymorphic" (which is what's currently used) | |||
and mixing text-only and byte-only strings would be fatal | 10:44 | ||
10:44
Ven joined
10:45
anaeem1 left
|
|||
FROGGS | (at runtime) | 10:45 | |
moritz | sure | ||
mj41 | lizmat: new charts github.com/mj41/Perl6-Analytics-re...opm-prev1/ (data are a few hours old) ... feel free to use any of them | ||
moritz | but it's really just a tiny patch over a huge spasm between the type model that p5 offers, and the type model that modern programmers want/need | 10:46 | |
masak | hehe... "huge spasm" :P | ||
that may be a typo, but it's a brilliant one. | |||
moritz in gloomy philosphy mode | |||
yes, I meant "chasm" | 10:47 | ||
masak | "spasm" is funnier | ||
masak .oO( "but I don't *like* spasm!" ) | |||
moritz is funniest when he doesn't mean to | |||
jaffa4 | What was your lecture about, masak? | 10:48 | |
Ven | lizmat: slides somewhere? :) | 10:50 | |
the new shiny ones | |||
lizmat | not yet.... in a moment... | ||
dolmen | Looks like trying to build rakudo/jvm from a non-ASCII path is a bad idea... | ||
paste? | |||
masak | "are we starting from 0?" -- guy in the third row :P | 10:52 | |
jaffa4: "implementing goto in 16 hours" | |||
jaffa4 | you have good memory, nice | 10:53 | |
masak | ;) | ||
10:54
lizmat_ joined
|
|||
masak | jaffa4: it was about how to pretend that delimited continuation exists in the language, through painstaking-but-eventually-straightforward code generation, slightly modified Perl 6 grammar, and slangs. | 10:55 | |
Ven | aka cheating :D | 10:58 | |
10:58
lizmat left
|
|||
masak | jaffa4: vlodtz was active on the channel back in 2005. he came up to me after the talk and said that the talk made him decide to start looking into Perl 6 again. | 10:58 | |
Ven: yes, definitely cheating. | 10:59 | ||
Ven: but given that Perl 6 will never support continuations in core, that's the option I could think of. | |||
nwc10 | I'm sure I should know hte answer - does MoarVM support continuations? | 11:00 | |
masak | nwc10: oh yes. | 11:01 | |
nwc10: see src/core/continuation.c :) | |||
nwc10 | aha yes. | 11:02 | |
nine_ | tadzik: github.com/niner/Inline-Perl5/comm...d97731f79c | 11:03 | |
tadzik: we now have working two way communication between Perl 5 and Perl 6 :) | |||
nwc10 | ship it! | ||
masak | o.O | 11:04 | |
nine_++ | |||
tadzik | nine_: awesome :) | ||
nine_: now we can send 64bit ints and encode json inside | |||
:> | |||
nwc10 | haters are particularly going to hate that their nice pure untainted Perl 5 code is now being used by Perl 6 :-) | 11:05 | |
tadzik | . o O ( Perl 5 Only Artistic License ) | ||
lizmat_ | nine_++ | 11:06 | |
huf | perl5 code pure? running on _that_ vm? | 11:07 | |
it's lots of things but pure isnt even remotely applicable :) | |||
masak | huf: one almost suspects that nwc10 was being sarcastic or something. | 11:08 | |
11:09
lizmat_ is now known as lizmat
|
|||
huf | masak: nah, sarcasm aint real. | 11:09 | |
lizmat | this just on CNN: A 6.0-magnitude earthquake hit the northern San Francisco Bay area early Sunday, the U.S. Geological Survey said. | 11:10 | |
nwc10 | I'm not sure how many different nuances I'm thinking. | ||
lizmat | hope TimToady was not woken up by this | ||
nwc10 | The statement was made in good faith as a somewhat contraversial observational joke | ||
but I suspect it's both "many a true word said in jest" and "resistance is futile. you will be assimilated" | 11:11 | ||
dolmen | rakudo.org/how-to-get-rakudo/ should be the home page of rakudo | ||
the current home page shows Star releases that are outdated | |||
masak | dolmen: +1 | ||
dolmen | Star releases are advertised "for early adopters", but "early adopters" want instead the latest in development features | 11:13 | |
lizmat | Ven: slides up at www.liz.nl/C-DayIsComingYAPCEU.pdf | ||
dolmen | the amzing stuff we read in jnthn blogs posts | ||
11:15
lizmat_ joined
|
|||
masak | dolmen: ideally, Star releases should have that, too. | 11:15 | |
11:19
lizmat left
|
|||
Ven | lizmat: thanks & thanks for the mention :P | 11:20 | |
nine_ | tadzik: where are you? | 11:23 | |
tadzik | nine_: at sawyer's | ||
11:24
mj41 left
|
|||
nine_ | tadzik: ah right next to the column | 11:24 | |
tadzik | oh yes :) | ||
Ven | lizmat_: "if your using" little typo here :) | 11:26 | |
11:26
lizmat_ is now known as lizmat
|
|||
tadzik | nine_: u wot m8 | 11:26 | |
that's crazy things :) | |||
I love YAPC | |||
nine_ | tadzik: yes, I'm using Inline::Python from within Inline::Perl5 from within Perl 6 :) | ||
tadzik | :D | 11:27 | |
Ven | I'm very much agreeing with the c-day talk | ||
lizmat | fixed and uploading, Ven++ | ||
11:28
thou joined
|
|||
masak | nine_: o.O | 11:31 | |
11:31
lizmat_ joined
|
|||
Ven | masak: y'know about the rabbit hole ? well that's about it | 11:31 | |
I guess you need some some slang around it to build the universe (xkcd.com/224/) | 11:32 | ||
(lisp slang, that is) | |||
masak | not sure which rabbit hole you're referring to. | ||
11:32
thou left
|
|||
masak | the original Alice one? | 11:32 | |
the Matrix/Morpheus one? | 11:33 | ||
or the proverbial one? | |||
you can't just say "the rabbit hole" :P | |||
Ven | masak: Matrix's is just alice's, really. | ||
11:33
dolmen left
|
|||
masak | troo | 11:33 | |
Ven | Sure I can, that's the point: you don't even know which one you're dwelving :P | ||
masak | ok, so what I've gathered so far is that you're talking about *a* rabbit hole. fine. :) | 11:34 | |
11:34
telex left
|
|||
Ven | let's go with alice. This nesting is already making my brain hurt enough, I don't need metaphors to hurt it more | 11:34 | |
11:35
lizmat left
11:36
lizmat joined
|
|||
masak | :) | 11:36 | |
11:36
telex joined
|
|||
jaffa4 | What is the state of calling perl5 from Perl6? | 11:36 | |
masak | jaffa4: it works! | 11:37 | |
nine_++ | |||
11:40
lizmat_ left
|
|||
jaffa4 | I am reading the slide "Too stupid to contribute?" | 11:40 | |
lizmat | and? | ||
Ven | I took that one badly :( | ||
lizmat | seriously? | ||
jaffa4 | not PC? | ||
masak | it's... perhaps not the ideal formulation :/ | 11:41 | |
Ven | no, not seriously, but it's not well said. | ||
lizmat | well, I wasn't going for subtle | ||
masak | "we value all contributions" is a better start | ||
Ven | "if you're writing a tutorial instead of commiting, you're stupid LOL" <- not exactly the best way to get ppl involved | ||
masak | the current one implies that non-dev contributions are worth less, because the contributors are too stupid to code. | 11:42 | |
it's a dev perspective, a very common one, and wrong. | |||
jaffa4 | I write code and doc, so I am both stupid and smart | 11:44 | |
masak | clearly :) | ||
Ven | jaffa4: congratulations, you're now a heisencake | ||
(if your username is "jaffathecake") | |||
TimToady | actually, I was awoken by the earthquake, but I'm a Californian so I admired the tinkling noises from some glass bells and the dog barking next door, then promptly fell back asleep | ||
masak | TimToady: glad to hear you weren't more shook up than that. | 11:45 | |
TimToady | it only felt like a 4.0 here | ||
lizmat | good it's only just that | ||
11:45
tgt joined
|
|||
lizmat | in the early 90's, I woke up like that once in Amsterdam | 11:45 | |
a 3.1 earthquake about 200km away | |||
TimToady | and I knew it wasn't huge because it wasn't long enough, but I knew it was larger than 4 because it went on too long for that :) | ||
Ven | I'm not sure I could live someplace with earthquakes :o) really needs to get habituated | ||
nine_ | And now we handle strings returned from Perl 5 to Perl 6 :) | 11:46 | |
TimToady | well, they happen seldom enough to be interesting, but all you can do is make sure everything is bolted to the wall | ||
timotimo | pro: i just tuned in when jnthn started setting up for his talk. con: i've gotta go again in about 10 minutes >_< | 11:47 | |
flussence | yayitsjnthn! | ||
TimToady | other than that, you can't see 'em coming like a hurricane or even a tornado | ||
11:47
mj41 joined
|
|||
Ven | timotimo: is he in now? | 11:47 | |
masak | jnthn is about to begin, yes. | 11:48 | |
TimToady | oh, and I also looked at my watch, so I know the earthquake was at 3:21 local | ||
11:49
kaare__ is now known as kaare_
11:51
lizmat_ joined,
dolmen joined
|
|||
flussence | I ended up missing masak's talk, because some fire engines went down the road here at 3am... :( | 11:52 | |
Ven woke up one hour too early, but caught the talk :o) | 11:53 | ||
11:54
lizmat__ joined
|
|||
flussence braces for awesome | 11:54 | ||
11:55
lizmat left,
lizmat__ is now known as liizmat,
liizmat is now known as lizmat
11:58
lizmat_ left
|
|||
timotimo | *sigh*, slides not visible :( | 11:59 | |
lizmat | :-( | 12:00 | |
visible here :-) | |||
TimToady | the video person doesn't think code is interesting... | 12:01 | |
Ven | :( | ||
timotimo | ah, finally | 12:02 | |
12:03
mj41 left
12:04
ecocode joined
|
|||
Ven | m: my @a = True, False, True; say @a.grep(!*) | 12:07 | |
camelia | rakudo-moar c793d8: OUTPUT«False» | ||
Ven | oh, he used it :P | 12:08 | |
timotimo | .o( shake your closure-maker ) | ||
flussence | m: say signal(SIGINT).perl | 12:11 | |
12:11
lizmat_ joined
|
|||
camelia | rakudo-moar c793d8: OUTPUT«Supply.new()» | 12:11 | |
flussence | m: say Signal.enums | ||
timotimo | m: say signal(SIGINT).Promise | ||
camelia | rakudo-moar c793d8: OUTPUT«("SIGBREAK" => 2, "SIGHUP" => 3, "SIGINT" => 1, "SIGWINCH" => 4).hash» | ||
rakudo-moar c793d8: OUTPUT«Promise.new(scheduler => ThreadPoolScheduler.new(initial_threads => 0, max_threads => 16, uncaught_handler => Callable), status => PromiseStatus::Planned)» | |||
flussence | oh, sigint was one of the ones already there :) | ||
12:12
lizmat__ joined
|
|||
timotimo | "await $proc.start" kinda sounds like "wait for the process to start", d'oh | 12:13 | |
flussence | that might read better as "$proc ==> start ==> await" (if that even works...) | 12:14 | |
12:14
lizmat left
12:15
dolmen left
|
|||
timotimo | probably want to use .start instead, as that's a method call on $proc | 12:15 | |
while await is a subroutine call | |||
12:16
lizmat_ left
|
|||
timotimo | i'd be interested in seeing how you can do good exception handling with this pattern, as any of these promises may be broken instead of kept, right? | 12:17 | |
Ven | I didn't even know `.<>` worked. Though I already used *<foo> P | 12:18 | |
timotimo | the boolean value of the promise will be True on "Broken", so it'll at least kick those out of the @work stuff | ||
yeah, .<> is for $_, *<> is for making a little closure | |||
Ven | hehe | ||
doesn't @working need a rw for .= ? | 12:19 | ||
timotimo | i kind of think so | ||
FROGGS | do arrays need that? | ||
timotimo | well, .= does an assignment ... | ||
Ven | yea | ||
grep itself isnt destructive | |||
timotimo | m: sub test(@arr) { @arr .= sort }; my @a = <a b x y r s t>; test(@a); say @a | 12:20 | |
camelia | rakudo-moar c793d8: OUTPUT«a b r s t x y» | ||
timotimo | ah. | ||
Ven | that seems kinda bad :o) | ||
Ven would be interested in the spec part about that | |||
FROGGS | I think it is not trivial to make it ro | 12:21 | |
timotimo | oh gotta run | 12:22 | |
Ven | m: sub test(@arr) { @arr = @arr.sort }; my @a = <a b x y r s t>; test(@a); say @a | ||
camelia | rakudo-moar c793d8: OUTPUT«a b r s t x y» | ||
Ven | m: sub test(@arr) { @arr = 1, 2, 3; }; my @a = <a b x y r s t>; test(@a); say @a | ||
camelia | rakudo-moar c793d8: OUTPUT«1 2 3» | ||
lizmat__ | same kind of problem as making ::+ work | ||
Ven | eh. | ||
lizmat__ | ::= rather | ||
12:22
lizmat__ is now known as lizmat
12:23
ecocode left
|
|||
Ven | eh? | 12:23 | |
12:24
ecocode joined
|
|||
lizmat | S03:2348 | 12:25 | |
synopsebot | Link: perlcabal.org/syn/S03.html#line_2348 | ||
12:27
Salai left
|
|||
Ven | yes, I know about ::=, I don't know about what's wrong with making it work tho | 12:27 | |
12:28
akaseki joined,
ecocode left
|
|||
nine_ | Aaaand....now we're able to call parameterless return value less Perl 5 functions from Perl 6 :) | 12:29 | |
I really should switch to preparing the lightning talk about this now... | |||
Ven | nine_: are there tests :)? | 12:30 | |
flussence | yayitsmasak! | ||
nine_ | Ven: not yet. But I've also moved the code to a module so it's easier to write tests. | 12:31 | |
Ven | grate! | ||
nine_: what's your talk about, btw? :) | 12:33 | ||
about that, I guess. | |||
12:33
brrt joined
|
|||
jaffa4 | there is gui for Perl6? | 12:34 | |
nine_ | Ven: yes, it's my very first Perl 6 program, and since it's essentially a fancy hello world, I might as well show it ;) | ||
Ven | gtk bindings | ||
FROGGS | nine_++ | 12:36 | |
12:36
kaare_ left
12:38
brrt left
|
|||
dalek | c: 2ed8f99 | moritz++ | lib/Language/traps.pod: new language document "traps" (common errors) |
12:39 | |
12:42
lizmat left
|
|||
TimToady -> 3rd nap & | 12:42 | ||
12:42
dolmen joined
|
|||
Ven | good | 12:43 | |
moritz | feedback on traps.pod very welcome | ||
another one I want to write is that BUILD stops attribute default assignment | 12:44 | ||
sergot | moritz++ | 12:50 | |
12:52
Sqirrel left
|
|||
cognome | jnthn's talk is in vitosha? I don't see him on the feed | 12:53 | |
12:53
ecocode joined
12:54
Ven left
|
|||
cognome | is that masak in the second raw? | 12:55 | |
FROGGS[mobile] | cognome: the talk is over | 12:57 | |
cognome | I got the schedule wrong? | ||
what time is it in sofia? | 12:58 | ||
moritz | 15:58 | ||
cognome | that's why :( | ||
moritz | date --utc + 3 hours :-) | ||
12:59
Ven joined
|
|||
cognome | so far east | 12:59 | |
masak | cognome: Not Quite The Far East | ||
cognome | masak, for Europe, yes | 13:00 | |
Ven | has litchkind++ put up his slides yet? | ||
13:05
__sri joined
|
|||
moritz | m: class A { has $.x; has $.y; submethod BUILDALL(|c) { nextsame; $!y = 18; self; } }; A.new(x => 42).x | 13:06 | |
camelia | ( no output ) | ||
moritz | m: class A { has $.x; has $.y; submethod BUILDALL(|c) { nextsame; $!y = 18; self; } }; say A.new(x => 42).x | ||
camelia | rakudo-moar c793d8: OUTPUT«(Any)» | ||
moritz | what am I doing wrong here? | ||
13:06
dolmen left
|
|||
masak | m: class A { has $.x; has $.y; submethod BUILDALL(|c) { nextsame; $!y = 18; self; } }; say A.new(x => 42).y | 13:07 | |
camelia | rakudo-moar c793d8: OUTPUT«18» | ||
moritz | oh, should it be a method instead of a submethod? | ||
m: class A { has $.x; has $.y; method BUILDALL(|c) { nextsame; $!y = 18; self; } }; say A.new(x => 42).x | 13:08 | ||
camelia | rakudo-moar c793d8: OUTPUT«42» | ||
masak | ah; that was it. | ||
13:08
dolmen joined
|
|||
jaffa4 | the quality of string is quite good unlike in Kiev | 13:08 | |
streaming | |||
masak | so BUILDALL is a method, but BUILD is a submethod? | 13:09 | |
moritz | yes | ||
BUILDALL builds the whole thing | |||
so it's called once | |||
(which is why you need to nextsame) | |||
and BUILD is per class | |||
13:09
klaas-janstol joined
|
|||
ecocode | seems rakudobrew fails to build perl6 with moarvm on macosx ? it works with parrot though | 13:10 | |
colomon just realized he slept through jnthn's talk today. | |||
yoleaux | 02:33Z <btyler> colomon: I added a rough draft for encoding values to JSON::Jansson, next up is adding an option to parse JSON into perl6 data structures (rather than preserving them as jansson objects)...or something more pressing for your use case, if you have something in mind | ||
tadzik | ecocode: what's the error message? Also, does it work without rakudobrew? | ||
colomon | ecocode: is it " | 13:11 | |
is it "make: write error"? If so, it mostly works, and it's rakudo's fault (well, make's, really) rahter than rakudobrew's | |||
ecocode | yep that's it | 13:12 | |
Ven | then it's ok | ||
ecocode | ah ? | ||
ok not to build ? | |||
Ven | it worked, don't worry | 13:13 | |
ecocode | weird | 13:15 | |
13:15
klaas-janstol left
|
|||
Ven | osx make bug. Just `make install` and off you go :) | 13:15 | |
13:16
thou joined
|
|||
ecocode | rakudobrew switch seems to do the job | 13:16 | |
still | |||
weird ;) | 13:17 | ||
are there any statictics on module releases to panda ? | |||
jnthn | Slides from my talk: jnthn.net/papers/2014-yapceu-async.pdf | 13:20 | |
moritz | stackoverflow.com/questions/8134572...ng-on-lion suggestss trying 'ulimit -s hard' before running make | ||
can somebody on OS X please test that? | |||
colomon | ecocode: the downside is that if you later on upgrade the build with rakudobrew, it won't automtically update panda as well, because it stops on the error. But the building rakudo part still works, and you can update panda by hand. | ||
13:21
thou left
|
|||
ecocode | ok | 13:21 | |
colomon | moritz: trying | ||
ecocode | moritz:fails | 13:22 | |
jaffa4 | what is rakudobrew? | 13:23 | |
ecocode | perlbrew for perl6 | 13:24 | |
jaffa4 | Does it work under Windows? | 13:26 | |
ecocode | would not know... test it ;) | ||
Ven | no | 13:27 | |
doesnt | |||
moritz | ecocode: :( | 13:29 | |
ecocode: but thnaks for testing it | |||
13:29
_sri is now known as ___sri
|
|||
moritz | is there a difference between await @todos; and await Promise.allof(@todos); ? | 13:29 | |
13:30
__sri is now known as _sri
|
|||
Ven | moritz: was wondering the same | 13:31 | |
moritz | I guess it's the same, but the motivation becomes clear later on | 13:32 | |
Promise.anyof($kill, Promise.allof(@todos)) | |||
when you do that step, you need the allof combinator | 13:33 | ||
colomon | moritz: I got the same result ecocode++ did. | 13:37 | |
moritz | hmpf. Still, worth a try | ||
13:39
Ven left
|
|||
moritz | jnthn++ # slides, talk | 13:39 | |
masak | moritz: they're the same. | ||
moritz | masak: jnthn, talk and slides? :-) | 13:40 | |
masak | :P | ||
colomon | moritz: totally worth a try! | 13:41 | |
tadzik: hmmm, maybe rakudobrew should issue "make" twice in a row? I think that would work around the OS X bug without too many sicde effects? | |||
13:49
kaare_ joined,
Ven joined
|
|||
ecocode | that would seem to solve the problem | 13:50 | |
I just tried from scratch | |||
tgt | make >/dev/null (or wherever) also causes it to run to completion if that means anything. | 13:51 | |
ecocode | no clue why the second run doesn't show the error (again) | ||
this seems to be the command that causes the prob : perl -MExtUtils::Command -e chmod 755 perl6 | 13:52 | ||
13:55
tgt left
13:56
tgt joined
|
|||
timotimo | i'm briefly at the keyboard again to ask: were there interesting questions at the end of jnthns asynchrony talk? | 13:59 | |
and afk again :) | |||
Ven | er, can we cancel promises | 14:00 | |
masak | oh right. | ||
that was a good question. | |||
Ven | answer no, mainly because of api design, but can cancel supplies | 14:01 | |
and the other one .. can't remember. WTB edeitic memory :) | |||
masak | the thing you can't do is cancel threads. I got the feeling that canceling promises came close to that. | ||
Ven | (okay, edeitic memory doesn't have anything to do with vocal questions) | ||
masak: yeah, that's kinda the problem | 14:02 | ||
to quote jnthn "we don't want to make people think they can stop it from processing, so we want to make it explicit that a promise is breakable" | |||
masak | *nod* | 14:04 | |
14:04
dolmen left
|
|||
masak | and "you can't stop a thread because it might have taken a lock" | 14:05 | |
14:05
kst`````` joined
14:06
kst````` left
|
|||
dalek | c: 5cd0d2a | moritz++ | lib/Language/traps.pod: [traps] BUILD and attribute initialization |
14:07 | |
14:10
dolmen joined
|
|||
Ven | moritz: add explicit comment about BUILDALL being a method mayb? | 14:10 | |
tadzik | colomon: huh, if it indeed helps I don't see a reason to not have it :) | 14:11 | |
colomon | shall I try to figure out how to do it locally and see what happens? | ||
tadzik | as longs as it has #damnitOSX next to it | ||
colomon | ;) | ||
14:13
Ven left
|
|||
dalek | c: 039575e | moritz++ | lib/Language/traps.pod: [traps] comment why BUILDALL is a method, not a submethod |
14:14 | |
14:17
___sri left
14:22
smls joined
|
|||
smls | Are any recordings of Perl 6 related YAPC:EU talks uploaded yet? | 14:29 | |
tadzik | I don't think any of the recordings are available yet | 14:30 | |
smls | ok | 14:31 | |
14:38
klaas-janstol joined
|
|||
colomon | hmmm, p6 way to figure out if we are on OS X? | 14:38 | |
jnthn | m: say $*OS | ||
camelia | rakudo-moar c793d8: OUTPUT«linuxSaw 1 call to deprecated code during execution.================================================================================$*OS called at: /tmp/qiNYRnC9st, line 1Please use $*DISTRO.name instead.---------------------------------…» | ||
tadzik | :) | ||
jnthn | What the warning said :P | ||
colomon | jnthn++ | ||
jnthn | Wish I could keep up with Perl 6... :P | 14:39 | |
masak | m: say $*DISTRO.name | 14:40 | |
camelia | rakudo-moar c793d8: OUTPUT«linux» | ||
masak | m: say $*DISTRO.keys | ||
camelia | rakudo-moar c793d8: OUTPUT«0» | ||
mr-foobar | using ruby after a long time. something i felt like writing --lexical.foobar.systems/is-ruby-perl6.html | ||
masak | m: say $*DISTRO.^attrs | ||
camelia | rakudo-moar c793d8: OUTPUT«No such method 'attrs' for invocant of type 'Perl6::Metamodel::ClassHOW' in block <unit> at /tmp/EsGKViGEed:1» | ||
masak | m: say $*DISTRO.^attributes | ||
camelia | rakudo-moar c793d8: OUTPUT«Str $!release Bool $!is-win Str $!path-sep Str $!name Str $!auth Version $!version Blob $!signature Str $!desc» | ||
jnthn | m: say $*DISTRO.^methods | 14:41 | |
camelia | rakudo-moar c793d8: OUTPUT«BUILD release gist Str <anon> <anon> <anon> <anon> <anon> <anon> <anon>» | ||
jnthn | ah | ||
colomon | whoops, rakudobrew is in perl 5 | ||
masak | mr-foobar: '1) is jvm now' -- what? | 14:42 | |
tadzik | "What is unique to Perl6 1) One vm to rule them all" | ||
I don't think that's right :) | |||
masak | mr-foobar: that is false no matter whether you mean Ruby (whose main VM is written in C) or Perl 6 (Parrot, JVM, MoarVM) | ||
tadzik | colomon: hmm, maybe you can just type 'make' twice in there :) | ||
jnthn | "one vm to rule them all" was a Parrot thing, not a Perl 6 one. | ||
tadzik | if it succeeded, it won't do a thing on the second run | 14:43 | |
colomon | tadzik: yeah, I thought it might be better to make it OS X specific | ||
14:43
SamuraiJack joined
|
|||
tadzik | colomon: do what feels right :) | 14:43 | |
mr-foobar | masak: i was pointing out how jvm is now the most targeted vm ( vs parrot ) | ||
masak | mr-foobar: wtf | 14:44 | |
mr-foobar: everyone and his dog uses moar. | |||
mr-foobar: also, '2) First Class Grammars to describe them all' -- '2) is a bootstrap nightmare' -- what in the world do you mean? | |||
tadzik | timotimo++! | ||
masak | timotimo++ | 14:45 | |
flussence | I dunno what this is about but... timotimo++! | ||
(something at yapc? I'm on 3G atm so can't watch :) | |||
mr-foobar | masak: "the first class" part meaning something that is changable during runtime. | 14:46 | |
masak | flussence: his weekly newsletters were mentioned in nine's lightning talk | ||
mr-foobar | isn't it tricky to get right ? | ||
masak | flussence: which is AWESOME, by the way. | ||
mr-foobar: I mean, it's very nice of you to write blog posts, but I'd rather they not be FUD. | |||
mr-foobar: hope you understand. | 14:47 | ||
flussence | I'm gonna have to watch most of these on youtube/etc... I've missed a ton of cool people | ||
masak | flussence: he ran some Python inside Perl 5 inside Perl 6. | 14:48 | |
colomon | tadzik: what I've got seems to be working for me, now. | ||
14:48
xenoterracide joined
|
|||
tadzik | colomon: awesome | 14:48 | |
do you have a commit bit? | |||
mr-foobar | masak: yes agreed. i really think there is a great payoff for perl6's goals. no one is targeting that level of interop. | ||
colomon | tadzik: I'm a little hesitant to just check it in, for fear of breaking things on other platforms. | 14:49 | |
tadzik: and I don't have a commit bit | |||
masak | mr-foobar: you can't just write "is a bootstrap nightmare" without meaning anything specific by it. | ||
colomon | tadzik gist.github.com/colomon/c30f1ea8c4d67054bff6 | 14:50 | |
masak | mr-foobar: re the first list: Perl 6 has 1, 2, 4, 5, 6, and 7. | ||
mr-foobar | masak: i might be mistaken. i remember that before nqp there was one more bootstrap no ? My guess is grammars (+ runtime) are intricate to get right. | 14:51 | |
masak | mr-foobar: ok, absent *actual data*, please assume you're mistaken. | 14:53 | |
TimToady | I'm here kinda | ||
masak | TimToady++ | ||
tadzik | :) | ||
colomon | tadzik++ | 14:55 | |
want me to get that? | |||
tadzik | colomon: of course | ||
masak | mr-foobar: perhaps most glaringly, the question "Is Ruby and acceptable Perl6 ?" is *crazy*, somewhat offensive, stupid, and it doesn't feel like you address it with your lists. | ||
tadzik | it makes stuff work, that's always good :) | ||
TimToady | course, we just changed smartmatch last month :) | 14:56 | |
masak | ssshh! | ||
flussence | question about doc.perl6.org: does it extract signatures and stuff programatically and discard the bits without documentation, or is it all manually written? my point being, IMO, it'd be useful to have a complete API reference there even if there's large chunks of descriptive text missing. | ||
colomon | tadzik: there you go | 14:58 | |
tadzik | colomon++ | 14:59 | |
masak | an* | ||
tadzik | colomon: it was just advertised by lizmat++ on the YAPC :) | ||
it'll now make mac users happier | 15:00 | ||
masak | mr-foobar: I think a big improvement of your article would be to replace it, in its entirety, with "No." | 15:01 | |
mr-foobar | masak: yeah I guess I'll modify it :) what do you think are most challenging implementation aspects of rakudo / moarvm ? Are there any novel problems like register vm or accurate parsing ? | 15:02 | |
15:02
Alula_ left
15:03
molaf joined
|
|||
masak | biggest challenge is FUD on the web, I think. | 15:03 | |
mr-foobar | i want to understand the flexibility perl6 is trying to achieve. my lotr analogy obviously sucked :) | ||
masak | lotr analogy? | 15:04 | |
15:05
thou joined
|
|||
mr-foobar | "One vm to rule them all" <-- | 15:05 | |
masak | it was true back in 2012 or so. | ||
no, not really. | |||
because Pugs and Niecza. | |||
moritz | pugs was pretty much dead in 2012 | 15:09 | |
15:09
thou left
|
|||
masak | indeed, but it still existed enough for "one VM to rule them all" to be false. | 15:10 | |
mr-foobar | "First Class Grammars to describe them all" <-- my understanding is that perl6 grammars can host an umberrella of langs. | 15:12 | |
moritz | that is correct | 15:13 | |
mr-foobar | is that difficult is implement ? are there any research challenges ? | ||
*to | |||
moritz | the p6 grammar itself has several sub-grammars ("slangs"): regexes, quotes, char classes in regexes etc. | ||
15:14
SamuraiJack left
|
|||
moritz | mr-foobar: difficult for whom? for the author of a grammar? or for the person writing the grammar engine? | 15:14 | |
geekosaur | no real research challenges, the "new" thing is designing it into the core language from the start | 15:15 | |
mr-foobar | the latter. I honestly donno if I can attempt a thirdy party engine in another lang. | ||
moritz | well, writing the grammar engine wasn't easy | 15:16 | |
but as a Perl 6 user, that's done for you. | |||
masak | I don't see what that has to do with anything. | ||
the question is "Is Ruby an acceptable Perl 6?" | |||
moritz | oh | ||
the answer to that question is "no". | |||
masak | whether grammars are in some sense hard is irrelevant. | ||
yes, the answer is "no". of course it is. | 15:17 | ||
mr-foobar | oh i am editing it. the answer is no. | ||
masak | I suggested to mr-foobar that he replace the entire body of his post by "no". | ||
15:17
guru joined
|
|||
masak | that's the only way it'd be acceptable to me, I think. | 15:17 | |
mr-foobar | i want write how perl6 is different and why no one can equal p6 | ||
15:17
dolmen left
|
|||
masak | no, not the only way. | 15:17 | |
15:17
guru is now known as Guest58427
|
|||
masak | but it's not a net good right now. | 15:17 | |
15:18
Guest58427 is now known as ajr_,
Alula_ joined
|
|||
moritz | mr-foobar: well, grammars are a significant Perl 6 feature that very few (or none) languages can compare with | 15:21 | |
mr-foobar: also, gradual typing | 15:22 | ||
good support for both OO and functional programming | |||
very expressive | |||
mr-foobar | moritz: agreed. | 15:23 | |
dalek | Heuristic branch merge: pushed 138 commits to roast/S26-WHY by hoelzro | 15:25 | |
Heuristic branch merge: pushed 100 commits to rakudo/S26-WHY by hoelzro | |||
timotimo | yay i was mentioned :) | 15:26 | |
wish i could have seen it live on the stream. | |||
watching the recording should be fine :) | 15:27 | ||
tadzik | they just said that they'll hopefully be up in a couple o weeks | 15:28 | |
15:29
_sri left
|
|||
masak | EOYAPC::EU | 15:32 | |
tadzik | :( | ||
masak | ): | ||
jnthn | aww | ||
masak | it was a very good YAPC. | ||
jnthn | aye | ||
time to leave & | 15:34 | ||
timotimo | a couple of weeks. hmm | 15:39 | |
maybe I should have run rtmpdump or something like that | 15:40 | ||
are stream dumps going to be available semi - officially? :) | 15:41 | ||
afk again, walk & | 15:42 | ||
tgt | I've golfed the Makefile issue down to gist.github.com/tgt/5424dcb00f874c0375ef if anyone has any suggestions about where to go next? | 15:43 | |
15:45
_sri joined
15:47
petercommand joined
|
|||
tgt | Actually, the second line can be anything with >= 1024 characters as long as the first runs nqp-m | 15:47 | |
mr-foobar | masak moritz: do note that my blog has an avg viewership of 1.5; one is me and the other has a more pressing tab to click -- lexical.foobar.systems/is-ruby-perl6.html | 15:53 | |
16:11
rindolf left
16:12
brrt joined
16:14
rindolf joined
|
|||
jaffa4 | what is gradual typing? | 16:16 | |
16:34
lizmat joined
16:37
woolfy joined
16:53
thou joined
16:56
raiph joined
16:57
thou left
17:12
SamuraiJack joined
|
|||
jaffa4 | native call is working | 17:20 | |
FROGGS | were there interesting lightening talks today? | 17:21 | |
I've missed everything after jnthn's talk because I was forces to go outside :/ | |||
jaffa4 | there was a talk about a guy's favourite movies and series | 17:22 | |
moritz | tgt: first of all, open a bug report with apple | 17:23 | |
tgt: then we can investigate; what line in our Makefile is longer than 1024 chars? | 17:24 | ||
FROGGS | jaffa4: this could have been Getty, I've seen such a talk in march | ||
moritz | tgt: and try to find a workaround | ||
tgt | I've submitted a report to Apple. | 17:25 | |
Line 384 once expanded. | |||
moritz | for me that's $(M_NQP) $(M_GEN_CAT) $(M_CORE_SOURCES) > src/gen/m-CORE.setting | ||
tgt | Actually, not that line. One sec. | ||
17:25
raydiak joined
|
|||
jaffa4 | there was another about how you should not format your Perl code | 17:26 | |
colomon | tgt++ | ||
tgt | Ah, line 374: $(M_NQP) $(M_GEN_CAT) $(M_METAMODEL_SOURCES) > src/gen/m-Metamodel.nqp | 17:27 | |
moritz | ok, that's a pretty long strong | 17:28 | |
the $(M_METAMODEL_SOURCES) | |||
about 1.7k characters | 17:29 | ||
I wonder if we could shorten it by extracing the common prefix | |||
src/Perl6/Metamodel/{Arechetypes,Naming,Documenting,...}.nqp | 17:30 | ||
does windows make (or cmd.exe) support the brace expansion? | |||
if not, we'll have to put the list of file names into a file | 17:31 | ||
and then teach gen_cat to read the list of file names from a file | 17:32 | ||
(and Configure.pl must read the same file, and generate the string that's now in the makefile, to get the dependencies right) | |||
17:36
anaeem1 joined
17:41
anaeem1 left
17:43
raiph left
|
|||
moritz | nqp: say(nqp::trim(' abc ')); | 17:45 | |
camelia | nqp-jvm: OUTPUT«(signal )## There is insufficient memory for the Java Runtime Environment to continue.# pthread_getattr_np» | ||
..nqp-parrot: OUTPUT«Error while compiling op trim (source text: "nqp::trim(' abc ')"): No registered operation handler for 'trim'current instr.: 'as_post' pc 60313 (gen/parrot/stage2/QAST.pir:21515) (gen/parrot/stage2/QAST.nqp:3860)» | |||
..nqp-moarvm: OUTPUT«No registered operation handler for 'trim' at gen/moar/stage2/QAST.nqp:1406 (/home/p6eval/rakudo-inst-2/languages/nqp/lib/QAST.moarvm:compile_op:64) from gen/moar/stage2/QAST.nqp:5006 (/home/p6eval/rakudo-inst-2/languages/nqp/lib/QAST.moarvm:compile_node…» | |||
moritz | how do I combine two array in nqp? | 17:47 | |
like a flattening unshift | |||
tgt | How can I assign src/Perl6/Metamodel/{Archetypes.nqp,...} to COMMON_BOOTSTRAP_SOURCES? It doesn't expand it, calls stat on the unexpanded thing and complains about the filename being too long. | ||
moritz | tgt: than that's not a viable solution | ||
tgt: I'm working on the other solution now I mentioned above | |||
tgt | Ah. I thought it might be some make magic. | ||
Okay. | 17:48 | ||
moritz | nqp-m: my @a := [1, 2, 3]; my @b := [4, 5, 6]; nqp::unshift(@b, |@a); say(nqp::join(', ', @b)); | ||
camelia | nqp-moarvm: OUTPUT«This representation (VMArray) cannot unbox to a native string at /tmp/_xvn10HqHz:1 (<ephemeral file>:<mainline>:52) from gen/moar/stage2/NQPHLL.nqp:1230 (/home/p6eval/rakudo-inst-2/languages/nqp/lib/NQPHLL.moarvm:eval:172) from gen/moar/stage2/NQPHLL.…» | ||
moritz | nqp-m: my @a := [1, 2, 3]; my @b := [4, 5, 6]; say(nqp::join(', ', @b)); | ||
camelia | nqp-moarvm: OUTPUT«This representation (P6int) cannot unbox to a native string at /tmp/ob12nH5GaQ:1 (<ephemeral file>:<mainline>:51) from gen/moar/stage2/NQPHLL.nqp:1230 (/home/p6eval/rakudo-inst-2/languages/nqp/lib/NQPHLL.moarvm:eval:172) from gen/moar/stage2/NQPHLL.nq…» | ||
moritz | nqp-m: my @a := [1, 2, 3]; my @b := [4, 5, 6]; say(@b); | 17:49 | |
camelia | nqp-moarvm: OUTPUT«cannot stringify this at gen/moar/stage2/NQPCORE.setting:681 (/home/p6eval/rakudo-inst-2/languages/nqp/lib/NQPCORE.setting.moarvm:print:13) from gen/moar/stage2/NQPCORE.setting:687 (/home/p6eval/rakudo-inst-2/languages/nqp/lib/NQPCORE.setting.moarvm:say:…» | ||
moritz | nqp-m: my @a := [1, 2, 3]; my @b := [4, 5, 6]; nqp::unshift(@b, |@a); for @b -> $x { say($x) } | ||
camelia | nqp-moarvm: OUTPUT«cannot stringify this at gen/moar/stage2/NQPCORE.setting:681 (/home/p6eval/rakudo-inst-2/languages/nqp/lib/NQPCORE.setting.moarvm:print:13) from gen/moar/stage2/NQPCORE.setting:687 (/home/p6eval/rakudo-inst-2/languages/nqp/lib/NQPCORE.setting.moarvm:say:…» | ||
FROGGS | nqp-m: my @a := [1, 2, 3]; my @b := [4, 5, 6]; nqp::unshift(@b, |@a); for @b -> $x { say(~$x) } | 17:50 | |
camelia | nqp-moarvm: OUTPUT«cannot stringify this at /tmp/fPULqIe7YM:1 (<ephemeral file>:<mainline>:61) from gen/moar/stage2/NQPHLL.nqp:1230 (/home/p6eval/rakudo-inst-2/languages/nqp/lib/NQPHLL.moarvm:eval:172) from gen/moar/stage2/NQPHLL.nqp:1423 (/home/p6eval/rakudo-inst-2/la…» | ||
17:51
raiph joined
|
|||
FROGGS | nqp-m: my @a := [1, 2, 3]; my @b := [4, 5, 6]; nqp::unshift(@b, |@a); for @a -> $x { say($x) } | 17:51 | |
camelia | nqp-moarvm: OUTPUT«123» | ||
FROGGS | so, you cannot unshift an array | ||
nqp-m: my @a := [1, 2, 3]; my @b := [4, 5, 6]; nqp::unshift(@b, $_) for @a; for @b -> $x { say($x) } | 17:52 | ||
camelia | nqp-moarvm: OUTPUT«321456» | ||
jaffa4 | Is there any tool to convert c headers to Perl native definitions? | ||
17:52
akaseki is now known as Salai
|
|||
FROGGS | jaffa4: maybe LibraryMake? not sure | 17:52 | |
17:53
BizarreCake left
17:56
anaeem1_ joined
|
|||
moritz | how do I strip newlines in nqp? | 17:57 | |
moritz is very rusty | |||
FROGGS | using a regex? | 17:58 | |
moritz | nqp-m: my $x := "abc\n"; say(substr($x, /\s+/, '')); | ||
camelia | nqp-moarvm: OUTPUT«Cannot invoke null object at /tmp/zcvZm68Dyf:1 (<ephemeral file>:<mainline>:57) from gen/moar/stage2/NQPHLL.nqp:1230 (/home/p6eval/rakudo-inst-2/languages/nqp/lib/NQPHLL.moarvm:eval:172) from gen/moar/stage2/NQPHLL.nqp:1423 (/home/p6eval/rakudo-inst-…» | ||
FROGGS | nqp::substr | ||
moritz | t/nqp/62-subst.t seems to use subst | 17:59 | |
FROGGS | err, what are ya doing? | ||
subst | |||
nqp-m: my $x := "abc\n"; say(subst($x, /\s+/, '')); | |||
moritz | argl | ||
camelia | nqp-moarvm: OUTPUT«abc» | ||
moritz | nqp-m: my $x := "abc\n"; say(subst($x, /\s+/, '')); | ||
camelia | nqp-moarvm: OUTPUT«abc» | ||
FROGGS | :o) | ||
17:59
ajr_ left
|
|||
dalek | kudo/makefile-line-length: dea7adf | moritz++ | / (5 files): Read bootstrap sources from file because make on Mac OS X has a line length limit in commands (symptom: "write error") |
18:03 | |
moritz | tgt++ # golfing the error | 18:04 | |
ok branch makefile-line-length should remove that particular instance of that problem | |||
s/remove/work around/ | |||
and make it pretty easy to solve other intances the same way | 18:05 | ||
colomon | woah, rakudobrew actually handles it if you give it a branch! tadzik++ | ||
moritz | I fear M_CORE_SOURCES needs the same approach | 18:06 | |
18:06
molaf_ joined
18:10
molaf left
|
|||
tgt | Yup, M_CORE_SOURCES is also too long. | 18:10 | |
dalek | kudo/makefile-line-length: c693d75 | moritz++ | / (3 files): Do not pass M_CORE_SOURCES on the command line it is too long for Mac OS X make |
18:14 | |
moritz | tgt: could you please test with that branch? | ||
tgt | Am doing. | ||
moritz | it builds for me on linux :-) | ||
jnthn: tests of the makefile-line-length rakudo branch on windows would be greatly appreciated | 18:15 | ||
tgt | It works! | 18:16 | |
moritz | \o/ | 18:17 | |
colomon | moritz: looks like it works here, too. | ||
moritz++ | |||
tgt++ | |||
moritz | jnthn: and if it builds on windows, please merge into nom; should fix the "Write error" bug on mac os X | ||
ingy | just checking... does rakudo have pcre/p5 support yet? :) | 18:18 | |
(re: regexes) | |||
bbl | 18:19 | ||
18:27
thou joined,
smls left
18:31
BizarreCake joined
|
|||
tgt | moritz: re: your first commit message. Commands with more than 1024 characters run fine unless they follow a command using nqp-m (or moar, but not perl6-m weirdly) | 18:31 | |
timotimo | ingy: partial support for P5 regexes via our regular grammar engine | 18:33 | |
18:35
silug left
|
|||
BizarreCake | Is type checking done completely at compile time (when types are given)? | 18:36 | |
or is there some runtime checking involved? | |||
18:37
zakharyas joined
18:38
silug joined
|
|||
timotimo | BizarreCake: partially compile-time, partially run-time | 18:39 | |
m: my Str $foobar = 1; say "alive" | |||
camelia | rakudo-moar c793d8: OUTPUT«Type check failed in assignment to '$foobar'; expected 'Str' but got 'Int' in block <unit> at /tmp/laV9JoNRcI:1» | ||
tadzik | colomon: really? cool :) | 18:40 | |
japhb | BizarreCake: Am I correct that you are the one working on a new Perl 6 interpreter in C++? | ||
timotimo | m: say "alive"; my Str $foobar = 1; | ||
camelia | rakudo-moar c793d8: OUTPUT«aliveType check failed in assignment to '$foobar'; expected 'Str' but got 'Int' in block <unit> at /tmp/0Xh8i2Q9Ef:1» | ||
timotimo | as you can see, this was done at run-time | ||
BizarreCake | Hmm | ||
timotimo | m: say "alive"; sub foobar(Str $a) { say $a }; foobar(1); | ||
camelia | rakudo-moar c793d8: OUTPUT«===SORRY!=== Error while compiling /tmp/fRhRiLv9VSCalling 'foobar' will never work with argument types (int) Expected: :(Str $a)at /tmp/fRhRiLv9VS:1------> "alive"; sub foobar(Str $a) { say $a }; ⏏foobar(1)…» | ||
timotimo | ^- this was done at compile time | ||
BizarreCake | japhb: Yes. | ||
japhb | Are you familiar with github.com/japhb/perl6-bench ? | ||
BizarreCake | timotimo: So it performs type checking at compile time when it can, but defers the rest to later? | 18:41 | |
timotimo | yes | ||
BizarreCake | japhb: Nope, I'm pretty new to things here haha | ||
timotimo | the reason why we have compile-time type checking for routines is that we try to do type-based multiple dispatch in the optimizer. that's the spot where we can figure out that some calls can never work, like the one i demonstrated above | 18:42 | |
BizarreCake | timotimo: Not exactly what I wished it to be.. but okay. | ||
timotimo | m: say "alive"; class Foo { method !foobar(Str $a) { say $a }; method test { self!foobar(1) } }; | 18:43 | |
camelia | rakudo-moar c793d8: OUTPUT«alive» | ||
BizarreCake | These checks cost CPU cycles D; | ||
timotimo | that's why we have spesh in moarvm | ||
18:44
jaffa4 left
|
|||
BizarreCake | I thought about having the compiler analyze the types used in a typed expression, and have it throw an error if it sees something whose type it can't determine. | 18:44 | |
japhb | That's a collection of benchmarks (mostly microbenchmarks at the moment, but also a few minibenchmarks too), plus programs to manage timing and analysis. But the idea is that once a new compiler is defined for it, it can clone, build, time, and otherwise manage it along with all the others it knows. | ||
timotimo | yeah, that'd be pretty cool | ||
except you'll have to deoptimize properly if classes aren't open or solid or whatever | |||
18:44
anaeem1_ left
|
|||
BizarreCake | That would make it possible to have all the checks done at compile time, but it would make (I'm assuming) a lot of Perl 6 programs invalid. | 18:45 | |
timotimo | oh, you want to require type annotations everywhere? | ||
that's not a problem, just set any type annotation that the programmer didn't specify to "Any" | |||
:P | |||
that's like python's static typing ... every variable is defined to hold an "object" or any subclass thereof | 18:46 | ||
(well ... old-style classes and blah blah ...) | |||
japhb | BizarreCake: So, we just need to add entries in github.com/japhb/perl6-bench/blob/...nents.json and github.com/japhb/perl6-bench/blob/...mpilers.pl for your compiler, and you can then compare it against Rakudo, NQP, Perl 5, ... | 18:47 | |
BizarreCake | japhb: That sounds wonderful, but mine is still lacking in functionality. | 18:48 | |
It's still only able to interpret relatively simple programs. | |||
timotimo | i wonder how much ram would be required to actually properly dump the profiler data collected during the compilation of the core setting | 18:49 | |
japhb | BizarreCake: As long as it understands a "-e" style option, you can get a long way with just the microbenchmarks in github.com/japhb/perl6-bench/blob/...chmarks.pl | ||
BizarreCake: perl6-bench is smart enough to skip tests that the compiler fails on, as long as the failure mode is either crashing (so that there's a detectable signal), or non-zero exit code. | 18:50 | ||
BizarreCake | what should the -e flag do? | ||
timotimo | accept a program to be run from the command line | ||
BizarreCake | Ah | ||
Read it from stdin? | 18:51 | ||
timotimo | nah, as commandline argument | ||
BizarreCake | Alright | ||
japhb | BizarreCake: As timotimo said, it's for doing one-liners, instead of having the tests be script files. And all the microbenchmarks are designed as one-liners. | ||
BizarreCake | japhb: I will add that in then . | ||
japhb | As in: perl6 -e 'say "hello"' | 18:52 | |
timotimo | can i has the link to the github repository again? :) | 18:53 | |
BizarreCake | For my compiler? | ||
timotimo | yup | ||
BizarreCake | github.com/BizarreCake/Arane | ||
New name, thanks to masak :3 | |||
japhb | timotimo: Do you want to do the components.json and compilers.pl updates, or shall I? | ||
timotimo | ah, masak++ :) | 18:55 | |
japhb: feel free to go ahead, i can't really compile stuff here, i forgot to bring my power brick | |||
given low usage, it'll last at least 1.5h, but if i try to compile multiple times ... :\ | |||
18:56
FROGGS[mobile] left
|
|||
japhb | Heh, yeah | 18:56 | |
BizarreCake: The other thing that's helpful is that on your regular release schedule (if you have one yet), or whenever you make major changes, tag your tree with some ascending sequence. For example, Moar, NQP, and Rakudo use YYYY.MM tags (e.g. 2014.08) for their monthly release. Niecza used to use vNN (e.g. v21) for its releases. | 18:58 | ||
18:59
kaare_ left
|
|||
BizarreCake | Got it :) | 18:59 | |
japhb | Because perl6-bench has the ability to plot historical performance across a series of tags. | ||
(Plus until I finish the code to provide an alias for a particular git rev + build options, tags are much easier to work with than raw git revs everywhere) | 19:00 | ||
timotimo | BizarreCake: i'm looking forward to seeing how flexible your compiler will end up being :) | 19:02 | |
custom operators, for example, would be an interesting thing | |||
BizarreCake | In time haha. | 19:03 | |
And custom operators, although I do to have the compiler comply with the spec, are something that I'm a bit worried about | 19:04 | ||
do plan* | |||
I didn't get to it yet, but I'm afraid of having to perform full dynamic method dispatches whenever two numbers are being added. | 19:05 | ||
in case the + operator is overloaded. | |||
timotimo | oh, that's no problem | 19:07 | |
operators are defined lexically | |||
as soon as you reach the + statement, you know exactly what candidates you have | |||
BizarreCake | Ah, that's perfect then. | ||
japhb | BizarreCake: Can you lower the CMAKE_MINIMUM_REQUIRED(VERSION 3.0) requirement? My best build machine is still running the previous Ubuntu LTS release (as opposed to the current one from this spring) and only has version 2.8.7. | 19:09 | |
BizarreCake | Sure | ||
Done. | 19:11 | ||
japhb | Thanks! That got me through the cmake portion, but make still dies with "cc1plus: error: unrecognized command line option ‘-std=c++11’" | 19:14 | |
BizarreCake | g++ version? | ||
japhb | hmm, perhaps i need an upgrade after all | 19:15 | |
lemme check | |||
gcc version 4.6.3 | |||
BizarreCake | Yeah.. should be 4.7-4.8 | ||
japhb | ah, ok | ||
19:17
darutoko left
|
|||
diakopter | BizarreCake: were you named after [or named with awareness of] the Dr. J.Z. | 19:20 | |
*the* Dr. J.Z., I mean | |||
BizarreCake | .. Nope xD | ||
19:21
raiph left
|
|||
timotimo | is that the rapper? | 19:21 | |
diakopter | lol no; Jacob Zhitomirsky | ||
BizarreCake | lol | ||
That's my name. | |||
I'm not doctor though | |||
no* | 19:22 | ||
19:22
raiph joined
|
|||
diakopter | ... I'm referring to Lenin's Bolshevik agent in Berlin in 190x | 19:23 | |
BizarreCake | Oh wait, for a second there I thought you referred to "BizarreCake". | ||
and I questioned how the two were related. | |||
diakopter | wut | ||
same name, I thought | 19:24 | ||
BizarreCake | I'm russian, so it's possible that I might be related to him. | ||
diakopter | cool | 19:25 | |
BizarreCake | Not likely though :P | 19:26 | |
dalek | kudo-star-daily: ad68955 | coke++ | log/ (10 files): today (automated commit) |
19:30 | |
rl6-roast-data: 8c547f7 | coke++ | / (6 files): today (automated commit) |
|||
19:31
yoleaux left
19:32
Ven joined
|
|||
dalek | rl6-bench: 31ce56d | (Geoffrey Broadwell)++ | components.json: Add clone and build instructions for Arane |
19:33 | |
BizarreCake | ;D! | ||
19:33
mberends joined
|
|||
dalek | c: aa5926c | Nami-Doc++ | lib/Language/traps.pod: [traps] fix typo |
19:37 | |
rl6-bench: c13e4e0 | (Geoffrey Broadwell)++ | compilers.pl: Add compilers.pl entry for Arane |
19:38 | ||
japhb | BizarreCake: With that, you should be able to use perl6-bench for Arane, assuming you have implemented -e and --version already. I can't test because of aforementioned old gcc. | 19:40 | |
BizarreCake | Alright, once I finish implementing big integers, which I'm almost done, I'll add those two flags in :) | 19:41 | |
Thanks | |||
japhb | BizarreCake: No problem. Glad to have a new compiler to add to the mix. :-) | 19:42 | |
[Coke] thought he something in backscroll about the moar-rakudo-os x build being fixed, but doesn't see a commit. | 19:45 | ||
19:46
brrt left
|
|||
tgt | It's on github.com/rakudo/rakudo/commits/m...ine-length atm so someone can test on windows before merging. | 19:47 | |
dalek | osystem: 7603a72 | (Tobias Leich)++ | META.list: add Digest::PSHA1 |
||
19:48
SamuraiJack left
|
|||
Ven | just in case, windows *Doesnt* support brace expansion (sorry if stale backlogging) | 19:48 | |
timotimo | what does PSHA1 do? | 19:51 | |
FROGGS | it is one method used to sign XML documents | ||
timotimo | .o( also, isn't SHA1 supposed to be too insecure for common cryptographic use? ) | 19:52 | |
FROGGS | (to generate a key our of two secrets) | ||
I think it is good enough for integrity checks | |||
that XML doc signing is stupid anyway | 19:53 | ||
you calculate a digest of two timestamps of the document by default (not of the body) | |||
and then you sign the block that contains the digest | |||
so the body of the document is not even involved | |||
timotimo | .. what ... | 19:54 | |
FROGGS | :o) | ||
Ven | BizarreCake: I don't think the spec forbids you to do every single type-checking at compile-time :P | ||
timotimo | that's correct :) | 19:55 | |
BizarreCake | I wondered if it's possible to do that without rendering otherwise valid Perl programs invalid. | ||
Ven | well, it should. | 19:56 | |
Else those program would throw a runtime type error | |||
s/Else/Otherwise/ # english pls | |||
BizarreCake | lol | 19:57 | |
I asked because I started implementing type constraints | |||
Ven is all for type erasure all the way | |||
BizarreCake | and I wondered what should be done if I assign an abitrary expression to a local variable whose type I know. | ||
if the expression contains variables whose types are not known at compile time, then it can't be done without deferring those checks until later. | 19:58 | ||
timotimo | that's right | ||
19:58
klaas-janstol left
|
|||
BizarreCake | I thought about having the compiler throw an error on such scenarios | 19:58 | |
timotimo | also, do you know of subset types? | ||
BizarreCake | a type that can have custom constraints defined to it? | 19:59 | |
japhb | BizarreCake: Note that one thing that catches people out in Rakudo is type-constrained arrays, which people tend to find rather confusing, so when using Rakudo people tend to fall back to unconstrained arrays. Something to be careful of in your compiler. | ||
timotimo | that's right | ||
m: subset Even of Int where * %% 2; my Even $foo = 2; my Even $bar = 3; | |||
camelia | rakudo-moar c793d8: OUTPUT«Type check failed in assignment to '$bar'; expected 'Even' but got 'Int' in block <unit> at /tmp/6jzBM_UDLx:1» | ||
japhb | m: subset Even of Int where * %% 2; say so 3 ~~ Even; say so 4 ~~ Even; | 20:00 | |
camelia | rakudo-moar c793d8: OUTPUT«FalseTrue» | ||
20:00
klaas-janstol joined
|
|||
BizarreCake | Is that done at runtime? | 20:00 | |
moritz | yes | ||
though you're free to do as much of it at compile time as you want | |||
BizarreCake | pastebin.com/c27kRRrD | 20:02 | |
^So having the compiler throw on error on that one is allowed by the spec? | 20:03 | ||
moritz | the spec allows it | ||
japhb | BizarreCake: Why would that be an error? | ||
BizarreCake | If type checking was done strictly at compile time, then I thought it should be. | 20:04 | |
That's why I'm asking. | |||
moritz | right | ||
but perl 6 is gradually typed (type declarations are optional) | |||
japhb | I may be missing something. Assigning something with unknown type to something with known type is not an error. Assigning something with incompatible type is. | ||
moritz | BizarreCake: btw I got an error "No such file or directory" on #include "runtime/bigint.hpp" | ||
BizarreCake | So type checking *must* be done at runtime in that case. | 20:05 | |
moritz | BizarreCake: correct | ||
BizarreCake | moritz: It's possible I didn't add that file :o | ||
One moment | |||
Ven | fwiw, I'm pretty sure we could achieve timotimo++'s kind of type-checking at compile-time. | ||
japhb | Yes, if you have all the types specified, you're allowed to move checks to compile time. But when the typing is gradual, you're required to do it at runtime. | ||
moritz | japhb: you're not missing anything, BizarreCake is just slowly approaching questions you might have figured out long ago | ||
Ven | I thought about using the "pure" markers | ||
timotimo | Ven: the timotimo type checking system? %) | 20:06 | |
japhb | TTCS | ||
Ven | timotimo: how performant are you? | ||
japhb | .oO( How long does it take for him to determine someone is his type? ) |
||
timotimo | :43 | 20:07 | |
:3 | |||
20:10
anaeem1_ joined
|
|||
BizarreCake | moritz: I've made some big/breaking changes to bigint.cpp, so it will have to wait a bit. | 20:13 | |
20:13
yoleaux joined,
ChanServ sets mode: +v yoleaux
|
|||
moritz | BizarreCake: no hurry | 20:16 | |
20:19
colomon left
20:22
colomon joined
|
|||
tadzik | lizmat: woolfy don't want to text on this hour, but I'd love to come to the hackathon tomorrow ;) | 20:25 | |
BizarreCake | moritz: Should work now :) | 20:35 | |
moritz | BizarreCake: build worked, thanks | 20:37 | |
BizarreCake | Was able to get pastebin.com/jrfSqHjL to run in 0.23s :3 | 20:39 | |
20:39
klaas-janstol is now known as kjs_
20:40
kjs_ is now known as klaas-janstol,
klaas-janstol is now known as kjs_
|
|||
FROGGS | BizarreCake: implement more stuff :o) | 20:40 | |
moritz | BizarreCake++ | ||
BizarreCake: github.com/perl6/nqp/tree/master/t/nqp has a few test files that might be easy-ish to get to run | |||
kjs_ | BizarreCake: I’m on MacOS, and can’t find <malloc.h> | ||
20:41
dolmen joined
|
|||
FROGGS | I mean, rakudo's setting is 20k lines long... that takes some time to load | 20:41 | |
BizarreCake | kjs_: lol, I'm not really sure I can help you with that. | ||
moritz: Thanks, I will check those out. | |||
kjs_ | BizarreCake: I think <stdlib.h> is more portable | 20:42 | |
moritz | BizarreCake: especially the first few ones | ||
BizarreCake | kjs_: I've picked up a habit of always including <malloc.h> instead of <stdlib.h> a long time ago. | 20:43 | |
FROGGS | BizarreCake: MoarVM also does not include malloc.h but stdlib.h | ||
BizarreCake | since it added a bunch of other stuff into the namespace. | ||
Okay, I'll change it. | |||
20:43
Ven left
20:44
Ven joined
|
|||
BizarreCake | kjs_: Changed it. | 20:44 | |
kjs_ | thanks will try again | ||
BizarreCake: that works perfectly on MacOS now. thanks | 20:47 | ||
BizarreCake | :D | ||
ingy | timotimo: how hard would a pcre binding be? | ||
Ven | ingy: like :P5? in what? | 20:48 | |
ingy | Ven: earlier I asked | 20:50 | |
just checking... does rakudo have pcre/p5 support yet? :) | |||
and timotimo said, partially via p6rules | |||
the short of it is that I want to make a Pegex.pm6 implementation | 20:51 | ||
that is as fast as it is in other langs | |||
FROGGS | m: say "foo" ~~ m:P5/(?{ say 1 })/ | 20:52 | |
camelia | rakudo-moar c793d8: OUTPUT«1「」» | ||
ingy | FROGGS: what are you implying? | 20:53 | |
FROGGS | that we have P5 regex support, but not by using an external library | ||
ingy | that doesn't look like a p5 regex | 20:54 | |
20:54
Rotwang left
|
|||
ingy | m: say "foo" ~~ m:P5/(fo*)/ | 20:55 | |
camelia | rakudo-moar c793d8: OUTPUT«「foo」 0 => 「foo」» | ||
ingy | m: say "foo" ~~ m:P5/(fo*x)/ | 20:56 | |
camelia | rakudo-moar c793d8: OUTPUT«False» | ||
ingy | ok, well I can start with that at least | ||
FROGGS | ingy: look at perldoc.perl.org/perlre.html#Extended-Patterns for (?{ code }), that is P5 syntax | 20:57 | |
m: say "foo" ~~ m:P5/(?<bar>foo)/ | 20:58 | ||
camelia | rakudo-moar c793d8: OUTPUT«「foo」 bar => 「foo」» | ||
FROGGS | ohh, even that works | ||
ingy: when I hit missing bits in v5 I usually implement that in nqp to make it available both to v5 and rakudo | 20:59 | ||
dalek | c: 1ac3899 | (Steve Mynott)++ | htmlify.p6: the the fixed |
21:00 | |
21:07
gfldex left
21:08
anaeem1_ left,
raiph left
|
|||
dalek | c: f373a21 | (Steve Mynott)++ | lib/Language/containers.pod: fix minor spelling errors |
21:12 | |
c: 103d690 | (Steve Mynott)++ | lib/Language/Sets_Bags_and_Mixes.pod: fix minor spelling errors |
|||
c: d6d2e70 | (Steve Mynott)++ | lib/Language/traps.pod: fix minor spelling errors |
21:13 | ||
moritz | yay, fixes | ||
21:14
BizarreCake left
|
|||
Ven | yay, pselling :) | 21:15 | |
21:16
anaeem1 joined
21:17
kjs_ left
|
|||
dalek | c: 9fc6dd0 | (Steve Mynott)++ | lib/Type/ (3 files): fix minor spelling errors and typos |
21:32 | |
21:52
dolmen left
21:53
zakharyas left
21:59
tgt left
22:00
dolmen joined
22:03
telex left
22:04
telex joined
|
|||
timotimo | FROGGS++ # v5 and :P5 improvements | 22:11 | |
22:15
kjs_ joined
22:18
ecocode left,
ecocode joined
22:23
ecocode left
22:28
dolmen left
22:32
kjs_ left
22:36
dolmen joined,
spider-mario left
22:37
xenoterracide left,
xenoterracide joined
22:42
xenoterracide left
22:43
anaeem1 left
22:57
xragnar_ joined,
xragnar is now known as Guest79716,
Guest79716 left,
xragnar_ is now known as xragnar
23:09
anaeem1_ joined,
anaeem1_ left,
anaeem1_ joined
23:12
jack_rabbit joined
23:13
anaeem___ joined
23:16
xenoterracide joined,
anaeem1_ left
23:20
kst`````` is now known as kst
|
|||
lizmat | .tell tadzik looking forward to seeing you | 23:32 | |
yoleaux | lizmat: I'll pass your message to tadzik. | ||
23:38
dolmen left,
BenGoldberg joined,
raiph joined
23:43
erkan left
23:55
mberends left
23:56
Ven left
|