»ö« 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 endcurrent 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 70Parrot file (not available), line (not available)We highly suggest you notify the Parrot team if you have not been working onParrot. 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 supportedParameter 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/83pKF8v63aUnsupported use of @# variableat /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«hellogoodbye» | ||
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«hello4» | ||
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
|