»ö« 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 foemee mie moejee 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 failedFAILED 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 = 42Parse 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 26error:imcc:syntax error ... somewhere in file '(file unknown)' line 120syntax 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 26error:imcc:syntax error ... somewhere in file '(file unknown)' line 120syntax 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 44846891error:imcc:syntax error ... somewhere in file '(file unknown)' line 44846985syntax 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 1Potential difficulties: $x is declared but not used at /tmp/IjAD2y9RKu line 1:------> -> ⏏$x { is rw; ... }Check failedFAILED 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⏏sNo | ||
..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«1515» | ||
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 41516155error:imcc:syntax error ... somewhere in file '(file unknown)' line 41516249syntax 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 47596330error:imcc:syntax error ... somewhere in file '(file unknown)' line 47596424syntax 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 40387370error:imcc:syntax error ... somewhere in file '(file unknown)' line 40387464syntax 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
|