»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
[Coke] sorear: 5 test files failed in niecza spectest 00:02
djanatyn: the SYNopses have an IO chapter. Not sure if the book does. 00:03
japhb The good news is that the performance of @A X~ @A is only slightly worse than linear in (@A X~ @A).elems, and that could just be a matter of the size of the strings. The problem seems to be that the coefficient sucks -- only ~600 elements/second on my box.
00:04 alester left 00:15 donri left
djanatyn okay, got it :D 00:16
perl6 is fun! 00:17
00:20 replore_ joined
djanatyn I'm a little confused on how regex works, though. 00:20
[Coke] they're... a little different than from p5. 00:21
djanatyn in the original perl5 code I was writing, I had the code: for (<FILE>) { if (/^DTSTART:(.+)/) { print "date: $1\n"; } } 00:22
00:26 Grrrr left, DarthGandalf left 00:27 MayDaniel left 00:28 DarthGandalf joined 00:31 Grrrr joined
djanatyn are $1, $2, and $3 just like in perl5? 00:40
00:40 wolfman2_ left 00:41 daniel-s joined
[Coke] I believe they start at 0 now. 00:41
djanatyn aaaaaaaaah
okay, that makes more sense
I always wondered why they didn't start at zero
that also explains why my code was acting weird 00:42
[Coke] nom: "DTSTART: foobar" ~~ /^^ DTSTART: (.*)/ && say $0 00:43
p6eval nom 36d829: OUTPUT«=> <: foobar>␤␤»
djanatyn do I have to escape \: now? 00:44
00:45 japhb left
[Coke] nom: "DTSTART: foobar" ~~ /^^ 'DTSTART:' (.*)/ && say $0 00:45
p6eval nom 36d829: OUTPUT«=> < foobar>␤␤»
[Coke] sorry, yes, colon is, as in many places in p6, special.
djanatyn ah, that's okay 00:46
yay, I've got it doing the same thing as the perl5 code in less lines 00:49
gist.github.com/1326659 00:50
perl6 has macros? ...like, lisp macros? O_o 00:53
[Coke] the spec does. ;) 00:57
djanatyn hmm, I 00:58
heh :)
[Coke] masak++ is working on them for rakudo.
djanatyn so, how do they work, exactly?
and does any implementation have them yet?
[Coke] There's a been a lot of chat on the channel in the past week or so yet. No, I think masak's work is the first. 01:00
djanatyn is the syntax for anonymous arrays the same as in perl5? 01:03
[Coke] nom: sort(1,2,3,5,6).say 01:05
p6eval nom 36d829: OUTPUT«1 2 3 5 6␤»
djanatyn push @array, ($foo, $bar); # would this push a two element array containing $foo and $bar onto @array? 01:06
nope, looks like I need to change those parentheses to square brackets 01:10
01:12 japhb joined 01:14 frzntoz joined
colomon [Coke]: is it normal to get a number of hangs in the test running? 01:15
01:18 envi_ joined 01:20 DarthGandalf left 01:30 cooper joined
djanatyn yay, I finished it :D 01:31
and made a sandwich and coffee too
TimToady \o/
djanatyn now to split things into classes 01:32
TimToady ooh, class warfare!
djanatyn and I can start processing the data and figuring out neat things about the birthdays of all my friends
I can actually do a few things now. let's see which day of the year has the most birthdays: 01:33
hmm 01:37
how do I go through each key in a hash? 01:38
01:38 whiteknight left
djanatyn like, in a for loop. can I just use a for loop? 01:38
djanatyn hasn't used perl in a long time >_>
01:38 ponbiki left
TimToady %hash.keys in p6 01:38
or often, for %hash.kv -> $key, $value { ... } 01:39
01:39 ponpon joined, ponbiki joined
djanatyn for %hash.keys -> $key { say "%hash{$key}"; } # like this? 01:40
okay, gerat 01:41
*great
TimToady well, in that case you could just use .values
djanatyn that's awesome :D
TimToady but if you want to sort them, we usually use sort %hash.pairs -> $p { $p.key, $p.value)
colomon std: sort %hash.pairs -> $p { $p.key, $p.value) 01:46
p6eval std be1f10e: OUTPUT«===SORRY!===␤Variable %hash is not predeclared at /tmp/skirxUJx7R line 1:␤------> sort ⏏%hash.pairs -> $p { $p.key, $p.value)␤Unexpected block in infix position (method call needs colon or parens to take arguments) at /tmp/skirxUJ…
colomon std: my %h; sort %hash.pairs -> $p { $p.key, $p.value)
p6eval std be1f10e: OUTPUT«===SORRY!===␤Variable %hash is not predeclared at /tmp/YrnSo8fiyL line 1:␤------> my %h; sort ⏏%hash.pairs -> $p { $p.key, $p.value)␤Unexpected block in infix position (method call needs colon or parens to take arguments) at /tmp/…
TimToady works better with a 'for'
colomon oh
I thought you were doing some weird form of sort, with -> $p { $.pay, $p.value } as the schwartzian transform 01:47
(which is why I was trying to check to see if it was actually legal. :) 01:48
sorear [Coke]: about a year ago, I implemented the simplest case of string macros for Rakudo, but the code was very horrible and I didn't want it merged
[Coke] colomon: when running the non-running tests? yes. You could try sorear's ulmit -t trick.
colomon [Coke]: so far I'm just watching and killing by hand 01:49
[Coke] colomon: yah, that's what I did. ;)
djanatyn i'm just trying to figure out if multiple occurences of an item in an array occur 01:51
dalek odel: 3d901f4 | diakopter++ | lua/ (18 files):
tons of bugfixes
djanatyn I have an array of 2 element arrays, containing a date, and a name 01:52
I want to figure out how many occurences of each date there are 01:53
so I made a hash, and each time a date occurs, it uses that date as the key and increments the value by one
so I can track each occurence
and, it turns out, when you try to increment a value for a key that doesn't exist, it intializes that key with a value of zero and sets it to one! 01:54
so, hooray!
[Coke] autovivification.
djanatyn is that what it's actually called?
TimToady part of it
the part that creates it
djanatyn that's awesome 01:55
TimToady the other part is that operators know their bootstrap identity values
djanatyn perl 6 is the most polite language
TimToady nom: say [+]
p6eval nom 36d829: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<[ ]>, couldn't find final ']' at line 1␤»
TimToady nom: say [+]()
djanatyn it's like, "oh, it looks like it would be a pain in the neck to do this the hard way, let me just help you out"
p6eval nom 36d829: OUTPUT«0␤»
TimToady nom: say [*]()
p6eval nom 36d829: OUTPUT«1␤»
TimToady so if you do *= to an autovivified value, it assumes there's already a 1 there 01:56
djanatyn good guy perl6
01:58 DarthGandalf joined
dalek odel: 16a57be | diakopter++ | lua/Runtime/MultiDispatch/MultiDispatcher.lua:
missing file
01:58
djanatyn :D 02:02
wow, that's amazgin
*amazing
gist.github.com/1326748 -- it totally works! 02:06
interesting! 02:15
the most common day for birthdays on my facebook is 10/30, with 7 birthdays
02:16 snarkywork joined
djanatyn ...hey, that's today! 02:18
snarkywork djanatyn: looks like ics is the iCal file format - en.wikipedia.org/wiki/ICalendar ?
djanatyn: would be a great module for modules.perl6.org :D
djanatyn snarkywork: ...sure? 02:19
I'd like to do that
but this code is really specialized and specific
it doesn't actually parse iCal, it just uses regex to find specific information
but yeah, that seems like a fun thing to do! I'll have to find out more about the iCal format.
snarkywork could always be generalised later - write a little Perl6 grammar for it, if you wished
djanatyn++ # great idea :) 02:20
supporting the whole iCal file format might be a lot of work, but you could start by just parsing a subset, and slowly build it up 02:22
djanatyn yeah 02:23
are there any good graphing modules for perl6, or should I just transfer this information into a flat text file and graph it with Chart::Clicker in perl5? 02:25
snarkywork djanatyn: not too sure (doesn't appear to be any on modules.perl6.org really) 02:29
02:37 envi_ left
dalek odel: 02121da | diakopter++ | lua/Runtime/MultiDispatch/MultiDispatcher.lua:
most of MultiDispatcher porting
02:47
japhb It seems that in rakudo, creating '@A X~ @B' using a sub based on gather/take is a LOT faster than a sub based on push'ing the results on a big array. Looking at the low-level code, it looks like part of what makes this fast is direct Parrot support for gather/take. In niecza, should I also expect gather/take to be much faster than @result.push? 02:48
TimToady push typically has to keep reallocating the array as it grows, unless it cheats and peeks how much is incoming 02:54
(which p5 can do because it's eager)
02:55 frzntoz left
TimToady using .plan might be faster than .push 02:56
02:56 wolfman2000 joined
TimToady but maybe not 02:56
dalek odel: 718d631 | diakopter++ | lua/Runtime/MultiDispatch/MultiDispatcher.lua:
rest of MultiDispatcher porting
02:57
diakopter forgot about Signatures. 4 more files. 02:59
djanatyn is there an article I could read about writing modules for perl6? 03:04
03:25 Chillance left 03:31 snarkywork left
djanatyn ...what exactly is := ? 03:40
is it defining an array as a function?
my @fib := 1, 1, *+* ... *; # found this in a blog post 03:42
benabik djanatyn: := is binding. It makes a variable mean something else instead of store something else.
nom: my $x = 1; my $y := $x; $y = 2; say $x
p6eval nom 36d829: OUTPUT«2␤»
benabik nom: my $x = 1; my $y = $x; $y = 2; say $x
p6eval nom 36d829: OUTPUT«1␤»
djanatyn oh, cool!
so it's binding an expression to that array?
benabik It's binding the list to the variable. 03:43
djanatyn oh, okay 03:44
is there an easy way to describe what * means when declaring a list?
benabik The * at the end of the list means there is no end. 03:46
*+* is roughly the same as sub($x, $y) { $x + $y }
djanatyn okay, I see 03:48
benabik *, aka Whatever, is very useful. 03:51
nom: say (-pi, 0, pi).map: *.cos
p6eval nom 36d829: OUTPUT«-1 1 -1␤»
03:56 mkramer joined
dalek odel: 65fea87 | diakopter++ | lua/Runtime/Signatures/SignatureBinder.lua:
most of SignatureBinder.lua
03:59
04:17 daniel-s left 04:18 mkramer left 04:29 mkramer joined, mkramer left
djanatyn man, now that I wrote some perl6 code, I'm so excited that I don't want to go back to reading my common lisp book ;) 04:31
common lisp is exciting, but kinda ugly sometimes
and haskell is too hard for me right now
perl6 is fun! I dunno what to do with it, though
dalek odel: 83f8cb9 | diakopter++ | lua/Runtime/Signatures/SignatureBinder.lua:
rest of SignatureBinder.lua
04:36
04:41 bluescreen10 left 04:44 gorbad joined 04:49 kaleem joined
dalek odel: 377bf88 | diakopter++ | lua/Runtime/Signatures/Signature.lua:
Signature.lua
04:53
moritz o/ 05:04
dalek odel: 48d5e3b | diakopter++ | lua/Runtime/Signatures/ (2 files):
Parameter.lua
05:05
odel: 2b82bd4 | diakopter++ | lua/Runtime/Signatures/DefinednessConstraint.lua:
DefinednessConstraint
05:09
diakopter yay; that completes the port of 6model/dotnet to Lua 05:10
moritz why lua? because you can?
diakopter heh 05:11
an experiment I guess
05:15 orafu left 05:17 orafu joined
diakopter now to start on porting jnthn's nqp->C# compiler to nqp->lua 05:21
theoretically it's just a matter of syntax, and adjusting for the one-indexed tables
well, and converting the whole compile-to-assembly to compile-to-requirable-lua-module. 05:22
that should be pretty straightforward.
phenny: tell jnthn initial port complete; ready for emitter translation 05:23
phenny diakopter: I'll pass that on when jnthn is around.
05:23 preflex_ joined 05:24 preflex left, preflex_ is now known as preflex 05:34 kaleem left 05:35 drbean left 05:36 kaleem joined 05:38 daniel-s joined 05:41 drbean joined
dalek odel: dc565a3 | diakopter++ | lua/ (101 files):
move into foo dir
05:45
odel: 662ac2e | diakopter++ | lua/ (90 files):
rename foo to runtime
05:46
05:58 molaf joined 06:01 drbean left 06:07 kaare_ joined 06:08 drbean joined 06:09 sftp left 06:13 molaf left
sorear ponders priorities for the next 25 hours 06:14
dalek ecza: 1b30eff | sorear++ | lib/Cursor.cs:
Better error message for /<perl>/ et al (fixes #69)
06:20
sorear bugs? rewriting outdated documentation? BEGIN? 06:22
diakopter BEGIN :)
mberends would say docs
japhb Performance and correctness test of existing nom Str.Numeric(): gist.github.com/1327012 06:31
japhb pops another yak off the stack
sorear niecza #73 is more complicated than it looks 06:32
diakopter looks 06:35
dalek ecza: dab6499 | sorear++ | lib/CORE.setting:
List.pick shouldn't overwrite the variables it returns (fixes #73)
japhb looks at the size of the current yak, looks at the clock, decides to sleep instead 06:38
g'night all
06:38 Trashlord left
sorear niecza: my $str = "a\"b\\c"; $str ~~ s:g { <["\\]> } = '\\' ~ $/; say $str 06:39
p6eval niecza v10-245-g1b30eff: OUTPUT«a\"b\\c␤»
06:41 cooper left 06:42 koban joined
sorear nom: say <a b c>.pick xx 3 06:43
p6eval nom 36d829: OUTPUT«c c c␤»
dalek ecza: ab36838 | sorear++ | lib/CORE.setting:
Escape backslashes and quotes in Str.perl (fixes #72)
sorear What exactly does BEGIN { @*INC.push: ... } mean? 07:06
moritz what do you think it means? :-) 07:07
it means, at BEGIN time, push something to @*INC
sorear my first idea is that it modifies @PROCESS::INC, which is verboten since anything that cannot be saved is read-only at BEGIN time 07:08
moritz "cannot be saved"? 07:09
sorear when the compilation unit is serialized 07:10
moritz why can't it be saved?
sorear not so much "read-only" as "inaccessible" I suppose
because it's not per-module
moritz surpresss his desire to yell "just make it work" 07:11
sorear heh, current niecza has a *horrible* hack dedicated to exactly that 07:12
moritz :-)
sorear it recognizes BEGIN { @*INC.push("string-literal") } by AST walking and then modifies the search path correctly-ish
moritz I'm fine with changing it all to 'usb lib ...;', but rakudo doesn't implement that yet :( 07:13
and since neither approach is specced, the one used in roast is what worked in the earlier compiler(s)
sorear the other side of this question is, what should be the scope of BEGIN { @*INC }?
I guess it can't reasonably be inherited by importing modules 07:14
moritz sorear: on second thought it could be a feature that all modules share @*INC 07:15
you set it up once in your mainline, and then the modules can just 'use' their dependencies
masak g'mornings, #perl6
sorear allowing modules to share variables directly opens up a can of worms.
moritz \o masak
sorear o/ masak 07:16
masak I need to understand this "cannot be saved when the compilation unit is serialized" business.
moritz how do other languages do it?
masak it seems to make BEGIN mostly useless. 07:17
sorear moritz: most other languages do it by not having BEGIN at all, or not having precompilation
Perl 6 is pretty unique for wanting both
masak what's precompilation? 07:18
sorear masak: the basic rule in Niecza is, read-write access to local state, read-only access to data from imported modules
masak oh, saving compiled things. I see.
sorear: makes sense.
sorear masak: A.pm6: 'use B; constant foo = B::bar' # this is ok
masak right.
sorear masak: A.pm6: 'use B; BEGIN { push @B::bar, 5 }' # this is not ok 07:19
masak *nod*
sorear what I've decided to do is add a synthetic dynamic scope as the CALLER of all BEGINs, and add @*INC to that as local state 07:20
otoh, this won't allow modules to find their transitive dependencies, hmm. 07:21
because of the caching of compiled modules thing I'm skeptical of anything that allows A to influence B's parsing 07:22
masak: I'd like you to test your apps with new-niecza, ideally before the release tomorrow evening :)
masak will do. 07:23
oh, it's still Sunday where you're at? :)
yes, of course it is.
sorear well, 0024 07:24
masak ah.
I just arrived to $work.
sorear When I say "tomorrow" I often mean "after I've slept", even if it's already past midnight :)
or as my mom puts it: "It ain't tomorrow 'till I've slept." 07:25
masak that's a fine rule-of-thumb ;)
quietfanatic was saying something similar on Twitter the other day.
twitter.com/quietfanatic/status/130...7524573184 07:28
sorear Maybe the cache should be keyed on (unitname, @*INC) instead of just unitname...?
.o( If I'm going to call it a cache I should probably give it a size limit and LRU eviction code )
OTOH, I've been thinking a bit about a whole-system redesign, elaborating on S11 and handling :auth, etc etc 07:29
masak ooh 07:31
I think those parts suffer slightly from overdesignitis, at least where things like module databases enter the picture. 07:32
sorear the place S11 really goes wrong imo is that it assumes the unit of software packaging is the single class
masak on the other hand, it's difficult to try to deliver on all of the promises without a module database... :/
07:32 dual left
masak sorear: what, according to you, is the unit of software packaging? 07:32
sorear nobody is going to write POE6 as a single file
masak right.
sorear masak: a group of one or more files that have tight interconnections 07:33
CLR assemblies, Java jars, CPAN distributions - these are all instantiations of the same Platonic ideal and I think we would do well to move Perl6 closer to it
masak aye. 07:34
sorear importantly, all of these systems have metadata common to and external to the various classes 07:35
masak nice HN comment comparing teaching Scheme to teaching Python: news.ycombinator.com/item?id=3176295
(via @chromatic_x)
sorear: prototype it in Niecza, without much regard for the spec. then we'll spec it.
07:36 mkramer1 joined
sorear I agree with that comment 07:37
I'm really bad with these primitive concept things. I didn't _really_ get programming until I understood how to build a computer out of transistors 07:38
07:39 Trashlord joined
masak ;) 07:42
I find it refreshing sometimes to remember that there are people who find assignment bewildering. I can't even recall a time when I did. 07:43
sorear for bureaucratic reasons I'm currently taking an intro to programming class. Most of my classmates don't grok assignment. 07:44
07:45 mkramer joined, mkramer1 left
moritz sorear: what language are they teaching? 07:48
snarkyboojum I still remember learning to pronounce ":=" in Pascal as "set equal to" heh #probably had to be there
sorear moritz: Java
snarkyboojum yay bureacracy 07:50
bureaucracy*
dalek ecza: a1c7d29 | sorear++ | / (3 files):
Change BEGIN to be run immediately instead of an alias for INIT
07:54
07:55 baest left, baest joined
sorear TimToady: is the assignment in my \x = foo; syntacticallyspecial? 07:58
TimToady: (I am thinking it has to be; if my \x were a normal declarator it would have to decide whether to make a scalar or list constainer) 07:59
07:59 mishin_ joined 08:01 finanalyst joined
masak sorear: for many years I've found it almost immorally wrong to be teaching OO to intro-to-programming students. hearing that many of them don't grok assignment makes me more set in that opinion. 08:06
I wonder if we in the programmers' guild are exceptionally bad at the didactic bits. 08:07
sorear thinks it's almost immorally wrong to teach OO *period*, but I digress
masak ;)
08:10 GlitchMr joined
masak was weaned on BASIC, so by EWD he's forever corrupted and probably shouldn't have opinions about didactics 08:11
08:11 gorbad left
masak though I doubt that EWD would've appreciated OO in its different forms. 08:11
sorear well by that logic we shouldn't let TimToady teach a language, nevermind design one 08:12
szabgab tadzik: if I am not mistaken your blog post ttjjss.wordpress.com/2011/10/24/mue...or-perl-6/ got into ironman but not into PlanetSix, any idea why? 08:13
and apparently that's the only Perl 6 related post in the last week 08:14
masak :/
sorear o/ szabgab
szabgab ./
masak argh, gotta blog more...
I have things to write about, just few tuits.
szabgab I have 3 wooden tuits in my hand 08:15
but they are heavily used
masak learns about en.wikipedia.org/wiki/Dijkstra_Prize and wonders how many people have won a prize *and have the whole prize renamed in their honour*
sorear ow! my hand is bit by the circularity saw 08:16
apparently making enum Bool < False True > call EnumMap.new at BEGIN time adds a bunch of new ordering dependencies to the setting 08:17
masak pmichaud has been complaining about the circularity aspects of Bool.
to the point where he doubts it's even possible.
08:21 daxim joined
sorear *shrug* it's not really any more circular than the idea that ClassHOW is a class 08:28
at worst it will require knot-tying and fakery
moritz nom: say ClassHOW.HOW 08:29
p6eval nom 36d829: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&ClassHOW' called (line 1)␤»
moritz nom: say Int.HOW.HOW
p6eval nom 36d829: OUTPUT«Method 'gist' not found for invocant of class 'NQPClassHOW'␤ in sub say at src/gen/CORE.setting:5274␤ in block <anon> at /tmp/nC7CfX3KF8:1␤ in <anon> at /tmp/nC7CfX3KF8:1␤»
sorear niecza: say Int.HOW.HOW
p6eval niecza v10-248-ga1c7d29: OUTPUT«ClassHOW.new(...)␤»
masak .oO( Alexandrian knot-tying as a way to solve problems ) 08:32
Woodi found something like 'CICS' en.wikipedia.org/wiki/CICS but wander what it realy is - something like Unix daemon or OS subsystem ? 08:38
snarkyboojum briefly, for a newbie, what does YOU_WERE_HERE mean? :D 08:40
Woodi and just wondering maybe such thing can be used to do STM work in Perl. or just maybe implement kernel module (accesible via syscal) to do Multi-Compare-And-Swap for transactions opearting on few structures at once...
just something lov-lvl... 08:41
low :)
masak snarkyboojum: it's YOU_ARE_HERE, and that's where your program is inserted into a setting. 08:42
08:42 GlitchMr42 joined
snarkyboojum Woodi: CICS is a mainframe system to run customer centric backend processing and stuff :) 08:42
masak: ah! that's sheds some light - the "where your program is inserted into a setting" - thank you 08:43
masak snarkyboojum: so the -n flag corrsponds to something like the program 'for lines() { {YOU_ARE_HERE} }'
08:44 odoacre joined
snarkyboojum Woodi: I have used CICS is a past life #not that it's perl6 related :) 08:44
08:44 GlitchMr left
sorear Woodi: multi-CAS as a kernel module? do you have a clue what you're talking about? if not, can I help>? 08:46
snarkyboojum anyone read the OMeta paper by Alessandro Worth, "Experimenting with Programming Languages"? Some cool ideas in there, Worlds being one of them. 08:50
Woodi sorear: a little, just if such functionality as syscall would be fast enough comparing to implementations using few CASes 08:51
08:51 mj41 joined
snarkyboojum was also struck by the use of 'World' in masak++s macro gists 08:51
Woodi snarkyboojum: so what is CICS ? what kind of software, daemon, library ?
sorear Woodi: lol 08:52
snarkyboojum Woodi: a mainframe software system - unless we're talking about different things
Woodi sorear: if 90% of Fortune 500 use CICS for transaction then fast kernel module for transaction do not looks bad idea 08:53
sorear Woodi: you're lucky if a syscall is 100 times slower than CAS
Woodi: transaction, as in, you buy stuff from a company
Woodi snarkyboojum: but compared to Unix ?
sorear Woodi: not the same as STM at all
Woodi: CICS handles business transactions 08:54
Woodi: prints invoices, etc
snarkyboojum Woodi: it's software - it's runs on an OS, a Unix probably - nothing to do with STM or programming languages :)
Woodi sorear: but what it is... :) deamon, app ?
sorear Woodi: it does not matter
Woodi: it is completely irrelevant
Woodi i know :) just looking for 'transaction mechanism' 08:55
sorear You are frustrating me. 08:56
masak snarkyboojum: 'World' is just a more fitting term for 'SymbolTable'.
Woodi sorear: it is not my intention! just creativity of someone who do not know something cannot be done :) 08:57
it somethimes work i hear
snarkyboojum masak: cool - World means something bigger in OMeta, but was just struck by the similarity in terminology
masak snarkyboojum: oh, I didn't know OMeta used the term.
Woodi snarkyboojum: how apps use CICS ? by sending request via network or via API from libraries ? 08:59
snarkyboojum masak: check out bit.ly/urzzW3 - struck by quite a few design similarities between OMeta and Perl6 - though perhaps that's stretching
really fun read too imo
sorear snarkyboojum: how do I convince Woodi that "implement STM using CICS" is not a brilliant maverick idea but rather patent nonsense? 09:00
snarkyboojum sorear: I'm not really sure :)
Woodi sorear: i want functionality of transaction, pls do be so straight on names...
snarkyboojum Woodi: I'd rather not try and remember if that's ok with you :) It's pretty much off-topic here. 09:01
sorear Woodi: in English, some words have more than one meaning
masak snarkyboojum: ah, I think I've seen this one before and at least skimmed it. looks interesting indeed.
Woodi not off topic at all
masak Woodi: when regulars tell you that you have misunderstood a word and you're off topic -- pro tip -- listen to them. 09:02
do not argue. that makes you look like a bit of a fool. and you're not one, I know that.
in general, when people tell you "you are wrong about this", at least review your points before charging ahead and protesting. 09:03
tadzik hello #perl6
masak good morning, tadzik
Woodi masak: problem is that i know that i not mess things, just compressed many things in 2 sentences
sorear masak: my thoughts here are "if only I could express myself eloquently in, say, Polish!" 09:04
tadzik szabgab: seems that I forgot to set a category. Interesting that it got to ironman then, they probably show everything, including pictures of birds and squirrels
masak Woodi: I'm with sorear on this one. you're speaking nonsense. business transactions != database/software transactions
Woodi: it's like someone were to say "I've heard trampolines are very powerful in software. I have a plank and some springs -- what do I do?" 09:05
tadzik szabgab: should be fixed now
Woodi masak: pls go to source - read what i say, ok ?
masak Woodi: I did.
masak decides not to waste more time on this discussion 09:06
sorear stupid NullReferenceException acting all impossible to debug
09:08 Chillance joined
tadzik szabgab: it got there just now, thanks for noticing 09:34
Woodi thinks mutexes can do semaphore work and something else can "do STM work", what I say. so assuming someone say something not always is that 09:45
sorear ahahaha - found the issue - BEGINs weren't getting lexical storage correctly allocated 09:46
need to get better at not taking the lowest level code for granted
sorear sleep
szabgab I hate the trailing 's in English - or rather I don't understand it 09:48
dalek p/bigint: f8beb9d | moritz++ | src/6model/reprs/P6bigint.c:
avoid allocations and deallocations in bigints {s,g}eg_int

