»ö« 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. |
|||
jnthn | 'night, #perl6 | 00:10 | |
timotimo | night jnthn | 00:11 | |
00:11
shachaf joined
00:16
aghbas joined
00:20
colomon joined
00:24
ajr_ left,
lue left
00:25
grondilu left
00:31
shachaf left
|
|||
timotimo | enh. i think i worked myself into a corner. now i don't know where my error comes from ... somewhere an NQPMu snuck in | 00:31 | |
00:37
lue joined
|
|||
timotimo finds out that serialise_array and serialize_aos are actually still needed :( | 00:41 | ||
dalek | p: 173dc64 | (Solomon Foster)++ | src/ (2 files): Change name sprintfAddHandler to sprintfaddargumenthandler. |
00:44 | |
kudo/nom: 492feb2 | (Solomon Foster)++ | src/core/Cool.pm: Change name sprintfAddHandler to sprintfaddargumenthandler. |
|||
01:07
PacoAir left
|
|||
timotimo is building all of p6doc with the new code now | 01:13 | ||
hardly any add_constant, mostly just $*W.find_symbol([...]).new(...) | 01:14 | ||
01:14
benabik left
|
|||
timotimo | hum. i have a string in a twine that should be an object instead :| | 01:14 | |
01:22
aghbas left
|
|||
BenGoldberg | .ping | 01:32 | |
where is yoleaux? | 01:33 | ||
preflex: seen yoleaux | |||
preflex | yoleaux was last seen on #perl6 1 day, 3 hours, 35 minutes and 17 seconds ago, saying: There is no ping command; nor can this be construed as a response. | ||
01:34
FROGGS_ joined
|
|||
TimToady | then it disappeared in a puff of logic | 01:36 | |
01:36
benabik joined
01:38
FROGGS left,
PacoAir joined
|
|||
timotimo | turns out i just verschlimmbessert the pod code | 01:39 | |
hopefully i can make it all work out tomorrow | 01:41 | ||
gm. | |||
hm* | |||
can full pod blocks be attached to things oin perl code? or just pod strings with formatting codes? | 01:42 | ||
BenGoldberg | r: my @a = 1..*; say @a.infinite, @a.uniq.infinite, @a.squish.infinite, (map { -$_ }, @a).infinite; | 01:45 | |
camelia | rakudo 492feb: OUTPUT«True(Mu)(Mu)(Mu)» | ||
timotimo | computer says no | ||
meaning only formatted strings | 01:46 | ||
i wonder if that will turn out to be a deficiency | |||
or if perhaps i missed another way to attach docs | |||
01:47
PacoAir left
|
|||
timotimo | indeed the brackets would allow nested blocks so i was wrong | 01:50 | |
good to know | |||
do i understand correctly that :margin allows you to put parts of text at differing columns in thevsame block? | 01:55 | ||
01:59
kaare__ joined
02:07
colomon left
|
|||
raiph | timotimo: "not sure i made clear to him how objectively far along rakudo is nowadays" -- how far along do you think it is? | 02:22 | |
timotimo | raiph: "I REALLY LOVE PLAYING WITH IT" is totally objective, no? | 02:25 | |
02:26
preflex left
|
|||
raiph | totally :) | 02:29 | |
timotimo | i'm willing to invest more time into pod6 because i like it a bit better than for example markdown | 02:36 | |
02:46
kaare__ left
02:49
orafu left,
OuLouFu joined
02:50
OuLouFu is now known as orafu
|
|||
sorear | o/ | 03:00 | |
JimmyZ | \o | 03:12 | |
03:17
tokuhirom joined
03:49
tokuhirom left
04:18
BenGoldberg left
04:29
Psyche^ joined
04:30
arlinius joined
04:32
Psyche^_ left
04:48
SamuraiJack joined
04:50
FROGGS_ left
04:52
raiph left
05:04
jaldhar joined
05:08
raiph joined,
raiph left
05:12
raiph joined
05:17
colomon joined
05:45
raiph left
05:50
jaldhar left
05:52
jaldhar joined
06:12
Bzek left
|
|||
TimToady | jnthn: it's not clear to me why all of the stringy substrs shouldn't just be called substr, assuming that doesn't interfere badly with type inference or some such | 06:19 | |
06:21
PacoAir joined
06:34
SamuraiJack left
06:58
benabik left
07:01
iSlug joined
07:25
xilo left
07:38
cognominal left
07:39
cognominal joined
07:40
spider-mario joined
|
|||
tadzik | good morning #perl6 | 08:03 | |
08:05
domidumont joined
08:37
ilogger2 joined,
ChanServ sets mode: +v ilogger2,
ggoebel2 joined
08:39
domidumont joined
08:40
jnthn joined
08:41
moritz_ joined
08:42
zakalwe_ joined,
zakalwe_ left,
zakalwe_ joined,
Bucciarati_ joined
08:44
genehack_ joined
08:45
Kelder joined
08:46
Bucciarati left,
awwaiid_ left,
apejens left,
lee_ left,
nwc10 left,
zakalwe left,
LordV left,
moritz left
08:47
PerlPilot joined
08:48
Juerd_ joined,
nyuszika7h joined
08:49
apejens joined,
DrEeevil joined,
_ilbot joined,
nwc10 joined,
LordV joined
08:50
sciurius_ joined
08:54
Juerd_ is now known as Juerd
08:55
synopsebot joined
08:59
jfried left,
gabriel left,
gabriel_1 joined
09:02
`patch` left
09:03
apejens left,
DrEeevil left,
_ilbot left,
nwc10 left,
LordV left
09:04
bonsaikitten joined
09:06
Juerd left,
ggoebel2 left,
synopsebot left,
Kelder left,
jnthn left,
sciurius_ left,
genehack_ left,
zakalwe_ left,
domidumont left,
nyuszika7h left,
PerlPilot left
09:07
`patch`_ joined,
jfried joined,
apejens_ joined,
nwc10 joined,
LV joined,
synopsebot joined,
sciurius_ joined,
nyuszika7h joined,
Juerd joined,
PerlPilot joined,
Kelder joined,
genehack_ joined,
zakalwe_ joined,
jnthn joined,
domidumont joined,
ggoebel2 joined,
awwaiid joined,
cognominal__ joined,
charsbar_______2 joined,
ivan``_ joined,
simcop2387 joined,
pmichaud_ joined,
Gruber joined,
imarcusthis- joined,
PacoAir joined,
colomon joined,
arlinius joined,
konundra joined,
nebuchadnezzar joined,
stevan_ joined,
pecastro joined,
robinsmidsrod joined,
[particle] joined,
daniel-s_ joined,
Khisanth joined,
tadzik joined,
[Coke] joined,
sergot joined,
camelia joined,
dalek joined,
gdey joined,
jferrero joined,
BooK joined,
integral joined,
Nom- joined,
Celelibi joined,
morgan.freenode.net sets mode: +vv camelia dalek,
crazedpsyc joined,
eternaleye joined,
anocelot joined,
avuserow joined,
Woodi joined,
sivoais joined,
segomos joined,
rafl joined,
Yappo__________ joined,
mst joined,
sftp joined,
geekosaur joined,
smash joined,
mtk joined,
ugexe joined,
broquaint joined,
sorear joined,
eiro joined,
patspam joined,
frdmn joined,
vaelxon joined,
woolfy joined,
lizmat joined,
Maddingue joined,
cosimo joined,
PZt joined,
labster joined,
drbean joined,
FOAD joined,
jlaire joined,
estrabd joined,
itz joined,
TimToady joined,
Lorn joined,
revdiablo joined,
autumn joined,
mattp__ joined,
djanatyn joined,
ruoso joined,
sjn joined,
betterwo1ld joined,
scottp_ joined,
sunnavy_ joined,
lestrrat joined,
odoacre joined,
takesako______ joined,
Hor|zon_ joined,
szbalint_ joined,
baest joined,
Timbus joined,
DarthGandalf joined,
kshannon joined,
gfldex joined,
hoelzro joined,
sjohnson joined,
mathw joined,
p5eval joined,
bakedb joined,
Tene joined,
bloonix joined,
obra joined,
Pompel_ joined,
rs0 joined,
JimmyZ joined,
SHODAN joined,
markov joined,
avar joined,
felipe joined,
Rix joined,
logie joined,
ponbiki joined,
tomaw joined,
ingy joined,
__sri joined,
Gothmog_ joined,
pnu joined,
wtw_ joined,
groky joined,
BinGOs joined,
felher joined,
arnsholt joined,
danaj joined,
timotimo joined,
silug_ joined
09:08
bonsaikitten is now known as Guest96567
09:10
bruges joined,
Exodist joined,
kst joined,
mikemol_ joined,
atrodo joined,
jercos joined,
diakopter joined,
cotto joined,
risou_awy joined,
zamolxes joined
09:12
breinbaas joined,
fgomez_ joined
09:13
_ilbot joined,
daniel-s_ left
09:14
daniel-s_ joined,
drbean left
09:17
bruges_ joined
09:18
spider-mario_ joined,
DrEeevil joined,
moritz joined
09:19
fgomez_ left,
spider-mario_ is now known as spider-mario
09:20
jtpalmer_ joined,
amkrankruleuen joined
09:24
rhr joined,
berekuk_ joined,
bruges left,
Guest96567 left,
moritz_ left,
lee_ joined,
Colby` joined,
Colby` is now known as Pleiades`
09:26
hugme joined,
ChanServ sets mode: +v hugme
|
|||
jnthn | o/ | 09:37 | |
arnsholt | 'lo | 09:38 | |
jnthn: Should I have to do something to get the dyncall ops loaded in plain NQP? | |||
jnthn | arnsholt: You mean, besides having mappings for them in Compiler.nqp? | 09:40 | |
arnsholt | Yah | ||
I'm writing a test file (using Parrot NQP) and it seems to not recognise the op | 09:41 | ||
Do I have to .loadlib something perhaps? | |||
jnthn | oh...Parrot | ||
yeah, there they need to get a loadlib | 09:42 | ||
Passing --vm-libs=nqp_dyncall or so is one way | |||
arnsholt | That'll do for now, thanks! | ||
Hmm. Looks like --vm-libs is no more, but pir::loadlib will do for now, I guess | 09:47 | ||
Cross-platform can wait | 09:48 | ||
09:48
Kelder is now known as Ayiko
|
|||
arnsholt | Blah, that's not an op either | 09:49 | |
dalek | rlito: f04d32c | (Flavio S. Glock)++ | / (9 files): Perlito5 - keep track of existing namespaces for indirect-object parser; namespace cleanup |
||
09:57
Rotwang joined
|
|||
jnthn | arnsholt: oh, without the hyphen | 10:05 | |
--vmlibs | 10:06 | ||
10:20
ztt joined
10:28
kingbeast joined
10:35
GlitchMr joined
10:53
zakalwe_ left
11:02
DrEeevil left,
`patch`_ left,
apejens_ left,
nwc10 left,
bonsaikitten joined,
nwc10 joined,
apejens joined,
`patch` joined
11:20
zakalwe joined
|
|||
dalek | p: 8f912e2 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/ (4 files): VMArray should serialize its type. This fixes the issue with the utf8/utf16/utf32 types in the new Buf implementation. |
11:30 | |
p: 91720fe | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/reprs/P6 (2 files): Get P6int/P6num to take/keep bit size. |
|||
p: 2ea09b8 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/reprs/VMArray (4 files): Compact int8/int16/int32 array storage. This means a buf8/utf8/blob8 will actually be a byte array in memory. |
|||
jnthn | arnsholt: 91720fe is probably helpful to your nativecall work :) | 11:31 | |
afk for a bit | 11:39 | ||
11:47
dmol joined
11:49
frdmn left
11:54
daniel-s__ joined
11:55
frdmn joined,
daniel-s_ left
11:57
Bucciarati_ is now known as Bucciarati
12:13
dmol1 joined
12:14
dmol left
12:36
ztt left
12:46
dmol1 left
13:08
crab2313 joined
13:12
SamuraiJack joined
13:19
SamuraiJack_ joined
13:21
SamuraiJack left
|
|||
arnsholt | jnthn: Oh, super! Cheers! | 13:27 | |
13:28
zby_home_ joined
|
|||
ggoebel2 | An article on why javascript (and dynamic languages using GC) aren't currently up to muster on mobile devices and the performance challenges they face: sealedabstract.com/rants/why-mobile...-are-slow/ | 13:29 | |
13:34
birdwindupbird joined
13:38
mtk left
|
|||
bonsaikitten | ggoebel2: pretty much nonsense | 13:39 | |
"when I do stupid things the results are stupid" | |||
13:39
birdwindupbird left
13:41
drbean joined
|
|||
colomon | jnthn: speaking of weird results, I sometimes run out of memory compiling jakudo on my Mac. 8 gigs of ram, 33 gigs of hard drive space. | 13:44 | |
tadzik | arnsholt: ping | 13:47 | |
13:48
crab2313 left
|
|||
tadzik | arnsholt: do you feel like some beer today? :) | 13:50 | |
jnthn | colomon: I suspect you're not really running out of memory, just hitting a heap size limit | 13:54 | |
ggoebel2, bonsaikitten: The bits on GC performance relative to how much memory it's allowed to use match what I've seen in various situations, fwiw. | 13:56 | ||
colomon | jnthn: the thing I find scary about the situation is I then hit make again and everything works. | 14:05 | |
jnthn | colomon: OK, that's weird. | 14:07 | |
mst | tadzik: YES | 14:08 | |
14:17
grondilu_ joined,
grondilu joined
|
|||
grondilu | 'our $someVar is export = *' <- is that NYI or something? | 14:18 | |
jnthn | correct | 14:19 | |
grondilu | ok | ||
jnthn | constant foo is export # does work | ||
grondilu tries that | |||
tadzik | mst: are you in Oslo? | 14:20 | |
mst | tadzik: no, but I'm still going to drink beer today :) | ||
tadzik | fair enough :) | ||
14:22
kingbeast left
|
|||
arnsholt | tadzik: Beer would be cool, but sadly I'm not in Oslo today | 14:24 | |
How long are you in Oslo? | 14:25 | ||
tadzik | arnsholt: until thursday | 14:31 | |
and contrary to my initial expectations, I'll probably have plenty of time during the week as well :) | |||
14:33
grondilu_ left
|
|||
timotimo | \o/ | 14:37 | |
dalek | p: 92197db | jnthn++ | src/vm/jvm/ (2 files): Add nqp::encode(...) op for encoding to a buffer. |
14:38 | |
timotimo | yays! :) | 14:40 | |
dalek | kudo/rebuf: 958ece3 | jnthn++ | src/core/ (4 files): Get Str.encode working for new Buf implementation. It now also returns utf8/utf16/utf32 types when appropriate, falling back to blob8 for the rest of the cases. With this, both unpack.t and pack.t now pass on JVM (will need some work on Parrot to get things to work again there, though). |
||
jnthn guesses trying to decode a utf8/utf16/utf32 as if they were anything else should just fail | 14:46 | ||
arnsholt | jnthn++ # nqp::encode | ||
I agree. It should throw an exception of some kind | 14:47 | ||
Trying to magically recover from badly encoded data isn't going to be fun (and will likely cause all kinds of backwards compat headaches later on) | |||
jnthn | *nod* | ||
Well, this is the specy-ish Buf/Blob etc implementation attempt so far, so we get to figure out the interesting corner cases :) | 14:48 | ||
It's easier to explore 'em with an impl, though :) | |||
arnsholt | tadzik: Cool. We should be able to get some beers during the week then. I'm back at work on monday. You at the Oslo Opera office for a bit? | ||
14:49
crab2313 joined,
mtk joined
14:51
crab2313 left
14:53
xilo joined
14:58
mdxi joined
15:02
rindolf joined
15:08
raiph joined
|
|||
tadzik | arnsholt: yeah, I'm sent here to work with the rest of the team | 15:09 | |
dalek | p: 3fde283 | jnthn++ | src/vm/jvm/ (2 files): First pass at nqp::decode(...). |
15:20 | |
15:22
zby_home_ left
|
|||
dalek | kudo/rebuf: 36a3460 | jnthn++ | src/core/Buf.pm: Add decode for new Buf implementation. Again, will need some work to get this supported on Parrot too. Also added .Str that works to utf8/utf16/utf32 types since they carry their encoding around with them. |
15:22 | |
15:22
n0den1te joined
15:24
zby_home joined
|
|||
[Coke] yawns | 15:30 | ||
15:36
dispareil joined
|
|||
dispareil | Hi everyone ....i want to know about the future prospects of Perl 6 | 15:38 | |
mst | 'pretty f*cking awesome' | 15:47 | |
[Coke] | msg++ | 15:48 | |
... msT++ | |||
mst | people are having awesome fun, exploring awesome ideas, the latest VM work shows a path to passing 'fast enough' for a bunch more problems than previously | 15:52 | |
[Coke] | dispareil: did you have a more specific question? | 15:54 | |
anyone here that's familiar with java's ProcessBuilder? | 15:55 | ||
woolfy | mst++ | ||
mst | dispareil: it's notable that I'm a happy perl5 programmer and fairly known as being relatively skeptical of the perl6 project's chances of being -my- choice of next language to use | 15:56 | |
n0den1te | [Coke]: qx and backticks? | ||
mst | dispareil: but really, things are looking very cool at the moment and even if I never go from 'skeptical' to 'believer' I really enjoy hanging out here and sharing ideas :) | 15:57 | |
[Coke] | n0den1te: I'm trying to polish off the shell() implementation, but yes. | 16:00 | |
n0den1te | [Coke]: cool, what did you want to know about PB? Maybe I can help there. :) | 16:01 | |
[Coke] | let me gist something. | 16:03 | |
16:08
lizmat left
|
|||
[Coke] | gist.github.com/coke/6045565 | 16:08 | |
16:08
lizmat joined
|
|||
[Coke] | It seems that the env. I'm creating is not being passed along. | 16:09 | |
(apologies for the large amount of debugging output) | 16:10 | ||
n0den1te | oldest form of debugging. :) | ||
okay, so when you spawn the shell command you want to inherit the parent's environment? | 16:11 | ||
TimToady | actually, I believe the oldest form of that required tweezers | ||
lizmat | magnetic ones, at that :-) | 16:12 | |
n0den1te | TimToady: Ah, I'm too young to remember those. :-) | ||
TimToady has seen computers with vacuum tubes running for real work | 16:13 | ||
though I'm not old enough to have witnessed the moth incident :) | 16:14 | ||
n0den1te: by default, you pass on what your parent gave you, but a process also needs to be able to override part or all of it | 16:15 | ||
[Coke] | n0den1te: yes. | 16:16 | |
well. This is perl, so I want to inherit the parent's %*ENV, not the actual java System.getEnv | 16:17 | ||
n0den1te | [Coke]: the XX prefixed items are where you have put entries from parent's ThreadContext. | 16:19 | |
I don't know nqp's API well enough to say - what you got out of iter is from System.getEnv props. | |||
TimToady | also note that %*ENV, as a dynamic variable, is designed to be inherited within Perl 6 as well, so you probably want whatever %*ENV is visible at the point of whatever is spawned | ||
[Coke] | the XX are testing whether or not it was impacting new entries or just old entries. no impact - they all get the old value, not the new value. | ||
TimToady: one impossible problem at a time. | 16:20 | ||
(also, I'm pretty sure we're getting that for "free" with the current setup) | |||
(we're passing in the dynamic env when the nqp opcode is invoked.) | |||
TimToady | (if a spawner wants the original ENV that our process inherited, it can always say something like: my %*ENV = %PROCESS::ENV; | ||
[Coke]: okay, good | 16:21 | ||
n0den1te | [Coke]: well, if you *really* want to wipe environment with a new set of items, you can look into Runtime's exec family of methods. | ||
They all call into PB under the hood. | |||
[Coke] | n0den1te: from the docs, I should be able to get the env, clear it, and then set new values. | ||
16:22
skids joined
16:23
birdwindupbird joined
16:26
dispareil left
16:29
pupoque joined
16:38
Rotwang left,
skids left,
skids joined
|
|||
n0den1te | [Coke]: Yes, I had that doc open here. I just wrote a small test to verify those docs were right. | 16:40 | |
[Coke]: there's nothing that stands out to me from your gist as to the error. | 16:43 | ||
[Coke]: except maybe that you're not getting *ENV propagated back into your shell()'s context. | 16:44 | ||
[Coke] | I just whipped up a small example that works fine. :| | 16:45 | |
gist.github.com/coke/6045565 //WTF.java | 16:46 | ||
(if I run that with "/usr/bin/env", I get the expected output) | |||
n0den1te | [Coke]: That'd work fine (I tried that out here too). What I meant was, somehow the mehtod doesn't see that *ENV<key> was modified and the ThreadContext sees the default shell env vars. | 16:47 | |
16:47
lue joined
|
|||
[Coke] | but it does see that it was modified - when I'm looping over the keys of $*ENV, the correct value is there. | 16:48 | |
arglebargle, no it isnt. | |||
thank you | |||
n0den1te | [Coke]: nice, we all have our days. :) | 16:50 | |
[Coke] | TimToady: this is how I'm invoking the op from rakudo: | ||
$status = nqp::shell($cmd, nqp::getattr(%*ENV, EnumMap, '$!storage')); | |||
wondering if there is a better way to spcify the ENV there, or a better way to ask for the internal java storage. | 16:51 | ||
jnthn | [Coke]: Looks right to me at first glance | 16:53 | |
[Coke] | jnthn: it should, it came from you. ;) | ||
16:53
Rotwang joined
|
|||
jnthn | ;) | 16:54 | |
Well, I'm not equally smart every day :) | |||
TimToady compensates by being equally smartmouthed every day :) | 16:55 | ||
TimToady is usually not equally smart on any day, let alone every day... | 16:56 | ||
dalek | p: fe29d89 | jnthn++ | src/vm/parrot/6model/reprs/VMArray.c: Missing GC marking in VMArray REPR on Parrot. |
16:57 | |
jnthn | *sigh* it still segfaults... | ||
arnsholt | nqp/t/nativecall/01-basic.t now has one passing testcase \o/ | 16:59 | |
jnthn: Would you be sad if all the tests in the NQP on Parrot were run under 'nqp --vmlibs=nqp_dyncall_ops'? | 17:00 | ||
jnthn | arnsholt: Could live with it | 17:01 | |
arnsholt | tadzik: Cool. I work at the university, so we can meet up on the subway heading into the city. You have any preference for monday or wednesday? | ||
Spiffy. 'Cause that's by far the easiest way to get the NativeCall tests running properly on Parrot | 17:02 | ||
I'll see if I can come up with something more clever, but that's the dead easy way. Just make it prove --exec '$(NQP_EXE) --vmlibs=nqp_dyncall_ops' ... | 17:03 | ||
jnthn | Ugh. Now I understand why VMArray deserialization segfaults... | 17:06 | |
jnthn figures he'll fix that after dinner | |||
17:22
birdwindupbird left
17:23
ajr joined,
ajr is now known as Guest88114,
Guest88114 is now known as ajr_
|
|||
diakopter | jnthn: why was it? :) | 17:28 | |
TimToady | it was because he hasn't yet fixed it after dinner | 17:43 | |
n0den1te groans | 17:44 | ||
18:18
n0den1te left
|
|||
diakopter | :) | 18:20 | |
18:22
rindolf left
18:33
rindolf joined
18:38
rindolf left
18:52
rindolf joined
18:54
fgomez joined
|
|||
jnthn back | 19:05 | ||
diakopter | wb | ||
19:05
rindolf left
|
|||
jnthn grumbles about the warm weather | 19:05 | ||
19:17
skids left
19:19
SamuraiJack_ left
|
|||
tadzik | yeah, I got to Norway and all I got was warm weather too. I feel cheated :P | 19:24 | |
arnsholt: I don't have plans for either so far | |||
lizmat | if it's any consolation: the coming for days in NL are going tobe 30+ | ||
four | |||
jnthn | eek | 19:31 | |
arnsholt | tadzik: How about Wednesday, then? Should I pick a brew pub, or do you have some places you'd like to visit? | 19:32 | |
19:33
cognominal__ left
|
|||
dalek | ast: 0a12a9c | (Elizabeth Mattijsen)++ | integration/99problems-21-to-30.t: pick() is now implemented |
19:33 | |
lizmat | r: my Any $a; say $a.list; my Hash $h; say $h.list # there is a discrepancy here that smells | 19:36 | |
camelia | rakudo 492feb: OUTPUT«(Any)Cannot look up attributes in a type object in method pairs at src/gen/CORE.setting:7181 in method list at src/gen/CORE.setting:7175 in block at /tmp/dRd2wyGXC4:1» | ||
lizmat | FWIW, I think both should generate an empty list, the latter of type Hash | 19:37 | |
jnthn: we figured not going to Portland would give us some cooler weather | 19:38 | ||
but instead of us going to Portland, the Portland weather came to us | |||
tadzik | arnsholt: I've no idea for a place :) | 19:40 | |
jnthn | lizmat: Sounds like... | 19:41 | |
lizmat | jnthn: in EnumMap::pairs it says: "return unless nqp::defined($!storage);" This bombs with "Cannot look up attributes in a type object" in nqp::defined | 19:44 | |
so I guess the intent there *was* to return an empty list | |||
19:44
raiph left
|
|||
jnthn | Isn't it the $!storage that'd bomb? | 19:46 | |
lizmat | you could also say that... | ||
19:46
domidumont left
|
|||
lizmat | anyway, the test seems bombing in a way that is not intended, I would think | 19:47 | |
jnthn | r: say EnumMap.pairs | ||
camelia | rakudo 492feb: OUTPUT«Cannot look up attributes in a type object in method pairs at src/gen/CORE.setting:7181 in block at /tmp/Op0nABViNL:1» | ||
jnthn | Probably Paris should only be defined on EnumMap:D | 19:48 | |
*paris | 19:49 | ||
lizmat | well, from you guidance, I have refrained from turning methods into multi methods | ||
jnthn | um. pairs | ||
You can :D on single dispatch too :) | |||
lizmat | we'll always have pairs :-) | ||
TimToady | Pairs in the the spring. | ||
lizmat | jnthn: will try that | 19:50 | |
19:51
raiph joined
|
|||
jnthn | grr, Rakudo on Parrot takes at lesat twice as long to build as Rakudo on JVM... | 19:52 | |
lizmat | anyway, suppose I have a list of Hashes: my Hash @l | 19:54 | |
dalek | p: c37b962 | jnthn++ | src/vm/parrot/6model/serialization.c: Set type object STable earlier in deserialization. Otherwise, things like typed arrays find the types they want to look at the storage_spec of are not yet complete enough and explode. |
||
lizmat | jnthn: is that to fix the pb I found? | ||
jnthn | lizmat: No, it's part of my work to get the new Buf stuff I'm doing to work on Parrot. | 19:55 | |
lizmat | ah, ok | ||
back to what I was saying: so you have a list of Hashes @l, you can then *not* just simply do a keys/kv/pairs on any element, because they might bomb if not properly initialized yet | 19:57 | ||
you would *have* to say something like "my Hash @l is default ({})" to make this work | 19:58 | ||
that seems counter-intuitive to me | |||
19:59
rindolf joined
|
|||
lizmat | possibly we could make "is default ({})" the default for Hash ? | 19:59 | |
19:59
cognominal joined
|
|||
lizmat | conversely "is default([])" the default for List/Array ? | 19:59 | |
jnthn: adding the EnumMap:D:, turns the error into "Parameter '' requires an instance, but a type object was passed" | 20:05 | ||
jnthn | Yup | 20:06 | |
We can probably be smarter when we know it's the invocant | |||
20:07
raiph left
|
|||
jnthn | But it's failing to reach the method rather than failing inside of it now, at least. | 20:07 | |
lizmat | well, that's what I'm saying: it should return an empty something appropriate for the given method | ||
20:08
raiph joined
|
|||
jnthn | I'm not convinced an undefined thing should magically pretend it's an empty thing... | 20:08 | |
lizmat | r: my Hash %h; say %h<foo>.keys | 20:09 | |
camelia | rakudo 492feb: OUTPUT«Cannot look up attributes in a type object in method pairs at src/gen/CORE.setting:7181 in method keys at src/gen/CORE.setting:7177 in block at /tmp/rXs2KeQu2r:1» | ||
lizmat | in a similar P5 situation, this would just return an empty list | 20:10 | |
p5eval: my %h; keys %{ $h{foo}} | |||
p5eval | lizmat: 0 | ||
20:10
sftp left
|
|||
lizmat | p5eval: my %h; ()=keys %{ $h{foo}} | 20:11 | |
p5eval | lizmat: 0 | ||
lizmat | p5eval: my %h; print keys %{ $h{foo}} | ||
p5eval | lizmat: 1 | ||
lizmat | grrr | ||
anyway, P5's "0" is the number of keys, not the first key as it is currently in P6 | 20:12 | ||
p5eval: my %h; my @a= keys %{ $h{foo}}; $#a | |||
p5eval | lizmat: -1 | ||
20:13
sftp joined
|
|||
lizmat | r: my %h; my @a= keys %h<foo>; say @a.end | 20:13 | |
camelia | rakudo 492feb: OUTPUT«0» | ||
lizmat | r: my %h; my @a= keys %h<foo>; say @a.elems | ||
camelia | rakudo 492feb: OUTPUT«1» | ||
lizmat | p5eval: my %h; my @a= keys %{ $h{foo}}; 0+@a | 20:14 | |
p5eval | lizmat: 0 | ||
lizmat | so, in p5 we get an empty array, in perl 6 we got an array with one elemen | ||
well, that is, if we *don't* type the hash. If we *do* type the hash, it bombs | 20:15 | ||
r: my Hash %h; my @a= keys %h<foo>; say @a.elems | |||
camelia | rakudo 492feb: OUTPUT«Cannot look up attributes in a type object in method pairs at src/gen/CORE.setting:7181 in method keys at src/gen/CORE.setting:7177 in sub keys at src/gen/CORE.setting:2122 in sub keys at src/gen/CORE.setting:2121 in block at /tmp/ibkWfRPDXo:1»… | ||
lizmat | jnthn: if the invocant is defined, ten $!storage is always set, right ? | 20:19 | |
jnthn | No | ||
The underlying storage is lazily allocated | |||
lizmat | so guarding a method like "invert" with an EnumMap:D: will still bomb if the storage hasn't been allocated yet | 20:21 | |
r: myt Hash $h=() # somewhat related, is this a rakudobu ? | 20:22 | ||
camelia | rakudo 492feb: OUTPUT«===SORRY!===Two terms in a rowat /tmp/AEi2uFGho9:1------> myt Hash ⏏$h=() # somewhat related, is this a rak expecting any of: postfix infix stopper infix or meta-infix statement end … | ||
lizmat | r: my Hash $h=() # somewhat related, is this a rakudobu ? | ||
camelia | rakudo 492feb: OUTPUT«Type check failed in assignment to '$h'; expected 'Hash' but got 'Parcel' in block at /tmp/UZvBZZPVsf:1» | 20:23 | |
jnthn | lizmat: No, that's what the defiend check is for. | ||
lizmat | you mean the "return unless nqp::defined($!storage)", right? | 20:24 | |
jnthn | yes | ||
lizmat | r: my Hash $h={} # guess it should be thiss | 20:26 | |
camelia | rakudo 492feb: ( no output ) | ||
dalek | p: abc88b3 | jnthn++ | src/vm/parrot/6model/reprs/VMArray.c: Give VMArray its missing get_elem_stable. |
||
p: 4c6b793 | jnthn++ | src/vm/parrot/6model/reprs/VMArray.c: Fix VMArray growth logic bug. |
|||
lizmat | r: my EnumMap $h; say $h.hash # shouldn't this be (Hash) ? | 20:28 | |
camelia | rakudo 492feb: OUTPUT«(EnumMap)» | ||
jnthn | No. .list and .hash are "give me something listy/hashy", not expect coercions. | ||
*exact | |||
lizmat | ok | 20:29 | |
20:32
rindolf left
|
|||
lizmat | TimToady: would you consider "my Hash $h is default({})" valid code? having the default me {} rather than a simple value? | 20:32 | |
jnthn | The sparse case of "my Hash @foo" is probably worth a spec question if there's no answer at present, though, with regard to things like .pairs. | ||
lizmat | ok, will write of a spec issue then | 20:33 | |
s/of/up/ | |||
n: r: my Hash %h; my @a= keys %h<foo>; say @a.elems # just curious | 20:37 | ||
camelia | niecza v24-88-g1f87209: OUTPUT«1» | ||
lizmat | n: my Hash %h; my @a= keys %h<foo>; say @a.elems # just curious | 20:38 | |
camelia | niecza v24-88-g1f87209: OUTPUT«1» | ||
lizmat | n: my Hash %h; my @a= keys %h<foo>; say @a # just curious | ||
camelia | niecza v24-88-g1f87209: OUTPUT«0» | ||
lizmat | that doesn't feel right either, but at least it doesn't bomb | 20:39 | |
dalek | p: 0c3febd | jnthn++ | src/vm/parrot/ (2 files): A few more missing VMArray pieces Buf needs. |
20:42 | |
20:43
ecocode joined
|
|||
timotimo works on a preliminary ugly-ish hack to make pod blocks get implicit indent if they are specced to. | 20:46 | ||
20:47
mdxi left,
mdxi joined
|
|||
lizmat | jnthn: FWIW, if I remove "return unless nqp::defined($!storage);" from EnumMap::pairs(EnumMap:D:), I get massive spectest failures | 20:49 | |
jnthn | Yes, I'd imagine. | 20:50 | |
lizmat | so it would seem that at some level, the code already depends on return an empty list on lack of $!storage | ||
jnthn | Yes, the point of adding the :D was to prevent the method being called on a type object, it's orthogonal to if $!storage is populated | ||
20:51
ajr_ left
|
|||
lizmat | so how do you create a Hash that is DEFINITE but doesn't have $!storage ? | 20:51 | |
jnthn | Every hash starts that way, I think. | ||
r: my %h; say nqp::defined(nqp::getattr(%h, EnumMap, '$!storage')) | 20:52 | ||
camelia | rakudo 492feb: OUTPUT«0» | ||
20:52
mdxi left
|
|||
lizmat | r: my $h=Hash.new; say nqp::defined(nqp::getattr($h, EnumMap, '$!storage')) | 20:53 | |
camelia | rakudo 492feb: OUTPUT«Can not get attribute '$!storage' declared in class 'EnumMap' with this object in block at /tmp/S1a0WxnjDH:1» | ||
jnthn | $h has a scalar container around it | 20:54 | |
So you'd need nqp::decont($h) in the getattr | |||
lizmat | r: my $h=Hash.new; say nqp::defined(nqp::getattr(nqp::decont($h), EnumMap, '$!storage')) | ||
camelia | rakudo 492feb: OUTPUT«0» | ||
lizmat | gotcha | 20:55 | |
jnthn: the error message "Parameter '' requires an instance, but a type object was passed" | 21:08 | ||
wouldn't that be better as "Invocant requires an instance, but a type object was passed" | |||
or perhaps even better as "Cannot call "foo" on a type object" ? | 21:09 | ||
jnthn | lizmat: Yes, it would be. | ||
Well, the invocant one at lesat is easy to do | 21:10 | ||
lizmat | ok, I'll go dig | ||
dalek | kudo/nom: c5d90d6 | (Elizabeth Mattijsen)++ | src/core/EnumMap.pm: Standardized error where EnumMap type objects are used as invocant when they shouldn't |
21:17 | |
21:18
ecocode` joined
21:19
bruges joined
|
|||
lizmat | jnthn: in bind.c , if there is no param->variable_name, can I assume it is about the invocant ? | 21:20 | |
21:20
ecocode left
|
|||
lizmat | (line 478) | 21:20 | |
21:21
bruges_ left
|
|||
dalek | rlito: 754fd76 | (Flavio S. Glock)++ | / (4 files): Perlito5 - indirect-object parser works (" new Dog -> bark ") |
21:23 | |
jnthn | lizmat: No | 21:24 | |
lizmat: But param->flags has a "this is an invocant" flag in there somewhere. | |||
lizmat | aha, ok | ||
jnthn | (it's just a big bitmask thingy) | 21:25 | |
lizmat | SIG_ELEM_INVOCANT | ||
jnthn | sounds like it | 21:28 | |
dalek | p: 38cee07 | jnthn++ | src/vm/parrot/ (2 files): nqp::encode and nqp::decode on Parrot. |
21:29 | |
timotimo | cool :) | 21:31 | |
jnthn | Missing: the operators, getting read/write IO operations that use Buf updated. | ||
21:32
pupoque left
21:33
pupoque joined
21:36
spider-mario left
|
|||
lizmat | r: Hash.pairs | 21:39 | |
camelia | rakudo 492feb: OUTPUT«Cannot look up attributes in a type object in method pairs at src/gen/CORE.setting:7181 in block at /tmp/GqyEutmyKK:1» | ||
dalek | kudo/nom: 819d371 | (Elizabeth Mattijsen)++ | src/vm/parrot/guts/bind.c: Make some lower level error message more understandable Hash.pairs now says "Invocant requires an instance, but a type object was passed" instead of: "Parameter '' requires an instance, but a type object was passed" |
||
lizmat | The above error (Cannot look up…) was already fixed with my previous commit | 21:40 | |
timotimo | cool | 21:41 | |
good things are going on, i see. | |||
21:44
yoleaux joined,
ChanServ sets mode: +v yoleaux
|
|||
diakopter | . | 21:44 | |
jnthn | TimToady: What should operators like ~, ~& and so forth do on Blob/Buf types when there are different kinds of thing on each side? | 21:47 | |
21:54
zby_home left
|
|||
lizmat | trying to interpret this error: Can not get attribute '$!infinite' declared in class 'List' with this object | 21:58 | |
does that mean that it knows that List.$!infinite exists, but that the invocant is not a List ? | 21:59 | ||
jnthn | It could mean that, yes | ||
Note that all attribute lookups are fully qualified | 22:00 | ||
So it just means "this attribute doesn't exist on the object you tried to look it up on" | |||
lizmat | hmmm… wonder how that would be possible, I mean | 22:01 | |
trying to optimize List.infinite, as it is being called a lot | |||
jnthn | Probably a screw-up when using nqp::getattr | 22:02 | |
OK. Note that using nqp::getattr(...) rather than writing $!infinite is not an optimization :) | |||
In fact, it's currently the opposite | |||
lizmat | I mean, how can that method be called if the object is not ISA List ? | ||
this is the diff: | 22:03 | ||
- self.DEFINITE && $!nextiter.defined && $!nextiter.infinite; | |||
+ $!infinite //= | |||
+ (self.DEFINITE && $!nextiter.defined && $!nextiter.infinite); | |||
jnthn | I can guess better if I can see what you're trying... | ||
lizmat | also: + has Bool $!infinite; # true: infinite list, false: not, undef: check | ||
jnthn | hmm | 22:04 | |
lizmat | this is probably too naive, but it's failing for a reason I don't understand | ||
22:05
ecocode` left
|
|||
lizmat | it appears to happen on a circumfix {} | 22:09 | |
that in the end calls ListIter.infinite | |||
and that calls "nqp::atpos($!rest,0).infinite" and then bombs | 22:10 | ||
hmmm… this also explains some recursion I've seen when trying to put some debug code in infinite | 22:11 | ||
.oO( trying to find out why my @a=1..Inf; @a.infinite returns true, but @a.uniq.infinite doesn't |
22:12 | ||
I guess I forgot to mention this happens when setting is loaded | 22:14 | ||
timotimo | i'm almost at the point where i'd go and re-enable trimming the whitespace in pod blocks again. | ||
22:19
lue left
|
|||
dalek | kudo/rebuf: cb96e37 | jnthn++ | src/core/Buf.pm: Start to get Buf ops back in place. Since Buf ~~ Blob, they are now really blob ops. Done some tweaks to try and adapt a little better to the new range of types available. Unfortunately, the ops all seem to hit a multi-dispatch conflict. |
22:20 | |
lizmat | "RPA of elements remaining to be reified" what is an RPA ? | 22:25 | |
jnthn: if something is supposed to return a Bool, but can't decide on True/False, wouldn't it be better to return Bool, rather than Mu ? | 22:27 | ||
or maybe better a question for TimToday :-) | 22:29 | ||
*TimToady :-) | 22:30 | ||
r: say (1..Inf).uniq.infinite # shouldn't this be Bool rather than Mu ? | 22:31 | ||
camelia | rakudo 819d37: OUTPUT«(Mu)» | ||
timotimo | Resizable Parrot Array iirc | 22:32 | |
actually, Resizable PMC Array | |||
22:33
lue joined
|
|||
timotimo | one day i'll write an ikiwiki clone based off of pod6 ... | 22:34 | |
lizmat | timotimo: I guess that's Parrot's way of saying "my @a" | ||
dalek | ecs: a0ec33f | (Elizabeth Mattijsen)++ | S99-glossary.pod: Add RPA |
22:35 | |
timotimo | yeah, pretty much | ||
lizmat | afk for 30 mins or so | ||
timotimo | nqp uses it internally afaict | ||
or ... it uses qrpa | 22:36 | ||
lue | timotimo: better yet, improve november to use Pod6 :) | 22:37 | |
timotimo | i know nothing about november :| | 22:40 | |
the only instance of it seems to be in japanese | |||
which i also know nothing about :) | |||
lue | github.com/viklund/november/ (hasn't been touched in years, sadly) | 22:41 | |
timotimo | pod6 isn't entirely there yet, though | 22:44 | |
especially formattingcodes in table cells are sorely missing. | |||
well ... sorely missing mostly from the S26 rendering. | |||
i'm considering implementing formattingcodes that don't span lines now and proper multiline formattingcodes later. | |||
damn it, =for output squashes everything into one line | 22:45 | ||
22:48
lue left
22:49
cognominal left
|
|||
jnthn | lizmat: These days, it really means "the VM's low level array-ish thing" | 22:51 | |
timotimo | i think pod block parsing needs to be rewritten in a more configuration-driven way. there's currently a 1:1 relationship with "is code block (and does not allow formatting codes)" and "will preserve justification and preformatting", but output and input blocks ought to be preformatted but allow all fcodes | ||
jnthn | lizmat: In JVM and Moar impls it's something with VMArray REPR | ||
timotimo | at the moment there's the "ALLOW_FCODES" thing i came up with which could be a short term solution, but ... enh. | ||
lizmat | so, should I remove mention of RPA from the comments ? and replace it with the more generic VMArray ? | 22:52 | |
or VMArray REPR | |||
? | |||
jnthn | lizmat: Well, but that ain't true on Parrot | ||
lizmat | well, this is in src/core/ListIter, so VM agnostic | 22:53 | |
jnthn | "low level array" or "VM's array type" maybe | ||
lizmat | VM's array type sounds good to me | ||
timotimo | do i need the [ ] after the || in [ "foo" | "bar" || [ "baz" | "quux"] | 22:55 | |
] | |||
what about before? | |||
jnthn | || is looser than | | 22:57 | |
timotimo | thank you | 22:58 | |
23:00
lue joined
23:02
Khisanth left
|
|||
lizmat | jnthn: "$type = 'RPA' if $type eq 'ResizablePMCArray';" seems to be a parrotism, that should be surrounded bu a #if parrot, right ? | 23:04 | |
by | |||
src/core/Mu:714 | 23:05 | ||
23:07
lue left
|
|||
jnthn | lizmat: hm, yeah | 23:07 | |
Notice how $type is set is also VM specific :) | 23:09 | ||
'night, #perl6 | 23:10 | ||
dalek | kudo/nom: 9db2d52 | (Elizabeth Mattijsen)++ | src/core/ListIter.pm: Make ListIter.infinite return Bool when it can't make up it's mind. This at least makes (1..Inf).uniq.infinite return Bool rather than Mu |
||
kudo/nom: d1c591c | (Elizabeth Mattijsen)++ | src/core/Mu.pm: Only do this parrotism when Parrot is the VM (in DUMP) |
|||
kudo/nom: 4a977dc | (Elizabeth Mattijsen)++ | src/core/ (4 files): In comments, Change Parrot-centric mention of RPA to more general VM's array |
|||
lizmat | gnight jnthn! | 23:11 | |
jnthn: "Notice how $type is set is also VM specific :)" exactly :-) | 23:13 | ||
23:14
grondilu left
23:17
Khisanth joined
23:20
lue joined
23:27
raiph left
|
|||
lizmat | .oO( ooh, s/it's/its/ in commit message of 9db2d52) |
23:27 | |
23:28
lue left
|
|||
lizmat | r: say Iterable^mro | 23:29 | |
camelia | rakudo 819d37: OUTPUT«===SORRY!===Undeclared routine: mro used at line 1» | ||
lizmat | r: say Iterable.^mro | ||
camelia | rakudo 819d37: OUTPUT«(Iterable) (Any) (Mu)» | ||
lizmat | r: say ListIter.^mro | ||
camelia | rakudo 819d37: OUTPUT«(ListIter) (Iterator) (Iterable) (Any) (Mu)» | ||
lizmat | r: say List.^mro | ||
camelia | rakudo 819d37: OUTPUT«(List) (Iterable) (Cool) (Any) (Mu)» | ||
lizmat | hmmm | 23:30 | |
timotimo coded himself into a corner and can't get out | 23:32 | ||
there needs to be a table or something rather than rules full of special cases. | 23:33 | ||
lizmat takes away the fourth wall | |||
timotimo | output and input can contain code blocks, but are themselves to be parsed with preformatting ... but the rules that do preformatting (those are called *_raw) will never accept nested blocks ... | ||
welp ... time for a dramatic restructuring ... | 23:34 | ||
lizmat | .tell jnthn: it feels to me that in some cases List.infinite is being called on a Iterable object | 23:35 | |
yoleaux | lizmat: What kind of a name is "jnthn:"?! | ||
lizmat | .tell jnthn it feels to me that in some cases List.infinite is being called on a Iterable object | ||
yoleaux | lizmat: I'll pass your message to jnthn. | ||
23:35
pupoque left
|
|||
lizmat | .tell jnthn when judging by the code, it should call Iterablle.infinite | 23:36 | |
yoleaux | lizmat: I'll pass your message to jnthn. | ||
lizmat | .tell jnthn could this have to do with the fact that Iterable.infinite returns Mu ? | ||
yoleaux | lizmat: I'll pass your message to jnthn. | ||
23:39
grondilu joined
23:40
lue joined
23:42
fridim__ joined
23:44
grondilu left
23:45
BenGoldberg joined
|
|||
lizmat | gnight #perl6! | 23:52 | |
23:53
colomon left
23:55
Rotwang left
|
|||
woolfy | good night lizmat | 23:57 | |
23:58
colomon joined
|