»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
00:00 benabik left 00:12 Psyche^_ left 00:13 gshank_ left 00:14 gshank joined 00:17 Psyche^ joined 00:18 dana joined 00:19 dana is now known as Guest6057 00:21 btyler joined 00:23 nwc10 left, labster left, danaj left, rafl left 00:27 nwc10 joined 00:44 xinming left 00:45 xinming joined 00:52 pecastro left, pecastro joined, benabik joined
jercos r: Blob.new().subbuf(-1) 00:54
camelia rakudo 776f18: OUTPUT«From argument to subbuf out of range. Is: -1, should be in 0..0; use *-1 if you want to index relative to the end␤current instr.: 'throw' pc 408647 (src/gen/CORE.setting.pir:172206) (src/gen/CORE.setting:10642)␤called from Sub 'sink' pc 444733 (src/gen/CORE.set…»
jercos Guess that's already fixed since star. Coolio.
01:05 hlin_laptop joined 01:16 pecastro left, pecastro joined 01:23 xinming left 01:25 xinming joined
flussence r: 'a'.encode('utf16').decode 01:48
camelia rakudo 776f18: OUTPUT«VMArray: index out of bounds␤ in method decode at src/gen/CORE.setting:5379␤ in block at /tmp/KDctl_KUwm:1␤␤»
flussence star: 'a'.encode('utf16').decode
camelia ( no output )
02:00 xinming left 02:02 xinming joined 02:08 xenoterracide joined
diakopter star: 'a'.encode('utf16').decode.say 02:13
camelia star 2013.08: OUTPUT«a␤»
diakopter star: ''.encode('utf16').decode.say 02:14
camelia star 2013.08: OUTPUT«Zero-byte allocation not allowed in mem_sys_allocateParrot VM: PANIC: Out of mem!␤C file src/gc/alloc_memory.c, line 70␤Parrot file (not available), line (not available)␤␤We highly suggest you notify the Parrot team if you have not been working on␤Parrot. Use p…»
diakopter hee
02:17 labster joined, rafl joined, hoelzro joined
benabik uhm. out of men with a zero byte allocation? 02:18
Oh, probably returning NULL which is getting interpreted as failure. 02:19
02:19 odoacre joined 02:20 Mouq joined 02:23 benabik left 02:42 xinming_ joined 02:45 xinming left 02:47 xinming joined, xinming_ left 03:30 strider42 joined 03:49 logie joined 03:59 xinming left, preflex_ joined, ChanServ sets mode: +v preflex_, preflex left 04:00 preflex_ is now known as preflex, xinming joined 04:01 strider42 left
Mouq evalbot control restart 04:04
04:04 camelia left, camelia joined
Mouq evalbot control version 04:05
camelia This is evalbot revision b2d84dc
04:05 ChanServ sets mode: +v camelia 04:09 xenoterracide left 04:14 logie left 04:41 Teratogen left 04:49 Guest60186 left 04:54 odoacre left 04:57 fridim__ left 05:04 btyler left 05:16 pjcj left 05:20 logie joined
BenGoldberg n: 'a'.encode('utf8').decode.say 05:21
camelia niecza v24-95-ga6d4c5f: OUTPUT«Unhandled exception: System.ArgumentException: Encoding name 'utf8' not supported␤Parameter name: name␤ at System.Text.Encoding.GetEncoding (System.String name) [0x00000] in <filename unknown>:0 ␤ at Builtins.encode (System.String inp, System.String …»
05:25 logie left 05:26 BenGoldberg left 05:28 SamuraiJack joined, [Sno] left 05:31 [Sno] joined 05:43 PacoAir joined 05:48 PacoAir left 05:55 xinming left, xinming joined 05:59 salv0 left 06:00 salv0 joined 06:04 panchiniak_ joined 06:07 daxim joined 06:08 pjcj joined 06:12 odoacre joined 06:16 dayangkun joined
diakopter
.oO( .. you try to be helpful on parrot-dev... give 'em an inch and they expect a universe-diameter
06:19
)
06:27 Mouq left 06:31 FROGGS joined 06:39 sqirrel joined 06:44 pjcj left 06:56 denis_boyun joined 06:58 darutoko joined 07:00 dmol joined 07:05 kaleem joined 07:07 zakharyas joined 07:08 denis_boyun left 07:14 slavik left 07:19 domidumont joined 07:20 pjcj joined 07:44 xinming left 07:46 xinming joined 07:52 fhelmberger joined 08:08 iSlug joined 08:13 iSlug left 08:19 fhelmberger left 08:21 donaldh joined 08:22 labster left 08:23 dmol left, dmol joined
lizmat good *, #perl6! 08:28
08:28 iSlug joined 08:29 sqirrel left
moritz \o * 08:29
hoelzro ahoy lizmat
lizmat o/ hoelzro, moritz!
08:31 sqirrel joined 08:39 panchiniak_ left
FROGGS o/ 08:45
08:52 dakkar joined 08:54 cognominal left, cognominal joined
masak \o 08:57
08:58 zakharyas left 09:08 salv0 left 09:09 salv0 joined
dalek p/encode-decode-test: 9faca2b | (Arne Skjærholt)++ | t/nqp/82-decode.t:
Add a simple test file exercising encoding and decoding strings.
09:13
p/encode-decode-test: 6509a62 | (Arne Skjærholt)++ | src/vm/parrot/ops/nqp.ops:
Fix segfault when decoding a zero-length buffer.
arnsholt Could someone with a JVM-enabled NQP do me a favour and make sure the new test in that branch works properly on JVM?
My work machine only has Java 6, so I can't build NQP/JVM here 09:14
09:15 fhelmberger joined 09:16 fhelmberger left, zakharyas joined, fhelmberger joined
FROGGS arnsholt++ # that segfault fix should help me passing a few v5 tests \o/ 09:17
09:17 ksh left
FROGGS arnsholt: and yes, I can test that 09:17
arnsholt Cheers! 09:23
FROGGS arnsholt: passes on nqp-jvm :o) 09:24
arnsholt Brilliant 09:25
Then I'll just merge it into master
dalek p: 9faca2b | (Arne Skjærholt)++ | t/nqp/82-decode.t:
Add a simple test file exercising encoding and decoding strings.
09:26
p: 6509a62 | (Arne Skjærholt)++ | src/vm/parrot/ops/nqp.ops:
Fix segfault when decoding a zero-length buffer.
09:31 chayin joined
moritz still passes :-) 09:32
arnsholt Excellent
r: 'a'.encode('utf16').decode
camelia rakudo 776f18: OUTPUT«VMArray: index out of bounds␤ in method decode at src/gen/CORE.setting:5379␤ in block at /tmp/i3BBpdQqAv:1␤␤»
arnsholt Does that happen on JVM too, or only Parrot? 09:33
moritz compiles a new rakudo-jvm to test it 09:35
~/p6/jvm-rakudo$ ./perl6 09:40
> 'a'.encode('utf16').decode
a
arnsholt Cheers 09:41
09:42 dayangkun left
lizmat is there an equivalent of p5's my $coderef = $object->can('method') ? 09:45
in p6 ?
tadzik r: my $x = Int.can('floor'); say $x.perl 09:46
camelia rakudo 776f18: OUTPUT«$(method floor(Int:D : Mu *%_) { ... }, method floor(Cool : Mu *%_) { ... })␤»
09:46 kay joined
moritz r: my $cr = 1.2.can('Int')[0]; say $cr(42.2) 09:46
camelia rakudo 776f18: OUTPUT«42␤»
tadzik on second thoughts, Int.floor probably doesn't make much sense :)
lizmat cool
09:46 kay is now known as Guest595
moritz tadzik: it's just Cool.Int, which is identity on Int 09:46
tadzik yep 09:47
moritz or maybe Numeric.Int
lizmat r: class A {}; my $a= A.can("new"); say $a() # am I doing something wrong ? 09:49
camelia rakudo 776f18: OUTPUT«No such method 'postcircumfix:<( )>' for invocant of type 'Parcel'␤ in block at /tmp/ByJvvSTIzC:1␤␤»
lizmat r: my %h=a=>1; my $e = %h.can("exists"); say $e("a") # what I really want to do 09:53
camelia rakudo 776f18: OUTPUT«No such method 'postcircumfix:<( )>' for invocant of type 'Parcel'␤ in block at /tmp/bD4PBIajuN:1␤␤»
lizmat ah, missed the [0] I guess
arnsholt Yeah, from moritz's example it looks like can returns the whole candidate list 09:54
lizmat r: my %h=a=>1; my $e = %h.can("exists")[0]; say $e(%h,"a") # the proper wat
camelia rakudo 776f18: OUTPUT«True␤»
dalek p: 601b8e9 | (Arne Skjærholt)++ | / (2 files):
Fix multi-byte decoding bug in Parrot backend.
09:55 pernatiy left
arnsholt There. That fixes the UTF-16 decode bug. 09:55
moritz arnsholt++ 09:56
FROGGS cool! 09:57
09:58 Rix joined
arnsholt It turns out that when you're iterating over an array whose elements are 16-bits wide, doing "for(int i = 0; i < bytecount; i++) { ... }" is wrong =) 10:00
FROGGS *lol* 10:15
10:15 hlin_laptop left 10:22 jfried left 10:26 colomon left 10:35 colomon joined, xinming left 10:36 denis_boyun joined 10:37 dmol left, xinming joined 10:43 risou_awy is now known as risou
dalek kudo/method2sub: 2030f62 | (Elizabeth Mattijsen)++ | src/core/ (3 files):
Converted SLICE_MORE to use slurpy hash + adapted multi candidates accordingly
10:43
lizmat still needs some more tweaks though, but the bulk is done
moritz lizmat++ 10:54
11:06 pernatiy joined
lizmat hmmm… seems the .can trick doesn't work in SLICE_MORE 11:08
flussence r: say ~('arnsholt++'.encode('utf16').decode xx 3) 11:09
camelia rakudo 776f18: OUTPUT«VMArray: index out of bounds␤ in method decode at src/gen/CORE.setting:5379␤ in block at /tmp/QiJDel_p9Q:1␤␤»
flussence heh, guess that hasn't been updated yet...
arnsholt I didn't bump NQP_REVISION in Rakudo 11:10
11:11 hummeleB1 joined 11:12 Ulti left
arnsholt Heh. And now I realize I'm not actually sure what format NQP_REVISION expects 11:13
moritz arnsholt: git describe 11:14
arnsholt Cheers! 11:16
dalek kudo/nom: c7c558f | (Arne Skjærholt)++ | tools/build/NQP_REVISION:
Bump NQP_REVISION.
11:17
11:23 sqirrel left
colomon moritz++ arnsholt++ 11:23
11:25 iSlug left
arnsholt Reading the RaNIW notes is giving me too many dangerous ideas... 11:33
11:33 dmol joined 11:34 sqirrel joined
lizmat arnsholt: it is not mandatory :-) 11:36
dalek kudo/method2sub: b1f8991 | (Elizabeth Mattijsen)++ | src/core/Any.pm:
Fix p / k mixup
11:38
11:47 iSlug joined
JimmyZ RaNIW notes? 11:48
where is it 11:49
nwc10 JimmyZ: edumentab.github.io/rakudo-and-nqp-...ls-course/
is that what you meant? the PDFs from the course
lizmat and excercises, should also be there 11:50
JimmyZ oh the course. it's the notes? 11:51
lizmat yes
11:52 dayangkun joined
JimmyZ I tought I missed something 11:52
*thought
daxim rakudo: 'stringly typed' 11:57
camelia ( no output )
11:58 darutoko left 12:02 darutoko joined
lizmat nwc10: woolfy just FDI 12:09
or should I say JFdidI 12:10
nwc10 did what?
lizmat www.kickstarter.com/projects/dansha...programmer 12:11
woolfy :-)
nwc10 I did think you meant that, but the context was #london.pm, not here 12:12
woolfy ncw10: sent you an email too
yeah, crosscontamination, boo!
lizmat crosspollination never hurts :-)
nwc10 got it. Glad that the information was delivered in a timely fashion
dalek kudo/method2sub: 0aba457 | (Elizabeth Mattijsen)++ | src/core/Any.pm:
It appears we need to flatten multiples before mapping
12:15
lizmat running spectest now, keeping fingers crossed
colomon lizmat++ # robot turtles -- how did I not hear of this before now? 12:20
nwc10 colomon: I was also wondering this 12:21
FROGGS sqirrel: ping
sqirrel: www.kickstarter.com/projects/dansha...programmer
12:23 skids left
FROGGS lizmat: do you see a difference in execution times already? 12:24
lizmat not sure yet, needing fix some test regressions first 12:25
FROGGS: also: I think the point of this exercise was to make sure an optimizer *could* optimize {} and [] access, not that there is already an optimizer doing this 12:26
or am I wrong ?
lizmat hopes to be wrong
sqirrel froggs: wow thats a cool game o.o need to have it!! maybe we even let the kids play with it ...maybe 12:27
timotimo i just realised that the optimisation for not initialising lexicals in nqp twice in a row has to learn about branches of execution as to not be completely conservative
but i suppose every little bit helps?
timotimo should study some ASTs 12:28
huh. where did that idea even come from? the simplest tests show that it's already sufficiently clever 12:32
i should have put a test case into the questhub quest.
oh, that's only for SVal, eh?
12:39 ajr joined
FROGGS lizmat: I don't know if these subs would get already inlined or not :/ 12:39
12:39 ajr is now known as Guest58212
FROGGS sqirrel: can you order it? 12:39
12:40 Guest58212 is now known as ajr_
sqirrel froggs: which pack? 12:42
nwc10 sqirrel: read london.pm.org/pipermail/london.pm/W...24426.html for calculations on pricing. It ends up being quite a bit cheaper if you can spilt a 3 pack, and
dalek kudo/method2sub: a5511ea | (Elizabeth Mattijsen)++ | src/core/Any.pm:
Fix problem with :!v and :!k on multiples
nwc10 er, and. 12:43
12:44 SmokeMac_ left
lizmat r: my %h; %h<a>:v = 3; say %h # currently works 12:53
camelia rakudo c7c558: OUTPUT«("a" => 3).hash␤»
12:53 dmol left
lizmat r: my %h; %h<a b c>:v = 3; say %h # currently silently doesn't 12:53
camelia rakudo c7c558: OUTPUT«().hash␤»
lizmat TimToady: would it make sense to make anything {} or [] adverbed with something, just a right value ? 12:54
12:56 Grimnir_ joined
lizmat just realizes that %h<a>:v only works by the virtue that the current implementation doesn't have a candidate for single key :v 12:58
lizmat adapts spectests
13:04 darutoko left, SamuraiJack left
dalek kudo/method2sub: 3e4d3e8 | (Elizabeth Mattijsen)++ | src/core/Hash.pm:
Remove {}.delete candidates for multiple keys, as they are no longer specced
13:07
lizmat please use %h<a b c>:delete instead
moritz wait, %h<a b c>:delete isn't "multiple keys"? 13:08
lizmat moritz: this was about %h.delete( <a b c> )
GlitchMr .delete is internal.
:delete is not.
moritz ah
ok
13:10 benabik joined
lizmat 1. we all agree that there are objects that can do both [] and {}, right? 13:12
because we have "at_pos" for [] access and "at_key" for {} access
timotimo yeah, like qast nodes
FROGGS I propose ⁝delete for ex- and internal use :o) 13:13
lizmat then why do we only have .delete and .exists, instead of .delete_pos / .delete_key and .exists_pos / .delete_pos ?
moritz just use DELETE for internal use
lizmat: I'm in favor of AT_POS/DELETE_POS/EXISTS_POS and the same for _KEY 13:14
lizmat the fact that [] will now also support :delete and :exists properly, exposes this
in full capitals ?
moritz yes
and spec that postcircumfix:<[ ]> and { } dispatch to those
lizmat and annotate .delete, .exists, .at_pos, .at_key as "is DEPRECATED" ? 13:15
FROGGS specced internal methods?
lizmat .delete / .exists are currently specced
FROGGS ahh
13:15 xenoterracide joined
colomon any obvious reasons why has $!auto-continue should be read-only? 13:17
annot modify an immutable value
in block at lib/Grammar/Debugger.pm:77
13:19 iSlug left 13:23 hummeleB1 left 13:25 denis_boyun left
colomon .seen jnthn 13:29
yoleaux I saw jnthn 19 Sep 2013 17:53Z in #perl6: <jnthn> bbl
lizmat jnthn is on holiday, please .tell him anything important for later perusal 13:31
13:31 PacoAir joined
colomon .tell jnthn Grammar::Debugger seems to be completely broken. :( 13:32
yoleaux colomon: I'll pass your message to jnthn.
moritz colomon: open a ticket on github?
13:32 pmurias joined
colomon moritz: sure 13:32
hoelzro when is jnthn back?
lizmat I seem to remember Wed 13:33
colomon moritz: …. jnthn already noted the problem in the issues three months ago. :( 13:36
masak hoelzro: this evening, or at least tomorrow. 13:37
hoelzro ok, cool
I'm banging my head on the desk about this JVM bug =/ 13:38
13:38 kaare_ joined
masak .oO( careful with that desk! ) 13:42
dalek kudo/method2sub: 1f7c7a7 | (Elizabeth Mattijsen)++ | src/core/Any.pm:
Fix missing :!delete for one and more
13:43
kudo/method2sub: 1791775 | (Elizabeth Mattijsen)++ | src/core/array_slice.pm:
Fix copy'n'pasted typo
13:46 donaldh left, mcglk left 13:47 bluescreen10 joined 13:52 skids joined 13:53 btyler joined
dalek kudo/method2sub: dbc8273 | (Elizabeth Mattijsen)++ | src/core/Any.pm:
Make object description in error also show the name of the object if possible
13:56
lizmat running final spectest before merging
FROGGS hoelzro: which jvm bug exactly? 13:57
13:58 thou joined
hoelzro FROGGS: rt.perl.org/rt3/Ticket/Display.html?id=119877 13:59
my JVM/NQP fu is not nearly strong enough to deal with it
but I *did* try =)
arnsholt hoelzro: It's not just that the captures aren't set up until the whole thing has matched? 14:00
hoelzro that could be it
FROGGS yeah 14:01
hoelzro I have a few theories, but no real proof to back it up
it's odd, though
since it only happens with a declared regex
(meaning regex foo { ... } and not ~~ /.../)
arnsholt Oh. So 'foo' ~~ / <word> { $inner-match := $<word> }/ works, but not with a factored out rule. That's a bit weird 14:02
... / and regex foo { ... } probably have slightly different codegens though
14:02 lowpro30 joined
masak please add that to the ticket. 14:03
14:07 domidumont left 14:08 telex left
dalek kudo/method2sub: 530c420 | (Elizabeth Mattijsen)++ | src/core/ (2 files):
Removed unneeded explanatory comments
14:10
14:10 telex joined
gtodd wonders is there is a perl equivalent to the easy to use javascript dialects like "coffeescript" ... 14:11
other than perl6 of course :-)
14:11 logie joined
masak something that compiles down to Perl? 14:12
jercos well, you can convert from brainfuck without too much effort
gtodd heh yeah I guess it's easier with javascript :) 14:13
jercos what are you defining easy to use as?
gtodd jercos: good question ... since javascript is ubiquitous and sometimes irritating there's been many "atlernatives" ... perl is probably less irritating so ... 14:14
jercos Things like list assignments, simple list comprehension, conditional statements, they're part of perl already.
Perl 5 doesn't have that haskelloid syntax for defining functions, or the lack of parenthetical expressions required for conditions and loops on blocks, but, well, to be honest, they're not really "easier" in very many senses. 14:16
And of course, Perl 6 brings the very same to the table.
gtodd yeah ... perl is "easy" already ... javascript's notion of easy seems debatable
jercos And then coffeescript also makes some integration with jQuery easier.
I don't think I need to say anything about that ;) 14:17
gtodd jquery argh
dalek kudo/method2sub: 2373d4c | (Elizabeth Mattijsen)++ | src/core/Hash.pm:
Properly eradicate .delete(<a b c>)
14:18
gtodd jercos: the amazing thing is it seems like perl6 is going to run everywhere (parrot, jvm, .net ...)
jercos coffeescript also brings almost-pythonic levels of caring about whitespace. Not something I personally agree with.
gtodd yeah
14:19 darutoko joined
jercos Well, most modern languages are like that, e.g. IronPython, Jython, etc. for Python... 14:19
14:19 iSlug joined
jercos Perl 5 in a sense has been the exception to the rule. 14:19
Grimnir_ does anybody know any good framework or cms for doing Perl6 web development?
14:19 Timbus left
gtodd wait ... perl6 is going to run errm in/on *javascript* 14:19
timotimo yes 14:20
jercos Yeah.
gtodd jeez ...
jercos Yup.
timotimo what's the problem?
gtodd perl6 ... to .. the ... rescue ...
timotimo everybody does that nowadays
gtodd yeah
jercos Possibly even eventually self-hosted in javascript. A full perl6 environment in your web browser :p
14:20 autumn left
gtodd but ... yeah that 14:20
timotimo that's what we want
jercos I'm sure you've seen emscripten?
timotimo self-hosted in the sense that the nqp is selfhosted
gtodd that will be fantastic
jercos Yeah. 14:21
gtodd so why learning any other language besides perl6 :)
timotimo our GSoC student is doing that at the moment, pmurias.
gtodd pmurias++
jercos gtodd: diversity, 3~1~
erm, sorta threw my keyboard at a wall there. heh. 14:22
timotimo the next big thing he needs to do is serialisation/deserialisation
gtodd I didn't realize how close he/she was to getting there
timotimo after that, the setting should be compilable for nqp and after that there'll be lots of small things here and there to make it compile itself and then rakudo.
14:23 denis_boyun joined
gtodd Grimnir_: look at the packages/modules repo there's some simple/useful stuff there ... web::app::ballet 14:23
timotimo also bailador is a dancer-like 14:24
gtodd but no full cms ... now's your chance!!
dalek ast: 45d205f | (Elizabeth Mattijsen)++ | S (7 files):
Fudge all cases where [] or {} were being overloaded as methods

