»ö« 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.
00:00 REPLeffect joined
dalek p: 5a7f87b | jonathan++ | src/core/NQPMu.pm:
Default get_bool override in NQPMu.
00:02
kudo/nom: d532131 | jnthn++ | src/Perl6/SymbolTable.pm:
Record trait applications.
00:24
kudo/nom: 0d4f343 | jnthn++ | src/Perl6/ (2 files):
Start getting attribute initialization closures stuff in place; this just builds the closure and does the (so far unimplemented) call to add it.
kudo/nom: 5aa86b8 | jnthn++ | src/Perl6/Actions.pm:
Fix trait handling up a bit; resolves bug with inheritance in pre-comp.
kudo/nom: e25ab89 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
Fill Attribute bootstrap out a little more.
kudo/nom: 2f44c5c | jnthn++ | src/Perl6/Actions.pm:
Apply attribute traits.
kudo/nom: 696d78b | jnthn++ | src/CORE.setting/traits.pm:
Couple of Attribute trait handlers.
00:34 bitpart joined 00:51 bitpart left 00:52 ymasory joined
dalek kudo/nom: 172cb8e | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
Assorted bootstrap twiddles.
01:00
kudo/nom: 7efe726 | jnthn++ | src/ (4 files):
Various setting additions to get us passing most of 03-op-logical.t.
kudo/nom: 9638dc6 | jnthn++ | NOMMAP.markdown:
Update nommap.
jnthn enough hacking for this period of conciousness & 01:02
01:03 tomaw left 01:10 tomaw_ joined 01:15 mberends joined
sorear o/ mberends 01:52
mberends hi sorear, you detected my insomnia! (3:53am here) 01:53
02:00 whiteknight left 02:09 envi joined
mberends sorear: fyi, niecza spectest passes 1983 on Debian 6.0 and Mono 2.6.7, but does not compile S03-junctions/misc.t and S03-metaops/hyper.t 02:10
02:16 Chillance left
mberends S03-junctions/misc.t: Undeclared routine: 'junction' used at line 14,15,387,388,389,390. $x is declared but not used at .../misc.t line 374: ------>lives_ok { try { for any(1,2) -> ⏏$x {}; } }, Unhandled exception: Check failed 02:16
S03-metaops/hyper.t: Unhandled exception: System.IndexOutOfRangeException: Array index is out of range. at Niecza.RuntimeUnit.ReadXref
compiles, but does not run, to be precise 02:17
02:20 PhatEddy left
mberends mono run/Niecza.exe -c test.pl is like: Unhandled exception: System.NullReferenceException: Object reference not set to an instance of an object Server stack trace: at Niecza.CLRBackend.LexStash.GetCode, at Niecza.CLRBackend.CpsOp+<LexAccess>c__AnonStorey9.<>m__D (Niecza.CLRBackend.ClrOp[] heads) 02:22
02:48 thou joined 02:51 noganex_ joined, noganex left 03:02 Khisanth left 03:06 pharvey joined
pharvey is there a perl6critic? 03:06
mberends not yet 03:07
pharvey: will you volunteer to write one? ;) 03:08
pharvey maybe in 10 years I can pretend to have that much experience :P 03:10
03:10 parcs joined 03:15 wamba joined 03:23 Su-Shee_ joined 03:24 Khisanth joined 03:32 ymasory left 03:46 wamba left 03:52 pharvey left
sorear mberends: you need to update your copy of the spectests 04:15
04:24 molaf joined
sorear mberends: misc.t doesn't mention "junction" anymore 04:28
TimToady why the *@#$& did my rakudo stop loading ICU? 04:32
s/rakudo/parrot/ I suppose 04:33
sorear the combinatorial explosion of figuring out the correct handling of combinations like 'our enum $!x' is driving me mad 04:36
TimToady the correct handling of that one is probably "Don't be ridiculous!" :) 04:39
sorear you mean it wouldn't be intepreted as { our constant $x = enum <...> }; method !x() { $OUR::x } ? 04:57
hmm, I wonder if that works 04:58
niecza: { our constant $x = 42 }; say $OUR::x
p6eval niecza v6-56-g84360d1: OUTPUT«42␤»
TimToady $!x doesn't imply a !X method
sorear oh right 04:59
so 'our $!x' and 'my $!x' and all permutations are right out?
04:59 REPLeffect left
TimToady it's barely okay that my $.x creates an accessor 04:59
I don't see any reason for $!x to do so 05:00
sorear S12:739 talks about 'our %!cache'
TimToady well, if so, it only works because the symbol table lets it have that sigil as part of the name, I suppose 05:01
but I don't see how it behaves differently from %cache 05:02
*our %cache
sorear monkey patching?
roles?
there's some confusing stuff about 'my $!x' versus 'has $!x' in role composition, I have no idea how I'm to implement the permutations of that 05:03
TimToady whatever you an jnthn++ agree on is fine with me 05:04
*and
between lexical scoping and metaobject scoping we ought to be able to solve most problems; trying to make roles yet another scope separate from the classes their in seems a bit more than strictly necessary for most purposes 05:09
*they're
but my brain has been in sideways all day, which is why I'm talking out of the side of my mouth 05:10
sorear ouch 05:13
dalek ecza: 75df890 | sorear++ | src/ (2 files):
Draft parsing of subset and enum. Does not handle enum $.x yet
05:22
mberends sorear: thanks, updated roast and niecza. S03-metaops/hyper.t now says: Package subs NYI at .../S03-metaops/hyper.t line 489: ------> ⏏my %a = a => 1, b => 2, c => 3; Unhandled exception: Check failed at .../CORE.setting line 469 (CORE die @ 2) at .../STD.pm6 line 1146 (STD P6.comp_unit @ 31) at .../STD.pm6 line 101 (STD STD.TOP @ 7) at .../CORE.setting line 1102 (CORE Grammar.parse @ 3) at .../NieczaFrontendSTD.pm6 line 542 (NieczaFrontendSTD Niec 05:42
zaFrontendSTD.parse @ 27)
05:45 vkp joined, vkp left
sorear uh 05:54
mberends: how are you running the spectests? 05:55
mberends sorear: using niecza's 'make spectest'
sorear some part of your setup is fundamentally broken 05:56
line 489 is clearly marked '#?niecza skip'
mberends there is a symlink from ../../roast to niecza/t/spec
oh, no fudging somehow. ok, will look into that. thanks. 05:57
05:57 dorlamm joined
sorear line endings maybe? 05:58
mberends no idea yet 05:59
dalek ast: 3ea5cc1 | larry++ | S02-builtin_data_types/range.t:
add test for grep 1..3, 0..5
06:00 kaare_ joined, dorlamm left
mberends hmm, S03-metaops/hyper.t is about 2 days old and hyper.niecza is longer and 2 minutes newer, so fudging was done then 06:04
06:05 wamba joined 06:08 daniel-s left
mberends git clean -fdx removed the .niecza files, a new spectest re-created then, and still the harness ran hyper.t instead of hyper.niecza 06:10
06:11 c9s joined
mberends correction: the harness says it's running hyper.t but the error message comes from hyper.niecza 06:13
run/Niecza.exe t/spec/S03-metaops/hyper.niecza passes 48 tests, ending: ok 48 - method call on list elements. Unhandled exception: System.IndexOutOfRangeException: Array index is out of range ...at Niecza.RuntimeUnit.ReadXref ...at Niecza.RuntimeUnit.LoadSubInfo ...at Niecza.RuntimeUnit.LoadAllSubs ...at MAIN_2.BOOT 06:22
06:33 snearch joined 06:39 kaare_ left 06:56 [particle] joined 06:57 thou left
dalek ok: 8ebeb7e | moritz++ | src/multi-dispatch.pod:
[multi] fix order of multis, pharvey++
07:00
07:02 flussence_ joined 07:09 Su-Shee_ is now known as Su-Shee 07:11 daniel-s joined 07:12 mj41 joined 07:15 daniel-s left 07:20 billiam joined 07:21 snearch left 07:22 billiam left 07:43 am0c joined 07:51 daniel-s joined 07:57 Mowah joined 08:07 uniejo_ joined, uniejo_ left 08:38 jfried joined 08:42 hanekomu joined 08:44 wamba left 08:47 masak joined
masak morning, #perl6. 08:47
tadzik good morning masak 08:48
mberends ahoy masak
masak I have a feeling today'll be a productive day. :) 08:50
mberends likewise :) 08:51
08:52 mj41 left 08:54 cognominal_ left, cognominal joined 08:57 Trashlord joined 09:07 wamba joined, tomaw_ is now known as tomaw
mberends masak: new zavolaj example proof of concept works, buggy but promising :) github.com/jnthn/zavolaj/blob/mast...ishint.pl6 09:09
masak rakudo: sub pfx($p) { join " ", ("{$p}$_" for <ee ie oe>) }; say pfx($_) for <f m j> 09:14
p6eval rakudo 048573: OUTPUT«fee fie foe␤mee mie moe␤jee jie joe␤»
masak mberends: nice!
with not very much work at all, you could have a grammar in place there, for arbitrarily deep arithmetic expressions. 09:15
but maybe that'd just detract from the exercise, I dunno. 09:16
mberends good point, it would be a good improvement if the resulting example did not become too long. That may be LHF for someone else with Copious Free Time :) 09:19
I'm going back to Zavolaj troubleshooting, the mysql client only half works :/ 09:20
masak here's how short such code *could* be: strangelyconsistent.org/blog/what-y...nt-without 09:22
09:26 mtk joined 09:27 wamba left
mberends masak: nice! I may try to apply that later, depending on how other work goes. I'll link in the algebra script as a todo item in any case :) 09:27
masak well... you may or may not want a dependency on GGE, of course. ;) 09:30
09:31 [particle]1 joined 09:33 [particle] left
mberends masak: well, no, that would be too much dependency :) 09:33
09:36 MayDaniel joined
masak I'd still like to see the same thing being done with Perl 6 grammars. 09:36
I don't doubt it's possible. it's just that I haven't seen anyone do it.
moritz hm, what? parsing arithmetic expressions? 09:37
mberends yes, a nice way to show of Perl 6 grammars 09:38
tadzik masak: wasn't that one of pmichaud 09:39
's talks?
a calculator-compiles?
* compiler
09:40 MayDaniel left
masak sure, but then that compiler is probably written in PCT/nqp. 09:42
I'm talking about using optable parsers from Perl 6. 09:43
tadzik oh, I see
masak I still maintain that you'd sometimes want to throw together a little operator-based language, and not use grammars so much, just the OPTable parser. 09:44
09:46 n0den1te joined 09:52 wamba joined 09:54 am0c left
masak I think it'll be increasingly recognized that Perl 6 is a language-processing tool, just like Perl 5 is a text-processing tool. 09:58
n0den1te masak: p6cc? :)
masak grammars, macros, AST processing, slangs, real DSLs -- they will all be part of the same push towards Perl 6 the language-processing tool.
n0den1te or p6rules?
masak there's already a Wikipedia article called "Perl 6 rules" :P 09:59
n0den1te Oh, you already knew what I was referring to. :P
10:01 n0den1te is now known as isBEKaml
masak isBEKaml! \o/ 10:02
tadzik cover blown!
masak class Cover { method blow {} }
isBEKaml yeah, I keep forgetting I'm on different consoles. :P
masak: I'm currently fiddling with emacs. going over the inbuilt tutorial and sorts. (still the Ctrl key bindings feel very weird to me) 10:04
tadzik remap it to capslock :) 10:05
isBEKaml whatever you remap it to, it's still a weird mishmash of a keybinding. :)
10:05 wamba left
isBEKaml thinks emacs is a ctrl freak! (ducks) 10:05
As an example, for repeating the last action in vim, you simply press the period key (.). Emacs has it like C-x z. It doesn't help that x and z are next to each other. :| 10:07
10:08 nymacro joined
masak isBEKaml: anything in Emacs will feel excessively long to type after vim. 10:11
isBEKaml: a tip about Ctrl: sacrifice Caps Lock for Ctrl. you'll thank yourself.
generally, the tips in sites.google.com/site/steveyegge2/e...tive-emacs are worth considering. 10:12
isBEKaml masak: That's true about vim and emacs. about ctrl key, I'll remap it. Every page I visited about emacs from google, suggests remapping it that way. :) 10:13
that's odd since I do ctrl+p all the time when visiting history from prompt keeping emacs mode on. 10:14
masak that's simply where the ctrl key should be, emacs or no emacs. ;) 10:19
10:20 kjeldahl joined
isBEKaml ;) 10:22
flussence_
.oO( I usually map that to Escape... )
10:23
wolverian me too. and my readline is in vi mode. 10:24
flussence_ I tried that once, didn't like it. Some things are better off modeless 10:25
isBEKaml yeah, vi-mode on prompt feels weird too. I found it much better to just search back in history with ctrl+r and hit enter on match. 10:26
flussence_ curses ctrl+r for not using a circular buffer 10:27
10:34 birdwindupbird joined
Juerd Hm, sacrificing my Caps Lock for Ctrl would mean I'd sacrifice my Multi_key, because I had already sacrificed Caps Lock for that :) 10:43
Juerd only maps keys he doesn't use anyway, to keys he didn't have without the mapping 10:44
I'd advise against relocating keys that were already present if you regularly have to use other people's computers :)
10:44 kaare_ joined
masak well, I admit to uselessly toggling other people's Caps Lock flag quite a bit ;) 10:45
Juerd (With a huge exception for switching between sufficiently distinct entire keymaps; do learn Dvorak! :))
masak :)
Juerd I think it's funny that Caps Lock is typically remapped by geeks. I guess at least half of all geeks have it mapped to something else, including perhaps noop. 10:46
When I still used Windows primarily, I just removed the key cap 10:47
I couldn't think of a better function for the key.
Now I can choose between Multi_key, ctrl and esc as very interesting options.
masak even in Windows, I have it remapped as Ctrl. remapping it was one of the first things I did. 10:49
isBEKaml Multi_key is compose? I have that as mod4 key here -- uses the "windows" key. :> 10:51
jnthn afternoon, #perl6 11:04
moritz jnthn: I thought it was still morning in your personal time zone :-) 11:05
Juerd isBEKaml: I need the "Windows" key for dragging windows around :) 11:06
isBEKaml Juerd: you and your complexity-filled keyboard. :P 11:07
Juerd :) 11:08
tadzik windows is the most used key on my keyboard, it does almost anything :)
Juerd It's just Dvorak with CapsLk remapped to Multi_key
tadzik Switches desktops, launches apps, moves windows...
Juerd tadzik: You have that mappedto dwim?
11:08 Chillance joined
tadzik Juerd: no, I use KDE actually, but it's a dwm habit, yes 11:08
jnthn moritz: I'm in denial about my timezone because on Tuesday I'll actually have to get up at a normalish $dayjob time :P 11:09
tadzik Juerd: you meant dwm, right? dwim doesn't sound familiar in this context 11:10
oh, unless you actually mean "do what I mean key" :)
Juerd tadzik: Do-What-I-Mean key, indeed.
"it does almost anything"
tadzik close. I think every letter on a keyboard does something different with the dwim key
yeah, that's a nice name for it 11:11
I also used this funny key next to the right_windows key, context menu key?
Juerd Menu key, in short
tadzik that's a new definition of useless. I wrote a quicklaunch app and binded it to that key, shame KDE does not allow that
isBEKaml yeah, the context menu key -- I never could reach it without leaving the home row. So I let it be. :) 11:12
Juerd isBEKaml: Exactly :)
tadzik I think that key means "help me Microsoft, my right hand is broken"
Juerd It and the right ctrl key are the least used keys on my keyboard
tadzik or "my thumb is twisted"
isBEKaml Juerd: same keys left unused! :) 11:13
tadzik also, right shift
Juerd And Pause
Juerd uses both shift keys
tadzik pause pauses some games, useful ;)
I should learn that too
isBEKaml pause is far off -- near the numpad and there's this turbo key next to rshift.
Juerd I don't really play computer games 11:14
tadzik but I barely reach Enter, I usually raise my hand to press it, so it would be the same with rshift I suppose
Juerd I use mutt, irssi, firefox, inkscape and gimp, and that's about it.
tadzik well, board games don't need pause
Juerd Oh, libreoffice from time to time.
tadzik: Do you have an international keyboard? i.e. with an extra key (\) left of enter? 11:15
isBEKaml Oh, talking about libreoffice, you must have heard about oracle's latest move?
Juerd Not really
tadzik heh, plugging and external monitor and keyboard to my thinkpad was a good decision. Only reaching to the trackpoint is LTA
Juerd: nope, it's above enter
I can't stand this other kind of layout
isBEKaml Juerd: Oracle now donated open office to ASF. 11:16
tadzik like gave it away?
isBEKaml yes
tadzik makes the Obelix laugh
isBEKaml ASF is now turning into a dumpyard of sorts. :(
Juerd Hm
So what's going to happen to OOo now? I hope the name LibreOffice stays, because the .org part of OOo was really annoying. 11:17
masak yeah :) 11:18
tadzik :)
isBEKaml www.pcmag.com/article2/0,2817,2386364,00.asp
tadzik so much politics
isBEKaml that's especially an odd and a vindictive move given that they could have given it the Doc Foundation. 11:19
to put into context, ASF and Doc Foundation are very much at loggerheads over license issues. LGPL and ASF don't agree. 11:22
mberends odd and vindictive, that sounds about right for oracle 11:24
isBEKaml Juerd: to answer your question, I'm guessing that LibreOffice would possibly merge with ASF's OOo since TDF seems open to discussing license with ASF, going by their blog post.
Juerd: tinyurl.com/3qgmzdc 11:30
Juerd Interesting 11:36
tadzik int eresting; 11:37
11:55 icwiener joined, kaare_ left
masak std: my int constant eresting = 42 11:58
11:58 Reaganomicon joined
p6eval std 4b1b100: OUTPUT«ok 00:01 114m␤» 11:58
masak std: my int constant eresting
p6eval std 4b1b100: OUTPUT«===SORRY!===␤Missing initializer on constant declaration at /tmp/cLRVgpkq1T line 1 (EOF):␤------> my int constant eresting⏏<EOL>␤Check failed␤FAILED 00:01 112m␤»
colomon niecza: my int constant eresting = 42 12:00
p6eval niecza v6-57-g75df890: OUTPUT«===SORRY!===␤␤Any()Malformed my at /tmp/WoE4Ky386Q line 1:␤------> my ⏏int constant eresting = 42␤␤Parse failed␤␤»
colomon niecza: my constant eresting = 42
p6eval niecza v6-57-g75df890: ( no output )
12:00 buubot_backup joined
colomon niecza: my constant eresting = 42; say eresting 12:00
masak masak's conjecture: every off-topic discussion can be derailed into discussion of Perl 6 syntax and semantics. :)
p6eval niecza v6-57-g75df890: OUTPUT«42␤»
isBEKaml constant vars don't need a dollar? 12:02
rakudo: my foo = 42; say foo;
p6eval rakudo 048573: OUTPUT«===SORRY!===␤Malformed my at line 22, near "foo = 42; "␤»
isBEKaml rakudo: my constant foo = 42; say foo;
p6eval rakudo 048573: OUTPUT«===SORRY!===␤Constant type declarator not yet implemented at line 22, near "= 42; say "␤»
isBEKaml niecza: my constant int foo = 42; say foo;
p6eval niecza v6-57-g75df890: OUTPUT«===SORRY!===␤␤Any()Malformed constant at /tmp/44cnXePzGx line 1:␤------> my constant int ⏏foo = 42; say foo;␤␤Parse failed␤␤»
flussence_ makes sense, it'd be syntactically the same as using perl5 constants. 12:03
isBEKaml niecza: my constant foo = 42; say foo;
p6eval niecza v6-57-g75df890: OUTPUT«42␤»
isBEKaml hmmm, learn something new everyday. :) 12:04
flussence_ (is there a difference between constants and readonly vars?)
masak constants are "assigned" at compile time. 12:05
yath *delurk* 12:06
masak yath: hi! :)
yath i haven't written anything besides some one-liners in perl6 yet, but i'm trying to change that
hi masak :)
but.. i need a native call for that
masak yath: that's great news!
yath inb(), outb() and ioperm() exactly
masak yath: talk to mberends, he's working on zavolaj at the moment.
colomon I was going to say, is zavolaj working again yet? 12:07
yath masak: ah, thanks
masak: ah cool, with DBD::mysql-like example code :)
mberends yes, zavolaj is partly working, there is a growing test suite that is picking up things that appear to changed in Parrot. 12:08
yath aaaand.. something different. would i use latest rakudo star for development, latest master branch oder nom (probably not)?
jnthn Not nom yet. It's very experimental and incomplete. 12:09
yath mberends: partly? can i wrap three libc calls? :)
masak mberends++
yath: we all long to use nom, but it's a bit too early :)
mberends known zavolaj failures listed at the end of github.com/jnthn/zavolaj/blob/mast...resident.t 12:10
yath just needs an equivalent for Sys::PortIO for now
(... with a better function naming style)
mberends yath: the same file above also contains calls to libc that do work :) 12:11
12:11 satyavvd joined
yath mberends: yep, just looked at it. though i'm unsure if i get the "perl6 way to do things" right, but i think i'll just write some code and post it here for criticism :) 12:12
so, time for git init :)
mberends :) good
masak I think 'take-rw' is an ugly keyword. I hope it doesn't stick.
jnthn s/keyword/function/ ;) 12:13
masak: You'd use "take" for most things anyway, I suspect.
masak: As with return vs return-rw 12:14
12:14 satyavvd_ joined
daniel-s a question about grammas: 12:14
am I right to say that a token cannot refer to another token
jnthn No
tokens can refer to whatever they wish
daniel-s so, is the only difference between rules and tokens that whitespaces are important in rules 12:15
jnthn Yes
masak jnthn: waitwait, there's a 'return-rw'? arrrgh!
jnthn masak: Yes. :) 12:16
masak I thought that was goverened through 'is rw' on the routine!
12:16 satyavvd left
mberends we need some linguists in here to sort out this language ;) 12:16
jnthn masak: I was mostly relieved to see them arrive. tbh. 12:17
masak: Mostly for the clarified semantics rather than their exact naming though :)
OTOH, things that look a bit odd being the thing you usually don't want is kinda a good thing. 12:18
12:18 isBEKaml left
masak I dunno. both 'take-rw' and 'return-rw' feel like they're wrongly factored solutions crowding in on the fame and cleanness of the original keywords. 12:19
and... dashes in keywords! it just isn't done! :(
that alone is a design smell.
jnthn masak: Then suggesting a right factoring that solves the same problem. 12:20
*suggest
12:22 satyavvd_ left
jnthn
.oO( s/take-rw/steal/, s/return-rw/smuggle-out/ ;-) )
12:24
12:27 hanekomu_ joined 12:29 hanekomu_ left 12:31 hanekomu left
dalek kudo/nom: 2fea4a0 | jnthn++ | src/Perl6/SymbolTable.pm:
Make sure attributes get an SC slot so they can be referenced.
12:35
kudo/nom: c9d605f | jnthn++ | src/Perl6/Actions.pm:
Oops, need to install attribute initialization closure code in the PAST tree.
12:38 Reaganomicon left 12:46 JimmyZ joined
yath mberends: hmm, does zavolaj dlopen() or so or does it behave like p5's Inline::C? 12:50
err, dlsym()
just wondering because outb() is actually an inlined __asm__ in the libc headers :-/ 12:52
12:53 Reaganomicon joined 12:57 nymacro left
yath ah, looks like the former. damn. 12:58
mberends yath: dlopen() looks like a regular libc function, so the first thing to verify is that the signature dlopen(Str $s,Int $i) returns OpaquePointer is passed on correctly by Parrot. That parameter type/return type combination has not been tested yet
yath mberends: no, i was asking because inb and outb aren't actually exported symbols by libc but rather inline functions that evaluate to __asm__(...) 12:59
mberends: so i'd need a C compiler 13:00
mberends yath: yes, stick to exported symbols 13:01
yath mberends: if there was an equivalent.. :) 13:02
felher Isn't it quite inconsistent to allow every word to be quoted using <> but STDIN? 13:03
mberends popular functions are often available in both inline and exported form, for example isalpha(). But that could be compiler dependent.
yath not for inb and outb it seems. 13:05
mberends rakudo: say <STDCHEESE STDIN STDJAM>.join(",") # felher: <-- 13:07
p6eval rakudo 048573: OUTPUT«STDCHEESE,STDIN,STDJAM␤»
felher mberends: Yeah, but: 13:08
rakudo: say <STDIN>
p6eval rakudo 048573: OUTPUT«===SORRY!===␤Unsupported use of <STDIN>; in Perl 6 please use $*IN.lines at line 22, near "<STDIN>"␤»
13:09 zby_home_ joined
mberends felher: true, TimToady++ likes to warn explicitly about wrong perl5isms. 13:09
13:12 birdwindupbird left 13:18 JimmyZ_ joined 13:21 JimmyZ left, JimmyZ_ is now known as JimmyZ
felher I see the point. I also fear that people might stumble upon this, though. Especially scripts that are building perl6 scripts for whatever reason might produce non-working perl6 scripts because the author didn't think of quoting STDIN alone is not possible using <>. 13:22
mberends felher: I see your point too. Sometimes the spec considers some aspects deeply, and overlooks others. There is the overall aim of minimizing surprise and/or corner cases, and you have just highlighted one. 13:25
13:25 jrockway joined
yath hmmm... so if i really needed to invoke a C compiler for building some glue between parrot and my OS, like with perl5's XS, is there a module that i could look at as an example? 13:27
or i could build a shared library that zavolaj uses. i have no idea. is there a Preferred Way? :) 13:29
felher mberends: hm, quite a quandary. 13:30
mberends yath: I have built a couple of shared libraries in the past week or so, it has not given any problems
13:31 jrockway left, jrockway joined
mberends felher: discuss it with TimToady++ when he's next here 13:31
yath mberends: nah, i meant whether there is a standard way to do this or just build an .so with unsigned char foo_inb(unsigned short int port) { return inb(port); } and so on
*or if i should just build 13:32
and if so, is there an example module or should i just write the makefile myself? 13:33
mberends yath: there is no standard, because so little of this sort of thing has been done. Your idea of making a wrapper lib for the inline functions looks sane. Copy the lib/libzavolajtest.so target from Zavolaj's Makefile if it helps. 13:37
yath mberends: okay, i'll give it try. thanks :)
13:41 jrockway left 13:42 jrockway joined 13:48 birdwindupbird joined 13:55 jaldhar_ joined 13:59 jaldhar_ left 14:00 jaldhar_ joined 14:03 awoodland joined
dalek kudo/nom: baf8e10 | jnthn++ | / (7 files):
Clean up and unify the way we keep hold of interesting types for use in binder/multi-dispatch/ops.
14:03
kudo/nom: 2514db1 | jnthn++ | src/ (2 files):
Simplify boxing.
kudo/nom: b703150 | jnthn++ | src/ (4 files):
Some handling of types coming from Parrot land (or NQP), and marshalling them into Perl 6 types.
kudo/nom: 7424801 | jnthn++ | src/CORE.setting/Cool.pm:
Start putting back Cool.chars, Cool.substr. Various others simple string methods (.bytes, .chop, .lc, .uc...) can also be put back by some enterprising soul with tuits; follow the style shown here.
mberends jnthn++ # LHF to nom :) 14:04
jnthn Note that these versions of things don't go creating Parrot types then calling ~ to coerce them into Perl 6 things, avoiding master's resulting wastage of a String PMC and a multi-dispatch. 14:06
JimmyZ loop { $jnthn++ }
jnthn overflows 14:07
14:07 JimmyZ left
tadzik ooh, LHFs! 14:08
14:08 JimmyZ joined 14:10 donri joined
jnthn mberends: heh, it too me until now to realize the pun...nommable fruit :P 14:12
mberends :)
14:21 awoodland left 14:22 kaare_ joined 14:26 awoodland joined
jnthn Grrr... // is busted. 14:31
dalek kudo/nom: aa39de8 | jnthn++ | src/ (2 files):
Fix optional parameters up a bit (they are, at least, optional now).
14:40
14:43 awoodland left 14:47 bluescreen10 joined
dalek p: 44a422b | jonathan++ | src/pmc/sixmodelobject.pmc:
Make defined v-table overridable.
14:47
14:53 whiteknight joined
dalek kudo/nom: 7bc6136 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
Unbust //.
14:55
kudo/nom: 8fe5607 | jnthn++ | src/CORE.setting/Cool.pm:
Fix thinko in substr with single arg.
kudo/nom: 11e4010 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
Make Perl 6 types friendlier to the Parrot world.
15:11
kudo/nom: 8ace1f1 | jnthn++ | src/CORE.setting/Attribute.pm:
Auto-generated attribute accessors, both readonly (default) and rw if 'is rw' trait is applied. Happily, handled by real multi-dispatch trait mods, not special-cased in the compiler like master.
15:13 mikehh_ joined
jnthn Another LHF is putting back some more math ops. Can do them just on Int for now. See t/00-parrot/02-op-math.t for some inspiration. 15:19
And operators.pm for approach.
Actually maybe I should start an LHF file. :) 15:20
JimmyZ > say 'abcdef'.substr(1,'e3');
Method 'Int' not found for invocant of class 'SixModelObject'
15:22 hudnix joined
JimmyZ is enjoying the newest nom 15:22
jnthn JimmyZ: Str.Int method not yet implemented. :)
TimToady niecza: my constant pi of Int = 3; say pi 15:30
JimmyZ jnthn: does nom still complain 'cannt find undefined method' at runtime?
p6eval niecza v6-57-g75df890: OUTPUT«3␤»
TimToady niecza: my Int constant pi = 3; say pi
p6eval niecza v6-57-g75df890: OUTPUT«3␤»
jnthn JimmyZ: Yes, we can't (in general) detect undeclared methods at compile time. 15:31
JimmyZ oh, I see
dalek kudo/nom: c14a6c9 | jnthn++ | / (2 files):
Add LHF file, update nommap.
15:32
jnthn Undeclared attributes you'll now be told about at compile time.
JimmyZ because it is dynamic
jnthn Right :)
TimToady well, we could detect undeclared methods with whole program analysis, assuming no methods are declared after CHECK time
jnthn Well, it's gradual, but the gradualness more helps us optimize in this case, rather than error report.
TimToady: Yes, but only with a fully typed program. 15:33
TimToady doesn't have to be
jnthn my $x = get_thingy(); $x.blah
TimToady if nobody declares a method foo anywhere, $x.foo is suspect
jnthn Oh, you meant it in that more blurry sense :)
Yeah, that is more possible. 15:34
TimToady when I said whole program analysis I meant analyzing the whole program :P
jnthn :P
TimToady we can't so easily detect calling .foo on the wrong type though...
jnthn No, that's harder. 15:35
TimToady still, if the parentage is nailed down at CHECK time, you can make some guesses
jnthn Needs full program analysis, assumption of class closure, and lots of type annotations (or an assumption that untyped means "don't check"). :)
But yes, writing that sort of thing is at least a lot more tractable now. 15:36
Given we have all the meta-objects to hand at compile time.
well, by CHECK time, I mean ;)
TimToady that kind of analysis is necessary to make single dispatch into direct invocation anyway, so systems that are single dispatch only often get into such optimizations
some such optimizations might need pragmatic reassurances 15:37
or a system of declarative pessimizations, as we've specced in spots
jnthn Sure they do - it's not so much inability to implement such things, so much as them not giving so many false positives that users hate them. :) 15:38
And yes, promises-by-pragma sounds like a sane approach.
TimToady "the optimizer is allowed to optimize X at CHECK time unless you've said 'this thing is stupid'"
that's how we've specced open/closed/final classes 15:39
we'd really like Perl 6 to run fast by default :)
at the expense of a few "too late to do that after CHECK" errors and erroneousnesses 15:40
ah well, preaching to the choir, or singing to the preacher, or something... 15:41
jnthn :)
TimToady I suppose if there's a sense in which we're handing off control with take-rw and return-rw, so maybe TAKE and RETURN 15:43
15:44 bluescreen10 left
dalek kudo/nom: 9e07d02 | jnthn++ | src/CORE.setting/traits.pm:
Remove debug code I accidentally left in.
15:47
15:51 kboga joined
dalek d: c843201 | larry++ | STD.pm6:
clarify <STDIN> message for felher++
15:51
JimmyZ tries to add LHF to operatoers.pm and success 15:52
15:52 thou joined 15:54 kfo_ joined
dalek kudo/nom: e80400f | jnthn++ | src/Perl6/Grammar.pm:
Track <STDIN> error update from STD.
15:58
16:06 mikehh_ is now known as mikehh
jnthn So...what's next on my list...oh my. Multi-methods. 16:07
16:23 daniel-s left 16:32 snearch joined 16:36 asdf_ joined 16:37 kboga left 16:42 awoodland joined 16:47 asdf_ left 16:53 awoodland left
dalek kudo/nom: 391b249 | jnthn++ | src/Perl6/ (3 files):
Get basic case of multi-method dispatch, where a proto and multi-candidates are declared in the same class - to work.
16:55
jnthn afk for a bit 17:01
17:05 mtk left
sorear good * #perl6 17:12
donri new rakudo website eh 17:14
17:15 mtk joined
moritz jnthn: looking at Cool.chars etc., wouldn't it be better in the long run to return native ints, and have some magic that automatically boxes them when the receiver wants a boxed type? Or is that ETOOMUCHMAGIC? 17:18
17:22 snearch left 17:30 zby_home_ left
dalek kudo/nom: 131a296 | moritz++ | build/Makefile.in:
[build] missing dependency on setting files
17:31
kudo/nom: 0c146e2 | moritz++ | src/CORE.setting/Cool.pm:
implement Cool.lc and .uc
17:33 zby_home joined, MayDaniel joined
dalek kudo/nom: 4afdce2 | moritz++ | / (2 files):
implement Cool.lcfirst and Cool.ucfirst
17:36
17:36 kaare_ left 17:37 Trashlord left 17:45 awoodland joined 17:46 JimmyZ left
dalek kudo/nom: e89fd23 | moritz++ | src/CORE.setting/operators.pm:
implement binary operators for integers
17:47
kudo/nom: 84ab1c3 | moritz++ | src/CORE.setting/operators.pm:
implement integer bitshift operators
17:52 awoodland left
moritz nqp: say(pir::bnot("a")) 17:53
p6eval nqp: OUTPUT«error:imcc:syntax error, unexpected PREG, expecting '(' ('$P17')␤ in file '(file unknown)' line 26␤error:imcc:syntax error ... somewhere␤ in file '(file unknown)' line 120␤syntax error ... somewhere␤»
moritz nqp: say(pir::bnot__PP("a"))
p6eval nqp: OUTPUT«error:imcc:syntax error, unexpected PREG, expecting '(' ('$P17')␤ in file '(file unknown)' line 26␤error:imcc:syntax error ... somewhere␤ in file '(file unknown)' line 120␤syntax error ... somewhere␤»
moritz nqp: pir::loadlib('bit_ops'); say(pir::bnot__PP("a")) 17:55
p6eval nqp: OUTPUT«error:imcc:syntax error, unexpected PREG, expecting '(' ('$P18')␤ in file '(file unknown)' line 44846891␤error:imcc:syntax error ... somewhere␤ in file '(file unknown)' line 44846985␤syntax error ... somewhere␤»
17:56 MayDaniel left
jnthn ooh, moritz++ has been patchin' 17:58
jnthn reviews
moritz: They look good. 18:00
18:00 birdwindupbird left
jnthn moritz: It's too late to use loadlib at runtime 18:00
moritz: If you want to play with other oplibs then --vmlibs=bit_ops will help 18:01
moritz: Note, avoid the PP versions, or they re-box...
felher thnx, TimToady++, jnthn++ 18:04
moritz jnthn: noted.
dalek kudo/nom: 53f404e | moritz++ | src/CORE.setting/IO.pm:
hacky version of print() to get some tests passing
18:08
kudo/nom: 639f872 | moritz++ | src/ (2 files):
implement prefix +^ for integers
moritz nqp: say 2 ** 3
p6eval nqp: OUTPUT«Confused at line 1, near "say 2 ** 3"␤current instr.: 'nqp;HLL;Grammar;panic' pc 26397 (src/stage2/gen/NQPHLL.pir:7039)␤»
moritz nqp: say(2 ** 3)
p6eval nqp: OUTPUT«8␤» 18:09
18:15 wamba joined
moritz somehow I can't get pir::pow__NNN to work, even if I load math_ops 18:17
nqp: say(pir::pow__NNN(3, 4)) 18:18
p6eval nqp: OUTPUT«81␤»
jnthn moritz: Is there no III variant?
moritz: NNN is floating point. 18:19
moritz jnthn: dunno
nqp: say(pir::pow__III(3, 4))
p6eval nqp: OUTPUT«error:imcc:The opcode 'pow_i_i_i' (pow<3>) was not found. Check the type and number of the arguments␤ in file '(file unknown)' line 30␤»
jnthn So using it with Ints is probably not going to end so well ;)
moritz aye
jnthn rakudo: say 3 ** 4
moritz well, it tries to coerce
p6eval rakudo 048573: OUTPUT«81␤»
jnthn rakudo: say (3 ** 4).WHAT
p6eval rakudo 048573: OUTPUT«Int()␤»
jnthn "tries"? :) 18:20
moritz error:imcc:syntax error, unexpected NREG, expecting '(' ('$N25')
jnthn Can you nopaste the code and/or what you're seeing? :)
moritz $unit.loadlibs('nqp_group', 'nqp_ops', 'perl6_group', 'perl6_ops', 'bit_ops', 'math_ops'); in src/Perl6/Actions.pm
jnthn *nod* 18:21
That bit looks right.
moritz and then just pir::pow__NNN(2, 3) on the command line
jnthn oh
Using pirops directly on the command line ain't going to end too well in nom.
Well
It probably will be we implemented Int.Num
I'm guessing the erorr is about a missing .Num?
moritz error:imcc:syntax error, unexpected NREG, expecting '(' ('$N25') 18:22
jnthn OH
:S
donri hm, what does make install do that make don't? i get the binaries installed by just make
rakudo star
moritz it should install 18:23
donri but it already did? :P
moritz where does it install them? 18:24
erm, iinto which location? 18:25
donri same as make install
i.e. --prefix defaulting to install/
18:26 wamba left 18:29 awoodland joined
donri hm i just compiled rakudo by accident 18:30
was going to check some stuff in web.pm, completely forgot what i was doing, ended up compiling latest star 18:31
adhd be damned
masak just try again. 18:32
if you have any questions about Web.pm, feel free to ask here. some parts are a bit antiquated and... neglected. :/
tadzik did we eventually make it run on master? 18:33
masak it's a collection of heterogenous applications... but yes, largely. 18:34
18:34 wamba joined
tadzik hmm, I remember fixing some stuff but I don't see my commits anywhere 18:35
oh, that must be in my fork or somewhere
masak sounds pullworthy. 18:37
donri man github needs better syntaxing of 6p 18:39
p6
tadzik pod6! :)
donri ? 18:40
tadzik look how it parses S26: github.com/tadzik/gsocmess/blob/ma...tation.pod
donri icanhascheezburger.files.wordpress....amazed.jpg
tadzik I like how cats are never offtopic 18:41
masak the only way to provide github with better syntax highlighting of Perl 6 is to place a sufficiently good syntax highlighter, in a language they can use, at their doorstep. :)
18:41 envi left
donri cats go wrong with cants 18:42
masak: they use pygments, python
tadzik hitomi relies on <after> in grammars it seems
masak that's workaroundable. 18:43
tadzik and stuff. Hitomi fails, the rest of the tests pass
masak hitomi shouldn't even be parsing XML, really.
jnthn moritz: Did you manage to fathom the pow issue?
masak we should have a good binding to some XML lib.
tadzik there was a gsoc project about it, wasn't there? 18:44
moritz jnthn: no
jnthn moritz: OK, will look
moritz jnthn: added as nom-power branch to github 18:45
erm... or will be, wenn my slow connection finishes the upload
done.
masak tadzik: not that I know.
tadzik: was that parrot-xml lib binding, then? 18:46
donri libxml2 seems to be generally considered best-of-breed
tadzik masak: lemee resee 18:47
donri github.com/supernovus/exemel/ ?
tadzik masak: wiki.enlightenedperl.org/gsoc2011/ideas ^F "xml parser"
donri: let's see how it works
masak tadzik: ah, a project proposal. 18:48
tadzik: yes, I might even have written that one.
tadzik yeah
donri does it make sense to nativecall stuff like libxml2 when there's PGE?
speed? 18:49
tadzik exemel passes its tests, maybe it could be used for hitomi
donri: what does PGE have to do with it?
oh, I get it
donri wait, is pge not perl6 grammars
tadzik yeah, but I see your point
I
I'm sure binding to libxml2 or something will end up being faster, at least for now
masak it's not just about parsing. it's also a lot of other XML wheels that don't merit re-inventing.
yes, it will be faster. 18:50
it's also a very good fit with jnthn's work with reprs.
donri i get that it's probably faster *for now* but what about "potentially"?
tadzik masak: so, what's the plan for Web? 18:51
masak it would take a lot for me to prefer someone's PGE/nqp/Perl 6 grammar of XML to a well-tried, well-used XML library.
tadzik: finish week 20, salvage what's good from it into other github repos. 18:52
donri anyway libxml2+libxslt is the typical preference in python (lxml) and ruby (nokogiri)
masak tadzik: I have a pretty good idea of what we want to keep from Web.pm.
tadzik masak: oh, that's your grant?
18:52 awoodland left
masak mine, ihrd's and Tene's, yes. 18:53
tadzik expertise: exemel is working as an xml parser. hitomi can be moved to old/ until reworked, and then the tests pass, there's a working astaire, ratel and something else
loldispatch, squerl and Web/Handler/HTTPDaemon is already old'ed 18:54
donri in pythonland, "werkzeug" has *excellent* request and response objects, very well designed and a good source of inspiration
tadzik from various reasons, being broken traits, broken sqlite, and broken something respectively
masak I'd like to keep squerl alive. it's one of the projects that I think have promise.
ah yes, broken sqlite.
moritz a perlish source of inspiration would be Mojo/Mojolicious
tadzik or was it sqlite? Don' remember 18:55
18:55 Trashlord joined
tadzik yeah, sqlite 18:55
masak sqlite3, IIRC.
tadzik aye 18:56
Tene I've been repeatedly surprised that people mention loldispatch; I just meant it as a throwaway toy demo.
tadzik :)
lol! 18:57
Tene but people keep treating it like it's a real thing
masak the name is charming :)
donri what *is* it?
tadzik feel free to throwaway it entirely if you want to, you have access to my fork Tene
All tests successful. 18:58
Files=6, Tests=33, 22 wallclock secs
masak tadzik++
tadzik masak: feel free to pull/cherry-pick whatever you think makes sense
moritz++ # nom-power!
masak tadzik: thanks, I will. 18:59
donri: it's a little module pairing subroutine traits with URI dispatch.
tadzik donri: imagine
donri kinda like dancer?
tadzik "sub foo() is http-handler(/foo/) {}" 19:00
not quite
19:00 molaf left
Tene donri: look at the usage section of github.com/masak/web/blob/master/l...ispatch.pm 19:00
donri well, i was going to say flask/bottle but they're python and you don't know them ;)
tadzik donri: github.com/tadzik/web/blob/master/...tch.pm#L22
oh, I is late
donri i suppose it's astaire that's like dancer 19:01
tadzik also, Bailador is like Dancer :>
donri but i really meant more like the python sinatras; decorators being similar to traits
tadzik donri: see github.com/tadzik/Bailador/blob/master/app.pl 19:02
I wonder if that still works
masak yes, Astaire was created before I knew about Dancer.
tadzik heh, it does :) 19:04
sorear mberends: that error from LoadAllSubs is suggestive of stale files in the module cache, maybe Test.dll 19:07
mberends sorear: thanks, I suppose a fresh checkout is the safest option 19:08
tadzik Requests per second: 12.28 [#/sec] (mean)
not that bad :) 19:09
masak that's really nice. 19:10
requests in November typically took on the order of 3 seconds.
tadzik well, bailador is barely 20 lines
12.68 [#/sec] on bare PSGI app 19:16
hmmm
19:17 kjeldahl left
sorear yath: Isn't inb a macro? You'll have trouble zavolajing it if so. 19:17
(am I the first person to verb that?)
jnthn sorear: zavolaj already is an imperative verb in the languages the name came from :) 19:18
*language
sorear masak: return-rw and leave-rw are only intended for use in cases where you cannot use 'is rw'. namely, pointy blocks
TimToady hmm 19:19
std: -> $x { is rw; ... }
p6eval std c843201: OUTPUT«===SORRY!===␤Undeclared routines:␤ 'is' used at line 1␤ 'rw' used at line 1␤Potential difficulties:␤ $x is declared but not used at /tmp/IjAD2y9RKu line 1:␤------> -> ⏏$x { is rw; ... }␤Check failed␤FAILED 00:01 115m␤»
tadzik "z wołaniem"
TimToady std: -> $x { also is rw; ... }
p6eval std c843201: OUTPUT«Potential difficulties:␤ $x is declared but not used at /tmp/X4gdKijgEe line 1:␤------> -> ⏏$x { also is rw; ... }␤ok 00:01 114m␤»
TimToady there you go
masak sorear: what TimToady said.
and in general, that would be my proposed solution: rw-ize the container, not the returning(-ish) action. 19:20
the latter seems like unnecessarily much freedom to me.
bothersomely much.
sorear +1 to 'also is rw' in blocks 19:24
19:30 awoodland joined
moritz nqp: say (pir::neg__NN(3)) 19:31
p6eval nqp: OUTPUT«Confused at line 1, near "say (pir::"␤current instr.: 'nqp;HLL;Grammar;panic' pc 26397 (src/stage2/gen/NQPHLL.pir:7039)␤»
moritz nqp: say(pir::neg__NN(3)) 19:32
p6eval nqp: OUTPUT«-3␤»
moritz nqp: say(pir::neg__II(3))
p6eval nqp: OUTPUT«-3␤»
jnthn nqp: say(pir::neg__II(3))
p6eval nqp: OUTPUT«-3␤»
jnthn oh, phew, there is one :)
moritz jnthn: why do all the ops in operators.pm have a \ before the parameters? 19:33
jnthn moritz: "is parcel" 19:34
moritz: "bind whatever you get straight into the lexpad"
moritz: Basically, optimization
moritz: In theory, a smart compiler would spot the chance to do it for us.
moritz: In practice, we didn't write src/Perl6/Optimizer.pm yet :) 19:35
19:35 PhatEddy joined
moritz :-) 19:35
jnthn Anyway, it gives a speed win.
PhatEddy perl6: grammar g { token TOP { a } }; enum select_parser (parse_a => g)
p6eval rakudo 048573: OUTPUT«===SORRY!===␤Method 'succ' not found for invocant of class 'Failure'␤»
..niecza v6-57-g75df890: OUTPUT«===SORRY!===␤␤Illegal redeclaration of symbol 'g' (see line 1) at /tmp/NalVrv9Xgi line 1 (EOF):␤------> a } }; enum select_parser (parse_a => g)⏏<EOL>␤␤Compile time expression is insufficiently trivial at /tmp/NalVrv9Xgi line 1
..(EOF):␤------> […
..pugs: OUTPUT«*** No such subroutine: "&enum"␤ at /tmp/6MrhpVzUpN line 1, column 32 - line 2, column 1␤»
PhatEddy perl6: sub griddle { say 'hot' }; enum h ( hot => &griddle ) 19:36
p6eval niecza v6-57-g75df890: OUTPUT«===SORRY!===␤␤Compile time expression is insufficiently trivial at /tmp/IjxTZVXLR9 line 1 (EOF):␤------> say 'hot' }; enum h ( hot => &griddle )⏏<EOL>␤␤Unhandled exception: Check failed␤␤ at
../home/p6eval/niecza/boot/lib/CORE.setting line 469 (…
..rakudo 048573: OUTPUT«===SORRY!===␤Could not find sub &griddle␤»
..pugs: OUTPUT«*** No such subroutine: "&enum"␤ at /tmp/jeREmNZGM_ line 1, column 28 - line 2, column 1␤»
19:36 MayDaniel joined
sorear PhatEddy: enum values must be either Int or Str or a subtype thereof 19:37
my goal for today is to make enum and subset work
mberends sorear: S03-metaops/hyper.niecza line 234 contains: eval '@r = ("f", "oo", "bar").».chars'; and here it still throws IndexOutOfRangeException at ReadXref etc. 19:39
19:41 MayDaniel left
dalek kudo/nom: 59611dc | moritz++ | src/CORE.setting/operators.pm:
implement prefix:<-> for Int and Num
19:41
jnthn moritz: Awesome, though we don't have Num literals yet. ;-) 19:42
Or any way to Num :)
tadzik details :) 19:44
19:44 birdwindupbird joined
jnthn Maybe I should put them back soon. :) 19:45
moritz it compiles, so it must be correct :-) 19:48
PhatEddy That sort of makes sense but I just double checked S02 and S12 and didn't see the Int or Str "requirement". 19:49
moritz doesn't see why it needs to 19:50
19:54 birdwindupbird left
dalek kudo/nom: 0462779 | moritz++ | src/Perl6/Actions.pm:
comment out version check that dies on "use v6;"
19:57
jnthn moritz: heh, use v6 didn't work? :D
moritz jnthn: nope :/ 19:58
jnthn heh :)
oh, I think I know why...
moritz rakudo: say 1 leg 2 20:00
p6eval rakudo 048573: OUTPUT«-1␤»
tadzik std: 1 leg 2 legs 20:01
p6eval std c843201: OUTPUT«===SORRY!===␤Whitespace is required between alphanumeric tokens at /tmp/k_bs2PCRAv line 1:␤------> 1 leg 2 leg⏏s␤"leg" and "leg" are non-associative and require parens at /tmp/k_bs2PCRAv line 1:␤------> 1 leg 2 leg⏏s␤No
..delimi…
jnthn moritz: leg does Order enum, iirc? 20:02
moritz jnthn: yes 20:03
sorear mberends: you got that with a clean niecza and roast checkout? :/ 20:04
jnthn moritz: OK. No enums yet. 20:05
mberends sorear: yes
sorear wtf
dalek kudo/nom: 04b1572 | moritz++ | src/CORE.setting/operators.pm:
cheated infix:<leg>
20:07
sorear S03-metaops/hyper.t passes here 20:10
let me try again with a clean checkout
mberends I'll move to another system later, it will have a newer Mono 20:12
20:18 masak left 20:21 wamba left 20:22 masak joined 20:24 _jaldhar_ joined
sorear mberends: what mono version are you using now? 20:25
\o/ 20:26
mberends 2.6.7 on Debian 6.0
sorear I have REPRODUCED the FAILURE
mberends oooh!
20:27 masak left, y3llow joined, pothos joined 20:28 jaldhar_ left
sorear it only happens with an older mono 20:30
niecza: sub foo($x) { eval q[say $x]; eval q[say $x] }; foo(15) #OK 20:31
p6eval niecza v6-57-g75df890: OUTPUT«15␤15␤»
sorear hey
20:31 tomaw_ joined 20:32 tomaw left
sorear for some reason p6eval is using 2.10.1 20:32
20:35 tomaw_ is now known as tomaw
moritz "for some reason" = "i installed it because it wouldn't work on older versions back then" 20:36
20:36 masak joined
sorear oops. 20:37
sorry.
moritz don't worry, it's "auld lang syne"
sorear Confused at line 1, near "auld" 20:38
moritz "old long since"
nqp: say(pir::bneg__SS("!a3")) 20:44
p6eval nqp: OUTPUT«error:imcc:syntax error, unexpected SREG, expecting '(' ('$S18')␤ in file '(file unknown)' line 41516155␤error:imcc:syntax error ... somewhere␤ in file '(file unknown)' line 41516249␤syntax error ... somewhere␤»
moritz nqp: say(pir::bneg__PP("!a3"))
p6eval nqp: OUTPUT«error:imcc:syntax error, unexpected PREG, expecting '(' ('$P17')␤ in file '(file unknown)' line 47596330␤error:imcc:syntax error ... somewhere␤ in file '(file unknown)' line 47596424␤syntax error ... somewhere␤»
jnthn moritz: Needs bit_ops?
moritz jnthn: probably
nqp: say(pir::bnot__PP("!a3")) 20:45
p6eval nqp: OUTPUT«error:imcc:syntax error, unexpected PREG, expecting '(' ('$P17')␤ in file '(file unknown)' line 40387370␤error:imcc:syntax error ... somewhere␤ in file '(file unknown)' line 40387464␤syntax error ... somewhere␤»
moritz and right spelling :-) 20:46
20:47 thou left
jnthn moritz: And hopefully not PP :) 20:47
moritz jnthn: right, SS and II exist
erm
... but spelled bnots__SS 20:48
jnthn that's nots-o consistent... 20:50
moritz all the binary string ops have an s postfix
20:50 thou joined
moritz and it seems that the PP variant coerces to something numberish 20:50
jnthn ah, ok 20:51
It's nots o bad then :)
PhatEddy rakudo: class A {has $.a; submethod BUILD($!a) {}; sub new($str) {return this.bless(*, a => $str)}}; my $x = A.new('abc')
p6eval rakudo 048573: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤ in 'A::BUILD' at line 22:/tmp/dJnUDQTGG5␤ in main program body at line 22:/tmp/dJnUDQTGG5␤»
PhatEddy rakudo: class A {has $.a; submethod BUILD(:$init_a) {$!a = $init_a; say 'init_a is ', $init_a}; sub new($str) {return this.bless(*, init_a => $str)}}; my $x = A.new('abc'); say $x.a
p6eval rakudo 048573: OUTPUT«init_a is Any()␤Any()␤»
20:53 mj41 joined
moritz jnthn: try "a" + "b" in nom 20:55
segfaults here 20:56
jnthn moritz: Yeah, I'd noticed that multi-dispatch fails sometimes fail a bit too hard.
moritz: But not always.
moritz: It'll be something silly, I'm sure.
20:58 masak left
jnthn moritz: Does nom-power still need looking at? 20:58
(been busy sorting out NPW bits :-))
20:58 masak joined, jevin joined
dalek kudo/nom: b504ad2 | moritz++ | src/CORE.setting/operators.pm:
implement some string bitwise ops
20:59
moritz jnthn: yes, it doesn't work :/ 21:01
it compiles to pow $N780, $N777, $N779 21:03
which is a syntax error :(
even though there was a .loadlib "math_ops" 21:04
jnthn nqp: say(pir::pow__NNN(2,3))
p6eval nqp: OUTPUT«8␤»
jnthn :S
moritz erm
it seems its in trans.ops
not math.ops 21:05
wtf?
jnthn oh!
wtf.
moritz: Shall I leave it to you, now you've figured out what's up? :)
moritz jnthn: yes, but that way I'll only get the Num ** Num case to work... 21:06
jnthn moritz: OK, do that one, I'll look into the int one.
*Int
moritz jnthn: should I just use the __NNN form for integers too, and have parrot do the boxing?
jnthn moritz: oh
moritz: Actually if you do that it'll not box, afaik.
PhatEddy We had some discussion about build and positional parameters yesterday. Now the parameters seem positional. Is there some further misunderstanding or something else wrong?
jnthn moritz: It'll do an I to N coercion
moritz: Which is fine. 21:07
moritz erm, yes
jnthn (it doesn't allocate)
21:07 jfried left 21:08 thou left 21:09 _jaldhar_ left
dalek kudo/nom: 32fd8e1 | moritz++ | src/ (2 files):
try to add infix:<**>
21:09
kudo/nom: 23dbedc | moritz++ | src/Perl6/Actions.pm:
pir::pow requires trans_ops
kudo/nom: 834ae1e | moritz++ | src/ (2 files):
Merge branch 'nom-power' into nom
moritz nqp: say(pir::set__IP("34")) 21:10
p6eval nqp: OUTPUT«34␤»
21:11 awoodland left
moritz nqp: say(pir::set__IN(2.3)) 21:12
p6eval nqp: OUTPUT«2␤»
moritz rakudo: pir::set__IP "23" 21:13
p6eval rakudo 048573: ( no output )
moritz never realized that in rakudo pir::thing is just a listop
21:14 _jaldhar_ joined
dalek kudo/nom: 6c0be96 | moritz++ | src/CORE.setting/operators.pm:
implement infix ** for integers
21:14
moritz next failure in 02-op-math.t: infix:<%> 21:15
I think I'll leave that for colomon++ or other interested folks, and go to sleep now
'night
jnthn moritz: night o/ 21:16
moritz++ # nom hacking
tadzik gets on track 21:19
jnthn \o/
dalek kudo/nom: 66b57e3 | jnthn++ | src/binder/multidispatch.c:
Fix segfault in multi-dispatcher, as noticed by moritz++.
21:20
tadzik jnthn: I remember you saying that you'd rather make setting compilation fast than trying to split up the compilation. It is fast now, but will it scale?
t/00-parrot/02-op-math.t pass :) 21:21
that's probably due to lack of tests
jnthn tadzik: Probably won't scale that much better than master, but a bit.
tadzik: Parse trees are lighter now.
tadzik: But PAST isn't switched over to 6model yet and NQP is missing at lesat one important optimization that'd make a difference. 21:22
tadzik I see
jnthn On the one hand, the compiler is building a much fuller view of the runtime than it was before also 21:23
On the other hand, some of those make previous things go away
tadzik nice, t/00-parrot/03-op-logic.t segfaults
jnthn (e.g. we now build the real signatures and classes rather than objects that generate them)
tadzik: Does it still segfault after the commit I made a few minutes ago?
tadzik oh, not 'made' (ha ha!) yet, will check 21:24
jnthn
.oO( What sort of beer does a Perl 6 compiler prefer when it's almost done compiling a program? CHECK beer! )
tadzik ;) 21:25
dalek kudo/nom: 8766c01 | tadzik++ | src/CORE.setting/operators.pm:
Implement prefix:<abs> and infix:<%>, making t/00-parrot/02-op-math.t pass
tadzik jnthn: it's Null PMC access in invoke() after the patch
21:26 _jaldhar_ left
jnthn tadzik: And something saying multi-dispatch error reporting is busted? 21:26
tadzik yeah, yeah 21:27
jnthn OK :)
tadzik William Paste 21:28
wklej.org/id/541631/
jnthn oh
hm
21:28 _jaldhar_ joined
jnthn ah, yes, it's down at the bottom there 21:29
OK
I can't fix that up until I have Code.signature.perl working again.
tadzik no worries, keep up the good work :)
tadzik peeks in LHFmap
jnthn Anyway, that's still better than a segfault
hmm...I wonder if all the LHF nom has been eaten :)
tadzik the pir-related test segfaults
jnthn eww 21:30
Though it may be that it breaks some type system assumption.
oh, yes 21:31
it sneaks a Parrot type somewhere that cna't yet handle that.
Will put on my fix list...we really had best not segfault for that. 21:32
21:34 _jaldhar_ left 21:36 _jaldhar_ joined 21:38 [particle] joined 21:39 [particle]1 left
dalek kudo/nom: 26e0b96 | tadzik++ | LHF.markdown:
Update LHF.markdown
21:40
21:45 jevin left 21:46 Psyche^ joined 21:49 Patterner left, Psyche^ is now known as Patterner
tadzik search.cpan.org/~philip/Test-Spec-0...st/Spec.pm -- funny 22:01
masak blog post! strangelyconsistent.org/blog/june-5...s-a-number 22:02
tadzik nice :) 22:04
masak up until I actually wrote the post, I had the random number generation as (rand * 100 + 1). old habits die hard :) 22:06
jnthn :) 22:07
masak++ 22:08
tadzik :) 22:09
22:15 bitpart joined 22:17 mj41 left
sorear wonders 22:31
How important a deal is it that eval is somewhat broken on 2.6.7?
masak probably not more important than charging ahead with more features. 22:33
sorear you think the features are important? 22:34
masak yes. Niecza seems to be in that early growth phase still.
sorear I've thought of features as the lazy way to improve stuff
ok
TimToady +1 to those features that let me run rosettacode examples :)
sorear shelves mberends' 2.6.x test failures and goes back to eval/subset 22:35
masak just an opinion. others may disagree and think that eval on 2.6.7 is very important for them.
sorear 2.6.7 is only important because of lousy timing between Debian 6.0 and Mono 2.8.0
22:41 bitpart left
TimToady things I've wanted for RC: floor, log, enums, sorting on Pairs, s:g 22:41
masak 'night, #perl6. dream of wonderful features in wonderful implementations. 22:42
22:42 masak left
TimToady and the sequence operator, several times... 22:44
sorear hehehe, except for pair sorting that's all lowish-hanging fruit now 22:45
I want to understand default sorting better
TimToady don't we all...
mikemol "I want to understand default sorting better." "Don't we all..." <-- Makes one wonder if a language risks gaining sentience. 22:49
What's the skynet cost on changes to the default sorting?
sorear o/ mikemol 22:50
you heard rosettacode, didn't you.
mikemol Well, of course. :)
Though a little while ago, someone pinged me on 'immolation'.
(Elsewhere)
mikemol -> m*mol -> mmol <- i*mmol*ation. *sigh* 22:51
sorear clearly you need to highlight on «mmol» 22:53
some regex packages (do I need to posture here and call them inferior?) spell that \b, or \<\>
mikemol I can probably remove the highlight. I no longer use this client to connect to anything where I use that as a username. 22:54
Looking forward to seeing what niecza does, though I still have fantasy of writing an up-to-NQP implementation in C++. 22:58
I really doubt it'll be a high enough priority to overtake other things on my plate, though.
23:12 Ali_h joined 23:20 zby_home left 23:23 Mowah left 23:56 dorlamm joined 23:58 thou joined