jaeckel++ in #libtom told me that this works reliably, and a look into the source confirms it
09:50
geekosaur Woodi thinks mutexes can do semaphore wor 09:51
masak szabgab: do you mean just the Saxon genitive, or contractions like "it is"/"it has" -> "it's"
?
szabgab "this years YAPC" 09:52
or "this year's YAPC"?
moritz the latter
szabgab isn't that the same as "this year is YAPC" ?
moritz no
the 's indicates possesion 09:53
szabgab "Gabor's headache"
moritz "the YAPC belongs to this year"
"years" would be plural
geekosaur sort of, you can implement semaphores using mutexes. you are also reinventing the wheel, possibly with more coners than is considered acceptable. likewise STM can be built from ore primitive components
szabgab so I think I have been doing this in the wrong way for 20 years now :)
moritz szabgab: I'm glab your mind is still flexible enough to admit that (not easy after 20 years) :-) 09:54
geekosaur the "is" version only applies to "it's" vs "its" which is inconsistent with the more common possessive form, which is why many native English speakers get it wrong :)
szabgab emptyness is very flexible 09:55
geekosaur: that explains it
masak geekosaur: right -- if you learn only the rule "X's means possession", you'll get "its"/"it's" wrong. 09:57
jnthn moritz: yay, nice :)
phenny jnthn: 05:23Z <diakopter> tell jnthn initial port complete; ready for emitter translation
masak it explains many of the grammatical errors related to "its"/"it's" because most of these people are actually *following the rule*, they just don't know about the exception. 09:58
moritz good morning jnthn :-)
jnthn diakopter: Great! \o/
Grr, I want to do Perl 6 stuff all day, but probably should worry a bit about $dayjob things first :) 10:00
10:05 GlitchMr_42 joined, envi_ joined 10:06 envi_ left, envi_ joined 10:09 GlitchMr42 left
moritz it's funny how I wrote those bigint tests, and started with a negative number and thought "there's no reason why negative numbers shouldn't work, but no harm done by being extra careful" 10:12
and of course they broke :-) 10:13
jnthn moritz++ # takes a negative view of my code
;-)
moritz jnthn: I didn't think whose code it was, just general testing paranoia :-) 10:14
jnthn moritz: I'm getting close with the repr refactors. Once they're done, I'll need to update Rakudo to cope with them. After that, I'll update bigint branch to work with it. Then we can make a Rakudo branch to start trying to integrate this there. :)
masak moritz++ # testing paranoiac 10:15
moritz wonders about implementing exponentation for bigints 10:17
jnthn moritz: Isn't there a function for that?
moritz libtommath offers mp_pow(mp_int base, unsigned long exp)
which kinda makes sense, because when the exponent is larger than 'unsgined long', you're having a problem anyway :-) 10:18
jnthn :D
masak unless your base is 1. 10:19
jnthn Then we'll still get the right answer even if we truncate :P
moritz or 0
masak or -1.
i and -i are fine too, I guess.
moritz but they are not Int 10:20
so not my problem right now
masak they are GaussInt :P
jnthn masak worries about imaginary problems :P
masak has complex issues
colomon++ # pun
it's so typical of our "realist" culture, that we're allowed to have irrational problems and negative issues, but as soon as someone starts talking about something imaginary... 10:22
...we get told to multiply by the complement and move on with our lives. 10:23
geekosaur "please rotate your phone 90 degrees and try your call again" 10:25
10:28 replore_ left 10:41 kfo joined 10:42 jesk left 10:44 jesk joined 10:45 kfo_ left 10:46 koban left 10:53 mishin_ left 11:01 pmurias joined, preflex left, preflex_ joined 11:02 preflex_ is now known as preflex 11:05 sftp joined
bbkr tadzik++ # MuEvent 11:13
jnthn bbkr: Any chance you can check rt.perl.org/rt3/Ticket/Display.html?id=101912 is now fixed for you? 11:17
bbkr jnthn: sure, i'll take a look at it after $dayjob, thanks for taking care of this bug! 11:22
11:22 SHODAN joined
djanatyn attempts to install rakudo on windows 11:27
Are there any perl 6 developers on windows?
jnthn does Rakudo dev on windows 11:28
Use ActivePerl + MSVC compiler tool chain.
For a smooth experience
:)
djanatyn should really install cygwin
jnthn oh noes
jnthn hates cygwin.
I've no clue if Rakudo works under that or not. 11:29
Just do a "real" Windows build :)
djanatyn I've been putting it off, since I don't have to use Windows very much 11:30
why do you hate cygwin?
I like cygwin because I'm much more comfortable doing development in a *nix environment
jnthn It's sorta like *nix but sorta like Windows so you end up having to cope with the quirks of both. 11:31
djanatyn Oh, not nice.
I've used rakudo on fedora and on debian 11:32
jnthn It's probably fine if there already are cygwin packages for what you want.
djanatyn sure.
Do you ever have any difficulties with writing portable perl6 code?
or, is the current state of the implementations mature enough so that the code is portable no matter what?
geekosaur .oO { all together now: "Eunice!" } 11:33
jnthn Given I do most of my Rakudo dev on Windows, it tends to get looked after quite well
11:33 GlitchMr_42 left
jnthn There's a couple of test fails here and there that I didn't track down yet, but by and large Rakudo works nicely on Windows. 11:33
I suspect that Niecza also works nicely there too.
Given it targets the CLR :) 11:34
moritz once you get parrot to build on windows, the hard part is probably over 11:35
jnthn yes 11:36
11:38 Psyche^ joined
djanatyn wow, that was surprisingly painless 11:41
rakudo is working fine on my computer :)
...thanks, jnthn ;)
11:42 Patterner left, Psyche^ is now known as Patterner
jnthn \o/ 11:42
djanatyn maybe I could start using perl6 more often, now that I've got it on all my computers
still having trouble thinking of good use cases, though
all I do with my life is play games and do schoolwork ^_^;
moritz well, you can use it for math at the very least 11:45
djanatyn :D
for anything I've needed to do on windows, I've used python
i'll think of more things to do with perl6 while at school 11:46
see ya
moritz have fun
masak I bet there's a wide intersection between things that can be coded in Perl 6, and schoolwork. 11:49
11:58 coto joined
coto hi perl6 11:58
i found in rakudo / src / core / Hash.pm line 77
self.{$key} = [ self.{$key}, $value];
if i change it to
my $tmp = self.{$key} ; self.{$key} = [ $tmp, $value]; 11:59
it works . but dont't konw why.
maybe you want to give it a try?
dalek p: 91838e0 | mls++ | src/how/NQPClassHOW.pm:
use reverse() method instead of manually reversing the mro array
12:02
12:02 finanalyst left
coto it is about hash stacking push 12:03
12:06 mkramer left 12:07 Vlavv_ left 12:10 aloha left 12:11 aloha joined 12:12 coto left 12:14 pothos_ joined 12:15 ab5tract joined
moritz tries 12:16
12:17 pmurias_ joined, Juerd_ joined, Tene_ joined, Tene_ left, Tene_ joined, Vlavv_ joined
tadzik why shouldn't that work? 12:21
12:22 pmurias left, baest left, Trashlord left, pothos left, sivoais left, sirmacik left, smash left, fhelmberger_ left, Juerd left, imarcusthis left, Tene left, yath left, _ilbot left, Juerd_ is now known as Juerd, pothos_ is now known as pothos
masak rakudo: my %h; %h<foo> = [ %h<foo>, 42 ]; say %h.perl 12:23
p6eval rakudo 36d829: OUTPUT«("foo" => [Any, 42]).hash␤»
masak rakudo: my %h = foo => [<value>]; %h<foo> = [ %h<foo>, 42 ]; say %h.perl
12:23 Trashlord joined
p6eval rakudo 36d829: OUTPUT«maximum recursion depth exceeded␤ in method defined at src/gen/CORE.setting:507␤ in method Parcel at src/gen/CORE.setting:4278␤ in method iterator at src/gen/CORE.setting:4337␤ in method reify at src/gen/CORE.setting:3953␤ in method gimme at src/gen/CORE.setti… 12:23
masak yeah, that's gotta be a bug. 12:24
but I think it's been reported.
coto: if I were you I'd write something like (%h //= []).push($value)
12:26 baest joined, sivoais joined, sirmacik joined, smash joined, fhelmberger_ joined, imarcusthis joined, yath joined, _ilbot joined
Woodi [D 12:29
12:36 envi_ left 12:39 bluescreen10 joined
moritz masak: Hash.push isn't supposed to create an array around single items 12:40
12:46 bluescreen10 left
dalek kudo/nom: 53dd308 | moritz++ | src/core/Hash.pm:
fix Hash.push; fix proposed by coto++
12:48
12:49 am0c left 12:50 tokuhiro_ joined
dalek ast: 684d27a | moritz++ | S32-hash/push.t:
unfudge S32-hash/push.t for rakudo
12:55
tadzik oh, it was broken before? I see the point now
12:59 bluescreen10 joined 13:02 simcop2387 left, simcop2387 joined 13:07 benabik left 13:13 simcop2387 left
masak moritz: um, I meant (%h<foo> //= []).push($value) 13:17
13:18 simcop2387 joined
moritz masak: yes, but same objection 13:19
masak that is a .push to an Array 13:20
not a Hash
moritz masak: coto++ explained how to rewrite parts of Hash.push not to trigger a bug. I don't see how your line would have helped with that, since it doesn't match Hash.push()'s desired semantics 13:21
13:22 envi_ joined
masak oh, now I see what you mean. 13:24
yeah, it's two different use cases.
13:24 kaleem left 13:32 GlitchMr joined
dalek p: ae3236c | mls++ | / (4 files):
bump parrot revision to get directaccess support, use directaccess for most var lookups
13:33
13:35 cognominal___ joined 13:39 cognominal_ left
djanatyn I wonder, are there any perl-like languages on the JVM? 13:40
kinda off-topic, I guess
colomon There's JRuby, if you consider that sufficiently perl-like. 13:47
13:49 GlitchMr42 joined 13:51 JimmyZ joined 13:52 donri joined 13:53 thou joined, GlitchMr left 13:54 pmurias_ is now known as pmurias
geekosaur in a skeevy-uncle^Wcousin sense? 13:55
jnthn mls: In what cases don't we label it :directaccess? 13:56
mls: It feels like we should have been able to make that the default, and PAST::Compiler is smart enough to know when it's an issue. 13:57
13:58 pernatiy joined
mls two reasons: 1) I didn't want to break existing code that uses its own lexpad/info implementation 14:01
2) rakudo's lexinfo implementation does that vivify magic on $_, $/, $! 14:02
%_
( 1) means other languages )
jnthn mls: aha
yeah, those ones are special... 14:03
and yeah, PAST::Compiler can't know.
dalek p: ca12593 | mls++ | src/PAST/SixModelPASTExtensions.pir:
fix label name so that rakudo builds again
14:04
jnthn mls: Does it have any measurable performance impact?
moritz tries
jnthn er, where by impact I mean, positive impact ;)
mls It should speed things up a bit. Problem is, I don't have good benchmarks for nqp 14:05
moritz building rakudo's setting?
tadzik yeah
mls could be that most of the time is spent in regex execution 14:06
14:07 benabik joined 14:09 ab5tract left
jnthn Last time I profiled at least 20% was spent in actions, and about 5% in the optimizer. So both of those should benefit. 14:14
moritz should rakudo profit from it too? 14:15
tadzik well, the compiler is faster, so I suppose yes
moritz the mandelbrot benchmark doesn't show much of a difference 14:18
jnthn moritz: I suspect only when we patch Rakudo itself to use :directaccess
Well, other than compile time
But mandelbrot is dominated by its runtime.
mls the nqp compiler is not much faster, just about 1.5% 14:21
(I timed the compilations of Action.pm) 14:23
[Coke] 1.5% is nothing to sneeze at.
... I wonder if that is a US only idiom. 14:24
mls dunno, am german ;)
Anyway, I committed it so that I compare apples with apples when testing my stacked lexpad patch
(and I also thought that it's a nice thing to have ;) ) 14:25
moritz mls++ 14:26
mls I wish there was an easy way to get rid of those lexpad allocations 14:27
they don't do anything useful for nqp/rakudo, they just store the pointer to the context
the lexical lookup could also take a context as extra parameter, but then it's no longer a vtable op and thus it gets much slower 14:28
and I don't want to add extra vtable entries for lexical lookup
jnthn Such is the problem with making the protocol to everything in the VM be through a often ill-fitting set of v-tables. 14:29
The Rakudo lexpad does hold onto the odd other thing 14:30
But really it'd just as easily be associated with the context instead.
mls yes, I looked at it. It also holds that default_named_slurpy thing set in the binder 14:31
jnthn Right.
But another GCable just to point to a couple of things is kinda costly.
mls Yes. For rakudo, the context *is* the pad. ctx + lexinfo is enough to get/set vars 14:32
that may be different for other languages, where the lexpad is more dynamic
djanatyn :\ ah, I just realized I was trying to write java code in perl6 14:35
jnthn mls: yes 14:36
djanatyn I was about to write an accessor method for my perl6 class -_-
jnthn mls: But the current design penalizes languages that aren't so dynamic.
14:38 lrnperl joined 14:46 simcop2387 left
moritz does t/spec/S14-roles/composition.t have passing TODOs for anybody else on rakudo? 14:46
14:46 simcop2387 joined 14:47 GlitchMr42 left 14:51 kranius left
jnthn moritz: I saw them, yes 14:51
moritz great
dalek ast: 54eccb9 | moritz++ | S14-roles/composition.t:
untodo passing tests in composition.t
14:52
14:52 Alejandro23 joined 14:53 Alejandro23 left 14:57 ab5tract joined
moritz nom: say (1 < * < 3).(2) 15:03
p6eval nom 53dd30: OUTPUT«Bool::True␤»
moritz nom: say (1 < * < 3).(1)
p6eval nom 53dd30: OUTPUT«Bool::True␤»
moritz I guess it tries to evaluate (1 < 1) < 3
nom: say (1 < * < 1).(1)
p6eval nom 53dd30: OUTPUT«Bool::True␤»
moritz nom: say (1 < * < 1).(2) 15:04
p6eval nom 53dd30: OUTPUT«Bool::False␤»
sjohnson happy halloween !
benabik nom: say Bool::False < 2
p6eval nom 53dd30: OUTPUT«Bool::True␤»
15:04 PacoLinux joined 15:05 [particle]1 joined 15:06 [particle] left, [particle]1 is now known as [particle], _jaldhar left, kranius joined 15:10 sirmacik left
jnthn moritz: I guess it's something like that, yes 15:12
moritz: Not sure how best to fix it.
moritz jnthn: probably needs to be special-cased in the currier 15:14
jnthn moritz: Well, I'm not sure if the currier knows enough at the point it's invoked 15:17
benabik nom: say 1 < 1 < 1
p6eval nom 53dd30: OUTPUT«Bool::False␤»
jnthn I mean, if we have 1 < * < 10, then maybe it sees and transforms the 1 < *, and only after that sees the (already transformed thing) < 10 15:19
benabik nom: say (1 < $^a < 1).(1) 15:21
p6eval nom 53dd30: OUTPUT«===SORRY!===␤Cannot use placeholder parameter $^a in the mainline at line 1, near " < 1).(1)"␤»
benabik nom: say {1 < $^a < 1}.(1)
p6eval nom 53dd30: OUTPUT«Bool::False␤»
moritz niecza: say (1 < * < 3).(2) 15:34
p6eval niecza v10-248-ga1c7d29: OUTPUT«Bool::True␤»
moritz niecza: say (1 < * < 3).(1)
p6eval niecza v10-248-ga1c7d29: OUTPUT«Bool::False␤»
moritz niecza: say (1 < * < 3).(3)
p6eval niecza v10-248-ga1c7d29: OUTPUT«Bool::False␤»
moritz just do it like niecza does it :-)
15:34 risou_awy is now known as risou
dalek ast: f8ffa96 | moritz++ | S02-types/whatever.t:
tests for RT #102466, Whatever-currying of chained ops
15:37
kudo/nom: ee1a1c5 | moritz++ | tools/build/NQP_REVISION:
bump NQP revision, just because we can
15:40
15:42 benabik left 15:44 donri left 15:47 wolfman2000 left, lrnperl left 15:56 ggoebel left 16:00 JimmyZ left 16:01 ggoebel joined 16:09 REPLeffect joined 16:10 REPLeffect left 16:11 REPLeffect joined, REPLeffect left 16:13 dual joined, ggoebel left 16:17 simcop2387 left 16:18 ggoebel joined 16:19 simcop2387 joined 16:22 donri joined 16:24 araujo left 16:25 araujo joined 16:32 GlitchMr joined 16:37 IngisKahn joined 16:42 ab5tract left 16:52 icwiener joined
masak jnthn: that sounds wrong (the 1 < * < 10 reasoning). even in the normal case of 1 < $a < 10, it can't build the thunk until it's seen all the comparisons. 16:55
masak installs the new Niecza 16:57
jnthn masak: I never said it was specific to this case.
16:58 kaleem joined
masak oh. 17:01
nom: sub foo { say "OH HAI"; 4 }; say 1 < foo() < 10
p6eval nom ee1a1c: OUTPUT«OH HAI␤Bool::True␤»
masak jnthn: but it handles this case right...
dalek p/reprapi2: a743c97 | jnthn++ | src/ (9 files):
Toss clone from the REPR API; it's just implementable in terms of the more primitive allocate and copy_to.
17:02
jnthn masak: Yes
masak: We already know it's about currying, no?
masak it's about priming, yes. 17:04
my point was that in the above case it seems to already be handling the $a correctly. on the face of it, there's no reason it couldn't handle the * the same way. 17:05
I haven't looked at the code for chained comparisons, so I don't know how realistic it is that the same codepath handle the $a case and the * case, but they feel kinda similar. 17:06
in both cases there's something that should be evaluated only once but compared twice. 17:07
17:07 daniel-s left
jnthn Well, chained ones are handled by a pasttype chain 17:08
masak according to Wikipedia, "Schönfinkelisation" has been proposed as an alternative name for currying.
jnthn ...
masak ok...
TimToady riigghhhhttttt.......
masak :D 17:09
TimToady is sad because curry is tasty
17:09 daniel-s joined
masak hugs TimToady 17:09
17:10 MayDaniel joined, MayDaniel left, MayDaniel joined
TimToady may we should call it phởing, if we can figure out how it's like noodles 17:10
ingy sorear: if there was a CLR yaml implementation, would it be easy to expose to niecza? 17:11
masak thinks of the awesome hanzi for a kind of noodles
dalek p/reprapi2: e4e4bb4 | jnthn++ | src/6model/ (8 files):
Add gc_cleanup to REPR API; none of the current reprs need it, but bigint will. Not yet called.
masak en.wikipedia.org/wiki/Biang_Biang#T...bi.C3.A1ng 17:12
ingy hi TimToady, made it safely to TimToady.next
masak .oO( dynastic programming )
ingy: was there a workshop or conference of some sort recently? how was it? 17:15
or is it about to happen?
jnthn Next 2 weekends are workshop filled \o/
Well
partially
:)
masak \o/ 17:16
TimToady wow, I know all the subparts of it, but that's one impressive collection of radicals
masak sorear: my app works fine on niecza. bothersome error on compilation still remains, though. I'll try to track it down and golf it now. 17:17
sorear: but overall, things work just as fine as they did pre-merge.
TimToady: I thought you might like it :D
ingy masak: I was hanging out in SF last week with rafl for GSoC Mentors thinger 17:18
TimToady it's got ⻌ 穴 心 刖 龻 ⾺ and two 長's 17:20
17:20 am0c joined
sorear good * #perl6 17:21
masak sorear! \o/
TimToady offhand I don't see any larger units, though the outside of the inside may be a 愈 variant 17:22
masak I doubt that. 17:23
TimToady and I haven't labelled all the hole characters in Ext B yet, so there could be something better there
masak the 刂 on the right doesn't look like the right part of your variant. and the roof is too different. 17:24
17:24 mj41 left
TimToady 愈 is used in variants that has sword on the right 17:24
the top is not hole though
sorear ingy: probably not too hard. 17:25
masak knife == sword ?
TimToady yes, alternate gloss is all 17:27
masak ok.
TimToady I tend to use 'knife' for the 𠚤 variant 17:28
masak my computer can't display that one. 17:29
TimToady but I've been known to rename radicals before, so I might change it 17:30
it shows in my firefox
17:32 aloha left
TimToady some of my original radical names were more Japanese-oriented, and sometimes I undo that 17:32
dalek p/reprapi2: 6dc6dc9 | jnthn++ | src/6model/reprs/P6opaque. (2 files):
Teach P6opaque to delegate to other reprs where it should. We now longer special case handling of various things in P6opaque that we probably never should have, have the hooks for getting P6bigint correctly flattenable into P6opaque, etc.
17:35
jnthn If anybody on non-Win32 wants to check reprapi2 builds for them, that'd be helpful.
Next up: get Rakudo to build on it.
IngisKahn curious, what are you working on, TimToady? 17:36
TimToady being able to describe any CJK character by describing its subparts and their locations 17:42
17:42 aloha joined
TimToady so the character in question comes out something like walk.o hole.it Heart.ib moon.iml sword.imr tiedthreads.imct 2.Long.imcbC horse.imcbc 17:43
but that could change is any of the subparts turn out to be other characters 17:44
sorear is it public?
I suppose you've seen the ideographic description whatchamahicky in Unicode? 17:45
TimToady not yet, or I couldn't change my radical names :)
IngisKahn That sounds pretty cool
[Coke] jnthn: testing on OS X.
17:46 kboga joined 17:47 risou is now known as risou_awy 17:49 sjohnson left
jnthn [Coke]: Danke. 17:53
dalek kudo/reprapi2: 5711fcf | jnthn++ | src/binder/sixmodelobject.h:
Update sixmodelobject.h. Unsurprisingly, build epicly busted.
kudo/reprapi2: 63a6131 | jnthn++ | src/pmc/perl6lexpad.pmc:
Update Perl6Lexpad for new REPR API.
17:54 MayDaniel left
kboga jnthn: fwiw, the reprapi2 branch builds on Ubuntu 11.10 (x64) 17:55
jnthn kboga: Thanks! 17:56
18:00 poincare101 left
[Coke] jnthn: passes on OSX 10.6.8 intel 18:01
moritz the rakudo branch doesn't build yet 18:03
perl6_ops.c:4277: error: ‘REPROps’ has no member named ‘instance_of’
jnthn moritz: right
dalek kudo/reprapi2: 71cf8b8 | jnthn++ | src/ops/perl6.ops:
Update ops for REPR API changes.
18:07
kudo/reprapi2: 69b450a | jnthn++ | src/binder/bind.c:
Update the binder for the new REPR API.
18:08 mj41 joined 18:09 daxim left 18:12 Holy_Cow joined 18:13 SHODAN left 18:16 Holy_Cow left
dalek kudo/reprapi2: cf864ab | jnthn++ | src/binder/multidispatch.c:
Update multi-dispatcher for new REPR API.
18:19
kudo/reprapi2: 55293a2 | jnthn++ | src/binder/ (2 files):
Get remaining C parts updated, or at least to a first approximation. We now get to trying to build the setting...BOOM SEGFAULT!
18:21 MayDaniel joined
sorear dalek? 18:25
sorear out
18:32 benabik joined 18:33 mj41 left
kboga no segfault here when building the setting on the rakudo/reprapi2 branch 18:42
spectests pass too
jnthn kboga: Oh? 18:44
kboga: reprapi2 branch in Rakudo and reprapi2 nqp branch?
kboga: What platform?
And 32-bit or 64-bit?
kboga oh my bad... forgot to pull in the reprapi2 changes =(
rebuilding
jnthn oh
kboga ok, segfault confirmed. 18:47
jnthn thanks 18:49
ok, dinner time
18:49 poincare101 joined 18:53 _jaldhar joined 18:54 poincare101 left 18:55 drbean left 18:56 poincare101 joined
moritz got a backtrace 18:58
gist.github.com/1328486 18:59
18:59 ggoebel left
moritz and valgrind aborts with an internal error when I run the setting compilation step on it :/ 18:59
cognominal___ pulls rakudo/reprapi2 to build on Lion
18:59 cognominal___ is now known as cognominal
moritz cognominal___: probably not very interesting there either 18:59
19:00 drbean joined
moritz notices the suspicious lack of write barriers in bind_attribute_boxed 19:02
cognominal gist.github.com/1328504 19:03
some warnings when building bind.c
19:04 ggoebel joined
moritz well, probably set_pmc_at_offset would need a write barrier 19:05
maybe also copy_to 19:06
moritz doesn't really understand stuff, just guesses around wildly
cognominal do I need to pull the special nqp/reprapi2 branch? or perl Configure.pl does it for me 19:08
19:09 kaleem left
mls aargh! the build() method in BOOTSTRAPATTR returns nothing back to the caller 19:10
19:10 molaf joined
mls parrot's default is *not* to check the return argument count, so the behaviour is undefined 19:11
this results in spurious buildplan entries (cause create_BUILDPLAN checks if the return value of build() is defined) 19:12
moritz hm, I thought that empty Perl 6 subs return Nil 19:16
mls nqp
moritz or is that compiled with NQP?
ok
19:20 pernatiy left 19:21 mj41 joined
mls for now I'm using the following patch: gist.github.com/1328585 19:27
jnthn: please check if the patch is good (is the build method needed at all?) 19:28
moritz is there any general rule what empty NQP blocks should return?
19:30 IngisKahn left
mls currently nqp uses parrot semantics, i.e. when the last statement's value is an native int, an int will be returned and so on 19:30
if it is void (because the last statement was a pirop or there were no statements), nothing is returned
Actually I like that nqp is so close to parrot 19:31
(looking at the code the above is actually not true: void is only returned for empty blocks) 19:33
so maybe it's an PCT bug 19:34
19:36 shinobicl_ joined
mls anyway, afk -> home 19:37
19:37 skangas joined
TimToady masak: yes, the default is that a quasi is its own block, and we probably need something like "my COMPILING::<$x> = 42;" to poke things outward 19:38
cognominal with Jonathan metamodel, serizalization and masak macro support, I feel that Christmas will be in November this year 19:40
moritz perl6: say X::NYI 19:45
p6eval niecza v10-251-g806e0fb: OUTPUT«␤Unhandled Exception: Unable to resolve method postcircumfix:<( )> in class Any␤ at /tmp/cNtqqNjTRU line 1 (mainline @ 1) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2223 (ANON @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2224 (module-CORE @ …
..pugs b927740: OUTPUT«*** No such subroutine: "&X::NYI"␤ at /tmp/Hhuwm6yORT line 1, column 5 - line 2, column 1␤»
..rakudo ee1a1c: OUTPUT«NYI()␤»
19:49 molaf left 19:52 envi_ left
moritz nom: role A { }; say A.new 19:54
p6eval nom ee1a1c: OUTPUT«A.new()␤»
20:18 bluescreen10 left 20:19 drbean left 20:23 _jaldhar left
TimToady is not against scrapping @*INC entirely; there's a reason S11 doesn't mention it 20:23
sorear: ^^ 20:24
20:26 drbean joined
TimToady sorear: all assignment to declarators is syntactically special; we just fudge my's pseudo-assignment a bit more in the direction of real assignment than, say, has 20:28
this is why jnthn++ and I have been discussing moving the parsing of assignment back to being part of the declarator parse 20:29
it's kinda too bad that everyone is used to using = for that, but I don't see a good alternative
20:31 poincare101 left 20:34 mkramer joined
cognominal jnthn: segfaulting in Lion too, but with a different stack trace 20:35
jnthn is back 20:36
20:39 diegoviola joined
masak is back 20:40
jnthn copycat
moritz: Write barriers are the responsibility of the stuff calling down to the REPR
20:48 plobsing left
jnthn mls: Patch is probably fine 20:50
20:51 plobsing joined 20:53 saaki joined
jnthn moritz: Yeah, your segfault report matches mine, so probably not GC related. That's good. 20:53
20:59 ksi joined 21:11 IngisKahn joined 21:16 GlitchMr left
jnthn moritz: oh, I think I see the place you meant 21:19
21:30 benabik left
jnthn nqp: say(int.HOW.name(int)); 21:33
p6eval nqp: OUTPUT«Can only use get_how on a SixModelObject␤current instr.: '_block1000' pc 27 ((file unknown):35) (/tmp/TUO0NNacpC:1)␤»
jnthn nqp: class A { }; say(A) 21:35
p6eval nqp: OUTPUT«A()␤»
21:50 jferrero left 21:55 drbean left 22:01 whiteknight joined 22:02 drbean joined 22:03 mj41 left 22:14 shinobicl_ left 22:15 xinming left 22:22 REPLeffect joined 22:28 daniel-s left 22:31 REPLeffect left, REPLeffect joined
masak sorear: I isolated it! \o/ 22:34
sorear: gist.github.com/1329249
masak submits nieczabug
22:35 daniel-s joined
colomon masak: heisenbug? 22:39
dalek odel: 8a1fc64 | diakopter++ | lua/ (6 files):
lots of Makefile changes; get rid of most 'dofile' calls
masak colomon: no, it disappears after A.pm has been compiled once. 22:43
colomon masak: ah.
masak (Niecza has a cache where it stores compiled modules)
changing the real A.pm expired the cache, causing the bug to reappear. the bug is thus a bit annoying during development. 22:44
sorear: pls fix ;)
(but it's not a problem with the serialization branch. it was there long before) 22:45
dalek p/reprapi2: a375e18 | jnthn++ | src/ops/nqp.ops:
Don't look up something we already have.
p/reprapi2: c0c5bb0 | jnthn++ | src/NQP/SymbolTable.pm:
Fix a nasty NQP bug where the REPL and code run immediately rather than pre-compiled didn't properly see the setting.
p/reprapi2: 516c219 | jnthn++ | src/6model/reprs/P6opaque.c:
Add a missing sanity check to P6opaque that catches some nasty bugs.
masak 'night, #perl6
colomon \o 22:47
22:48 kaare_ left
sorear TimToady: how is assignment to "my $x" in any way different from real assignment? 22:50
dalek kudo/reprapi2: caf5040 | jnthn++ | src/Perl6/Metamodel/ContainerDescriptor.pm:
Avoid the NQP default constructor for now, which doesn't handle native types properly. This gets us a bit further into the build.
22:59
23:02 MayDaniel left
jnthn bah, I get a segfault at the command prompt and an infinite loop in realloc under the debugger... 23:04
23:04 ab5tract joined
dalek odel: 36af411 | diakopter++ | .gitignore:
update .gitignore
23:07
23:07 dual left
dalek odel: 69b75fd | diakopter++ | lua/compiler/compile.pir:
add compile.pir
23:08
23:13 icwiener left 23:14 pmurias left
dalek p/reprapi2: fd65ca0 | jnthn++ | src/ops/nqp.ops:
Fix thinko in repr_clone op.
23:17
23:23 benabik joined, ksi left 23:36 cooper joined 23:43 snearch joined
jnthn OK, reprapi2 is close. It builds and mostly spectests - if I turn off the optimizer, which is tickling some remaining bug somewhere. 23:55
23:55 daniel-s left
jnthn ah, and the spectests that fail largely seem to do so because I'm dumping debug output into them... 23:55
23:57 Tene_ is now known as Tene 23:58 daniel-s joined
jnthn will hunt that tomorrow, then get it all merged. 23:59
Then the bigint work can continue \o/
dalek odel: a435091 | diakopter++ | lua/compiler/ (7 files):
first part of DNST->LST CSharp->Lua rename