There is currently no easy generic solution to this problem. There seems to be a notion that "lift" will bring the answer. But TimToady appears to be putting that in question more or less now as well.
masak 'Besides, stuff should be done right. That's why it's called "right".' -- MJD++ 14:25
blog.plover.com/brain/hp-15c.html 14:26
Grimnir_ gtodd: great, thanks
jercos masak: I always have an HP11c in my bag :) 14:27
masak jercos: I feel like getting one of those now. 14:28
dalek ast: 4b7b96a | (Elizabeth Mattijsen)++ | S02-types/whatever.t:
Fudge test for *[0](1,2,3,4,5)

Not sure how this was affected by []/{} method to sub migration
ast: cc3ddbe | (Elizabeth Mattijsen)++ | S32-hash/delete.t:
Remove tests for .delete(<a b c>), as that functionality has been removed

  (and most likely will not return)
masak I'm not sure why MJD found the 38x**3 funny, by the way. is it just because it's a fairly large coefficient?
ast: d7d2a84 | (Elizabeth Mattijsen)++ | S (3 files):
Undfudge/fix now passing []:delete and []:exists tests
14:31 kaleem left
FROGGS masak: maybe the calculator can't handle it? 14:33
masak FROGGS: I doubt that's the reason. 14:34
jercos that calculator has base e & base 10 logs & e^x & 10^x functions, arbitrary powers and large scale multiplication shouldn't be a problem
masak FROGGS: besides, it's the generating function -- the calculator doesn't need to handle it. 14:35
jercos something to do with the integral of the function he was analysing perhaps? 14:38
14:38 ajr_ left, ajr joined
FROGGS bbl 14:38
14:38 FROGGS left
gtodd masak: it could be a sort of higher order math joke :) 14:38
14:39 ajr is now known as Guest15639, denis_boyun left, Guest15639 is now known as ajr_ 14:41 denis_boyun joined
lizmat merged method2sub locally, running spectest now 14:42
masak gtodd: I would totally buy a book "Higher order math jokes" by MJD! 14:43
jercos one would have to be careful there 14:45
if it gets too popular, it winds up on higher *back*order
timotimo m) 14:46
gtodd hehe ... it would be funny and I might even understand it! I found Higher Order Perl to be astonishingly well written ... it is sophisticated and witty and so clear that even non professional programmers can follow. That is not easy.
jercos: higher *back*order ??? :-) 14:47
haha
lizmat ===SORRY!=== Error while compiling t/spec/S29-os/system.t 14:49
Variable '$cwd' is not declared
borked?
timotimo should probably be $*CWD?
where does that come from?
timotimo looks
ah, the my for $cwd ought to be outside the BEGIN block. 14:50
lizmat nope, scoping issue
woolfy \o/ masak++ hops here
timotimo git blames coke
dalek ast: aa9eee5 | (Elizabeth Mattijsen)++ | S29-os/system.t:
Fix scoping issue
timotimo woolfy: masak is hopping around?
hoelzro is openpipe only available on the JVM?
woolfy timotimo: I've seen it myself! 14:51
dalek Heuristic branch merge: pushed 26 commits to rakudo/nom by lizmat
lizmat spectest feels faster: 478 wallclock for me now, last time I really looked, I remember it to be 500+ 14:52
timotimo that's cool :)
lizmat also []:delete and []:exists now work
hoelzro nice 14:53
lizmat *really* work, instead of being silently ignored
14:54 ssutch joined 14:55 denis_boyun left
moritz \o/ 14:57
lizmat *phew* 14:58
timotimo spectests are clean?
lizmat except for t/spec/S29-os/system.t 14:59
moritz builds
timotimo yes, that's to be expected
lizmat which is not my pb
timotimo very good! :)
lizmat however, I've had to fudge all tests that did a method postcircumfic:<[ ]> or <{ }>
*fix
as that doesn't work right now
and lift (or whatever else) doesn't work either yet 15:00
15:00 dayangkun_ joined 15:01 dayangkun_ left
TimToady wonders if the .at_* should be submethods so that they can be better optimized without taking inheritance into account 15:01
lizmat runs a spectest with that thought 15:02
TimToady core is probably depending on inheriting them though 15:03
masak lizmat++
lizmat especially in Any :-)
15:03 dayangkun left
lizmat and we wouldn't want to have a 'class A is Array {}' have to provide its own "at_pos", do we? 15:04
TimToady in theory we can support a default method that gets called where a submeth isn't available
15:04 lowpro30_ joined
masak ooh, I see what's going on with github.com/perl6/roast/commit/45d205f269 15:04
lizmat TimToady: would that work in reality? 15:05
masak this is all because any multi postcircumfix:<[ ]> you define will be lexically scoped.
lizmat yes
TimToady dunno, with BUILD the guys ended up doing it a different way than with a default method
masak and the $0 -> $/[0] transformation (and subsequent call to the postcircumfix) happens in a *non*-downstream lexical scope. 15:06
lizmat yup
masak and I also see why handwavingly saying "lift" may not be a good solution.
(because it's not clear that we want to do that with postcircumfix:<[ ]>)
(if we did, what's the rule here? which things get liften and which don't? remember, Perl 6 aims to not have you remember arbitrary lists of stuff.) 15:07
15:07 lowpro30 left
TimToady as I said the other day, the proto probably needs to declare exactly what is being borrowed from the caller 15:07
nwc10 masak: I thought it was "makes something in rosetta code a lot easier" :-) 15:08
TimToady or needs to harvest that info somehow from multis that declare it explicitly somehow
"lift" is one of those placeholder features we put in place to remind us that we need a real feature :) 15:09
but as currently defined there's far too much watness
we are currently tiptoeing fearfully into the realm of multi macros :) 15:11
15:11 FROGGS joined
colomon the proto? that won't work for defining, say, a new infix:<+>, will it? 15:12
TimToady with the implicatoin that some arguments are normal, some are ASTs, and some are just stolen goods from the lexical scope
colomon: depends on how much we decide to restrict it
lift is almost entirely used for reformatting args and redispatching to the same operator currently (in our minds) 15:13
but if we want to use it for other things, then yes, the declaration will have to be pulled from the individual multis 15:14
which is a bit more mind-bending than just having the proto declare it
"okay you guys, make me a list of everything you think we might need to take along for the trip" 15:15
colomon TimToady: the main use I've had for it was defining math operators which can work on math types not known at definition time. Like if I have Math::Vector and Math::Polynomial, it would be good to be able to have vectors of polynomials and vector-valued polynomials. And that's undoable without lift's magic, as nearly as I can see.
15:16 iSlug left, fhelmberger_ joined
TimToady does it need to redispatch to different borrowed operators, or just the original one? 15:16
15:16 iSlug joined, fhelmberger left
TimToady (not that your specific cases will necessarily indicate the general need here...) 15:16
also, we need to consider that different multis will want the same op name treated differently 15:18
15:18 denis_boyun joined
colomon TimToady: well, you're going to have something like 15:18
TimToady so it needs to be up to each multi whether the op is mapped back to the caller, even if the proto makes the caller's op available to all the multis 15:19
colomon multi sub infix:<+>($a, $b) { Vector.new($a.coefficients <<+>> $b.coefficients); }
TimToady so I'm thinking a very short way to either prefix the actual op usage with something ¤-like
colomon and you'll want the <<+>> there to use infix:<+> suitable for $a and $b
TimToady or a way to declare "my \infix:<+> = CALLER::[&[+]]" or some such 15:20
but these are very quasi-unquote-ish, so I lean toward some sugar like the proposed ¤ for AST args 15:21
15:21 ssutch left
TimToady either put on the actual usage, or in an implicit part of the signature 15:22
15:22 lowpro30 joined
TimToady and we have to keep it compile-time clean enough that the optimizer can cancel it all out when it inlines something 15:23
15:23 ssutch joined
TimToady the SSA style of "my \infix:<+> =" is about as far down the road you can get toward runtime without messing that up 15:24
and it's kinda clunky
15:24 ssutch left
TimToady though that may be what the sugar is doing underneath 15:24
colomon TimToady: sure, my \infix:<+> = CALLER::[&[+]] seems like the right idea. but that's not a proto, is it? That's what had me worried. 15:25
15:25 ssutch joined 15:26 lowpro30_ left
TimToady that would be in the multi, and yes, it would be difficult to communicate that to the proto 15:26
hence a special syntax might make that easier to recognize 15:27
otoh, the compiler can see there's a CALLER there, so maybe it's not that hard to see it
TimToady is more worried about making it easy for people to do the right thing
"your function is almost right, but to do it perfectly you have to triple its size" 15:28
15:29 lowpro30_ joined
TimToady so if we maked ops directly (in the same way as the proposed ¤arg quasi-unquote), then instead of writing multi foo ($a,$b) { lift $a bar $b } we'd write something like multi foo ($a,$b) { $a ©bar $b } 15:31
(using ⓒ for the caller "sigil" there)
colomon oooo 15:32
15:32 dmol joined
TimToady .u ⓒ 15:32
yoleaux U+24D2 CIRCLED LATIN SMALL LETTER C [So] (ⓒ)
15:32 iSlug left
lizmat cycling & dinner& 15:32
15:32 denis_boyun left
TimToady uh, why did it give me that one instead of the Latin-1 one, when I typed the same thing? 15:32
.u ©
yoleaux U+00A9 COPYRIGHT SIGN [So] (©)
15:32 lowpro30 left
TimToady ooh, it give me a different thing for compose (c than it does for (c) 15:34
interesting
15:35 ssutch left
TimToady at one point I though we might just have a metaop like C, to get $a Cbar $b, but doesn't extend so well to unaries 15:36
plus metas are really more about higher order functions, which is sort of run-timey in mindset, even if we do optimize them heavily 15:37
masak what's so run-timey about higher-order functions? 15:38
seems that function composition is a fairly static thing.
TimToady foo(&bar) is, on the face of it, passing &bar to foo at runtime 15:39
and &bar could be bound to something different each time through
15:40 iSlug joined 15:43 zakharyas left
TimToady but marking individual unquotes or unlexemes, while handy, doesn't allow you to annotate args with type info (same problem with normal placeholder args), so we need to be able to put this info into the multi's sig too, probably using the same ¤/© notation as we currently use | to mark capture args 15:44
or more like \ for parcel args, really
masak ah yes, &bar contains the same kind of late-boundedness as method dispatch. 15:45
TimToady and to parse correctly, we really need to know the syntactic category the placeholder is standing in for
masak aye. 15:46
TimToady though term/infix are good default guesses
masak even more -- in the case of operators, we need to know precedence and associativity.
in the case of binary operators, I should say.
without that information, we can't create a correct AST.
FROGGS .u phone 15:47
yoleaux U+1F4F1 MOBILE PHONE [So] (📱)
U+1F4F2 MOBILE PHONE WITH RIGHTWARDS ARROW AT LEFT [So] (📲)
U+1F4F4 MOBILE PHONE OFF [So] (📴)
FROGGS this could be used for "caller" too :o)
FROGGS goes back to his webstuff 15:49
TimToady FROGGS: but we're trying, feebly, to stay in the Latin-1 region, or at least the BMP...
FROGGS ahh, I'm sorry
15:51 denisboyun joined 15:52 REPLeffect joined
colomon is suddenly worried that just knowing the caller's context is not nearly good enough. But then, he doesn't understand half of what TimToady++ is saying. 15:59
masak colomon: I'm curious what thing beyond the caller's context you consider maybe necessary. 16:01
colomon well, consider the Vector example 16:02
So it's got my \infix:<+> = CALLER::[&[+]]
and now if you define two Vectors and add them, it works right. 16:03
masak right.
colomon But what if you write a function that (among other things) adds two Vectors?
now you need to pull in that function's CALLER, too.
masak yes. it's transitive, in some sense. 16:04
that in itself doesn't seem problematic.
colomon and now you write a function which calls *that* function
masak at least, I don't see the problem with it.
colomon so you also need to pull in the CALLER
masak right, CALLER's CALLER's CALLER...
colomon but you don't necessarily know for what operators.
masak I can see how this would totally hose inlining in some cases. 16:05
as in, make it not possible.
moritz s/some/most/
colomon it's not just inlining, it's a maintenance nightmare.
moritz like, everywhere inside the setting
masak :/
colomon because now to write a generic-ish function using Vectors, you need to know every operator that every function you call might use (and so on) 16:06
TimToady at some point you give up and put everything into your Template Libarary... 16:09
or you give up in the OO direction and pass all semantics through one of the args 16:11
16:12 rindolf joined
TimToady or you give up in the FP direction and tell people, oh, you just have to lift this monad into this other monad... 16:12
and, by one reckoning, monads are "just" a fancy way to thread some implicit args through some function calls 16:14
16:17 stevan_ left
TimToady these are three main ways languages control genericity 16:17
16:19 sftp left, denis_boyun joined 16:20 denisboyun left 16:22 sftp joined
TimToady the interesting place is where these domains meet; maybe for infixes with homogenous arguments we would do better to delegate to the class (in terms of handling genericity), while heterogenous args remain in the domain of multiple dispatch 16:23
colomon huh 16:28
TimToady otoh that line of thinking makes us put .[] back into methodspace :) 16:34
FROGGS ARGLBARGL 16:35
:o)
TimToady my feeling currently is that we just have to make the lexical [] smart enough to recognize when it needs to delegate to some other mechanism, and hopefully not pessimize every [] for the sake of a few that need that delegation 16:38
16:39 woosley left
TimToady whether we can actually do that well enough without teaching everyone Haskell is a good question 16:41
timotimo i'm wondering now if the mechanism that creates a bind to NQPMu and *then* a bind to the actual value is what makes sure that there's always an NQPMu, even if there's an undefined name bound 16:44
16:47 dmol left, spider-mario joined 16:49 stevan__ joined 16:54 ksh joined
TimToady It may be the fundamental problem of our age: knowing when to delegate, and when to do it yourself. :) 16:57
16:57 dakkar left, SamuraiJack joined
TimToady wonders when masak++ will realize he's been delegated to combine macros and category theory in a single elegant, easy-to-understand solution... :) 16:58
16:58 rindolf left 17:00 rindolf joined 17:02 Timbus joined 17:03 iSlug left
masak pshh. category theory combines *everything* in a single elegant, easy-to-understand solution. :P 17:03
17:03 daxim left
masak loves how "arglebargle" doesn't appear to have a standardized spelling 17:04
timotimo algebraic!
diakopter "fizzbuzz"
TimToady whosetobemasterthat'sall
*who's 17:05
my fingers more than my brane, obviously...
*fingres
category theory combines everything very well as long as you don't actually try to combine anything... 17:08
masak categories are all about combining things. :)
TimToady then why are monads so hard to lift?
masak because each monad has its own idea about combining. 17:09
it's a bit like a role conflict, I bet.
needs to be manually resolved.
TimToady well, it's the same generic/specific problem that crops up all over
including in .[] 17:10
masak .oO( "we all agree about the need to combine, we just can't recocile those ideas..." )
today's paraphrase autopun :P
17:10 flussence left
TimToady we all agree on the necessity to combine, but that doesn't mean we have to like the combinatorics... 17:10
17:11 flussence joined
masak :) 17:11
TimToady the problem with computers is that by the time you know enough about the problem to come up with a correct general solution, you already know the answer to the problem. :) 17:13
from which it may be deduced that all our useful computer programs are either incorrect or insufficiently general :) 17:14
or both, unless those are the same thing... 17:15
TimToady wonders if SPJ can create a monad he cannot lift... 17:20
17:21 ajr_ left
TimToady suspect's that colomon++'s caller's caller problem is isomorphic to the is-this-class-final problem 17:24
and that some usage patterns will simply have to pessimize, but hopefully the optimizer can still work in most of the common cases 17:25
and maybe JIT/hotpath analysis will cover the pessimal(er) cases 17:26
it's a recurring pattern; every optimization technique trades generality for specificity, and eventually hits a wall when the optmization runs out of steam; DSLs, multicores, native types, all fall prey to this 17:34
they all cheat the performance curve on some level, but the curve always wins eventually
masak *nod* 17:35
TimToady where DSL is any language that is not Lisp :) 17:36
17:38 fhelmberger_ left 17:39 dmol joined
masak .oO( Lisp, the world's only DGL ) 17:52
17:55 BenGoldberg joined 17:56 rindolf left
pmurias performance curve? 17:59
FROGGS .oO( "Performance Curve - The Great Unkown for Perl 6 Devs..." ) 18:01
Unknown*
gah
18:02 Rotwang joined
TimToady
.oO( The Purloined Letter )
18:02
18:04 simcop2387 left 18:07 simcop2387 joined
dalek kudo/nom: 2f67f93 | (Elizabeth Mattijsen)++ | src/Perl6/World.nqp:
Make sure failures in Perl6 exceptions give at least a panic message
18:08
18:14 sqirrel left
lizmat r: my %a=a=>1; say %a<a>:exists:k 18:15
camelia rakudo 8416e4: OUTPUT«Unsupported combination of named parameters (exists, k) passed to Hash %a␤ in method gist at src/gen/CORE.setting:11728␤ in method gist at src/gen/CORE.setting:955␤ in sub say at src/gen/CORE.setting:12628␤ in block at /tmp/4vMZ6hVCxa:1␤␤»
lizmat :-)
r: my %a=a=>1; say %a<a>:exists:foo 18:16
camelia rakudo 8416e4: OUTPUT«Unexpected named parameter 'foo' passed to Hash %a␤ in method gist at src/gen/CORE.setting:11728␤ in method gist at src/gen/CORE.setting:955␤ in sub say at src/gen/CORE.setting:12628␤ in block at /tmp/jZKjNMfSZL:1␤␤»
18:24 dduncan joined, dduncan left, woosley joined
BenGoldberg r: my %a=b=>2; say %a<b> 18:28
camelia rakudo 8416e4: OUTPUT«2␤»
BenGoldberg r: my %a=b=>2; say %a<b>:exists
camelia rakudo 8416e4: OUTPUT«True␤»
BenGoldberg r: my %a=b=>2; say %a<b>:k
camelia rakudo 8416e4: OUTPUT«b␤»
BenGoldberg r: my %a=b=>2; say %a<b>:v
camelia rakudo 8416e4: OUTPUT«2␤»
BenGoldberg r: my %a=b=>2; say %a<b>:delete
camelia rakudo 8416e4: OUTPUT«2␤»
BenGoldberg r: my %a=b=>2; say %a<b>:foo 18:29
camelia rakudo 8416e4: OUTPUT«Unexpected named parameter 'foo' passed␤ in sub postcircumfix:<{ }> at src/gen/CORE.setting:2379␤ in sub postcircumfix:<{ }> at src/gen/CORE.setting:2376␤ in block at /tmp/x83cagc7LN:1␤␤»
BenGoldberg :)
18:29 jfried joined
BenGoldberg r: my %a=b=>2; say %a<b>:k:v 18:29
camelia rakudo 8416e4: OUTPUT«Unsupported combination of named parameters (k, v) passed to Hash %a␤ in method gist at src/gen/CORE.setting:11728␤ in method gist at src/gen/CORE.setting:955␤ in sub say at src/gen/CORE.setting:12628␤ in block at /tmp/FUPFOsssiA:1␤␤»
BenGoldberg r: my %a=b=>2; say %a<b>:kv 18:30
camelia rakudo 8416e4: OUTPUT«b 2␤»
lizmat r: my %h=a=>1,b=>2,c=>3; my %i = %h<a c>:delete:p; say %h; say %i 18:36
camelia rakudo 8416e4: OUTPUT«Odd number of elements found where hash expected␤ in method STORE at src/gen/CORE.setting:8561␤ in block at /tmp/wfOIW3awvx:1␤␤»
lizmat r: my %h=a=>1,b=>2,c=>3; my %i; %i.push( %h<a c>:delete:p ); say %h; say %i
camelia rakudo 8416e4: OUTPUT«Trailing item in Hash.push in block at /tmp/HnwwRXlkOm:1␤␤("b" => 2).hash␤().hash␤»
lizmat hmmmm 18:37
18:37 jfried left, darutoko left, jfried joined, xenoterracide left, jfried left, xenoterracide_ joined 18:38 xenoterracide_ left, xenoterracide__ joined
timotimo r: my %h=a=>1,b=>2,c=>3; my %i; %i.push( |(%h<a c>:delete:p) ); say %h; say %i 18:40
camelia rakudo 8416e4: OUTPUT«("b" => 2).hash␤("a" => 1, "c" => 3).hash␤»
18:40 xenoterracide__ left, xenoterracide__ joined
timotimo r: my %h=a=>1,b=>2,c=>3; my %i; %i.push( %h<a c>:delete:kv ); say %h; say %i 18:40
camelia rakudo 8416e4: OUTPUT«Trailing item in Hash.push in block at /tmp/HIkmmVs9Sj:1␤␤("b" => 2).hash␤().hash␤»
lizmat r: my %h=a=>1,b=>2,c=>3; my %i; %i.push( %h<a c>:delete:kv ); say %h; say %i
camelia rakudo 8416e4: OUTPUT«Trailing item in Hash.push in block at /tmp/gKbN1Bo_hp:1␤␤("b" => 2).hash␤().hash␤»
18:43 xenoterracide__ left
timotimo that's the exact same i just did o_O 18:43
18:43 xenoterracide__ joined
lizmat great minds think alike? :-) 18:45
timotimo oh you flatter me :3 18:47
bleh. i thought c# had async blocks like perl6
turns out it only has async methods, just like java
diakopter heh 18:52
java has sync methods
timotimo: and actually C# does have async lambdas 18:54
18:55 xenoterracide__ left
timotimo oh, that's cool! 18:56
that and LINQ make it pretty perl6ish ... well at least more than java :P 18:57
diakopter this fleshes out .net async to have a decent chunk of what java provides in its parallel libraries: nitoasyncex.codeplex.com/documentation 19:00
lizmat .tell jnthn tried to make is DEPRECATED do something sensible, but got stuck in strange error: gist.github.com/lizmat/6675289 19:04
yoleaux lizmat: I'll pass your message to jnthn.
lizmat .tell jnthn I guess it's too early in the core setting somehow
yoleaux lizmat: I'll pass your message to jnthn.
dalek kudo/nom: b78da4e | (Elizabeth Mattijsen)++ | src/core/Any.pm:
Hide support siubs from backtraces
19:05
19:06 xenoterracide joined 19:07 zwut00 joined
diakopter masak: how many different uses of the colon can you fit into 30 characters 19:08
19:08 lowpro30 joined
diakopter .ask jnthn you seen nitoasyncex.codeplex.com/documentation 19:08
yoleaux diakopter: I'll pass your message to jnthn.
19:10 xenoterracide left
diakopter .ask jnthn also this? arraysegments.codeplex.com/ 19:11
yoleaux diakopter: I'll pass your message to jnthn.
19:11 JTAAYBKS joined, lowpro30_ left 19:12 revdiablo joined
lizmat afk& 19:14
19:20 xenoterracide joined 19:21 risou is now known as risou_awy
BenGoldberg rn: my @a = 1; for (@a[^Inf]) { .say; last } 19:26
camelia niecza v24-95-ga6d4c5f: OUTPUT«(timeout)»
..rakudo b78da4: OUTPUT«1␤»
BenGoldberg rakudo++ 19:27
rn: my @a := ^Inf; for (@a[^Inf]) { .say; last }
camelia rakudo b78da4, niecza v24-95-ga6d4c5f: OUTPUT«(timeout)» 19:28
BenGoldberg :P
:(
masak diakopter: four, if you count '::' as two. 19:29
rn: class :: {}; sub { say :$:a }
camelia ( no output )
19:29 risou_awy is now known as risou
masak diakopter: ten, if you lift the "different" criterion. 19:31
rn: :(:(:(:(:(:(:(:(:(:$))))))))) 19:32
diakopter hee
camelia ( no output )
..niecza v24-95-ga6d4c5f: OUTPUT«===SORRY!===␤␤Abbreviated named parameter must have a name at /tmp/4AaNbFyTNZ line 1:␤------> :(:(:(:(:(:(:(:(:(:$⏏)))))))))␤␤Abbreviated named parameter must have a name at /tmp/4AaNbFyTNZ line 1:␤------> :(:(…»
BenGoldberg :)
masak oh, silly niecza.
diakopter: 28, if the contents of strings count :) 19:33
diakopter rn: ::_::_::_::_::_::_::_::_::_::_
camelia ( no output )
..rakudo b78da4: OUTPUT«===SORRY!===␤Could not locate compile-time value for symbol _::_::_::_::_::_::_::_::_::_␤»
masak nice.
19:34 ssutch joined
[Coke] jvm daily run stuck on S32-array/create.t 19:38
masak [Coke]++ # doing the dailu runs every day
[Coke]: was that why we dropped to 63% ?
[Coke] looks like it's "every test after some point aborts every test". 19:40
wonder if the eval server has a memory leak or something.
diakopter r: -> (:$: :a(@)) { ::() } 19:41
camelia ( no output )
diakopter meh
TimToady #:)
[Coke] r: #$%^&*() 19:42
camelia ( no output )
[Coke] r: !@#$%^&*()
camelia rakudo b78da4: OUTPUT«===SORRY!=== Error while compiling /tmp/83pKF8v63a␤Unsupported use of @# variable␤at /tmp/83pKF8v63a:1␤------> !⏏@#$%^&*()␤ expecting any of:␤ statement list␤ prefix or term␤ prefix or meta-prefix␤…»
[Coke] there, that's better.
[Coke] leaves it to finish the last few dozen test files by timing out. 19:43
masak .oO( stop reciting Perl when I'm swearing! )
timotimo that's an LTA. it should have said "this looks like a swearword" instead 19:45
TimToady this could be arranged 19:47
19:48 EvanTeitelman joined 19:50 pernatiy left 19:55 bbkr joined 19:59 bbkr left
diakopter EPOTTYMOUTH 20:00
20:00 chayin left 20:01 lowpro30_ joined 20:02 lowpro30 left 20:06 spider-mario left 20:09 FROGGS left
dalek kudo-js: b41bfbb | (Pawel Murias)++ | / (2 files):
Make takeclosure wrap the function with a CodeRef object.
20:15
kudo-js: b0b17c1 | (Pawel Murias)++ | / (3 files):
Move deserialization of closures/contexts into the deserialize op.
kudo-js: 76e6a2d | (Pawel Murias)++ | / (6 files):
Serialize closures without contexts.
kudo-js: 2e3ed32 | (Pawel Murias)++ | / (6 files):
Pass nqp/t/serialization/03-closures.t.

Serialize closures.
20:15 colomon left
timotimo \o/ 20:16
jnthn good evening, #perl6 20:17
yoleaux 19 Sep 2013 22:28Z <pmurias> jnthn: why is NQPRegex defined twice? (as a knowhow in the setting, and as a class in the regex lib)
20 Sep 2013 13:20Z <lizmat> jnthn: the fact that we can't make a generic 'at' instead of .at_key and .at_pos (because an object might do both)
20 Sep 2013 13:20Z <lizmat> jnthn: doesn't that mean that we should separate .exists into .exists_key / .exists_pos as well
20 Sep 2013 13:21Z <lizmat> jnthn: and .delete into .delete_key and .delete_pos ?
21 Sep 2013 15:04Z <lizmat> jnthn: please have a look at the method2sub branch and tell me why this makes perl6 -e '\01' hang on parakudo and eat all memory
22 Sep 2013 12:04Z <lizmat> jnthn: in method2sub, my @a; @a[1..*] hangs because, most likely, the whatever cannot see the .elems of the object anymore
13:32Z <colomon> jnthn: Grammar::Debugger seems to be completely broken. :(
19:04Z <lizmat> jnthn: tried to make is DEPRECATED do something sensible, but got stuck in strange error: gist.github.com/lizmat/6675289
19:04Z <lizmat> jnthn: I guess it's too early in the core setting somehow
19:08Z <diakopter> jnthn: you seen nitoasyncex.codeplex.com/documentation
19:11Z <diakopter> jnthn: also this? arraysegments.codeplex.com/
timotimo it's jonathan! :D
jnthn holy crap, that's some messages :P
lee_ "you've got mail"
timotimo you're in luck yoleaux didn't get kicked off the net for spam :) 20:18
pmurias jnthn: hi
20:18 kaare_ left
pmurias timotimo: now I'm checking it serializing closures helps to pass any of the 5 tests failing under self hosting nqp-js :) 20:19
jnthn pmurias: Possibly the non-setting one is fossil.
(wrt NQPRegex) 20:20
20:20 stevan__ left
pmurias jnthn: the both are used for different things 20:21
jnthn pmurias: Wow. :)
arnsholt On a happier note, I fixed a couple of LHF encode/decode bugs in NQP today =) 20:22
jnthn arnsholt++
pmurias: It may be good to rename one. :)
pmurias jnthn: the one in the regex lib is used for accepting things with ~~
jnthn pmurias: Ah...I wonder if that whole arrnagement is fossil now.
pmurias: I think it dates from before we had code objects at all.
arnsholt And the RaNIW notes are inspiring me to do silly things. Now I'm going to blame you if my PhD thesis isn't done on time ^_^
pmurias jnthn: and the nqp compiler distinguishes between them by fetching the setting one from the lexical scope and the regex lib from GLOBAL 20:23
jnthn pmurias: Makes "sense" ;)
pmurias: File a ticket. I guess it's not pressing but it's a smell...
pmurias jnthn: and I had a bug which loaded the regex lib as the setting, needless to say I was very confused by that 20:24
timotimo jnthn: the sense it makes is the smell sense :)
20:25 stevan_ joined
jnthn pmurias: Interesting bug... :) 20:25
Anyway, full agree we don't want the two named the same. :) 20:27
pmurias jnthn: re bug, github.com/pmurias/rakudo-js/commi...58fbb1db07
jnthn .tell lizmat I can see the argument for exists_key/exists_pos; otoh I really don't feel like breaking all the code out there using .exists... Of course, can always have both :P 20:28
yoleaux jnthn: I'll pass your message to lizmat.
jnthn .tell lizmat I think from reading other backlog you figured the hangs; lemme know if not
yoleaux jnthn: I'll pass your message to lizmat.
20:29 ajr joined, pernatiy joined, ajr is now known as Guest42759, Guest42759 is now known as ajr_ 20:30 lichtkind joined 20:31 stevan_ left 20:32 colomon joined 20:36 Rotwang left
lizmat jnthn: actually, the "is DEPRECATED" one isn't solved yet 20:45
yoleaux 20:28Z <jnthn> lizmat: I can see the argument for exists_key/exists_pos; otoh I really don't feel like breaking all the code out there using .exists... Of course, can always have both :P
20:28Z <jnthn> lizmat: I think from reading other backlog you figured the hangs; lemme know if not
lizmat I was hoping to fix that, so deprecated methods would warn just once when being used 20:46
then, create AT_KEY, AT_POS, DELETE_KEY etc...
and mark at_pos, at_key, delete, exists as DEPRECATED
jnthn Do we need to uppercase them? 20:47
lizmat that was moritz's suggestion, and I must admit I like it :-)
20:48 sciurius joined
lizmat jnthn: irclog.perlgeek.de/perl6/2013-09-23#i_7619315 20:48
timotimo questhub.io/realm/perl/explore/unclaimed/tag/nqp - i wonder ... 20:49
lizmat is DEPRECATED attempt at gist.github.com/lizmat/6675289 20:51
20:51 [Sno] left 20:52 [Sno] joined 20:55 Timbus left 20:56 stevan_ joined, Timbus joined
lichtkind apply_all_roles( $car, 'Breakable' => { ... renames}); that would work too? 20:59
21:03 fridim__ joined 21:05 skids left
lichtkind wrong channel sorry 21:06
masak is at_key "special" the way BEGIN and BUILD are? I'm not so sure.
the underscore arguably already demonstrates that it's internal.
lizmat at_key / at_pos are currently not specced 21:08
.delete / .exists are
:-(
jnthn lizmat: I think add_phaser is known not to work in the setting, which is why we don't use phasers in there besides BEGIN and INIT, whihc are handled differently. 21:09
21:10 Mouq joined
Mouq lizmat++ arnsholt++ 21:10
lizmat jnthn: src/core/Variable uses $v.block.add_phaser for "will" traits
21:10 bitpart joined
lizmat r: my $a will enter { say "hello" } 21:12
camelia rakudo b78da4: OUTPUT«hello␤»
lizmat r: my $a will leave { say "goodbye" } will enter { say "hello" }
camelia rakudo b78da4: OUTPUT«hello␤goodbye␤»
jnthn lizmat: Yes, but we don't use "will" in the setting, do we? 21:16
lizmat ah, good point 21:17
Mouq r: my $a will enter { say "hello" } = 4.say 21:18
camelia rakudo b78da4: OUTPUT«hello␤4␤»
Mouq r: my $a will leave { say "blocked" } = 4.say
camelia rakudo b78da4: OUTPUT«blocked␤»
jnthn We may be able to track down why add_phaser don't work in the setting
Though it may be a "does work but later on"
lizmat yes, I was thinking of having the trait set up a list of routines, and then at the end of the settings, run over that list and assign the phasers 21:19
will need to use nqp::p6list for that, as at the moment of the is DEPRECATED trait, we don't have P6 arrays yet 21:20
jnthn ah, that's what it is...
lizmat (been there, tried that)
but will do that tomorrow
first some relaxation and sleep & 21:21
jnthn :)
'night
diakopter 'nite l 21:23
Mouq o/
masak good night, lizmat! 21:28
dream of sheep with the DEPRECATED trait :)
jnthn fetches the mint sauce 21:29
21:29 benabik left 21:31 denis_boyun left 21:33 iSlug joined 21:40 dmol left 21:41 bitpart left 21:44 PacoAir left 21:47 lowpro30_ left 21:50 pmurias left
Mouq Muahahaha. Github now looks at .nqp as Perl (see syntax highlighting at github.com/rakudo/rakudo/blob/nom/...ctions.nqp for example) 22:01
masak nqp should be eminently highlightable as itself. 22:02
nqp: say("OH {2 + 2} HAI")
camelia nqp: OUTPUT«OH 4 HAI␤»
masak oh, but it also has arbitrarily deep nesting. 22:03
nevermind, then. :)
jnthn We just need Perl 6 grammars and actions that do highlighting for all the languages, then get GitHub to adopt it... :P 22:06
Mouq Just write a NQP implementation of Ruby
(github.com/github/linguist) 22:07
TimToady notes that in slide 61, ’INSERT’ :s <pairlist> implies incorrect :s semantics, since it would not match ws between the 'INSERT' and the <pairlist> under the new rules (which would all a simple rule declaration to work)
well, s/incorrect/deprecated/
s/all/allow/ 22:08
colomon jnthn! \o/ 22:10
TimToady jnthn: since :s does not itself qualify as a matcher that enables trailing sigspace, in the new definition 22:12
jnthn TimToady: Aye, I was pragmatically teaching people what they can expect to work in NQP "right now". :) 22:14
TimToady well, :s’INSERT’ <pairlist> would be forward compatible :) 22:15
jnthn Point. :) 22:16
masak files an issue 22:24
22:27 skids joined
jnthn Should really get around to updating stuff for the new semantics too... 22:29
masak I just noticed the p6u email about escape sequences. 22:32
TimToady it basically removes the need for 90%+ of old :s usages, since most of those were basically rules that didn't want whitespace at the beginning
masak does some windows user know what is going on there?
anyway, 'night, #perl6 22:33
22:33 PZt left
TimToady o/ 22:34
jnthn hm, not on p6u... 22:35
um...is it me, or is this archive page unreadable? www.nntp.perl.org/group/perl.perl6....g1699.html 22:36
geekosaur I have it on p6u fwiw
diakopter it's a PNG 22:37
jnthn oh gee, and the web interface just spits it out... 22:38
geekosaur that's interesting, it has a png inline but the message itself is not a png
jnthn I missed the PNG and was trying to figure out how you mojibake like *that*...
TimToady just read it in mutt, which doesn't attempt to get fancy...
jnthn Anyway, given the subject line - my guess is that it's that the Windows console doesn't know what to do with ANSI escapes, which you can resolve by using ansicon (which I used to) or ConEmu (which I use now) 22:40
In the long run, we need a Term::WindowsColor and a Term::AnyColor that picks the appropriate one...
22:42 bluescreen10 left 22:44 EvanTeit1lman joined, EvanTeit1lman is now known as doxit 22:45 doxit left
cxreg i'm pretty sure this nqp node backend is a crime against humanity :) 22:49
22:50 iSlug left
jnthn To the International Compiler Court! 22:51
Actually, to bed for me...
'night, #perl6
diakopter o/ 22:52
23:00 BenGoldberg left 23:04 btyler left 23:16 pmurias joined
pmurias cxreg: a crime against humanity? I needs a bit of code cleanup... (which I have putting of to squeeze in features for the GSoC deadline) 23:18
23:18 BenGoldberg joined 23:25 pmurias left
TimToady .tell jnthn Also, I don't think Trigometric is a word. (Slide 173) 23:27
yoleaux TimToady: I'll pass your message to jnthn.
lue
.oO(If you're going to inline a PNG file like that, at least be cool about it and Base64-encode it.)
23:35 pmurias joined 23:37 GlitchMr left
timotimo my eyes don't decode png as base64, especially when it's on a slide :| 23:53
23:54 zwut00 left 23:55 lichtkind left