»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by moritz on 25 December 2014. |
|||
00:03
TgMts_ joined
00:05
skids joined,
TgMts left
|
|||
raydiak | hi again #perl6 | 00:07 | |
timotimo | hello raydiak | ||
i haven't had the opportunity to play with your assuming implementation | 00:08 | ||
raydiak | to correct something slightly beside the point which I said earlier, slicing it wouldn't flatten, it's the grepping over it that flattens it | ||
timotimo | brr. how do i generate a link for review/request for comment with the "new" wordpress editor? | 00:11 | |
00:12
davercc joined
|
|||
timotimo | p6weekly.wordpress.com/?p=409&...28775e03e7 | 00:12 | |
kind of feels like i'm missing at least one thing | |||
raydiak | (but since I need the indices, it's all beside the point anyway...mainly I'm wishing there was a way to pre-bind args to CURRIED() into the holes so there isn't a loop in it, as the design docs imply it should work that way) | 00:13 | |
timotimo | mhm | ||
00:14
TgMts_ left
00:15
TgMts joined
|
|||
timotimo | i should mention the idea collection for GSoC | 00:18 | |
annoyingly, the things from the google docs text have not been put into the wiki yet | 00:20 | ||
p6weekly.wordpress.com/?p=409&...28a912d02b | 00:26 | ||
well, i just went ahead and published the post | 00:35 | ||
raydiak | looks good; timotimo++ | 00:37 | |
00:43
kurahaupo1 joined
00:44
echowuhao left
00:53
Hor|zon joined
00:58
Hor|zon left
|
|||
masak | 'night, #perl6 | 00:58 | |
raydiak suspects his problem is not solvable without EVAL, language design changes, or maybe some sorta nqp:: stuff | |||
good night masak | 00:59 | ||
01:03
Alina-malina joined,
Alina-malina left,
Alina-malina joined
01:07
yeahnoob joined
|
|||
raydiak | well, or maybe encapsulation-breaking metafiddlyness with .set_value() and so forth, though even that seems to fail where it gets a BOOTSTRAPATTR instead of an Attribute, which I assume circles back to nqp::stuff I don't know well | 01:09 | |
01:10
TgMts left
01:11
TgMts joined
01:17
coffee` left,
MilkmanDan left
01:18
kurahaupo1 left
01:27
adu joined
01:39
MilkmanDan joined
|
|||
skids | r: Buf.new(256, -1).say; say Buf ~~ buf8; say Buf ~~ Buf[uint8]; # Do I misremember? ISTR punned Buf[] used to know it was Buf[uint8]? | 01:43 | |
camelia | rakudo-{parrot,moar} d99fe0: OUTPUT«Buf:0x<00 ff>FalseFalse» | ||
01:46
kurahaupo1 joined
|
|||
timotimo | m: say Buf.new.of | 01:49 | |
camelia | rakudo-moar d99fe0: OUTPUT«(uint8)» | ||
01:58
chenryn joined
02:04
TgMts left
02:06
TgMts joined
02:10
Peter_R left,
zacts left
02:12
Peter_R joined
|
|||
ruoso got the first half of the Grammar::EBNF done, it can parse grammars, now I just need to implement the actions to generate a Perl 6 grammar on the fly... | 02:12 | ||
github.com/ruoso/Grammar-EBNF | 02:13 | ||
02:14
kurahaupo1 left
|
|||
raydiak | r: say buf8 ~~ Buf; say Buf[uint8] ~~ Buf; # skids | 02:15 | |
camelia | rakudo-{parrot,moar} d99fe0: OUTPUT«TrueTrue» | ||
raydiak | ooh nice ruoso++ | 02:18 | |
ruoso | raydiak: thanks.. | ||
I'm kind of failing to find how to add a new syntax to the language | 02:19 | ||
I want to allow something like: ebnf-gramma { ... } | |||
minus the typo | |||
02:20
Akagi201_ left
|
|||
raydiak | like a slang? | 02:20 | |
02:20
Mouq joined
|
|||
ruoso | yeah | 02:21 | |
02:22
TgMts left
|
|||
raydiak is looking at other slangs to see how they work | 02:24 | ||
ruoso wonder if github.com/tony-o/perl6-slang-sql/...ng/SQL.pm6 is a valid example | 02:25 | ||
raydiak | precisely the one I was just looking at :) | ||
do you have something you've already tried which doesn't work? | 02:27 | ||
ruoso | I am trying to mimick the slang-sql right now... but I was hoping to find some doc instead of just blindly copy-n-pasting | 02:28 | |
02:28
ggoebel111111114 left,
TgMts joined
|
|||
raydiak | I am not sure if we have good docs for that atm; don't know if it's an entirely 'stable' part of the spec yet | 02:30 | |
skids | radiak: Yeah, it works that way of course. but It should work the way I originally posted, I think. | ||
raydiak | skids: I thought it was Narrower ~~ Wider | 02:31 | |
skids | They should be the same exact class. | ||
02:32
TgMts left
|
|||
skids | Erm, well, role. | 02:33 | |
m: role A[$f = 1] { }; say A[1] ~~ A[]; # I would expect this would work as well | |||
camelia | rakudo-moar d99fe0: OUTPUT«False» | ||
raydiak | skids: but different parameterization...e.g. Array[Int] ~~ Array[Str] is False, no? | ||
skids | Yes, but with a default it isn't different parameterization. | 02:34 | |
raydiak | ah right, I see what you meant :) | ||
02:34
telex left,
Mouq left
02:36
telex joined,
TgMts joined
02:38
kurahaupo1 joined
02:39
ggoebel111111114 joined,
TgMts left
02:43
Hor|zon joined
02:45
ilbot3 left
|
|||
raydiak | skids: but then how would we refer to the role generically regardless of parameterization when that's what you're trying to say? e.g. buf16 ~~ Buf | 02:46 | |
maybe Buf[*] or something? | 02:47 | ||
02:47
Hor|zon left
02:48
ilbot3 joined
|
|||
raydiak | m: buf8 ~~ Buf[*] # apparently that already works | 02:50 | |
camelia | ( no output ) | ||
raydiak | m: say buf8 ~~ Buf[*] | ||
camelia | rakudo-moar d99fe0: OUTPUT«True» | ||
02:56
TgMts joined
|
|||
skids | Hrm. I wonder what that does. | 02:57 | |
raydiak | it seems to do the same as Buf's current meaning, until... | 02:59 | |
m: say Buf[*].new | |||
camelia | rakudo-moar d99fe0: OUTPUT«Buf[Whatever]:0x<>» | ||
03:00
Mouq joined,
TgMts left
|
|||
raydiak guessed someone put it there having already thought about this problem | 03:01 | ||
skids | OK, maybe "Buf ~~ buf8" should be False as is. but "Buf.new ~~ buf8" should be True. Because instantiation has to choose parameterization. | 03:03 | |
raydiak | definitely agree there | 03:04 | |
03:04
noganex joined
|
|||
raydiak | m: Buf.new.WHAT # so this should be "Buf[uint8]" too I guess | 03:04 | |
camelia | ( no output ) | ||
raydiak | m: say Buf.new.WHAT # gah | ||
camelia | rakudo-moar d99fe0: OUTPUT«(Buf)» | ||
skids | I would say so. | 03:05 | |
raydiak | can't think of any reason an object should remember whether it was paramterized via default or not | 03:06 | |
03:07
noganex_ left
|
|||
skids | Also having Buf.new.WHAT be seen as Buf[uint8] avoids a YAPAE. | 03:07 | |
raydiak | or replaces it...how painful is (Buf ~~ Buf.new) === False ? | 03:11 | |
well, that probably doesn't do what I thought for a moment anyway :) | 03:12 | ||
skids | What are the smartmatch rules for class/role ~~ object? | ||
raydiak | m: say Str ~~ Str.new | ||
camelia | rakudo-moar d99fe0: OUTPUT«False» | ||
raydiak | m: say Array ~~ Array.new | 03:13 | |
camelia | rakudo-moar d99fe0: OUTPUT«use of uninitialized value of type Array in numeric context in block <unit> at /tmp/ht1iJJLmP2:1True» | ||
raydiak | m: say Bool ~~ Bool.new | ||
camelia | rakudo-moar d99fe0: OUTPUT«False» | ||
raydiak | dunno :) | ||
skids | I'm trying to think if there's a way to cause trouble with 'role A [...] { }; class B does A[...] { }; role A[...] { }' | ||
(Which actually I am productively using a construct like that) | 03:14 | ||
ruoso | hmmm... I did manage to define the slang, but if I try to delegate the parsing to a separate grammar, it fails with No such method 'OTHERGRAMMAR' for invocant of type 'Perl6::Grammar+{Grammar::EBNF::Slang}' | 03:16 | |
raydiak | skids: what does it do? be able to refer to B from inside the 2nd A? | ||
ruoso: can you gist it? | 03:17 | ||
ruoso | github.com/ruoso/Grammar-EBNF/blob...ar/EBNF.pm | 03:19 | |
skids | raydiak: Yes, exactly: github.com/skids/perl6sum/blob/mas...r.pm6#L489 | ||
raydiak | ruoso: I've cloned; what's the easiest way to reproduce it? | 03:28 | |
ruoso | perl6 -Ilib t/004_slang.t | 03:29 | |
If I replace the foreign-grammar rule with literals, it works | |||
raydiak doesn't see that rule | 03:31 | ||
ruoso | which rule? | 03:32 | |
raydiak | maybe I don't know what you mean by "foreign-grammar rule" | ||
ruoso | I mean <Grammar::EBNF::MetaSyntax::TOP> in the Slang role | ||
03:33
BenGoldberg left,
BenGoldberg joined
|
|||
Mouq | ruoso: I came across that a few weeks ago. Let me see if I remember how to fix it | 03:33 | |
raydiak | ah I see | ||
ruoso | Mouq: thanks... | ||
Mouq | Oh! yes. Use something like <EBNF=.FOREIGN_LANG: 'Grammar::EBNF::MetaSyntax', 'TOP'> | 03:35 | |
ruoso tries it | 03:37 | ||
Mouq | ruoso: Sorry slangs are still a pain to work with. I want to make them first class at some point; they're essentially still a hack :P | 03:38 | |
ruoso | closer... but now I get Cannot find method '!cursor_init' | ||
Mouq | Hm :/ I can't quite figure out how that would happen | 03:42 | |
ruoso | oh, looking at the code, may be related to the %*LANG hash | 03:44 | |
ruoso tries to register the custom lang in there | |||
Mouq | Oh duh. you're absolutely correct | ||
This is what I'm going off of, btw (a little messy): gist.github.com/Mouq/bdddda34e4e0c5569b35 | 03:45 | ||
ruoso | yeah... that did work | 03:47 | |
Mouq | \o/ | ||
ruoso | cool, now I just need to use the MOP to translate the Grammar::EBNF into a regular Perl 6 grammar | 03:49 | |
Mouq | ruoso: You don't necessarily need to use the MOP to do that | 03:53 | |
03:54
echowuhao joined
|
|||
Mouq | ruoso: Potentially, you could construct it the same way regexes are constructed in Perl 6/NQP, ( Particularly, for building the rules: github.com/perl6/nqp/blob/master/s...ctions.nqp ) | 03:54 | |
ruoso: Although I don't know if that's what you're interested in/what your goals are | 03:55 | ||
m: use QAST:from<NQP>; | 03:56 | ||
camelia | ( no output ) | ||
03:59
davercc left
|
|||
ruoso | Mouq: I'm not sure, it's probably easier to build them with the MOP instead of using macro-like behavior | 04:02 | |
EBNF is a fairly simple language after all | 04:04 | ||
dalek | kudo-star-daily: 4a6dc1b | coke++ | log/ (14 files): today (automated commit) |
04:16 | |
Mouq | ruoso: Sure | 04:23 | |
04:30
Mouq left
04:31
Hor|zon joined
04:36
Hor|zon left
04:56
chenryn left
05:03
kurahaupo1 left
|
|||
b2gills | m: say 5.base(10,4); say 5.0.base(10,4); say 5e0.base(10,4) | 05:14 | |
camelia | rakudo-moar d99fe0: OUTPUT«5.000055» | ||
dalek | kudo/nom: 39d7c52 | coke++ | src/core/Numeric.pm: Remove parrot ifdef fossils Document the ones we can't remove |
||
05:17
echowuhao left
05:31
chenryn joined
05:43
BenGoldberg left
|
|||
[Coke] | .ask pmichaud do you have a list of tickets that will/should be addressed by the list work? | 05:47 | |
yoleaux | [Coke]: I'll pass your message to pmichaud. | ||
[Coke] | .ask masak would you say RT #118407 and RT #115626 are dups? | 05:48 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=118407 | ||
yoleaux | [Coke]: I'll pass your message to masak. | ||
[Coke] | ^^ synopsebot bug, only picked one? | 05:49 | |
r: use MONKEY_TYPING; augment slang Regex { token numish { } }; | 05:50 | ||
camelia | rakudo-{parrot,moar} d99fe0: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileNull regex not allowedat /tmp/tmpfile:1------> G; augment slang Regex { token numish { ⏏} };» | ||
05:56
[Sno] left
|
|||
dalek | ast: d8290e4 | coke++ | S32-exceptions/misc.t: Add test for RT #119293 |
06:03 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=119293 | ||
dalek | kudo/nom: 8621d8e | coke++ | src/Perl6/Grammar.nqp: RT #119293 - treat $] as an obsolete 5var. |
06:04 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=119293 | ||
06:07
raiph left
06:08
raiph joined
|
|||
[Coke] | r: &&::{}[];; | 06:09 | |
camelia | rakudo-parrot d99fe0: OUTPUT«===SORRY!===QRPA: index out of bounds» | ||
..rakudo-moar d99fe0: OUTPUT«===SORRY!===MVMArray: Index out of bounds» | |||
nwc10 | what should the error message be? What does that syntax mean? RT #119999 doesn't give me any clues | 06:13 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=119999 | ||
06:14
uvb left,
Mouq joined
|
|||
[Coke] | it's one of the class of tickets that doesn't describe the desired behavior, but points out that that existing behavior generates an internal error that shouldn't be exposed. | 06:19 | |
06:19
bjz joined
|
|||
[Coke] | r: say $*PERL<version> | 06:19 | |
camelia | rakudo-moar d99fe0: OUTPUT«postcircumfix:<{ }> not defined for type Perl in method gist at src/gen/m-CORE.setting:14785 in sub say at src/gen/m-CORE.setting:17542 in block <unit> at /tmp/tmpfile:1» | ||
..rakudo-parrot d99fe0: OUTPUT«postcircumfix:<{ }> not defined for type Perl in method gist at gen/parrot/CORE.setting:14728 in method gist at gen/parrot/CORE.setting:1177 in sub say at gen/parrot/CORE.setting:17454 in sub say at gen/parrot/CORE.setting:17450 in bl…» | |||
06:19
Mouq left
|
|||
[Coke] | ^^ that really shouldn't explode, should it? | 06:19 | |
06:20
Hor|zon joined
|
|||
[Coke] | (wondering why Perl has to be a class, and not a Hash. | 06:20 | |
also, that's blocking RT #79294 | 06:21 | ||
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=79294 | ||
06:24
yeahnoob left,
ggoebel111111114 left
06:25
Hor|zon left
06:26
grondilu left
|
|||
dalek | ast: b49fcef | coke++ | / (11 files): use RT #XXXX where possible |
06:27 | |
06:28
bjz left
06:32
kaleem joined
06:37
spider-mario left
06:43
ggoebel111111114 joined
|
|||
dalek | p: 7ebbcb0 | raydiak++ | src/vm/parrot/6model/reprs/CArray.c: Zero-fill CArrays on Parrot Parrot version of ead76229 (JVM) and github.com/MoarVM/MoarVM/commit/83...e42899b9b1 |
06:45 | |
ast: da05371 | coke++ | integration/weird-errors.t: Add test for RT #123570 |
06:47 | ||
ast: eaa2708 | coke++ | integration/weird-errors.t: unfudge passing test |
|||
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123570 | ||
06:51
FROGGS_ left
06:55
bjz joined
|
|||
dalek | ast: 8314042 | coke++ | S05-capture/dot.t: Add test for RT #77570 |
07:03 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=77570 | ||
jnthn | morning, #perl6 | 07:07 | |
yoleaux | 16 Feb 2015 15:35Z <lizmat> jnthn: on MoarVM, delete_f does not return any value, this makes nqp::unlink flaky afaics. Is there a reason for that ? | ||
16 Feb 2015 19:22Z <lizmat> jnthn: wrt PIO role name, maybe it should be RIO (as in Rakudo Io Object) | |||
07:07
diana_olhovik_ joined
|
|||
jnthn | .tell lizmat It seems that it contains a lot of common things you can do on an IO handle (e.g. basic I/O things), so I wonder a little if a name more like IO::General or IO::ReadWrite or something might be fitting... | 07:11 | |
yoleaux | jnthn: I'll pass your message to lizmat. | ||
jnthn | .tell lizmat I notice seek/tell ended up in that role, but iiuc sockets also do the role; maybe that wnats pulling out into an IO::Seekable? | 07:12 | |
yoleaux | jnthn: I'll pass your message to lizmat. | ||
dalek | kudo/nom: 4078230 | jnthn++ | docs/ChangeLog: Some ChangeLog additions. |
07:20 | |
07:20
vendethiel- left
07:22
gfldex joined
07:23
kaare__ joined,
kaare_ left
|
|||
dalek | kudo/nom: 1dcc74e | jnthn++ | docs/ChangeLog: One more ChangeLog note. |
07:25 | |
jnthn | Nice ChangeLog this month! :) | ||
arnsholt | jnthn: Do you have a plan for how shaped arrays will interact with 6model things? | 07:27 | |
(Been mulling over embedded structs/arrays stuff recently) | 07:28 | ||
jnthn | arnsholt: I'm not sure I'd call it a plan yet, but kinda | ||
arnsholt: I'm by this point fairly sure we're going to want a different REPR for them than we use for normal arrays. | |||
arnsholt: Because "this thing can't change its size" is *really* useful to know for optimization purposes. | 07:29 | ||
07:29
FROGGS joined
|
|||
raydiak | jnthn++: github.com/rakudo/rakudo/blob/nom/...ngeLog#L36 | 07:31 | |
FROGGS | o/ | ||
raydiak | \o | 07:32 | |
jnthn | raydiak: uh, wat? :) | ||
How on earhtr did I... :) | |||
FROGGS | is that a pasto? | ||
raydiak | jnthn: stray "BEGIN time" | ||
jnthn | Yeah :) | ||
jnthn goes to make another cuppa... :) | |||
dalek | kudo/nom: 5bb1942 | jnthn++ | docs/ChangeLog: Remove stray text; raydiak++. |
07:33 | |
raydiak | hope I didn't derail your train of thought :) | ||
FROGGS | jnthn: that precomp bug you fixed is *the* precomp bug we hit regularly, right? | 07:34 | |
like, on the jvm for URI? | |||
07:34
[Sno] joined
|
|||
jnthn | FROGGS: I don't know that it is... | 07:34 | |
FROGGS: I do know that at least one person besides me ran into it while working on CORE.setting | 07:35 | ||
FROGGS | ahh | ||
the bug I talk about also involved our scoped subs I think | |||
jnthn | Yeah, there's more pre-comp bugs in my future, I'm sure... | 07:36 | |
FROGGS | jnthn: are you okay with that? docs.google.com/document/d/120zZBQ...ca6ls/edit | 07:37 | |
jnthn: I put your name in there | |||
.tell brrt Please look at that (I put you in there): docs.google.com/document/d/120zZBQ...ca6ls/edit | 07:38 | ||
yoleaux | FROGGS: I'll pass your message to brrt. | ||
arnsholt | jnthn: Yeah, that sounds like it makes sense | ||
FROGGS | hi arnsholt | ||
arnsholt | Oh, hi there! | ||
FROGGS++ # All of the upvotes for moving NativeCall to the Rakudo repo =) | |||
FROGGS | *g* | ||
jnthn | FROGGS: Yes, it's fine with me :) | 07:39 | |
FROGGS | and it was a very good thing, for the reason I found/solved bugs in nqp-p's vmarray handling and string passing to foreign functions | ||
there are two issues left: 1) only on jvm on osx the libraries for the nativecall tests are not found, perhaps because CWD is not in the lib search path | 07:40 | ||
jnthn | Hm, I wonder why we didn't see that issue when the things were in the nativecall repo? | 07:41 | |
07:41
rindolf joined
|
|||
FROGGS | 2) on the jvm seems to exist a output buffering issue... the printed lines of say() appear sometimes after the lines printed by the called C test functions | 07:41 | |
arnsholt | Yeah, that's odd | ||
07:41
Rounin joined
|
|||
FROGGS | so, say() does not flush I guess | 07:41 | |
jnthn: because nobody looks at tester reports because the site is too slow? | 07:42 | ||
(and not many use parrot / jvm anyway) | |||
(or osx for that matter :P) | |||
07:43
_mg_ joined
|
|||
jnthn | FROGGS: Oh, it's only JVM + OSX? | 07:43 | |
FROGGS | for the lib loading problem, yes | 07:44 | |
jnthn | OK, then I can see how we mighta missed it. | ||
07:48
zakharyas joined
07:49
_mg_ left
07:54
_mg_ joined
07:59
gfldex left
08:05
prime- left
08:06
Ven joined
08:08
rindolf left
08:09
prime joined,
_mg_ left,
Hor|zon joined
08:10
darutoko joined
08:13
larion left
08:14
Hor|zon left
08:15
_mg_ joined
08:16
sqirrel__ joined
08:21
fhelmberger joined,
_mg_ left
08:26
kaare__ is now known as kaare_
08:28
pierrot left,
pierrot joined
|
|||
[Tux] | \o/ nice! github.com/perlpilot/perl6-docs/bl...-intro.pod | 08:28 | |
08:30
diana_olhovik_ left,
NABB907 joined
08:32
raiph left
08:33
wicope joined
08:36
pierrot left
|
|||
moritz | bonus points for integrating that into doc.perl6.org | 08:37 | |
08:38
rurban joined
|
|||
[Tux] struggles with converting perl5 «$foo =~ s{^"(.*)"$}{$1};» as «$foo ~~ s{^ '"' (.*) '"' $} = $_;» doesn't seem to do what I thought it would do | 08:39 | ||
hmm, maybe it does | 08:40 | ||
08:43
abraxxa joined,
mrf left
|
|||
moritz | [Tux]: ~~ is a topicalizer, that is, it sets $_ on the right-hand side | 08:44 | |
[Tux]: so be careful with $_ on the RHS of a ~~ | |||
[Tux] | should I use $1 instead? | ||
jnthn | Probably want = $0 | ||
[Tux] realized this must be about the 10th time he forgot to count form 0 D'uH!!! | 08:45 | ||
jnthn | :) | ||
If it helps, $0 compiles into $/[0], $1 into $/[1], etc. | |||
moritz | old habits do die hard | ||
jnthn | So it's just shortcut for an array access :) | ||
08:45
mrf joined
|
|||
jnthn | Knowing that's how it works in Perl 6 doesn't prevent muscle memory, sadly... | 08:46 | |
08:47
pierrot joined
08:53
ggoebel111111114 left
|
|||
masak | mornin', #perl6 | 08:57 | |
yoleaux | 05:48Z <[Coke]> masak: would you say RT #118407 and RT #115626 are dups? | ||
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=118407 | ||
jnthn | o/ masak | 08:58 | |
08:58
alini joined
|
|||
masak | [Coke]: no. | 08:59 | |
08:59
rurban1 joined,
Hor|zon joined
|
|||
masak | [Coke]: one used to be a Null PMC access; the other used to be a segmentation fault. I've not known those to be dups. | 09:00 | |
in my opinion, though, both should be resolved, as there is no NPMCA anymore, and no segfault. | |||
tadzik | regarding yesterday's I Am Groot: imgur.com/VnPtOU8 | 09:08 | |
09:14
_mg_ joined
09:15
adu left
09:20
dakkar joined
09:23
kjs_ joined
09:28
larion joined
|
|||
moritz | glibc <-> libc, groot <-> root | 09:37 | |
09:39
_mg_ left
09:52
wicope left,
pecastro joined,
wicope joined
09:55
espadrine_ joined
10:06
zakharyas left
10:07
zakharyas joined
10:11
virtualsue joined
10:13
_mg_ joined
10:18
rindolf joined,
coffee` joined
10:34
sqirrel__ left
10:36
_mg_ left
10:49
TgMts joined
10:53
Ven left
11:04
Ven joined
11:31
chenryn left
11:32
chenryn joined
11:37
chenryn left
11:38
sqirrel__ joined
11:47
hanekomu joined,
rindolf left
11:49
hanekomu left
|
|||
masak .oO( what a glib comparison ) | 11:50 | ||
11:54
hanekomu joined,
hanekomu left
11:55
donaldh joined
11:59
hanekomu joined
|
|||
FROGGS | timotimo++ # weekly | 12:03 | |
12:13
sqirrel__ left
12:14
rurban1 left
12:22
kjs_ left
|
|||
moritz | timotimo++ | 12:25 | |
lizmat | .tell [Coke] accessing members of an object as a Hash is very P5, isn't it? What.s wrong with $*PERL.version ?? | 12:29 | |
yoleaux | 07:11Z <jnthn> lizmat: It seems that it contains a lot of common things you can do on an IO handle (e.g. basic I/O things), so I wonder a little if a name more like IO::General or IO::ReadWrite or something might be fitting... | ||
lizmat: I'll pass your message to [Coke]. | |||
07:12Z <jnthn> lizmat: I notice seek/tell ended up in that role, but iiuc sockets also do the role; maybe that wnats pulling out into an IO::Seekable? | |||
12:29
telex left
12:30
telex joined,
alini left
12:33
rurban1 joined
12:34
bjz left
12:35
bjz joined
12:38
skids left
12:39
alini joined,
xfix joined
12:41
pochi left,
pochi joined
|
|||
dalek | c: b412b25 | paultcochrane++ | lib/Language/quoting.pod: Minor corrections to heredoc docs |
12:42 | |
12:43
xfix left
12:46
xfix joined,
ggoebel111111114 joined
12:49
TgMts left,
xfix left
12:51
grondilu joined
|
|||
moritz | [ptc]++ | 12:52 | |
grondilu | m: say my long $ = 0; | 12:58 | |
camelia | rakudo-moar 5bb194: OUTPUT«===SORRY!===Type 'long' is not declaredat /tmp/nX0YFBT3N2:1------> say my long⏏ $ = 0;Malformed myat /tmp/nX0YFBT3N2:1------> say my ⏏long $ = 0;» | ||
12:58
rurban1 left
|
|||
grondilu is confused by the last P6weekly mentioning a new "long" type. | 12:59 | ||
jnthn | grondilu: It's part of NativeCall and maybe called clong... | ||
El_Che | grondilu: haven't you heard? p6 is the new c++15 standard ;) | 13:00 | |
lizmat | m: use NativeCall; my long $a = 42; say $a | 13:01 | |
camelia | rakudo-moar 5bb194: OUTPUT«42» | ||
[ptc] | moritz: ach, they were just small changes... | ||
lizmat | grondilu: ^^^ | ||
grondilu | ok, thanks | ||
lizmat | almost forgot: timotimo++ for P6W :-) | 13:04 | |
[ptc] | agreed! timotimo++ # weekly | 13:05 | |
grondilu | I used to follow progress of the three main implementations from an automatically generated webpage of some sort but I lost the link. Anyone knows what I'm talking about? | 13:06 | |
tadzik | feature matrix? | ||
grondilu | not quite | ||
[ptc] | timotimo: btw, "ptc" is fine; you don't need to use the ugly "paultcochrane" thingy | ||
grondilu | it was displaying a % of the passing specs or something. | 13:07 | |
13:07
kaleem_ joined
|
|||
grondilu | it was all the rage when MoarVM overtook parrot and the JVM for instance. | 13:07 | |
13:08
kaleem left
|
|||
moritz | grondilu: github.com/coke/perl6-roast-data/b..._rates.csv this one? | 13:11 | |
[Coke]: the perl6_pass_rates link on github.com/coke/perl6-roast-data is broken | 13:12 | ||
lizmat | hmmm.... t/spec/S03-operators/misc.t fails on parrot using make, but runs ok with perl6-p | 13:13 | |
same for t/spec/S03-sequence/arity-2-or-more.t | |||
they seem to segfault when run under harness | 13:14 | ||
afk for a few hours& | |||
moritz | the arity-2-or-more.t could be related to the recent #?if parrot removals | ||
grondilu | moritz: yes, that's it, thanks :) | ||
13:15
_mg_ joined
|
|||
grondilu | will the js backend join this list or is it too soon? | 13:15 | |
moritz | grondilu: we aren't at rakudo-js yet; nqp-js first | 13:16 | |
pmurias++ and hoelzro++ are working on it | |||
13:17
xfix joined
|
|||
sergot | hi \o | 13:18 | |
Ven | timotimo++ | 13:19 | |
13:19
kjs_ joined
13:30
rindolf joined
13:33
TgMts joined
13:45
_mg_ left
|
|||
Peter_R | Just read on reddit that MoarVM uses a GIL for threading, in particular access to arrays | 13:52 | |
Is there any truth in that? | |||
FROGGS | I know that there is no GIL, but I cannot give a more detailed answer I fear | 13:56 | |
moritz | Peter_R: do you have a link to the reddit discussion? | ||
tadzik | www.reddit.com/r/perl6/comments/2w3...or_parrot/ here | ||
Peter_R | tadzik, ta | 13:57 | |
13:57
sqirrel joined
|
|||
FROGGS | quote from rurban: "Why are people leaving python and perl5? Because of the GIL, bad multi-core support. parrot has no GIL, perl6 on moarvm has." | 13:58 | |
rurban | It's not exactly a GIL, it's worse, It's like mysql table-locking | 14:00 | |
moritz | is it? how? where? | ||
FROGGS | rurban: prove that Parrot's threading support is better | ||
moritz | also, table-level locking is much better than global locking of all database instances (what GIL would be) | 14:01 | |
also iirc most of the moarvm data structures are actually lockfree | 14:03 | ||
FROGGS | rurban: lexical access is only possible from the main thread in parrot, which means that most of what we'd like to do in theads would need to happen in the main thread, how do we utilize more than one core at all? | ||
grondilu can't find GIL in S99 | 14:04 | ||
FROGGS | rurban: I tried that and failed back then, and there was no support from #parrot whatsoever | ||
tadzik | grondilu: global interpreter lock | 14:05 | |
grondilu | I'll add it to S99 | ||
tadzik | grondilu++ | ||
rurban | There's no need to prove that the parrot threading model is better. perl6 continously failed to understand that, published desastrous slandering nonsense and came up with the moarvm threading model by themselves. Ask the author, he is here | 14:06 | |
moritz | rurban: that's just ridiculous. There are people in here who tried to get parrot threads to work with rakudo, and failed | 14:07 | |
FROGGS | rurban: I tried to understand and I asked questions, and I got back nothing | ||
moritz | rurban: so, there is need of a prove. | ||
rurban | moritz: in parrot all datastructures are lock-free, just the scheduler needs some fine-grained locks | ||
I answered all questions at #parrot | 14:08 | ||
moritz | rurban: so the problem of accessing lexicals from other threads has long been solved? | ||
dalek | ecs: dbee059 | (L. Grondin)++ | S99-glossary.pod: adding GIL |
||
14:08
sqirrel left
|
|||
rurban | sure. perl6 has its wrong implementation of lexvars, parrot lexvar pmc work okay threaded | 14:08 | |
moritz | rurban: but rakudo has a different implementation for lexicals because the semantics that parrot offered didn't work for Perl 6 | 14:09 | |
rurban: has that also been resolved in parrot? | |||
FROGGS | rurban: your only input was "LGTM" - github.com/parrot/parrot/issues/889 | ||
rurban: you did not even attempt to answer my questions | 14:10 | ||
14:10
brrt joined
|
|||
rurban | you are talking about nqp and 6model issues | 14:10 | |
I know of no parrot problem in this regard. I even provided you with new enum_Cl;ass constants to get run-time access to the dynaloaded types | 14:11 | ||
FROGGS | rurban: no, I am talking about how we could make use of parrot's threading model, so that we actually use more than one core | ||
rurban | that's described in the threading doc and is used in the examples. the author is also here | 14:12 | |
FROGGS | rurban: so why didn't you answer my question back then? | ||
I did read the docs | |||
and I did not find answers to the problems I tried to solve | |||
14:12
ggoebel111111114 left
|
|||
FROGGS | and you did *not* answer questions on irc... irclog.perlgeek.de/parrot/2013-08-03 | 14:13 | |
in fact I still don't know how to do a non blocking lexical lookup | 14:14 | ||
(I am just talking about looking up variables, and subroutine to do some computation, I'm not even talking about writing to a lexical) | 14:15 | ||
14:17
ggoebel111111114 joined
|
|||
rurban | check if the type is a Proxy, follow the proxy then, if not read it directly. if you need to write to a proxy, schedule a writer task | 14:17 | |
brrt | *ahem* after all this time, i've learned that the offset-argument is used to *store* the offset | 14:18 | |
yoleaux | 07:38Z <FROGGS> brrt: Please look at that (I put you in there): docs.google.com/document/d/120zZBQ...ca6ls/edit | ||
brrt | froggs, thank | ||
s | |||
(the offset argument to sendfile, that is) | |||
oh, i can elaborate on that | 14:19 | ||
FROGGS | rurban: I'll add that to the ticket | ||
brrt | we have two things to do on the moarvm jit | 14:20 | |
a: better code generation | |||
b: jit-only optimisations | |||
14:20
camelia left
|
|||
moritz | c: world domination! | 14:20 | |
brrt | under a is everything related to what i've come to call the 'expression compiler', load/store reification, and in general making moar-jit a 'real' compiler | 14:21 | |
(i volunteer for that) | |||
14:21
camelia joined
|
|||
brrt | under b are a number of things relating to stuff you can only do at jit time | 14:21 | |
14:22
skids joined
|
|||
brrt | such as: nativecall optimizations (inlining, i suppose) | 14:22 | |
FROGGS | rurban: IIRC the lexical lookup *was* blocking... you say this is not the case anymore? lexical lookup will happily run in any worker thread? | ||
brrt | but also: small-bigint-optimization | ||
repr op devirtualisation | |||
FROGGS | brrt: can you update the doc? | ||
camelia | b : OUTPUT«Can't chdir to '/home/camelia/rakudo/': No such file or directory at lib/EvalbotExecuter.pm line 166. EvalbotExecuter::_auto_execute(HASH(0x1e6c2c8), "jit-only optimisations", GLOB(0xd250790), "/tmp/mIqBAGJb6t", "b") called at lib/EvalbotExecuter.pm line 114 Evalbot…» | ||
14:22
ChanServ sets mode: +v camelia
|
|||
brrt | and last but not least, simd ops for tight loops on integers | 14:23 | |
yes, will do | |||
FROGGS | you can put that better in words than I could :o) | ||
rurban | FROGGS: every data access is lock-free, just not wait-free | 14:24 | |
moritz | it's a long time since somebody last triggered a 'b:' in camelia :-) | ||
tadzik | :D | 14:25 | |
brrt | rurban, i think honestly that this is only true under a rather narrow definition of locks | ||
consider that locks are themselves implemented using queues :-) | |||
skids | .oO(What would having int128/uint128 buy us, future-proofing-wise) |
||
brrt | s/are implemnted using/may be backed by/ | 14:26 | |
[Coke] | moritz: (broken link) so it is. Problem, though: I'm trying to escape the _'s which will turn it into an underline; tried indenting by 4, but that leaves the link unlinked. Any suggestions on how to fix it? | ||
yoleaux | 12:29Z <lizmat> [Coke]: accessing members of an object as a Hash is very P5, isn't it? What.s wrong with $*PERL.version ?? | ||
brrt | skids - maybe SIMD suport? | ||
rurban | it's practically lock-free. theoritically not, as the scheduler needs to lock other threads interfering. still thousand times better then moar | ||
FROGGS | brrt: well, what I want is to do thing concurrently... so that a computation that usually takes 20s will takes less than <10s when run on four cores... I don't feel like I get there with rurbans help | ||
rurban: no, because my test with lexical lookups used exactly 100% of a single core, wich is pointless | 14:27 | ||
brrt | as in, with an int128 type you can conceivably write a simd-type computation | ||
well... i am not going to claim i know everything there is to know about moarvm's threading :-) | 14:28 | ||
FROGGS | rurban: you need to keep in mind that subroutines (infixes etc) are also lexicals | ||
skids | brrt: Maybe. The only place I have found it lacking so far is in the size field of the padding in some checksum algs. | ||
brrt | but from what i do know it uses libuv which uses os threads which may use multiple cores | ||
but ... what about the 'unix answer' - forking? | |||
arnsholt | If you fork, you need to set up communication to share data over | 14:29 | |
rurban | FROGGS: I have no idea about the nqp and perl6 compilers. you still need to implement concurrency there | ||
arnsholt | (Assuming you can't do it shared-nothing) | ||
brrt | which you also need to do if you use threading, just differently | ||
FROGGS | but anyway, I won't touch parrot's threads this year anyway... not that I get encouraged by any party to work on that at all | 14:30 | |
rurban | Well, you killed parrot hereby, so you lost the concurrency game anyway | ||
brrt | rurban - for what it's worth, i do see the point of parrots type of concurrency; it is easier to see how it works out with a completely mutable world | 14:31 | |
FROGGS | rurban: I have not killed anything | ||
rurban | but you already killed it it before Austin, with the same non-understanding. it was already over then | ||
not you, diakopter and pmichaud | |||
moritz | I see we aren't in the "do we still want parrot?" phase, but in the "who killed parrot?" phase | 14:35 | |
FROGGS | rurban: if you talk about MoarVM, the decision to do that proved to a very good one | ||
it proved to be the fastest and more feature rich backend | |||
moritz | I mean, a healthy project would just go and say "we'll find other users" | 14:36 | |
brrt | it is really a shame that the whole parrot story became so divisive | ||
FROGGS | and I think it is unfair that I get shouted at "you!" when I always speak pro parrot and when I make promises to support it and work on ports to it | ||
moritz hugs FROGGS | 14:37 | ||
14:37
adu joined
|
|||
rurban | FROGGS: nothing against you. "You" meant perl6 here | 14:38 | |
rurban hugs FROGGS also | |||
moritz | that's a convenient person to blame, that perl6 | 14:39 | |
donaldh | For what its worth, I tried working on parrot and tried contributing. The experience sucked for me. I haven't contributed a line of code to MoarVM. I actively enjoy contributing to the JVM backend of nqp. | ||
yoleaux | 2 Feb 2015 18:36Z <[Coke]> donaldh: - if you can help me get a perl 6 eclipse plugin working, I can start implementing work build stuff in perl6. would be super nice. | ||
FROGGS | rurban: a hug now does not help my with my problems when I tried to get a proof a concept working for threads... you need to support your users if you need to keep them | ||
brrt | i'm hesitant about adding myself as a potential student for JIT projects, it might discourage others? | ||
tadzik | brrt: why would it? | ||
14:39
Mouq joined
|
|||
tadzik | oh, as a candidate for a particular project? | 14:40 | |
rurban | It's just sad that perl6 will have no concurrency advantage over other languages then. erlang and clojure being the only realistic, fast option, or Go with copying messages. | ||
brrt | yes | ||
14:40
kaleem_ left
|
|||
tadzik | well, it might discourage people from applying for the same project as you, yes :) | 14:40 | |
brrt | right | 14:42 | |
rurban | FROOGS: sorry, I cannot help with nqp | ||
brrt | ok, i'm going to rewrite 2) to be a bit more broad | ||
FROGGS gives up | |||
Ven | Go has worse concurrency stuff that some stuff in the 90s | 14:46 | |
btyler | and yet is wildly popular and finding usages all over the place :) | ||
FROGGS | marketing | ||
14:47
rurban1 joined
|
|||
FROGGS | when Samsung would announce a new programming language they had a few thousand hackers for free | 14:47 | |
14:48
raiph joined
|
|||
btyler | yeah, maybe. I like to think google hasn't infiltrated my brain so heavily that it is generating the sense of fun and enjoyment I have when writing ssh daemons in go :) | 14:48 | |
but very possible I wouldn't have even tried it without the google backing | |||
Mouq is very excited to see Rust stabilizing, though he still hasn't been able to fully grok lifetimes | 14:51 | ||
moritz | I think go has a good compromise between not-too-bad or even good concurrency and familiarity | ||
btyler | I only mean to say to Ven -- try not to dismiss things that people like just because better things came before. go is hitting it big for a reason that I don't think is entirely due to google's marketing power | ||
Ven | btyler: I'm always too provocative in my one-liner statements | 14:52 | |
moritz | yes, erlang may have better concurrency support, but it has unfamiliar syntax, unfamiliar vocabulary, and an unfamiliar programming model | ||
btyler | those dang one-liners and their lack of nuance | ||
FROGGS | Ven: because lax is enabled by default? :o) | ||
Ven | *g* | ||
btyler | it's worth noting that a lot of the early go publicity consisted of rob pike basically giving lessons on concurrent programming, incidentally using go | 14:53 | |
Ven | I tried to do some go. But "interface{}" everywhere made me go mad. I can't program without abstractions, and I strictly refuse to use `void*` in 2015 (unless it gets me fired from my school) | ||
psch | \o | ||
gist.github.com/peschwa/4fe16e5c5aa2e5b8370c # found this will adjusting the .trans and tr/// PR | 14:54 | ||
Ven | There's so many things I think are *WRONG* in Go I just get annoyed instantly. It just irks me somehow. | ||
psch | getlexcaller through a multi method seems to not work correctly is the gist of the gist | ||
Ven | It's like when everybody was hyping node's event model and stuff. It felt wrong. If you think about it, really, there's nothing that ought to generate such hype about it | 14:55 | |
psch | unless there's something else i didn't think of or don't know :) | ||
Ven | btyler: Everytime I discuss Go with some friends of mine about its drawbacks and pitfalls, they just say "well it doesn't seem to be an issue for guys like robe pike" and that's incredibly annoying | ||
btyler | Ven: except that there was an http server implementation on the front page in 6 lines | 14:56 | |
(re node) | |||
brrt | Ven - you may have annoying friends | ||
Ven | btyler: it was using a (core) library | ||
brrt | or possibly, you may be annoying your friends | ||
btyler | and that is incredibly compelling if what you know is python and django and php | ||
tadzik | one does not implement http server in 6 lines unless you just import a readymade module for it | ||
Ven | it's easier in php. I don't think that's compelling | ||
tadzik | http server in python, following that logic is just python -m SimpleHTTPServer, done | 14:57 | |
btyler | I humbly posit that the fact that it uses a library matters essentially not at all | ||
brrt | what tadzik said :-) | ||
Ven | ^ | ||
btyler | it comes with the platform, it counts enough as core | ||
Ven | if I'm allowed to use libraries, I can probably serve you a static page in 6 lines as well ;-) | ||
in c++* | |||
moritz | system('apachectl', 'start') | ||
Ven | :D | 14:58 | |
btyler | again, I'm not saying it makes sense | ||
brrt | but... the other hand is that channels really are a pretty good (as in, understandable and effective) way to concurrency | ||
btyler | but node was wildly successful in reaching a huge audience | ||
Ven | moritz: tinyhack.com/2014/03/12/implementin...intf-call/ | ||
btyler | and writing it off as hype-driven tech is missing some lessons in how to get people excited about your work | ||
muraiki | yeah, I just read an article about the new bbc website. they evaluated using node, clojure, and scala... they went with node, one of the reasons being something like "everyone has to know js anyways, so there's less context switching" | 14:59 | |
btyler | ditto go | ||
brrt | what bugs me about node is that people were given a way to create callback-based network services in javascript, and what they did was build websites for gullible VCs | ||
15:01
TgMts left
|
|||
brrt | (also, conceptually i think supplies and promiser are quite close to go's channels) | 15:01 | |
Mouq | .oO( while [ 1 ]; do; echo My Page | nc -l 3000; done ) |
15:02 | |
Ven | btyler: I've been doing node for, maybe 4 years now? I *would* feel much more confident writing it off as a hipster tech than go :) | ||
brrt | you know what is hipster tech? | 15:03 | |
the whole gulp / grunt / sass / whatever BS that has to run *before* node can even run | |||
Ven | *g* | 15:04 | |
brrt | all problems in CS can be solved by another layer of indirection; too bad somebody didn't realise that 'restarting a web server when a file changes' isn't really a typical CS problem | 15:05 | |
brrt goes back to doing useful stuff | |||
btyler | what I'm getting at is there needs to be some wariness about falling into smug lisp weenie-ism. writing off major recent examples of successful language adoption as crappy tech is a great way to wind up wondering why nobody is using your cool thing | 15:06 | |
Ven | btyler: I prefer my concurrency tools in haskell and racket a thousand times more than those in go, really. I don't think there's any revolution. the papers about this kind of primitives are from the 80s or 90s, and got implemented in obscure languages but didn't take off at that time | ||
btyler | anyways, apologies, back to productivity | ||
15:06
donaldh left
|
|||
Ven | brrt | 15:07 | |
whoops. | 15:08 | ||
brrt | yes? :-) | ||
Ven | brrt++: proceed :P | ||
btyler: well, we can certainly use that to prepare our success in the programming languages world | |||
muraiki | btyler: I've tried arguing the same thing in this channel before, to a similarly lukewarm reception :) | 15:10 | |
Ven | btyler: I'm just saying my experience in go has been *very* unpleasant because I always felt cornered by the language. It has this java feeling to it. "there's only one way to write it" | ||
btyler | by design, to great and warm reception by the loads of python programmers who try it out :) gofmt is a major -bonus- to many people using go | 15:12 | |
Ven | btyler: clang-format is pretty good, also :P. I agree about the "gofmt", but that was a bit beyond my point | 15:14 | |
I just don't feel, errrr, creative? maybe an overuse of that word | |||
I'm probably not in the correct mindset, though... But when I start writing something, I'm like "this could be abstracted neatly here" but nope, this can't happen in this language | 15:15 | ||
brrt | that's interesting | ||
some people view abstraction as a tool. others view it as an essential prerequisite for self-expression | |||
Ven | It's like in java. I feel like I have to go through so much to get my point across | 15:16 | |
brrt | FROGGS: i'm done, by the way | ||
FROGGS | brrt++ | ||
15:16
FROGGS left
|
|||
Ven | I'm strongly convinced "factories" wouldn't have been so big in java if the language had had lambdas before. which it really should've | 15:16 | |
brrt | runtime makes very little distinction between those | 15:18 | |
Ven | brrt: I feel strongly about "abstraction", but there's a bit difference between a monad and a beansingletonfactoryfactory. | 15:20 | |
skids | Tht's not real Java without the word "Enterprise" in every identifier | 15:21 | |
brrt | :-) | 15:22 | |
brrt afk | |||
15:22
brrt left
|
|||
Ven | (a "factory" is a bad kind of abstraction, in this case :P) | 15:22 | |
lizmat | .tell [Coke] reverting 39d7c52bb5db8b fixes failing tests for me on parrot | 15:24 | |
yoleaux | lizmat: I'll pass your message to [Coke]. | ||
moritz | ah, we can remove all of them after the release anyway | 15:25 | |
15:27
grondilu left
|
|||
masak | I've never quite seen the point of factories. | 15:28 | |
moritz | std: :10<1*2**-64> | 15:30 | |
camelia | std f9b7f55: OUTPUT«===SORRY!===Base is missing ** exponent part at /tmp/6DYP7PNPam line 1:------> :10<1*2⏏**-64>Malformed radix number at /tmp/6DYP7PNPam line 1:------> :10<1*2**⏏-64> expecting any of:…» | ||
moritz | masak: that's where your iphone was made :-) | 15:31 | |
15:31
Rounin left
|
|||
moritz | masak: also, have you seen that HPMoR Chapter 105 is out? | 15:31 | |
skids | So, how far is rakudo from running on NaCL? JOOC. | 15:32 | |
PerlJam | 105? The last one I remember reading was 102 | ||
good morning btw | |||
moritz | skids: it mostly runs on silicone, I believe :-) | ||
dalek | kudo/nom: 7970ff8 | lizmat++ | src/core/Numeric.pm: Revert "Remove parrot ifdef fossils" It's breaking some tests on parrot. Keep these until at least after 2015.02 |
15:38 | |
skids | moritz: Well, that would make for some pretty introspectable breast implants I guess. | 15:39 | |
hoelzro | o/ #perl6 | 15:40 | |
15:40
spider-mario joined
|
|||
hoelzro | m: try { !!! ; CATCH { default { say $_.WHAT } } } | 15:41 | |
camelia | rakudo-moar 5bb194: OUTPUT«(X::AdHoc)» | ||
hoelzro | should .../???/!!! fail/warn/die with a special type of exception? something like X::Stub or something? | 15:42 | |
moritz | yes, could be a subclass of X::AdHoc | 15:43 | |
though of the argument is an Exception already, that should be thrown instead | |||
[Coke] | lizmat: I tested all those on OS X before committing, spectested everything, even split up the unfudging so I could track down the ones with the various issues that were documented in the commit. unfortunate.\ | ||
yoleaux | 15:24Z <lizmat> [Coke]: reverting 39d7c52bb5db8b fixes failing tests for me on parrot | ||
15:43
davido__ left
|
|||
lizmat | [Coke]: fwiw, the failures *only* exist when the test run under a harness, like with "make" | 15:44 | |
[Coke] | Not saying you should re-commit it, but I'm just sad. :| | ||
lizmat: I ran the tests with 'make spectest' each time. | |||
lizmat | running them in the nude, like with perl6-p, they pass | ||
[Coke] | (did the full suite after removing each one.) | ||
lizmat | I just want to make sure we have a clean relase | ||
*release rather | |||
[Coke] | yup, I get it. just sad. :) | 15:45 | |
15:45
davido__ joined
|
|||
lizmat | sorry, but when I'm wearing the release manager's hat, I need to be ruthless :-) | 15:45 | |
moritz | lizmat++ | ||
[Coke]++ for removing it in the first place | |||
[Coke]: and we'll get rid of it again soon after the release anyway | 15:46 | ||
hoelzro | moritz: should I open a PR against the spec to add that? | 15:47 | |
15:47
Ven left
|
|||
moritz | hoelzro: IMHO that's something that can be prototyped in rakudo first | 15:48 | |
hoelzro | moritz: oh, ok | 15:49 | |
I'll prototype it there, then | |||
dalek | kudo/newio: d99fe0b | FROGGS++ | lib/NativeCall.pm: pass an absolute libname for on jvm/osx The library loader will not look in CWD for libs, but will instead pre-/append stuff and tries to look it up in system dirs. b95f6de | lizmat++ | src/core/IO.pm: Fix glitch in MAKE-ABSOLUTE-PATH |
15:59 | |
15:59
dalek left
|
|||
lizmat | sorry falek | 15:59 | |
*dalek | |||
16:00
dalek joined,
ChanServ sets mode: +v dalek
16:01
gfldex joined
16:08
FROGGS[tab] joined
16:10
Ven joined
16:12
hanekomu left
16:23
TgMts joined
16:28
kaleem joined
|
|||
FROGGS[tab] | can somebody with perl6-j on osx pass -Djna.library.path=/path/of/rakudo/ to the jvm runner an run a test from t/04/nativecall? | 16:28 | |
I have no osx box so I cant test :o( | 16:29 | ||
lizmat | FROGGS[tab]: will try | ||
FROGGS[tab] | ohh, thank you | ||
lizmat | path of rakudo what do you mean by that ? | 16:30 | |
FROGGS[tab] | the build dir | ||
lizmat | the install dir? or the current dir? | ||
FROGGS[tab] | where the .dylibs end up being | ||
cwd | |||
lizmat | ok, so as an absolute path, not just "." then | ||
FROGGS[tab] | dunno | 16:31 | |
lizmat | hehe | ||
FROGGS[tab] | probably abs path | ||
that's the safe bet at least | |||
lizmat | with "runner", you mean the script that is called perl6-j, right ? | 16:34 | |
FROGGS[tab] | aye | ||
lizmat | and a rebuild is not necessary, right ? | 16:35 | |
FROGGS[tab] | right | ||
lizmat | no change | ||
FROGGS[tab] | gah | ||
lizmat | but specifying a wrong dir, doesn't give any errors | 16:36 | |
so I'm not sure | |||
FROGGS[tab] | can you paste your runner and the output of the test run? | ||
lizmat | ok, I may have patched the wrong runner ? | 16:38 | |
FROGGS[tab] | depends on which you are using :o) | ||
16:39
aoeuhtns joined
|
|||
FROGGS[tab] | when you run it without ./ you have to patch the installed one | 16:39 | |
16:40
alini left
16:41
echowuhao joined
|
|||
lizmat | gist.github.com/lizmat/87b2db1a6d058dc8c21e | 16:41 | |
16:43
kaleem left
|
|||
FROGGS[tab] | well, that really looks like you have patched the wrong runner | 16:43 | |
can you patch the installed one? | 16:44 | ||
hoelzro | I seem to remember talk of a CI system for Perl 6 modules; did anything ever come of that? | 16:45 | |
would the community find value in such a system? | |||
I was thinking that building something like rust-ci.org/ wouldn't be too hard | 16:46 | ||
FROGGS[tab] | I think so | ||
hoelzro | and it would be a good motivation to get a Mojolicious port working =) | ||
lizmat | FROGGS[tab]: why do you think I patched the wrong one? your extra param is at the end | ||
I even added an echo before to make sure it was the right one | |||
and it showed | 16:47 | ||
FROGGS[tab] | ohh, I expected a linewrap and did not spot the end of the line | ||
kudo/newio: f17f88b | lizmat++ | src/core/IO.pm: Fix regression in MAKE-CLEAN-PARTS |
|||
lizmat | the runner is basicallly a single line, didn't want to change that :-) | 16:48 | |
FROGGS[tab] | lizmat, can you remove the "./" and the ".dylib" from that test file? | 16:49 | |
lizmat | there's no .dylib in the test file ?? | 16:51 | |
FROGGS[tab] | true | 16:52 | |
ohh, tht | |||
that happens in NativeCall.pm | |||
gah, I ned an osx box -.- | 16:53 | ||
need* | |||
16:59
echowuhao left
17:02
larion left
|
|||
masak | m: my declared $ = 0 | 17:10 | |
camelia | rakudo-moar 7970ff: OUTPUT«===SORRY!===Type 'declared' is not declaredat /tmp/N7rg2Ntw9D:1------> my declared⏏ $ = 0Malformed myat /tmp/N7rg2Ntw9D:1------> my ⏏declared $ = 0» | ||
masak | lies! :P | ||
m: my not-declared $ = 0 | |||
camelia | rakudo-moar 7970ff: OUTPUT«===SORRY!===Type 'not-declared' is not declaredat /tmp/ewyg1onhB3:1------> my not-declared⏏ $ = 0Malformed myat /tmp/ewyg1onhB3:1------> my ⏏not-declared $ = 0» | ||
masak stares down the compiler | 17:11 | ||
moritz: ch105 is out. I read it at 02:10 local time. | |||
TimToady | The computer strikes --(MORE)-- | ||
arnsholt | Use-mention, my old nemesis, we meet again! | ||
masak | moritz: not as good as ch104, but still good. | ||
TimToady | You lose 13 hit points | ||
masak | arnsholt: "Use-mention", my old nemesis, we meet again! :P | 17:12 | |
timotimo | maybe we should try to match the parts of the error message that the user can change against the parts that are static in the exception object and if there's significant match-up we'll add "(haha, i see what you did there)" somewhere | ||
arnsholt | masak: Le sigh. English really needs a vocative case =D | ||
17:12
diana_olhovik_ joined
|
|||
masak | arnsholt: O mouse! | 17:12 | |
rurban: you should charge money for your "Parrot threads are better" routine. | 17:15 | ||
17:16
Kristien joined
|
|||
Kristien | hi | 17:17 | |
[Coke] | I don't think the discussion about parrot threads is really helping anything at this point, folks. | 17:20 | |
masak | Kristien: oh hai | ||
timotimo | i'd like a few voices on the "enormous bootstrapping stage written in nqp" comment rurban made in the reddit comment thread here: www.reddit.com/r/perl6/comments/2w...or_parrot/ | 17:23 | |
[Coke] | timotimo: I'm not sure it'll do anything other than create smoke. | 17:26 | |
timotimo | rurban: i don't think i really understand this about the proxies in parrot that are used for threading: at what point does the "owning" thread check if there are any outstanding accesses to objects it owns? | ||
AFK for a bit | 17:27 | ||
flussence | I think the best possible response to any perl6 thread chromatic's involved in is stony silence. | ||
arnsholt | flussence: Agreed | 17:29 | |
itz | flussence++ | 17:30 | |
masak | some part of me is sad that we lost chromatic. he sure seems to have spare time he could've spent contributing. | 17:36 | |
itz | I know of at least one "anti-sixer" who returned to the fold in the last year :) | 17:37 | |
lizmat | itz someone we know ? | 17:38 | |
masak .oO( iz it someone we know? ) :P | |||
itz | well I spoke to $certain_person last FOSDEM and he was quite negative about 6 and he spoke on it this one :) | 17:39 | |
lizmat | seriously: I know from personal experience what it means to have your project, on which you spent a good part of your life, go down the drain into oblivion | 17:40 | |
it hurts, *every* time | |||
itz | . o O ( sorry $certain-person ) | 17:43 | |
17:44
Kristien left
17:46
kjs_ left,
xfix left
17:48
Ven left
17:49
Ven joined
17:50
rurban left,
Ven left
17:51
fhelmberger left
17:52
Rounin joined,
perl6_newbee joined
17:53
virtualsue left
|
|||
perl6_newbee | hi all | 17:54 | |
can someone explain how to create a module with just sub exported? | |||
tadzik | sure | 17:55 | |
can I point you to an example? | |||
perl6_newbee | off course | ||
17:55
xfix joined
|
|||
tadzik | github.com/tadzik/perl6-Term-ANSIC...lor.pm#L38 this is probably the easiest one I have :) | 17:55 | |
or maybe github.com/tadzik/Text-T9/blob/mas...Text/T9.pm | 17:56 | ||
this one is even smaller | |||
17:56
TgMts left
|
|||
tadzik | basically: have a file that says 'module your-module-name;" on top, and then have a sub foo() is export {} | 17:56 | |
perl6_newbee | cool thx tadzik | ||
tadzik | you're welcome :) | ||
perl6_newbee | gread. I love Perl6 :-) | 17:57 | |
great | |||
thx | |||
and it just works ^^ | 17:58 | ||
However, is there a change to get a Perl6 module for COmmand Line Argument parsing like Getopt::Long? | 17:59 | ||
tadzik | yes, that's built-in these days | ||
let me find something for you | |||
perl6advent.wordpress.com/2010/12/...main-subs/ there's some | 18:00 | ||
perl6_newbee | hmm, the sub MAIN(...) handling is handy, but I think it is not so powerfull like Getopt::Long, is it? | ||
tadzik | any particular thing you're missing? | ||
18:01
dakkar left
|
|||
TimToady | m: / \ / | 18:01 | |
camelia | rakudo-moar 7970ff: OUTPUT«===SORRY!=== Error while compiling /tmp/OEzxNtSLvyNo unspace allowed in regex; if you meant to match the literal character, please enclose in single quotes (' ') or use a backslashed form like \x20at /tmp/OEzxNtSLvy:1------> [32…» | ||
TimToady | japhb: ^^^ you're wrong on the internet :) | 18:02 | |
perl6_newbee | hmm. not at the moment. If you say its comparable with Getopt::Long, then I am fine with it | ||
tadzik | I'm not a poweruser of Getopt::Long, but I never found myself missing some feature in MAIN | 18:03 | |
oh, except one thing, actually | |||
github.com/tadzik/panda/blob/maste.../panda#L14 this | |||
dalek | kudo/newio: 1c3d562 | lizmat++ | src/core/ (2 files): Move TRANSPOSE(-ONE) to more suitable place |
18:04 | |
tadzik | by default flags can only come before positional arguments | ||
perl6_newbee | sorry, what does Line 15 do? its grep all strings starting without '-', then greps all string with a '-' and stores them in args array. | 18:09 | |
time to start the perl6 REPL :-) | |||
tadzik | perl6_newbee: it moves all the words starting with - before the ones that don't :) | ||
timotimo | right, the "," operator there can be thought of as "list concatenation" | 18:10 | |
perl6_newbee | ah I see | ||
clever | |||
tadzik | hoelzro, hoelzro, wanna see a sailfish app? :) | ||
timotimo | so switches never have arguments to them, tadzik? | ||
tadzik | oh, you don't use it anymore, nvm :) | ||
timotimo: heh, apparently :D | |||
or there are undiscovered bugs | 18:11 | ||
timotimo | :) | ||
tadzik | multi MAIN ('smoke', :$exclude = 'panda') | ||
the latter | |||
good catch | |||
b2gills | I still don't understand the reason switches had to be the first arguments | 18:12 | |
tadzik | me neither | 18:13 | |
timotimo | <3 | ||
masak | that makes three of us. | ||
timotimo | i have that same HUH, too | 18:14 | |
tadzik | timotimo: it makes me think that I should make a module that does it right, so no one else has to make that mistake again | ||
timotimo | yeah | ||
tadzik | or we can just fix the spec :P | ||
after hearing the rationale | |||
timotimo | here's another module i want to write, btw: offering a TUI that consists of a line for input and the rest of the screen is output from the program | ||
so that you can asynchronously push messages to the screen and still have proper line-editing input for the user | 18:15 | ||
18:15
espadrine_ left,
grettir joined
|
|||
perl6_newbee | ok, its a bit off toppic now, but i will stick with MAIN. THX tadzik | 18:16 | |
18:17
perl6_newbee left
18:18
kjs_ joined
18:21
Ven joined
18:25
Kristien joined
18:33
khisanth__ is now known as Khisanth,
FROGGS joined
18:34
wicope left
18:35
_mg_ joined
18:38
wicope joined
|
|||
flussence | timotimo: that road leads to madness and window managers... | 18:39 | |
18:39
rurban joined
|
|||
dalek | kudo/newio: 6a0b40d | lizmat++ | src/core/Str.pm: Make Str.trans("f","t") 2x as fast By repurposing the internal TRANSPOSE-ONE helper sub |
18:43 | |
18:43
Peter_R left
18:45
Peter_R joined
18:47
kjs_ left
18:50
larion joined
|
|||
tadzik | flussence: nah, we can quit whenever we can! :P | 18:51 | |
18:53
Ven left
|
|||
dalek | kudo/nom: 3ab11b4 | lizmat++ | src/core/Str.pm: Backport TRANSPOSE(-ONE) from newio branch We probably want the generic speed increases in 2015.02 already |
18:53 | |
masak | you know what would be hilarious? a bot that activated when dalek gets flood-booted, and prints out the rest of the commit message :P | 18:57 | |
sergot | :D | 18:58 | |
dalek | kudo/nom: 0f73e0f | lizmat++ | src/core/Str.pm: Make Str.trans("f","t") 2x as fast By repurposing the internal TRANSPOSE-ONE helper sub |
18:59 | |
tadzik | :D | ||
lizmat+ | |||
lizmat++ | |||
timotimo | m) | 19:00 | |
hoelzro | tadzik: sure! | ||
timotimo | lizmat++ | ||
Kristien | Thanks to tadzik I want tzatziki. | 19:06 | |
timotimo | :D | ||
tadzik | :D | ||
nwc10 | what's up with slowhub? | 19:08 | |
it hasn't been slowhub for ages | 19:09 | ||
tadzik | seems to work for me | ||
nwc10 | OK, maybe it's "my" machine... | ||
tadzik | or your network region | ||
masak | or your region of the galaxy | 19:10 | |
nwc10 | timeouts randomly about 20% of the time | ||
yes, might be my part of the galaxy | |||
timotimo | status.github.com seems fine | ||
19:10
telex left
|
|||
dalek | kudo/cpp: 0ec61df | FROGGS++ | / (3 files): start adding C++ support to NativeCall |
19:10 | |
Kristien | timotimo: it doesn't here | 19:11 | |
19:11
rindolf left
19:12
telex joined
19:13
sqirrel joined,
virtualsue joined
|
|||
timotimo | oh? maybe i'm not interpreting the data right, then | 19:13 | |
Kristien | i.imgur.com/EJO1su3.png | 19:14 | |
timotimo | huh? | ||
i don't get anything like that | |||
even after reloading afresh | |||
Kristien | Me neither. I'm just kidding. | ||
19:14
zakharyas left
|
|||
nwc10 | nor do I | 19:14 | |
timotimo | ooooh | ||
you got me there %) | 19:15 | ||
PerlJam | Kristien: way to be disruptive! :) | ||
nine_ | Would have been easy to find out if they used proper time stamps instead of "user friendly" relative time | 19:16 | |
timotimo | hehe. | ||
well, you can hover your mouse over it | 19:17 | ||
and see the exact timestamp | |||
Kristien | relative user-friendly timestamps? pfft, ruby hipsters | ||
dalek | kudo/cpp: a29d33f | FROGGS++ | t/04-nativecall/11-cpp.t: fix path to C++ test library source |
||
timotimo | rurban: i'm sure i'm not interpreting what you wrote correctly; parrots runloop currently has to start a whole new interpreter for each method? | 19:19 | |
the whole paragraph kind of stumps me, to be honest | |||
nine_ | We had to add the same crap to our intranet. So a customer calls and has a question about an invoice dated July 13th and the poor accountant had to hover her mouse over a long list of invoices dated "4 months ago" to find the one. Good thing we added a hidden setting (just for me and the test suite) to get the old behavior. | ||
FROGGS | nine_: *g* | ||
human friendly done wrong | 19:20 | ||
nine_ | Yes it was our web designers who petitioned for that "feature". | ||
timotimo | <3 | 19:21 | |
19:21
colomon left
|
|||
FROGGS | I also put in a feature like that two weeks ago... | 19:23 | |
it is for our technicians and it only shows "n hours ago" in case it is less than 8 hours ago | |||
everything else is displayed as timestamps | |||
jdv79 | jira does the same thing - prints vague time string and hover gets the exact | 19:24 | |
works great on mobile or touch device i imagine | |||
b2gills | Something like that is fine if you are only going to visually scan it | ||
jdv79 | i would at least like a user option to flip it | 19:25 | |
i need the exact time almost always | |||
usually trying to triage what just went wrong and i need to compare the time with some other source of change | |||
19:30
abraxxa left
|
|||
muraiki | "within the last fortnight" | 19:31 | |
19:35
colomon joined
|
|||
nine_ | OTOH I love KDE's fuzzy clock ;) Especially when it tells me that it's "Almost noon" at 9:30 :) | 19:35 | |
timotimo | :D | 19:38 | |
tadzik | haha, an optimist clock. "It's almost 17:00!" | 19:39 | |
moritz | hobbit clock, "time to eat!" | 19:41 | |
19:42
Ugator joined
|
|||
moritz | fwiw p-spectest here fails S19-command-line/repl.t | 19:43 | |
Badplan, you planned 1 test but ran 0 | |||
masak .oO( nanananananana -- Badplan! ) | |||
moritz | itz: pl6anet.org/ doesn't seem to have picked up pmthium.com/2015/02/suspending-rakudo-parrot/ | 19:44 | |
dalek | ar: 28cb7b1 | moritz++ | / (4 files): Remove NativeCall starting from 2015.02, it ships with rakudo itself |
19:51 | |
flussence | I like how `dmesg -H` shows timestamps - it's the same as what FROGGS described, but scaled down an order of magnitude. | 19:52 | |
19:53
_mg_ left
19:54
grondilu joined
|
|||
grondilu | FROGGS++ work on C++ NativeCall | 19:54 | |
hoelzro | FROGGS++ | 19:56 | |
flussence | FROGGS++ | ||
FROGGS | O.o | ||
itz | odd pmthium.com/category/perl6/feed/ doesn't have the posting | 19:57 | |
flussence | (if that ends up being as straightforward as the C bindings, we may have a "killer feature") | ||
dalek | kudo/nom: 9bf52eb | lizmat++ | src/core/Str.pm: Make Str.subst(Str,Str,:global) about 12x faster By using the TRANSPOSE helper sub |
||
19:57
_mg_ joined
|
|||
lizmat | not sure if that affects s:g/// as well | 19:58 | |
nwc10 | itz: might be an implementation bug/artefact. IIRC he psoted it, then pulled it, and then reposted it some days later. I think on the same URL. That might confuse the feed thingy | ||
masak | oh, I had missed that. | ||
why was it pulled? | |||
Kristien | one problem I always have with FFIs is using types defined in C | 19:59 | |
like off_t | |||
FROGGS | masak: he wanted to talk to #parrot first | ||
Kristien | they're not well-defined so you have to include the headers in which they are defined in order to use them | ||
but FFIs typically don't allow you to do that | |||
hahainternet | they don't? | 20:00 | |
Kristien | can you include a C header in Perl 6? | ||
masak | FROGGS: he did. he posted a gist draft at #parrot first. | ||
FROGGS | Kristien: this will look like: my native off_t is repr("P6int") is Int is ctype("off_t") { }; | ||
hahainternet | Kristien: i've no idea, but i am doing so in golang | 20:01 | |
itz | nwc10: I think its on another RSS feed not the perl6 specific one | ||
hahainternet | that's because it creates its own c | ||
Kristien | yes Go allows it | ||
FROGGS | Kristien: though, atm the VM must be aware of all of these ctypes in beforehand | ||
hahainternet | there's no reason p6 can't | ||
Kristien | but Haskell doesn't, and neither do Python and Ruby for as far as I know | ||
FROGGS: OK | |||
nwc10 | irclog.perlgeek.de/perl6/2015-02-04#i_10060971 - 19:17 | ||
itz | ah its there now | ||
nwc10 | irclog.perlgeek.de/parrot/2015-02-04#i_10061006 - 19:22 | ||
Kristien | One could possible implement it with libclang though that's quite heavyweight and requires the headers to be available on the machine of the user. | 20:02 | |
itz | moritz: fixed | ||
20:03
[Sno] left,
vendethiel joined
|
|||
[Coke] is bummed that yapc is again too early to take the family. | 20:06 | ||
masak | yapc::eu? | ||
[Coke] | there were about 2 years (a long time ago) when it was after the kids got of school for the summer. | ||
NA | |||
moritz | YAPC Not Available :-) | 20:07 | |
nine_ | masak: thanks to you I now have the Batman theme playing up and down in my head | 20:10 | |
20:10
Rounin left
|
|||
hahainternet | nine_: which theme? | 20:13 | |
if it's not from the 70s and grey, it's nothing | 20:14 | ||
moritz | hahainternet: please no cultural elitism | ||
hahainternet | moritz: :D | ||
now i can't stop the spinning transition chime from playing in my head | 20:15 | ||
nine_ | moritz: the one with the occational POW! :0 | 20:18 | |
dalek | kudo/nom: c81abe2 | FROGGS++ | lib/NativeCall.pm: fix lib loading for NativeCall on JVM on OSX |
20:24 | |
FROGGS | lizmat: ^^ | ||
-.- | |||
lizmat | FROGGS will check right away | 20:25 | |
20:26
darutoko left
|
|||
dalek | kudo/newio: 3ab11b4 | lizmat++ | src/core/Str.pm: Backport TRANSPOSE(-ONE) from newio branch We probably want the generic speed increases in 2015.02 already |
20:26 | |
kudo/newio: 0f73e0f | lizmat++ | src/core/Str.pm: Make Str.trans("f","t") 2x as fast By repurposing the internal TRANSPOSE-ONE helper sub |
|||
kudo/newio: 9bf52eb | lizmat++ | src/core/Str.pm: Make Str.subst(Str,Str,:global) about 12x faster By using the TRANSPOSE helper sub |
|||
kudo/newio: c386f34 | lizmat++ | src/core/Str.pm: Merge branch 'nom' into newio |
|||
20:26
kjs_ joined
|
|||
moritz | ok, weird things are weird. It looks like perl6-p REPL prints the | 20:27 | |
prints the '>' to STDERR | |||
whereas ./perl6-m >/dev/null hangs and doesn't react to Ctrl+C or Ctrl+Z | 20:28 | ||
20:28
abraxxa joined,
abraxxa left
|
|||
lizmat | FROGGS: much better now, but got things like: | 20:29 | |
Parse errors: Tests out of sequence. Found (2) but expected (1) | |||
Bad plan. You planned 3 tests but ran 1. | |||
:-( | 20:30 | ||
FROGGS | lizmat: aye | ||
lizmat | which would be the other problem | ||
FROGGS | I just wanted to say, there is a buffering problem when we say() from P6 and printf() from C | ||
but, I got that too, I'll will either provide a fix or a workaround | |||
20:30
bjz left
|
|||
FROGGS | I mean, that's not an error with nativecall | 20:31 | |
lizmat | indeed | ||
FROGGS | and it only happens when you run `make j-test` | ||
prove etc does not have this kind of issue | |||
ohh, I perhaps know why it happens... | |||
we merge stdin and stdout in t/harness | 20:32 | ||
lizmat | confirmed that all NativeCall tests run fine by themselves | ||
FROGGS++ | |||
FROGGS | and that bloody KERNEL/DISTRO thingy! >.< | 20:33 | |
I guess I'll memorize the distinction now :o) | |||
20:34
FROGGS[tab] left
|
|||
lizmat | aha! | 20:34 | |
ok | |||
maybe needs backporting to the Zavolaj repo ? | 20:35 | ||
FROGGS | lizmat: that got cleared | ||
lizmat | ok :-) | ||
problem solved :-) | |||
FROGGS | :o) | ||
there is no going back :P | |||
and the future is bright | |||
moritz | FROGGS: though next time that you make such a change, please either do it in a branch, or shortly after a release (not before one) | 20:36 | |
lizmat | :-) | ||
FROGGS | moritz: well, it was in a branch | 20:37 | |
20:38
sqirrel left
|
|||
FROGGS | the problem is, the issues/mails about: "halp, I cannot build NativeCall or Inline::C" increased | 20:38 | |
and keeping that for another month is also not good | |||
and, this way the issues for parrot and jvm got solved (issues that perhaps nobody was aware of, but still) | |||
moritz | a non-nom branch | 20:39 | |
FROGGS | okay, we did know about the parrot problem... (we even had messages in the star announcement) | ||
moritz: ohh, I did not put it in a branch... true | 20:43 | ||
I mixed up with the other do branches I messed with :o) | |||
(longer and cpp) | |||
Mouq | Do we want NativeCall tests to be in Roast? | 20:49 | |
20:49
virtualsue_ joined
20:50
virtualsue left
|
|||
[Coke] | depends on if they're spec or just a really really handle rakudo thing. | 20:50 | |
*handy | |||
rjbs | ? | 20:51 | |
oops, ww | |||
timotimo | there's a design document that covers NativeCall | ||
lizmat | Mouq: no, because they are implementation specific to rakudo | ||
timotimo | but it's more or less a description of what NativeCall does | ||
FROGGS | lizmat: the api is not rakudo specific | ||
the is native trait is even in the setting, not in rakudo, mind | 20:52 | ||
lizmat | FROGGS: I can't fine "is native" in core setting ? | ||
20:53
virtualsue joined
|
|||
FROGGS | ohh, wait, is nativesize is in there | 20:53 | |
lizmat | yeah, but not "is native" | ||
20:54
virtualsue_ left
|
|||
FROGGS | yeah... that needs the Native role the NativeCall module provides | 20:55 | |
20:56
_mg_ left
|
|||
arnsholt | If we want NativeCall to be part of the core language, we need to include tests for it in Roast | 20:57 | |
(Not likely to happen for 6.0 in my estimation) | |||
The problem is figuring out NativeCall tests that can actually go in roast | |||
ATM, we're dependent on being able to compile libs with test functions, which in turn relies on Rakudo (and even backend) specific stuff to get the right commandline to compile stuff | 20:58 | ||
FROGGS | yes, does roast require a C compiler in future for everyone? I hope not | 20:59 | |
lizmat | arnsholt: there are tests, but in "make test" | ||
that's good enough for me for 6.0 | |||
FROGGS | so, let's keep it the way we have it now, until we have a strong reason to etst it | ||
change it* | 21:00 | ||
moritz eats freshly caramelized chestnuts | |||
Kristien | When I read "chestnuts" I imagined something very weird. | 21:01 | |
21:02
kjs_ left
|
|||
arnsholt | FROGGS: Exactly. And making tests to test eveything using only C stdlib doesn't sound fun | 21:03 | |
FROGGS | aye | ||
grondilu | there are other possibilities than stdlib | ||
21:03
kjs_ joined
|
|||
nine_ | Discussion about Perl 6's infix ^^ operator and short circuiting: lwn.net/Articles/633648/ | 21:08 | |
grondilu | wth I totally did not know about this one. | 21:11 | |
TimToady | infix:<^^> is really one() | ||
if you want parity, you can always use ?^ instead | 21:12 | ||
21:12
kjs_ left
|
|||
grondilu | m: say .WHAT given 1 ^^ 2 | 21:14 | |
camelia | rakudo-moar 9bf52e: OUTPUT«Nil» | ||
grondilu | it does not return a junction though. | ||
21:14
kjs_ joined
|
|||
grondilu | m: say .WHAT given one(1, 2) | 21:14 | |
camelia | rakudo-moar 9bf52e: OUTPUT«(Junction)» | ||
TimToady | oh, I guess that's infix:<^>, duh | ||
grondilu | m: say .WHAT given 1 ^ 2 | ||
camelia | rakudo-moar 9bf52e: OUTPUT«(Junction)» | ||
TimToady | still, it's "one" semantics, not parity | ||
Mouq | m: 1 ^^ 1 ^^ say "oops" | ||
camelia | ( no output ) | ||
Mouq | m: 1 ^ 1 ^ say "oops" | ||
camelia | rakudo-moar 9bf52e: OUTPUT«oops» | ||
Mouq | m: 1 ?^ 1 ?^ say "oops" | 21:15 | |
camelia | rakudo-moar 9bf52e: OUTPUT«oops» | ||
moritz | people link to doc.perl6.org \o/ | ||
grondilu | makes sense since junction operators are one character long. | ||
arnsholt | grondilu: What other options do you have in mind? | ||
Mouq | m: 1 xor 1 xor say "oops" | ||
camelia | ( no output ) | ||
TimToady | xor is just low precedence ^^ | ||
grondilu | arnsholt: don't know. gmp, ssl, X11... | ||
Kristien | If you put a block of Perl 6 code in a regex can you detect whether it is backtracking? | 21:16 | |
arnsholt | grondilu: One word: Windows. =) | ||
FROGGS | grondilu: on wind... yeah | ||
grondilu | yeah I forgot about that indeed. | ||
grondilu tends to forget not everyone uses *nix | |||
TimToady | Kristien: blocks are only executed on forward, but you can tell if you revisit a spot going forward | ||
21:17
[Sno] joined
|
|||
Kristien | Ah right. | 21:17 | |
arnsholt | The existence of jnthn keeps me honest in that regard =) | ||
Kristien | Sounds a little cumbersome though. | ||
e.g. when parsing context-sensitive grammars | |||
FROGGS | grondilu: and the good and important thing about nativecall is: it just works even on that forgotten platform :o) | ||
TimToady | if you want to remember something, it should be stored in the cursor, and then it automatically goes away when the cursor is discarded; therefore throwing things away explicitly is a code smell | 21:18 | |
Kristien | Oh cool. | 21:19 | |
21:19
rjbs left
|
|||
skids | m: role A { my @a := Any }; class B does A { } # LTA error | 21:19 | |
camelia | rakudo-moar 9bf52e: OUTPUT«===SORRY!===Could not instantiate role 'A':Type check failed in binding; expected 'Positional' but got 'Any'» | ||
skids | Oh, that's different. Still not TA | 21:20 | |
21:20
coffee` left
|
|||
skids | (As no line number) | 21:20 | |
grondilu | nativecall might be an extremely useful module in the future. Has it been considered to put it in the core? | 21:21 | |
lizmat | grondilu: it is now | ||
TimToady | it's already been decided to do that | ||
grondilu | I mean in a way we don't have to write 'use NativeCall;' | ||
lizmat | you just have to activate it, with "use NativeCall" | ||
Kristien | lol | ||
lizmat | ah, hmmm.... | ||
TimToady | we might get some relief on that, if it makes sense | 21:22 | |
especially if we introduce some kind of 'use native "mylib";' notation | |||
Mouq votes for keeping the use; it's a case where I definitely want to know if there's external dependencies upfront | |||
TimToady: In that case, then I'd be fine with core | 21:23 | ||
grondilu | TimToady: what about something like: use <mylib>, :C ? | ||
(I mean sending :C as an option to "use") | |||
FROGGS | that looks sad | ||
TimToady | it does :) | ||
grondilu | yeah but that could be generalized to other languages | 21:24 | |
FROGGS | we have :from<C> for that perhaps | ||
arnsholt | I'm not sure how we'd implement 'use native "mylib"' though | ||
FROGGS | arnsholt: me neither | ||
grondilu | oh, yeah, that works too | ||
arnsholt | Getting the list of symbols isn't completely impossible, but figuring out the signatures is a different matter | ||
grondilu | we may require headers | 21:25 | |
TimToady | was merely suggesting to factor out the 'is native "mylib"' that is just boilerplate | ||
arnsholt | Oh, right! | ||
That's a lot less impossible, yeah! | |||
TimToady | you guys keep sayin' how impressive the interface is, and I keep seeing all this violation of DRY | ||
FROGGS | TimToady: how do I declare a native sub and a regular sub then, when I leave off the trait? | ||
grondilu | DRY? | 21:26 | |
FROGGS | do I get a new keyword? | ||
moritz | grondilu: Don't Repeat Yourself | ||
FROGGS | you can't say that again | ||
moritz | my &n = curry_native('sqlite3'); n sub foo() { ... } | 21:27 | |
geekosaur | heh | ||
TimToady | possibly it's a different declarator, or possibly it scopes somehow over the declarations it's meant to allow | ||
21:27
kjs_ left
|
|||
Mouq | Could it just be that "is native "mylib"" does 'BEGIN $*NATIVE_LIB = "mylib"' and then subs with the "is native" trait and no arguments to it are assumed to be of $*NATIVE_LIB? | 21:28 | |
grondilu | having to redeclare in Perl 6 is annoying anyway. | ||
FROGGS | Mouq: that's only half awesome :o) | ||
TimToady | well, it'd be an improvement | ||
moritz | grondilu: I think it's awesome, it lets you 'git grep' for the Perl 6 symbols | ||
grondilu | translating the C header to a Perl declaration is a job for a machine, not a human. | 21:29 | |
FROGGS | and you never just call into C, you always have to abstract a little | ||
moritz | grondilu: I have no qualms with generated declarations, as long as there *are* declarations | 21:30 | |
TimToady | when a C api gives you a string pointer and a length, you really, really want to combine those into a Str or Buf | ||
21:31
Ugator left
|
|||
TimToady | same for arrays | 21:31 | |
C's pointer/array confusion is one of the all-time great language design botches | |||
dalek | kudo/nom: 9add92b | lizmat++ | docs/ChangeLog: Add Str.subst being 12x as fast |
||
grondilu | on the other hand, I can understand that the Perl declaration must exist somewhere otherwise it's not easy to infer the perl interface from the C one. | ||
FROGGS | *g* | ||
grondilu | wow 12x improvement on a method as important as Str.subst is quite something. | 21:33 | |
FROGGS | aye | 21:34 | |
lizmat++ | |||
21:38
xfix left
|
|||
grondilu | still, being able to use a library of a library from an other language (mainly C) in the same manner as we use a module in Perl 6 would be great. Having the C header being automatically translated in NativeCall Perl 6 declarations would nice, but it'd be even nicer if it was all mostly transparent. | 21:38 | |
lizmat | grondilu: alas, it does not affect s:g/// | ||
for that I need to mingle subst-mutate | |||
grondilu | ok | ||
lizmat | and a way to indicate that it's called in sink context | ||
m: my $a = "foof"; say $a ~~ s:g/f/bar/; say $a | 21:39 | ||
camelia | rakudo-moar c81abe: OUTPUT«「f」 「f」baroobar» | ||
lizmat | so we can do it without creating match objects | ||
arnsholt | TimToady: Yeah, that's really annoying. But I don't think we're able to abstract that away in an FFI API, as I suspect it's basically halting-problem complete to figure out when pointer+int is "one" argument and when it isn't | ||
lizmat | grondilu: that would probably be an Optimizer.nqp job | ||
arnsholt | The FFI plumbing has to expose it as it is, and then it's up to the wrapper author to provide a better API to the users of the library | 21:40 | |
lizmat | to find any calls to subst-mutate, and check for :g and sink context, then pass an extra named to subst-mutate | ||
dalek | ast: deaf607 | usev6++ | S03-operators/misc.t: Add test for RT #122654 |
||
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122654 | ||
grondilu notices that importing from an other language is already specced in S11 | |||
lizmat | for which we could then do a separate multi | ||
PSA: do we have a suggestion for a release name ?? | 21:41 | ||
21:41
diana_olhovik_ left
|
|||
lizmat | PSA: possibly a very good one, as it will be the last that many parrot users will see for a long time? | 21:42 | |
grondilu | in S11 there is a mention of 'use somemodule:from<perl5>'. Is the idea supposed to be limited to perl or can we imagine 'use somelib:from<C>;'? | ||
lizmat | grondilu: should be expandable | ||
main problem atm is that it requires meddling with nqp code | |||
I *really* like to see that lifted to P6 level | |||
so that it can be modularized / pandaized | 21:43 | ||
21:43
rurban left
|
|||
lizmat | on that note, I'm going to make it an early night for a change | 21:43 | |
grondilu | I would have expected the main problem to be the generation of the P6 declaration from the headers, but you surely know better so ok | ||
lizmat | sleep& | ||
moritz | lizmat: maybe use a city as release name where parrots are observed in the wild? | 21:44 | |
21:45
rurban1 left
|
|||
skids | lizmat: "prolonged squawk"? Or something else from the python sketch I guess. | 21:46 | |
Kristien | I teach parrots to swear in Dutch. | ||
moritz | skids: our release names are names of perlmonger groups, so usually city names | 21:47 | |
skids | Well, the only geographic reference in the skit is "pining for the fjords" | 21:51 | |
21:52
gfldex left
|
|||
masak .oO( NorwegianBlue.pm ) | 21:55 | ||
21:56
rjbs joined,
rjbs left,
rjbs joined
|
|||
FROGGS | ohh dear | 21:59 | |
skids | .oO(Unless there's a city homonymous with "Praline") |
22:00 | |
22:00
Kristien left
22:03
kjs_ joined
22:05
FROGGS_ joined
22:06
Sqirrel_ left
22:07
FROGGS_ left,
skids left
|
|||
dalek | c: fac770f | moritz++ | lib/ (2 files): grammars: document action methods |
22:07 | |
22:08
FROGGS left
|
|||
moritz | beware of typos in the patch above; either my fingers are too tired, or my keyboard has started eating/withholding keystrokes | 22:08 | |
masak | nine_: wow, so much disinformation in that lwn thread. | 22:10 | |
("Perl doesn't know Booleans as a data type", "how can anyone possibly short-circuit xor?") | |||
jercos | ...how *do* you short-circuit xor? | 22:11 | |
masak | maybe doc.perl6.org/language/operators#infix_%5E%5E should have an extra caveat snapping people out of their assumption about how infix:<^^> behaves. | 22:12 | |
something like "Note that the semantics of this operator may not be what you assume: infix:<^^> flips to truthy after finding the first true value, and then flips to Nil *forever* after the second, no matter how many more truthy values there are." | 22:13 | ||
22:13
kjs_ left
|
|||
masak | jercos: I believe that also answers your question. | 22:13 | |
jercos | Yes it does. | 22:14 | |
masak | as well as a lot of confusion in that lwn thread. | ||
jercos | The answer is "when you have more than two values", because it actually is exclusive or, not boolean parity. | ||
masak | right. | ||
jercos | Which is clever and useful, but probably unintuitive for a great many people. | 22:15 | |
masak | it does make sense, insofar as the actual behavior is the one that's harder to emulate in some other way. (but still often useful.) | ||
right. | |||
jercos | Oh well, can't make an omlette without breaking a few basic boolean assumptions | ||
masak | I confess to not understanding why it returns `Nil`, not `False`. | 22:16 | |
but I remember there being discussions (and some back-and-forth) on the matter. | |||
moritz | masak: patch doc.perl6.org? | ||
jercos | That seems to match the pattern of returning the first true value rather than just `True` | 22:17 | |
masak | moritz: on it. | ||
moritz | ++masak | ||
jercos | Or rather, returning *the* true value. | 22:18 | |
22:18
betterwo1ld left
|
|||
masak | oh, right. Pod. | 22:18 | |
22:18
betterworld joined
|
|||
masak decides to not be fancy with formatting :) | 22:18 | ||
grondilu | m: say 0 || 0 | ||
camelia | rakudo-moar c81abe: OUTPUT«0» | ||
grondilu | ^ that does not return "Nil" | 22:19 | |
jercos | m: say 0 ^^ False | ||
camelia | rakudo-moar c81abe: OUTPUT«False» | ||
jercos | m: say True ^^ True | ||
camelia | rakudo-moar c81abe: OUTPUT«Nil» | ||
jercos | So I guess it passes through the last value if none match, but Nil if too many match. | 22:20 | |
grondilu | &<^^> does not always use one of his argument for its return value. It sometimes needs to make one. Thus it should return a true Boolean constant. | ||
imho | 22:21 | ||
dalek | c: e64be53 | masak++ | lib/Language/operators.pod: Insert caveat about infix:<^^> Feel free to sharpen the wording further. |
||
masak | what dalek said. | ||
grondilu | (on the other hand &<||> also needs to make a return value sometimes, so dunno) | 22:22 | |
there seems to be an inconsistency here anyway. | |||
masak | grondilu: whentimes? | 22:23 | |
jercos | When does || make a value? | ||
masak | both &[&&] and &[||] are monoidal operations, with obvious units (True and False, respectively) | ||
grondilu | oh sorry | ||
masak | &[^^] is not so clear-cut. | ||
jercos | so like... | ||
m: say [||] () | |||
camelia | rakudo-moar c81abe: OUTPUT«False» | ||
masak | m: say [^^ | ||
camelia | rakudo-moar c81abe: OUTPUT«===SORRY!=== Error while compiling /tmp/63toQ4cksrPreceding context expects a term, but found infix ^^ insteadat /tmp/63toQ4cksr:1------> say [^^⏏<EOL>» | ||
masak | m: say [^^]() | 22:24 | |
camelia | rakudo-moar c81abe: OUTPUT«False» | ||
masak | makes sense, I guess. | ||
grondilu | I thought it had to create a False when returning False, but I was dead wrong. | ||
masak | but if that one can be False, I don't really see why the too-many case can't be, too. | ||
jercos | Well, it does pass specific information about the reason it's false through. | ||
masak | pfeh. | 22:25 | |
jercos | But then it seems like there should be another boolean-false value to indicate a generated falsehood, rather than re-using Nil | ||
masak | that sounds like a three-valued logic trap to me. | ||
jercos | yeh, true, false, and FILE_NOT_FOUND | ||
22:25
Kristien joined
|
|||
masak | "we must pass along extra information about *why* it failed!" -- no. ask a more specific question. | 22:26 | |
jercos | Yeah I'm starting to feel like Nil might even be Wrong. | ||
masak | if that's *really* important (and I don't think it is), then something like `False but "you can't handle the Truth!"` could work instead of Nil. | 22:27 | |
grondilu wonders how to write &[^^](*@a) and thinks of multi &infix:<^^>(*@a) { my $a = shift @a; $a && none(@a) or &infix:<^^>(@a) } | 22:35 | ||
22:41
kjs_ joined
|
|||
grondilu realizes that's wrong | 22:43 | ||
flussence | m: unless fail('oh noes') -> $why { say $why } | ||
camelia | rakudo-moar 9add92: OUTPUT«Unhandled exception: oh noes at <unknown>:1 (/home/camelia/rakudo-inst-1/languages/perl6/runtime/CORE.setting.moarvm:throw:4294967295) from src/gen/m-CORE.setting:14862 (/home/camelia/rakudo-inst-1/languages/perl6/runtime/CORE.setting.moarvm:sink…» | ||
flussence | m: unless fail('oh noes') -> $why { say $why.perl } | ||
camelia | rakudo-moar 9add92: OUTPUT«Unhandled exception: oh noes at <unknown>:1 (/home/camelia/rakudo-inst-1/languages/perl6/runtime/CORE.setting.moarvm:throw:4294967295) from src/gen/m-CORE.setting:14862 (/home/camelia/rakudo-inst-1/languages/perl6/runtime/CORE.setting.moarvm:sink…» | ||
flussence | I thought failures behaved themselves in a boolean context... | 22:44 | |
grondilu | .oO( multi &infix:<^^>(*@a) { my $a = shift @a; $a && none(@a) or !$a && &infix:<^^>(@a) } |
||
) | |||
Kristien | funfact: sqrt in C is an impure function | 22:48 | |
grondilu | why? | ||
flussence | it causes an fpu context switch as a side effect | ||
Kristien | errno | 22:49 | |
:P | |||
masak wasn't aware that C had the concept of "pure function" | |||
Kristien | the concept is language-agnostic | ||
grondilu | that why it's a concept :) | ||
Kristien | Plottwist: errno actually means "err, no" as in "err, no you're not gonna get the answer." | 22:50 | |
grondilu | so flussence's answer is not the correct one? | 22:52 | |
flussence | depends if you have an fpu or not | ||
Kristien | Is MoarVM embeddable? | 22:54 | |
or Rakudo. I still don't know the difference. | |||
and NQP is incredibly abstract to me | 22:55 | ||
hoelzro | Kristien: I don't see why not | 22:57 | |
I think that's how nine_ did Inline::Perl6 | |||
I just think there's no real documentation on how to do it | |||
Kristien | NQP is "a lightweight Perl 6-like environment" but I don't understand what an environment is. | 22:58 | |
hoelzro: neat | 22:59 | ||
hoelzro | so, NQP is a Perl 6 like language | ||
it's "not quite" Perl 6 | |||
it's enough Perl 6 to implement Perl 6 | |||
if you wanted to embed Rakudo, you could embed MoarVM, and tell it where to find the bytecode for NQP and Rakudo | 23:00 | ||
23:00
tardisx joined
|
|||
Kristien | OK. | 23:02 | |
23:04
kjs_ left
23:06
grondilu left
23:07
wicope left
|
|||
Mouq | Kristien: So, as I understand, MoarVM is written in C, NQP is... it's complicated, but there's an implementation of it in C on MoarVM, and Rakudo is written in NQP | 23:07 | |
vendethiel | somehow :P | 23:09 | |
Mouq | NQP is bootstrapping, so once you have an implementation on a backend, you can use the NQP implementation of NQP thereon, so NQP development is actually mostly in NQP | ||
vendethiel | nqp's grammar is written in perl6 yo | ||
Mouq | vendethiel: Not quite :P | 23:10 | |
vendethiel | then C's grammar ? | ||
.oO( parse ALL the languages, I guess ) |
23:11 | ||
23:11
virtualsue left
|
|||
Mouq | IDK how adding a new backend works, since we use an existing backend so that we DON'T have to re-write NQP in another language from the ground-up, but I don't know how that process works | 23:12 | |
s/language/vm|backend|whatever | |||
I could be wrong about a lot of this, though | 23:14 | ||
masak | general question to #perl6: so, Qtrees represent the program source text on an appropriate level. macros are special in that they let you author one (source) Qtree but the compiler generates another (target) Qtree for the program to run. when we introspect Qtrees (for example, inside of macros), what should we expect to see: source Qtrees or target Qtrees? discuss. | ||
(I don't know the answer. genuinely curious to know people's opinions and reasons.) | 23:15 | ||
Kristien | I am more confused than ever. | ||
vendethiel | target | ||
if I want to debug stuff, I need to know what the compiler sees | |||
masak | vendethiel: that was my preferred default, too. | ||
vendethiel: I just don't feel I have a theoretical basis for that preference. :) | 23:16 | ||
timotimo | ... today has been a bit more draining than the usual day ... | ||
vendethiel | masak: I think we're at the "usability" door here: ) | ||
Mouq | Kristien: Well, none of what I said is actually important in using Perl 6, so feel free to disregard :P | ||
flussence | would it make things overly complicated to make that situation depend on when you introspect them? | 23:17 | |
masak | vendethiel: we're most certainly at the "usability" door. | ||
Kristien | I don't see any advantages over stack based VM vs register based VM other than that stack based bytecode tends to be smaller. | 23:18 | |
Mouq | masak: when does the difference arise? | ||
Kristien | Stack-based code is harder to generate, harder to analyse and harder to interpret. | ||
masak | Mouq: ok, say I have a `macro foo($x)`. I call it in code: `foo(42)`. the source Qtree is that very call. the target Qtree is whatever the macro generates/returns. | 23:19 | |
Mouq | hugme hug timotimo | ||
hugme hugs timotimo | |||
timotimo | ^- i know this, having put some time into generating jvm bytecode from rakudo/nqp | ||
masak | Mouq: the difference arises when a (macro) user introspects the Qtree that we already have in a program: does she see macro calls, or their results? | ||
flussence is trying to think of relevant prior art in web languages, but they don't have any concept of "running while compiling" that isn't document.write... bleh | 23:20 | ||
Mouq | Well, isn't the theoretical basis being that it's what the Qtree is at that point? It seems like there would be a different stage at which the user could get the source Qtree | 23:21 | |
Kristien | bye | 23:22 | |
masak | the source Qtree sort of only exists to get passed into the macro. | ||
23:22
Kristien left
|
|||
Mouq | o/ Kristien! | 23:22 | |
masak | it's possible to link it up with the target Qtree, I guess, so that an intersted introspector could get at it. | ||
but maybe that's unnecessary, or memory-leak-y, or something. | |||
could get horrible in the case of recursive macros. | 23:23 | ||
Mouq | m: foo 1, 2; macro foo ($, $) {} | ||
camelia | ( no output ) | ||
masak | don't do that. | ||
there's an RT ticket about it not dying a horrible death, like it should. | |||
23:23
BenGoldberg joined
23:24
kst` joined
|
|||
Mouq | masak: Why should it? I mean, I'm personally surprised it works at all | 23:24 | |
masak | it shouldn't. | ||
Mouq | m: foo my $a, 2; macro foo ($x, $y) { quasi { {{{$a}}} = {{{$y}}} } } | 23:25 | |
camelia | rakudo-moar 9add92: OUTPUT«Type check failed in unquote evaluation; expected 'AST' but got 'Any' in method evaluate_unquotes at src/gen/m-CORE.setting:17912 in method incarnate at src/gen/m-CORE.setting:17903 in macro foo at /tmp/nvQJTdCLP8:1 in block <unit> at /tmp/…» | ||
Mouq | Ah | ||
masak | Mouq: rt.perl.org/Ticket/Display.html?id=123419 | ||
23:26
kst` left
|
|||
Mouq | m: foo my $a, 2; BEGIN macro foo ($x, $y) { quasi { {{{$a}}} = {{{$y}}} } } | 23:26 | |
camelia | rakudo-moar 9add92: OUTPUT«===SORRY!===Unknown QAST node type NQPMu» | ||
masak | doesn't help. | 23:27 | |
Mouq | masak: So no mutually recursive macros then? :P | ||
masak | macros are *called* at BEGIN time. | ||
correct, no mutually recursive macros. | |||
no self-recursive macros either, at least not in the obvious way. | 23:28 | ||
m: macro bob() { bob() }; say "alive" | |||
camelia | rakudo-moar 9add92: OUTPUT«alive» | ||
Mouq | They are? My understanding was BEGIN == parse, CHECK == actions. Am I wrong there? | ||
masak | hrm. | ||
Mouq: BEGIN == parse, for sure. | |||
Mouq | m: macro bob() { bob() }; bob | ||
camelia | rakudo-moar 9add92: OUTPUT«Memory allocation failed; could not allocate 154272 bytes» | ||
Mouq | Heh | ||
masak | not so sure about CHECK == actions. more like "end of compunit". | ||
oh, right. call the macro. thanks. | 23:29 | ||
23:41
skids joined
23:47
mohij left
|