»ö« 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:02 frettled joined 00:05 Sarten-X joined 00:07 whiteknight joined 00:09 jql joined 00:16 Sarten-X left
dalek kudo/nom: cfff0c8 | jnthn++ | src/ (297 files):
Make it clearer what's going away and just left in the repo for reference and, in cases where it's good, copying into new places.
00:19
00:21 f00li5h[HireMe] is now known as f00li5h 00:24 lumi left 00:25 Sarten-X joined, lumi joined 00:33 kid51 joined 00:43 ethan left
dalek kudo/nom: 709fd6c | jnthn++ | src/old/builtins/ (6 files):
Toss some stuff from old that contains nothing interesting to review.
00:45
kudo/nom: 31dde87 | jnthn++ | NOMMAP.markdown:
Couple of nommap updates.
00:52 ymasory joined, yinyin joined
jnthn pmichaud: When I do perl Configure.pl --parrot-config=... I get: 00:57
===SORRY!===
I'm missing some needed files in the install directory: C:/Consulting/rakudo/parrot_install/bin/parrot
00:57 lumi left
jnthn It's the right directory but it seems to have missed the executable extension. 00:57
Sleep time...can look tomorrow if you don't get chance before I wake up. :)
'night #perl6
00:58 lumi joined 01:00 joshua__ joined
joshua__ hello, which Moose modules should I download to try to get some Perl6 object flavor into my Perl5? 01:00
is there a difference between Moose and MooseX? 01:01
is there something better than Moose (that comes even closer to the Perl6 model?) 01:02
dalek p: ef23ef5 | pmichaud++ | / (2 files):
Merge branch 'master' of github.com:perl6/nqp
01:03
p: f152ca1 | pmichaud++ | Configure.pl:
Fix .exe bug in verify_install (jnthn++).
01:04 noganex_ left
pmichaud jnthn: fixed .exe bug 01:05
01:05 noganex joined 01:07 buubot_backup left
joshua__ i found some more Moose info online.... getting Moose now... l8r 01:12
cotto Which nqp branch do I need to play with the Rakudo nom branch? 01:15
01:16 isBEKaml left
pmichaud nqp master 01:24
cotto: nqp master
cotto pmichaud, ok. that segfaults during the build
pmichaud with which parrot?
cotto master 01:25
pmichaud checking.
today/tomorrow I plan to be reworking the build system of rakudo nom... it's a bit suboptimal at the moment 01:26
cotto also, nqp master's Configure.pl doesn't find my parrot_config, even though it's in my path
pmichaud nqp only looks at specific directories -- doesn't normally check the PATH 01:27
I suppose it could.
cotto ok
pmichaud that wouldn't seem to be too hard to add.
cotto works fine if I tell it with --parrot-config
pmichaud still with the segfault? 01:28
cotto yes
rebuilt/reinstalled parrot too
pmichaud I just built Parrot master, I'm trying nqp with it now
01:29 lumi left
cotto retrying with ccache cleared. I might have some wonky ram. 01:29
pmichaud nqp seems to have built okay for me with parrot master
pmichaud@kiwi:~/nqp$ ./nqp --version
This is nqp version build-2011.05-15-gf152ca1 built on parrot 3.4.0 revision RELEASE_3_4_0-138-g00bdcb5
01:30 lumi joined, Sarten-X left
cotto bus error 01:30
pmichaud 32 bit or 64?
cotto awesome
64
pmichaud same here
does it work for you with 3.4.0, ooc?
cotto let's find out 01:31
01:31 buubot_backup joined
cotto yes 01:37
pmichaud so, something changed between 3.4.0 and master then
okay, we can see about tracking it down
01:38 Moukeddar joined
Moukeddar hey guys , 01:38
this : www.lynda.com/Perl-5-tutorials/esse...025-2.html
or
this : www.vtc.com/products/Perl-Fundament...orials.htm
?
dalek p: c6c3fdd | pmichaud++ | tools/lib/NQP/Config.pm:
Allow using parrot_config found in search path. cotto++
01:39
cotto Now I get "Cannot open output file Perl6/ModuleLoader.pbc" 01:42
during the Rakudo build
(Rakudo master)
er, nom
looks like a bit of build wackiness. It should be writing to src/Perl6/ModuleLoader.pbc 01:43
01:49 Sarten-X joined 01:54 phenny joined
cotto be back later this evening 01:54
01:54 phenny left, phenny joined
sorear joshua__: join #moose on irc.perl.org 01:56
Util Moukeddar: You are certainly welcome to be here, but your Perl 5 questions may get more answers on #perl-help on irc.perl.org.
sorear joshua__: ask them to explain what the difference between Moose and MooseX is
Util eXtreme!!! :) 01:57
02:02 lumi left, nsh joined, sbp joined, lumi joined 02:03 jfried left, woosley joined 02:04 whiteknight left 02:07 silug joined 02:08 Sarten-X left 02:15 Sarten-X joined
Moukeddar uhm, right , right 02:16
anycase , what do you think ?
02:19 envi_laptop joined 02:20 Sarten-X left 02:25 lumi left 02:26 lumi joined 02:27 Sarten-X joined 02:41 Sarten-X left 02:43 kid51 left 02:44 kid51 joined, Moukeddar left 02:48 kid51 left 02:50 Sarten-X joined, tty234 left 02:55 lumi left 02:56 lumi joined 02:59 _jaldhar joined 03:00 dayangkun_ joined 03:01 tewk left, tewk joined 03:02 REPLeffect left 03:04 dayangkun left 03:05 tewk left, Sarten-X left 03:06 silug left, tewk joined 03:12 mtk left 03:15 Sarten-X joined, REPLeffect joined 03:19 Sarten-X left 03:20 mtk joined 03:25 Sarten-X joined 03:30 satyavvd joined 03:34 benabik left 03:35 lumi left 03:36 lumi joined, nymacro joined 03:42 benabik joined
dalek p: a4f80df | pmichaud++ | Configure.pl:
Add a --make-install option to Configure.pl, to automatically build

be used only by other systems wanting to do --gen-nqp.)
03:46
joshua__ sorear, thanks for the moose pointers 03:54
04:09 Sarten-X left 04:12 JimmyZ joined 04:14 JimmyZ left 04:15 JimmyZ joined, envi_laptop left 04:18 Sarten-X joined 04:19 lumi left 04:20 lumi joined
sorear stefan@stefans:~/rel/niecza$ mono-sgen run/Niecza.exe -e 'my $x = 2; say eval q[$x + 1]' 04:20
3
\o/
JimmyZ pmichaud : NQP can not build on windows 7 with strawberry perl 5.10.1 : gist.github.com/1001777 , JFYI. 04:21
dalek ecza: 1de763c | sorear++ | / (10 files):
Implement variable reference in evals, evals returning values
JimmyZ \o sorear
sorear hi JimmyZ 04:22
04:23 JimmyZ_ joined 04:26 JimmyZ left, JimmyZ_ is now known as JimmyZ 04:27 JimmyZ_ joined 04:29 hudnix left, JimmyZ__ joined 04:30 JimmyZ left, JimmyZ__ is now known as JimmyZ 04:31 JimmyZ left, lumi left 04:32 lumi joined 04:33 JimmyZ_ left 04:35 wamba joined 04:38 Sarten-X left 04:46 Sarten-X joined
cotto back 04:51
sorear hi cotto 04:53
cotto is anyone else seeing oddness on the Rakudo nom branch? 04:54
sorear you mean like it not working basically at all?
cotto the build is broken
sorear oh 04:55
dalek ecza: 1767fe8 | sorear++ | lib/CLRBackend.cs:
Fix depended module autocompilation
ast: c318940 | sorear++ | S32-num/pi.t:
[S32-num/pi] The specs no longer require use Num :constants
04:56
04:59 lumi left 05:00 lumi joined
cotto I'm not sure how it could work given what the Makefile looks like, but it could be a local issue of some kind. 05:02
05:02 molaf joined 05:06 birdwindupbird joined 05:07 orphu joined 05:08 Sarten-X left 05:10 wamba left 05:12 birdwindupbird left
sorear Who wrote fudge? I can't understand it. 05:13
05:17 Sarten-X joined 05:21 silug joined
TimToady wrote it, and hence probably doesn't understand it either :) 05:21
jdhore1 <obligatory-"perl-is-a-write-only-language"-schtick> 05:25
sorear uhm 05:26
S06-advanced-subroutine-features/caller.t contains "is call_line(), 22, ..." 05:27
... but fudge changes the line numbers
FAIL
TimToady I seem to recall that I wrote it not to change line numbers, but someone could have broken that 05:28
05:28 birdwindupbird joined
dalek ast: 78711fd | sorear++ | S06-advanced_subroutine_features/caller.t:
Fudge S06-advanced_subroutine_features/caller.t for Niecza (only one test passes, but it is at least one Pugs failed)
05:29
ecza: f5a1f34 | sorear++ | / (4 files):
A couple more CallFrame/Sub introspectors and two new test files
05:31 Tedd1^ left 05:33 dayangkun_ left, lumi left 05:34 Tedd1 joined, lumi joined 05:38 REPLeffect left 05:43 koban` joined 05:47 Sarten-X left
cotto dukeleto, ping 05:49
ww
05:52 REPLeffect joined 05:54 Sarten-X joined
moritz perl6: say 1 05:58
p6eval pugs, rakudo 048573, niecza v6-8-g1767fe8: OUTPUT«1␤»
sorear interesting... my terminal font can render Ⅻ in plain but not bold 05:59
06:01 kst left 06:05 Sarten-X left
dukeleto cotto: pong 06:07
06:09 lumi left, kst joined 06:10 cooper left, lumi joined
cotto dukeleto, resolved 06:12
06:13 Sarten-X joined 06:16 envi_laptop joined 06:21 wtw joined 06:25 silug left
sorear perl6: my Str $x; say $x.succ.perl 06:35
p6eval niecza v6-9-gf5a1f34: OUTPUT«1␤»
..pugs: OUTPUT«*** No such method in class Str: "&succ"␤ at /tmp/lT_iKUTHb0 line 1, column 16 - line 2, column 1␤»
..rakudo 048573: OUTPUT«"Sts()"␤»
sorear perl6: my Str $x; $x++; say $x.perl
p6eval pugs: OUTPUT«\1␤»
..rakudo 048573: OUTPUT«Type check failed for assignment␤ Container type: Str␤ Got: Int␤ in '&infix:<=>' at line 1␤ in main program body at line 7674:CORE.setting␤»
..niecza v6-9-gf5a1f34: OUTPUT«Unhandled exception: Nominal type check failed for scalar store; got Int, needed Str or subtype␤ at /tmp/Op0xCkFnfx line 0 (MAIN mainline @ 0) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1475 (CORE C653_ANON @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line
..1476 (CORE modul…
sorear TimToady: help
TimToady: what is the correct result
Sts() is especially funny 06:36
moritz that's clearly a hilarious bug :-)
szabgab moritz: thanks for posting the installer 06:40
I have two files a readme on how to build it and the .iss of that builds the installer, I guess they should go into the rakudo rep 06:41
o
06:42 Mowah joined
moritz szabgab: sadly the upload was not successful :( 06:42
szabgab: I've just contacted the github support over it
szabgab oh crap 06:44
sorear moritz: have you tried again post-twitter.com/github/status/75708855895605248
szabgab and I blogged about it already
what do you mean it was not successful btw, it seems to be there?
moritz szabgab: it told me the upload was unsuccessfull, and didn't show me the file 06:45
"Something went wrong that shouldn't have. Please try again or contact support if the problem persists."
szabgab I'll try to fetch it from github and compare to the one I have
06:46 lumi left
moritz now I see it too 06:46
06:46 lumi joined 06:47 Su-Shee joined
Su-Shee good morning. 06:48
06:51 REPLeffect left 06:52 REPLeffect joined
sorear rakudo: say "*".succ 06:53
p6eval rakudo 048573: OUTPUT«*␤»
szabgab I can't wget from github 06:55
06:56 tzhs joined
szabgab I downloaded it using a browser and installed it on the windows machine 06:57
so it seesm to be ok
sorear szabgab: certificate issue? 06:58
szabgab with wget, yes
but I don't need it any more
sorear that problem has been around since the very first time I tried to wget from github 06:59
niecza's Makefile has --no-check-certificate
rakudo: say "00001".pred 07:02
p6eval rakudo 048573: OUTPUT«00000␤»
07:06 REPLeffect left, mj41 joined 07:07 lumi left 07:08 lumi joined
sorear rakudo: say "az99".succ 07:09
p6eval rakudo 048573: OUTPUT«ba00␤»
sorear rakudo: say "z99".succ
p6eval rakudo 048573: OUTPUT«aa00␤»
sorear rakudo: say "99".succ
p6eval rakudo 048573: OUTPUT«100␤»
07:12 envi_laptop left 07:18 baest_ is now known as baest 07:19 jfried joined 07:20 REPLeffect joined 07:21 BaggioKwok joined, Sarten-X left
moritz is a bit surprised by 'z99'.succ 07:22
sorear it's special cased at src/builtins/Str.pir:203 07:23
and metntioned in the spec
S03:468
07:24 lumi left 07:26 lumi joined
moritz ah well 07:27
07:30 Sarten-X joined 07:39 REPLeffect left
dalek ecza: 6caf918 | sorear++ | / (4 files):
Add Str.succ, Str.pred, cheaty polymorphic comparison, let "a".."z" work
07:40
07:41 woosley left 07:45 lumi left
sorear -> sleep 07:45
07:45 lumi joined
moritz prove -e "mono" obj/MAIN.exe 07:47
obj/MAIN.exe .. Failed 3/891 subtests
not ok 733 - Tail exclusion works
# got: 1 2 3 4 5 07:48
# expected: 1 2 3 4
and the next three tests fail with similar errors
sorear: and lots of spectests fails 07:49
stackoverflow.com/questions/6162484...y-default/ # "I played around with rakudo and UTF-8 was just there as I needed. I did have no problems, it just worked. Maybe there are some limitation somewhere deeper, but at start, all I tested worked as I expected." 07:50
moritz hopes that cheers up pmichaud++ a bit
mathw From what I gathered from all that, the reason Unicode in Perl 5 is such a pain is because it wasn't built to be Unicode 07:52
so the builtin comparisons don't do Unicode things
and so forth
and also the usual things which make unicode a pain, and require people to learn stuff
moritz the real reason is that Perl 5 doesn't expose types to the user 07:53
so buffers and strings can't have separate types
mathw (on a vaguely-related tangent, I've found Firefox misidentifying page encodings a lot lately. Irritatingly, including some pages which declare they're utf-8 but it insists it should decode as ISO-whatever-useless-crap)
moritz and that makes it impossible to polymorphically treat strings and buffers sanely
and very easy to mix the two up, and get mojibake 07:54
07:54 REPLeffect joined 07:55 molaf left
mathw yes, that's a good point 07:58
there's a distinct difference in the modern world between bytes lined up in a row and a string of characters 07:59
moritz at least that's what caused the most trouble for me, and prevented me (and other) from writing modules that make UTF-8 magically work in perl 5
mathw Personally having read that I would not choose Perl 5 for a project that needed solid Unicode support 08:00
unless it was something very straightforward indeed
moritz fwiw I'm having no troubles with Perl 5 and Unicode in my current web project
mathw I think this is one clear advantage Perl 6 will have when we're in a production state
it does depend what you need to do with it though
moritz but I'm well aware of the gotchas, and what I need to do
08:00 MayDaniel joined
moritz faui2k3.org:3333/title/80963 that fancy ż comes from an automated import of worldcat data - no trouble whatsoever :-) 08:01
mathw :)
excellent 08:02
08:04 REPLeffect left
sorear can't sleep 08:08
08:08 BaggioKwok left
moritz :/ 08:08
mathw can't sleep? fix bugs! 08:10
but then you might end up asleep with your face on the keyboard
and that's never good
dalek ecza: 8e5c9f5 | sorear++ | / (2 files):
Oops, was ignoring $!exclude_max by mistake in the new RangeIter (moritz++)
08:11
sorear that wasn't too hard
moritz nqp: say(pir::stat('foo'))
p6eval nqp: OUTPUT«error:imcc:syntax error, unexpected PREG, expecting '(' ('$P16')␤ in file '(file unknown)' line 24␤error:imcc:syntax error ... somewhere␤ in file '(file unknown)' line 118␤syntax error ... somewhere␤»
moritz nqp: say(pir::stat__ps('foo'))
p6eval nqp: OUTPUT«error:imcc:syntax error, unexpected PREG, expecting '(' ('$P16')␤ in file '(file unknown)' line 22␤error:imcc:syntax error ... somewhere␤ in file '(file unknown)' line 116␤syntax error ... somewhere␤»
moritz nqp: say(pir::stat__isi('foo', 0)) 08:13
p6eval nqp: OUTPUT«error:imcc:syntax error, unexpected IREG, expecting '(' ('$I16')␤ in file '(file unknown)' line 22␤error:imcc:syntax error ... somewhere␤ in file '(file unknown)' line 116␤syntax error ... somewhere␤»
08:13 daxim joined
moritz nqp: say(pir::stat__psi('foo', 0)) 08:13
p6eval nqp: OUTPUT«error:imcc:syntax error, unexpected PREG, expecting '(' ('$P16')␤ in file '(file unknown)' line 22␤error:imcc:syntax error ... somewhere␤ in file '(file unknown)' line 116␤syntax error ... somewhere␤»
08:13 lumi left 08:14 lumi joined
pmichaud moritz/szabgab: I deleted and reuploaded the file to github a bit earlier -- maybe that's what fixed it. 08:16
but after reuploading, I also had difficulties in getting it to download (perhaps cache issue)
08:18 REPLeffect joined
moritz nqp: say(pir::stat__isi('foo', 0)) 08:19
p6eval nqp: OUTPUT«error:imcc:syntax error, unexpected IREG, expecting '(' ('$I16')␤ in file '(file unknown)' line 22␤error:imcc:syntax error ... somewhere␤ in file '(file unknown)' line 116␤syntax error ... somewhere␤»
pmichaud (pir::stat in nqp) I'm thinking the needed dynoplib isn't loaded.
moritz meh
pmichaud looks like it's in io.ops 08:20
I can add it to nqp if you'd like.
moritz and if I want it at nqp compile time, I have to add it to Actions.pm and rebootstrap, right?
pmichaud yeah 08:21
you mean, you need it for building nqp itself?
s/need/want/ # as appropriate
moritz pmichaud: I want to check the existence of files for module loading
08:22 dakkar joined
moritz pmichaud: my plan (for now) is a list of hardcoded prefixes of where to look for mofdules 08:22
so we can have blib/Perl6/Foo.pm instead of Perl6/Foo.pm
pmichaud ultimately I want a -L option and/or an environment variable for that
...but instead of using stat, why not just check for failed open?
(I'm still reeling from my earlier discovery that 'pow' is a dynop in Parrot. WTF?) 08:23
08:25 Shozan joined
moritz pmichaud: isn't open() a bit wasteful, just for checking existence? 08:25
pmichaud it's not as efficient, no, but it'd be guaranteed to work. 08:26
dalek p: 395da2f | pmichaud++ | src/NQP/Actions.pm:
Add io_ops to list of automatically loaded dynoplibs, so we can get
pmichaud I didn't rebootstrap -- feel free to do that.
moritz pmichaud: the code currently uses load_bytecode. I could wrap that in a try { } block, but then I'd have some trouble printing the correct diagnostics on failure
moritz has an identical commit locally 08:27
pmichaud the other thing to remember is that every opcode we use in NQP is something that we'll have to cross-vm support someday.
I'm not sure where <stat> will fit in that. 08:28
moritz nqp: say ?pir::open('foobar') 08:29
p6eval nqp: OUTPUT«Confused at line 1, near "say ?pir::"␤current instr.: 'nqp;HLL;Grammar;panic' pc 26397 (src/stage2/gen/NQPHLL.pir:7037)␤»
moritz nqp: say ?pir::open__ps('foobar')
p6eval nqp: OUTPUT«Confused at line 1, near "say ?pir::"␤current instr.: 'nqp;HLL;Grammar;panic' pc 26397 (src/stage2/gen/NQPHLL.pir:7037)␤»
pmichaud nqp: say(?pir::open('foobar'))
p6eval nqp: OUTPUT«error:imcc:syntax error, unexpected PREG, expecting '(' ('$P16')␤ in file '(file unknown)' line 24␤error:imcc:syntax error, unexpected '\n'␤ in file '(file unknown)' line 25␤error:imcc:syntax error ... somewhere␤ in file '(file unknown)' line 119␤syntax error ... somewhere␤»
moritz nqp: say(?pir::open('foobar'))
p6eval nqp: OUTPUT«error:imcc:syntax error, unexpected PREG, expecting '(' ('$P16')␤ in file '(file unknown)' line 24␤error:imcc:syntax error, unexpected '\n'␤ in file '(file unknown)' line 25␤error:imcc:syntax error ... somewhere␤ in file '(file unknown)' line 119␤syntax error ... somewhere␤»
pmichaud <open> is also a dynop
moritz aye, just figured
pmichaud I guess that makes it definite that we want the dynoplib 08:30
either that or we go ahead and make our own IO pmc
moritz $ ./nqp -e 'say(? try{ pir::open__ps("foobar") } )' 08:31
Unable to open filehandle from path 'foobar'
+ backtrace
pmichaud use stat. :-)
there's also the open() call in the setting. 08:34
moritz somehow my patch doesn't work :/ 08:36
it doesn't search blib/, althought I thought it should 08:37
08:41 Sarten-X left 08:42 lumi left
dalek ecza: d350ec8 | sorear++ | / (5 files):
Refactor REPL code a bit
08:43
ecza: e2ed743 | sorear++ | / (3 files):
Suppress autoprint if explicit print used in REPL
08:43 lumi joined 08:45 silug joined 08:48 daniel-s joined, joshua__ left 08:50 Sarten-X joined
dalek ecza: 5f36c0e | sorear++ | src/niecza:
Allow REPL to recover from exceptions
08:51
ecza: 774d996 | sorear++ | src/ (2 files):
Allow using lexicals across lines in REPL
08:59
pmichaud ModuleLoader.pbc feels wrongly factored to me. 09:00
dalek ecza: af39682 | sorear++ | src/niecza:
Arrange for CORE to be run at least once so $*OUT is usable in REPL
09:01
sorear now I'm going to try this "sleep" thing again
pmichaud sorear: yeah, "sleep" didn't work for me 09:02
which is why I'm up at 4am
sorear (hopefully Niecza REPL is a skosh more usable now)
pmichaud sorear++ # niecza repl.... that took rakudo forever to get usable
moritz now I know why my nqp changes didn't affect rakudo/nom... installed to the wrong location :/ 09:05
09:05 Sarten-X left
pmichaud nqp needs far more tests. 09:05
moritz agreed. 09:06
fwiw the nqp harness for the regex tests is somewhat ugly and incomplete 09:07
09:07 Sarten-X joined
pmichaud well, I'm thinking we need tests for the other components that have been added; e.g., moduleloader 09:08
moritz \o/ seems to work-ish
jnthn morning o/ 09:09
pmichaud jnthn: morning /o
o/
(my arms don't work right at 4am)
jnthn /o = scratching head thinking about something? :) 09:10
pmichaud more like "pulling my hair out because I can't get to sleep"
jnthn aww :-(
jnthn wonders if any commits landed while he slept 09:11
pmichaud I added io_ops to the list of default loaded dynos
*dynops
so we get open/stat/printerr/etc.
moritz jnthn: I have local changes to nqp and nom to make the former look for modules in blib/
09:11 REPLeffect left
jnthn OK, great. 09:11
pmichaud: ah, you fixed the win32 issue in nqp too...or at least, I see the patch. 09:12
pmichaud I think I fixed it -- don't really have a way to test.
jnthn sure, I'll do that Real Soon Now :)
pmichaud what does 'set_mainline_module' actually do, ooc?
09:13 REPLeffect joined 09:14 lumi left 09:15 lumi joined
jnthn pmichaud: Handles the case where you try to "use" the module that is also the program mainline 09:16
pmichaud does that happen?
jnthn pmichaud: masak++ ran into it when he wanted to play with language extensions, and wrote an NQP program that did use NQP;
moritz use Foo; in Foo.pm ?
ah
masak. Of Course.
pmichaud I don't understand.
jnthn moritz: Well, it's more of an issue for folks doing compiler stuff who want to derive from NQP.
pmichaud ...but if you're deriving from NQP, then you're not the mainline, right? 09:17
I mean, then NQP isn't the mainline
jnthn pmichaud: If you do nqp foo.nqp and foo.nqp does "use NQP" you hit the issue where it's the mainline and you're using it. 09:18
pmichaud shouldn't that be handled by NQP, not the mainline code?
deriving that fact from the executable name feels Very Wrong. 09:19
jnthn pmichaud: Yes, I don't especially like the current solution.
pmichaud: That's kinda why I factored things differently in rakudo
pmichaud in nom?
jnthn pmichaud: That is, a very small loader program that does a use statement.
Yes, in nom
pmichaud is there an NQP.pbc ? 09:20
i.e., something that would be loaded by "use NQP;" ?
jnthn Yes.
pmichaud that's the thing that gets built by combining the NQP::* files? 09:21
jnthn pmichaud: The problem is twofold. First, Parrot doesn't recognize it's re-loading the same thing. But even if that was fixed we're not out of the woods, because we need the UNIT in order to do e.g. global merging and importing.
pmichaud: yes.
pmichaud I don't expect Parrot to detect it, no.
jnthn No, I didn't really consider it a bug. 09:22
pmichaud but there probably should be a src/NQP/NQP.pm that registers the fact that "NQP" has already been loaded.
rather than asking every mainline to do it.
jnthn Well, I tried to solve the general problem rather than "just for NQP".
pmichaud describe the general problem, then :-)
how often are we going to have Something.pm that also contains "use Something;" ? 09:23
jnthn A program a language is running wants to load its compiler, is doing separate compilation and the compiler is also the current program.
sorear pmichaud: well, it helps that I remember how I got the rakudo repl working :)
pmichaud I mean, does that ever happen in Perl 5?
09:24 silug left
jnthn pmichaud: Probably not, but I'm not sure Perl 5 does separate compilation, nor is Perl 5 written in Perl 5. :) 09:24
sorear sleep still does not agree with me.
09:24 silug joined
jnthn pmichaud: It is, admittedly, solving an obscure problem in a non-ideal way. 09:24
pmichaud ...and introducing bugs in the process :-( 09:25
09:25 lumi left
jnthn Well, the original problem was also a bug. 09:25
09:25 daniel-s left
pmichaud I think it might be far more useful at this point to say that having a specific <language>.pm that marks it's been loaded 09:26
is part of the pattern of creating any compiler-like program
09:26 lumi joined
pmichaud or, perhaps it's something that should be added to HLL::Compiler 09:26
moritz fwiw I've got rakudo to build with stuff in blib/Perl6/ instead of Perl6/ 09:27
jnthn moritz++! :)
pmichaud moritz++
jnthn pmichaud: I could live with that approach too.
moritz but at runtime it still looks into Perl6/ to find the module loader :(
what loads the module loader?
pmichaud the current module loader factorization feels very wrong to me
jnthn pmichaud: The locating modules bit almost certainly is. 09:28
pmichaud it's another thing that feels like it wants to be a part of HLL::* (that can be subclassed/overridden by individual compilers)
i.e., it really ought to be HLL::ModuleLoader 09:29
jnthn pmichaud: But if it's in HLL, how does HLL load its dependencies?
pmichaud: It's really early in the build cycle because of that.
moritz ah, load_bytecode 'Perl6/ModuleLoader.pbc' is hard coded
jnthn moritz: Ah, yes.
moritz: The module loader can't use the module loader...a "fun" issue. 09:30
pmichaud I don't understand the "how does HLL load its dependencies" part
09:30 yinyin left
pmichaud at least in nqp-rx, any compiler expected to do the equivalent of 'load_bytecode HLL.pbc' which got the base HLL type and all of its dependencies. 09:30
moritz seems I've got it working
now I just need to remove the debug output and try again 09:31
09:31 pochi joined
pmichaud put another way... I'm not sure that HLL::* has any dependencies 09:32
it's pretty basic
jnthn At the of e.g. src/stage2/gen/HLL.pm, there's use NQPRegex; 09:33
pmichaud that appears to be the only one
jnthn *the top of
pmichaud so, HLL::Grammar has a dependency
but if ModuleLoader is part of HLL, that might not be much of an issue. 09:34
sorear perl6: say +[ [1,3,2].sort ]
p6eval pugs, rakudo 048573, niecza v6-16-gaf39682: OUTPUT«3␤»
pmichaud I agree it's a bit of a bootstrap issue... but HLL:: is where some of those bootstrap issues might want resolving 09:35
jnthn pmichaud: <uncomfortable look>
pmichaud: It may be possible but it won't be easy.
pmichaud: It'll be at least *easier* when we have PAST in NQP
And can shove all of that in HLL too.
Because that's what NQPRegex really cares about. 09:36
At the moment though, I think it'll be hard to do a refactor of that.
09:36 yinyin joined
pmichaud well, we've changed the basic premises that underlay the previous structure 09:37
jnthn For sure.
load_bytecode 'HLL.pbc' is no longer good enough for loading a module.
pmichaud it never was
well, it partially was
jnthn Well, it "worked" before. Now it doesn't. 09:38
(Since we're using Parrot namespaces, so stuff ain't just magically reachable, etc)
gah, we're *not* using...
dalek ecza: 892ece4 | sorear++ | / (2 files):
Implement automatic Schwartzian transform for arity 1 callbacks
09:39
pmichaud that's not the issue I'm seeing/thinking of, though.
Regex.pbc was a separate library before because one could write nqp-rx programs that would need regexes but that weren't necessarily compilers
jnthn *nod*
That pulled in HLL and so forth to compile the regexes though, I guess? 09:41
pmichaud I don't think it pulled in HLL
09:41 woosley joined
pmichaud nqp-rx (the compiler) would already have the regex compilation code available 09:41
but you still needed the regex engine at runtime, when nqp-rx compiler was perhaps long gone 09:42
(i.e., you needed the Match and Cursor types)
jnthn pmichaud: Yeah, I remember loading something by default to make that work.
pmichaud: Otherwise the regex tests in t/nqp/ would all fail. 09:43
pmichaud: BTW, nqp fix for Win32 works :)
pmichaud excellent
okay, I'll think about all of this a bit more
I agree that ModuleLoader doesn't belong in HLL::
jnthn pmichaud: Anyway, I agree overall that we can refactor the NQP module loading bits. *but* it was really hard work getting the bootstrap and separate compilation straight. 09:44
pmichaud I'm not sure where it fits
jnthn Well, I wasn't sure it fitted anywhere, so it ended up on its own. :)
pmichaud on its own may be correct 09:45
jnthn I kinda wonder if we should provide a ModuleLoader in HLL that we expect HLLs to subclass
BUT it's not the one NQP tends to use for its own lower level bits.
pmichaud I'm wondering to what degree it's really NQP/ModuleLoader
(that is loaded by every nqp program)
dalek ecza: b84eb2d | sorear++ | lib/Kernel.cs:
Allow %hash1 = { a => 1 } to work
09:46
pmichaud perhaps it's really in the same category as the basic Object classes and types
jnthn Well, those sit in the setting.
And something's gotta load the setting too :)
dalek ast: c8bbc95 | sorear++ | S04-statement-modifiers/until.t:
Fudge S04-statement-modifiers/until.t for niecza
ast: 22c8549 | sorear++ | S02-literals/hash-interpolation.t:
Fudge hash-interpolation for niecza
pmichaud I'm a little concerned by "_the_ setting" 09:47
jnthn Well, I really meant "the default setting" :) 09:48
pmichaud "core setting", normally. :-)
jnthn --setting=SettingNowWithAddedPonies :)
Yes, the default is NQPCORE
But --setting=NULL means don't load one 09:49
And --setting=...namehere... means use that one.
dalek p: 03db0cb | jonathan++ | src/6model/sixmodelobject.h:
Add a pointer to the STable where a REPR can optionally hang any type-specific data, so we can refactor away from 'REPR instances'.
09:51
jnthn pmichaud: btw, already added --setting= flag to nom too :) 09:52
09:52 Sarten-X left 09:53 lumi left
pmichaud looks like Perl 6 uses --language= and -L for that 09:53
instead of --setting
09:54 lumi joined
jnthn ah, ok 09:55
renaming is easy :)
pmichaud I don't quite understand the terms in merge_globals, either 09:57
let me re-review my CORE:: concepts
09:58 woosley left
pmichaud what does "GLOBAL merger" mean (ModuleLoader.pm:50) 09:58
?
jnthn In separate compilation, every module starts out with a fresh view of GLOBAL. 09:59
If we load that module, then its view of GLOBAL needs to be unified with the loader's view.
And any conflicts complained about. 10:00
e.g. if you use Foo and use Bar and both have a class Llama { } installed in their GLOBAL (the default module you start out in), then it's an error. 10:01
pmichaud huh?
jnthn er, if you use them both.
pmichaud wouldn't that end up being Foo::Llama and Bar::Llama, though?
I didn't think there was a "global" GLOBAL 10:02
jnthn There's not per se. There's only "the current thing I'm running/compiling's view of GLOBAL"
pmichaud which is UNIT::GLOBAL 10:03
jnthn Yes.
Well
pmichaud I don't understand where the "merger" comes into play.
jnthn If you use two modules they'll both have their own view of what is global. 10:04
jnthn tries to find the bit of irclog where TimToady++ talked about this
pmichaud right, no problem
jnthn pmichaud: irclog.perlgeek.de/perl6/2011-03-12#i_3385886 10:05
sorear jnthn: how sophisticated is your merger? 10:06
10:06 amkrankruleuen left
sorear where is it? 10:06
10:06 wamba joined
jnthn sorear: It's...dumb. :) 10:06
sorear: NQP, src/ModuleLoader.pm 10:07
dalek ecza: a844392 | sorear++ | / (2 files):
Hack - direct references to &eval disable block inlining
ecza: b80f0d0 | sorear++ | lib/CORE.setting:
Fix Rop
sorear thanks
jnthn sorear: I think it even mentions your one as the place to look to. :) 10:08
pmichaud jnthn: okay, it makes a bit more sense to me now. 10:09
jnthn pmichaud: also irclog.perlgeek.de/perl6/2011-04-16#i_3519815
sorear How easy is it to have nqpnom running alongside nqprx, with the same Parrot install
pmichaud should be no problem. 10:10
10:10 donri joined
donri paddy3118.blogspot.com/2011/06/what...right.html 10:10
pmichaud or, when we're done, shouldn't be any real problem.
donri haah
he managed to make it sound sexist
jnthn sorear: Works.
10:10 amkrankruleuen joined
jnthn sorear: Has to, since Parrot itself uses nqp-rx in its build :) 10:11
dalek ast: 7ad8b9d | sorear++ | S0 (2 files):
[S03-metaops/hyper] remove a lot of niecza fudges; rearrange the >>+++<< test so niecza will accept it
10:12 Sarten-X joined
pmichaud jnthn: ...unless we overwrite any of the .pbc's that nqp-rx expects. 10:12
10:12 wamba left
pmichaud then nqp-rx would stop functioning. 10:13
jnthn pmichaud: Yes, I mean that we very carefully don't do that. :) 10:14
pmichaud okay.
(global merge) I guess I never understood that any sort of a unification/merge needed to take place. still don't.
jnthn moritz++ and I hunted down those name conflicts earlier and made sure they were avoided.
10:15 lumi left
dalek p: f5c61a4 | moritz++ | src/stage0/ (6 files):
rebootstrap with io_ops loaded
10:16
p: b94c439 | moritz++ | src/ModuleLoader.pm:
search in blib/ for modules unless a module path was specified
10:16 Sarten-X left
10:16 lumi joined
dalek kudo/nom: cf09768 | moritz++ | / (4 files):
[build] move Perl6/ to blib/Perl6
10:17
moritz do I need to bump NQP_REVISION or so? :-)
pmichaud yes, likely.
jnthn Does nom's build pay attention to NQP_REVISION yet?
pmichaud no
jnthn OK
pmichaud at least, I haven't done that part yet. 10:18
moritz doesn't even see such a file
pmichaud started on it and decided some small refactors were in order first.
nom doesn't currently have a NQP_REVISION yet.
I've forgotten... what does "knowhow" mean again? 10:20
jnthn pmichaud: It's a really, really simple type of object. 10:21
pmichaud: Just has methods and attributes
pmichaud: It's the only meta-object that 6model "natively" provides.
It's also self-describing. 10:22
e.g. KnowHOW.HOW.HOW.HOW.HOW.... :)
pmichaud so, basically, the most primitive object system
jnthn Yes
pmichaud on which the other object systems get built
jnthn Yes.
NQP builds its one directly on top of it.
Rakudo builds its on top of NQP, so we can factor the Perl 6 metamodel in terms of roles. 10:23
pmichaud so, with "knowhow ModuleLoader {" .... what do we get, exactly?
a type object?
jnthn Yes.
pmichaud no instances, BUILD, etc.?
jnthn No
If you want an instance you can get one.
10:23 Sarten-X joined
jnthn Using the repr_instance_of op 10:24
But it's really a blank slate
NQPClassHOW uses knowhow, and builds an implementatin of classes.
dalek ecza: 864810b | sorear++ | lib/CORE.setting:
<cmp> nicer about different Numeric types
jnthn For the ModuleLoader case we never actually make an instance though 10:25
It's a singleton, essentially.
For NQPClassHOW we do make instances.
jnthn cleans us REPR handling a bit to resolve an issue that's long bothered him 10:27
pmichaud the 6model stuff is.... shiny. 10:28
10:28 Sarten-X left
pmichaud I mean, really *sweet* 10:29
jnthn
.oO( phew! )
10:30
:)
10:31 amkrankruleuen left
jnthn is pretty happy with it so far 10:31
Well, apart from the rough edges that I'm not so happy with... :)
10:32 amkrankruleuen joined 10:33 silug left, silug joined 10:34 envi_laptop joined
pmichaud I think I really want to have a src/NQP/NQP.pm that declares module NQP { ... } and has _something_ about it that registers that nqp.pbc is already loaded. 10:35
_or_ 10:38
I think that %modules_loaded should strip any extensions
10:38 lumi left
pmichaud (any extensions that are the common "this is a module" extensions) 10:39
10:39 lumi joined, Sarten-X joined
jnthn Either of those would probably be cleaner. 10:41
pmichaud also, I'm thinking ModuleLoader might want the equivalent of an @*INC attribute
moritz +1
pmichaud since moritz++ put in the blib/ patch, none of these are urgent-this-day types of things 10:42
well, maybe stripping the extension, so that we don't get the mainline bit
5:45am here. probably not worth trying to sleep. 10:47
10:47 hanekomu joined
jnthn Ugh. 10:49
pmichaud I'll at least go rest for a bit... bbl 10:50
thanks for the excellent answers to my nom/6model questions :
:)
jnthn Sorry some of them were a bit precaffienated :) 10:52
10:56 MayDaniel left
jnthn pmichaud: oh noes...there is some nqp makefile breakage still, it seems 10:57
instead of \
10:58 mtk left 11:01 Sarten-X left 11:02 phenny left 11:04 JimmyZ joined 11:05 phenny joined 11:06 phenny left, lumi left, mtk joined 11:07 lumi joined 11:09 Sarten-X joined, amkrankruleuen left 11:10 amkrankruleuen joined 11:11 phenny joined 11:17 amkrankruleuen left, masak joined
masak lol! I just submitted my first Actbug! :) 11:18
11:18 yinyin left, amkrankruleuen joined
jnthn masak: Do you have to break *everything*?! :P 11:19
masak that's a trick question, right? :)
of course I do. :)
jnthn :)
Grrrr The Act of Bug 11:20
masak it should be possible to formulate a theory of development in terms of these artifacts: feature requests, unit tests, bug reports, and... a fourth, unnamed artifact having to do with debugging. 11:22
moritz if you're after theory, you don't need to distinguis bug reports and feature requests 11:25
11:26 Sarten-X left 11:27 mikehh left 11:30 amkrankruleuen left 11:31 amkrankruleuen joined, JimmyZ left
masak moritz: troo, in a sense. 11:32
11:32 JimmyZ_ joined, JimmyZ_ is now known as JimmyZ
masak "Go is not the best game. It is the only game." -- this reminded me of Perl 6 :) 11:32
gtg, bit of $workday left.
11:32 masak left 11:34 Sarten-X joined 11:36 JimmyZ_ joined 11:37 amkrankruleuen left, JimmyZ left, JimmyZ_ is now known as JimmyZ 11:38 amkrankruleuen joined
dalek p: d12b30c | jonathan++ | Configure.pl:
Make sure we get path seps right on Win32.
11:42
p: 044691c | jonathan++ | src/ (6 files):
REPR refactor. Avoid the memory-wasting concept of REPR instances as used by P6opaque and instead just give them a place in the STable to hang any data they're interested in keeping around. This in turn guts the REPR PMC and pretty much eliminates the need for it.
p: 4adf446 | jonathan++ | src/ (11 files):
Simplify the REPR API, thanks to not having REPR instances any more. Means we pass an argument less for loads of really common operations.
11:42 satyavvd left 11:43 proller joined, proller_ joined
dalek kudo/nom: cdc2295 | jnthn++ | / (2 files):
Not going to need/use perl6str PMC any more.
11:46
kudo/nom: a11fd9f | jnthn++ | src/binder/sixmodelobject.h:
Chase 6model API changes.
11:50 ggoebel joined 11:55 lumi left, kid51 joined 11:56 lumi joined 12:09 _jaldhar left
tadzik we're now using native strings instead of String pmc? 12:13
pmichaud don't know, yet. 12:14
12:14 wknight8111 joined
pmichaud should be native when we're done, yes. 12:14
but Perl6Str is something we haven't really used in a long time 12:15
jnthn: ah yes, I forgot to put back in the MSWin32 stuff. thanks for adding it jnthn++
12:16 pernatiy joined
jnthn pmichaud: np. It was amusing to see how the failure manifested itself. 12:16
pmichaud: It turns out any command starting C:/ is totally ignored.... 12:17
tadzik so our native string is reimplementing what perl6str.pmc is doing, like string resizing or stuff like this?
jnthn So it didn't even fail to build. It just...built nothing.
pmichaud tadzik: no, we weren't even using perl6str.pmc
12:17 proller_ left, proller left
tadzik oh, I see 12:17
pmichaud most of our strings have been String PMCs
tadzik yeah, I forgot about that one 12:20
jnthn pmichaud: Did a refactor in 6model core this morning...mostly cleanup. Going to turn my attention to containers now.
tadzik oh, btw. I raised the issue of non-relocatable Rakudo on #parrotsketch yesterday. Cotto advised me to open a trac ticket, could you do that pmichaud? You have more expertise in the field
12:23 kid51 left, bluescreen10 joined 12:28 Holy_Cow joined 12:30 Holy_Cow left 12:36 hudnix joined
pmichaud tadzik: actually, I don't have a windows machine so I can't really report the error well (more) 12:44
tadzik: my suggestion is to download + build the latest release of Parrot, do a "make install-dev", move the directory to a different location, and then report whatever error results when you try to run Parrot programs. 12:45
if you send me that information, I can make a ticket out of it. 12:46
or, you can make a ticket, and I'll follow-up with whatever additional information I have.
12:46 sirelander joined, sirelander left 12:48 Sarten-X left 12:49 lkundrak joined
lkundrak hi 12:49
12:50 lumi left 12:51 lumi joined
JimmyZ aloha 12:51
12:57 Sarten-X joined 13:01 Sarten-X left 13:03 OldCamelsHump2 joined 13:04 icwiener joined
lkundrak is this a good channel to ask a parrot question? what's the purpose of .declarations files? 13:04
JimmyZ lkundrak: irc://irc.parrot.org/#parrot 13:05
13:16 sbp left, Sarten-X joined 13:17 sbp joined
lkundrak JimmyZ: thanks 13:20
13:27 Trashlord left 13:35 runeni joined 13:37 isBEKaml joined 13:44 ggoebel left 13:46 JimmyZ left 13:49 ggoebel joined 13:50 daniel-s joined 13:53 ggoebel left 13:54 lumi left, lumi joined, nymacro left 13:55 nymacro joined 13:59 ggoebel joined 14:05 TiMBuS left 14:06 sivoais left 14:07 TiMBuS joined 14:08 sivoais joined, Shozan left 14:12 dukeleto left 14:13 dukeleto joined, OldCamelsHump2 left 14:16 Sarten-X left 14:19 hercynium joined 14:24 nsh_ joined, [sbp] joined, Sarten-X joined, TiMBuS left 14:26 tadam joined, TiMBuS joined 14:27 tadam left 14:29 tadam joined, tadam left 14:30 sbp is now known as sbp`, [sbp] is now known as sbp 14:32 phenny left
dalek ast: ef1d26d | sorear++ | S (7 files):
Miscellaneous niecza unfudges
14:33
14:33 phenny joined, lkundrak left 14:37 Sarten-X left 14:38 lumi left 14:39 koban` left, lumi joined 14:41 ymasory left, wtw left 14:45 sivoais left 14:46 sivoais joined 14:48 alester joined 14:56 Sarten-X joined 15:00 silug left 15:01 silug joined, tzhs left, phenny left, phenny joined 15:02 runeni left 15:03 kaare__ joined 15:07 daniel-s left 15:09 dukeleto left 15:10 Sarten-X left, dukeleto joined, dukeleto left 15:11 dukeleto joined, dukeleto left 15:12 dukeleto joined, dukeleto left, silug left 15:13 dukeleto joined, dukeleto left 15:14 dukeleto joined, dukeleto left, dukeleto joined, dukeleto left 15:15 dukeleto joined 15:17 Sarten-X joined, kaare__ left 15:18 lumi left, JimmyZ joined 15:19 lumi joined, kaare_ joined 15:21 bluescreen10 left 15:24 spq joined, Sarten-X left 15:26 Sarten-X joined 15:29 hanekomu left 15:34 kaare_ left, kaare__ joined 15:36 bluescreen10 joined 15:41 kaare__ left 15:42 daxim left 15:44 kaare__ joined 15:46 nsh left, sbp` left
colomon rakudo: say 10.im 15:46
p6eval rakudo 048573: OUTPUT«Method 'im' not found for invocant of class 'Int'␤ in main program body at line 22:/tmp/esBAPWVR2t␤»
15:52 Sarten-X left 15:53 nymacro left
isBEKaml rakudo: +"10".say 15:55
p6eval rakudo 048573: OUTPUT«10␤»
15:56 kaare__ left
TimToady um... 15:56
rakudo: +"phooey".say
p6eval rakudo 048573: OUTPUT«phooey␤»
15:56 MayDaniel joined
isBEKaml that's odd. I was thinking + should numify checking the types. 15:56
TimToady precedence
isBEKaml but the Sts() was hilarious :) 15:57
TimToady you're numifying the result of .say
isBEKaml rakudo: say +"foo"
p6eval rakudo 048573: OUTPUT«0␤»
isBEKaml expected? or should throw an error?
TimToady I believe it's currently specced to issue a warning 15:58
buubot_backup: use warnings; +"foo" 15:59
buubot_backup TimToady: Couldn't match input.
TimToady buubot_backup: eval: use warnings; +"foo"
buubot_backup TimToady: foo
TimToady duh
buubot_backup: eval: use warnings; 0+"foo"
buubot_backup TimToady: Argument "foo" isn't numeric in addition (+) at (eval 28) line 1. 0
isBEKaml yes, choice now lies between warning or an error. 16:00
TimToady well, there's two kind of error too
16:00 Sarten-X joined
isBEKaml I'd much rather the compiler throw back an error on something the programmer must have unwittingly done than believe he "does" the right thing. (Note, not DWIM) 16:01
TimToady *kinds
I'd much prefer that Perl 6 never throw where it could merely fail
16:01 lumi left 16:02 lumi joined
isBEKaml hmm, one thing I could think of is (web scenario) -- we are passing currencies/numeric data over http, basically strings and I'm trying to parse them taking the numerics, what if, at one position, it suddenly turns out that it is not actually a number? 16:03
16:04 ymasory joined
isBEKaml TimToady: should just fail or throw back an error? 16:06
TimToady depends on whether you're steering a rocket or estimating the national debt
but if you throw, you prevent the caller from just saying $result // 0 16:07
a failure gives that option, and will still throw if you later misuse the value 16:08
and the message should still indicate where the original failure occurred 16:09
"lazy throw" as it were
isBEKaml do we currently have a way of locating pos in error stack traces?
TimToady don't understand "locating pos"
16:09 thou joined
isBEKaml line numbers, details from code as to where exactly it failed than the error message programmed in. 16:10
IOW, more than $!
TimToady supposed to, but I think the API is part of what moritz++ is cleaning up 16:11
though in my mind the "position" of an error is more like an offset by characters, not a line number, or even a range of characters 16:12
isBEKaml I see that "fail and throw if more failure" is better than "just throw". It allows for propagation of error messages along the call trace.
TimToady well, that can be done by rethrowing too, but it's more cumbersome
16:13 Sarten-X left
isBEKaml I believe, by position, the offset/line number is provided by the host platform/VM that perl6 runs on. In the case of rakudo, parrot. 16:13
moritz isBEKaml: the idea is that you can access $!.backtrace.line and .file 16:14
isBEKaml moritz++ I dimly recall he was working on Exception API 16:15
moritz: ah, is that already in?
moritz isBEKaml: in the spec, yes
isBEKaml :-)
TimToady would like to point out once again that lines numbers should be derived from file positions 16:17
because how you count lines will depend on your Unicode culture 16:18
moritz TimToady: it may be derived from file positions
TimToady: but so far most tools support line numbers better than character or byte offsets into files
16:19 mj41 left
TimToady sure, I just don't want to lose information any sooner than we need to 16:19
isBEKaml TimToady: different editors have funky support for line numbers -- each sees them differently depending on the encoding.
16:20 Sarten-X joined
TimToady sure, S02:60 already mentions this 16:20
but for some reason, it's really hard to root out the old-fashioned thinking in this particular area 16:22
isBEKaml yeah, sorry. I never had to deal with unicode until now. Now that I'm seeing all these, I now feel like using my native language more. :) 16:24
TimToady Unicode is trying to do something impossible, and largely succeeding, except where it's largely failing :) 16:25
sounds like Perl 6 :)
isBEKaml one of the things unicode is failing at is, uniformly treating indic languages. :) (that's where we are at) 16:26
dalek p: 0cac59c | jonathan++ | src/ (3 files):
Give a struct a more generic name so we can re-use it in another case.
16:27
p: 1f9da88 | jonathan++ | src/6model/sixmodelobject.h:
Add container spec slot of the s-table. Also a little movement to get vaguely related s-table elements in chunks to try and get better cache line hits.
p: 5f29114 | jonathan++ | src/ops/nqp.ops:
Add is_container and nqp_decontainerize ops.
moritz drdobbs.com/tools/229700183 # I'm glad that we decided right from the start that Using Perl 6 shouldn't fall into either of those traps
dalek p: 1d75ccd | jonathan++ | src/ops/nqp.ops:
set_container_spec op.
p: 88f386d | jonathan++ | src/ops/nqp.ops:
Oops, fix thinko.
16:28 cdarroch joined, cdarroch left, cdarroch joined 16:30 birdwindupbird left
isBEKaml This explains issues better: en.wikipedia.org/wiki/Unicode#Indic_scripts 16:31
jnthn time for a little break &
16:32 JimmyZ left 16:33 Sarten-X left
dalek kudo/nom: 4a7ca65 | jnthn++ | src/binder/sixmodelobject.h:
Chase 6model API changes/extensions.
16:33
16:34 Sarten-X joined
isBEKaml moritz: ah, thanks for the link. I have the Odersky and K&R books with me. My google-fu must have failed in searching for Jolt award book reviews. :) 16:35
16:38 lumi left 16:39 cooper joined, lumi joined 16:42 masak joined
masak Guten Abend, Zebras. 16:42
isBEKaml masak: \o 16:43
masak: a new language a day? :)
masak heh :) 16:45
sounds like a nice general principle ;)
isBEKaml yeah, but hey, we can all learn! :)
colomon o/ 16:46
16:49 mj41 joined, jedai joined 16:52 jedai_ left 16:55 Tedd1 left
pmichaud good mor...afternoon, #perl6 16:55
masak good pm, pm.
today I learned that two of the original seven Bridges of Königsberg have been removed, actually making it possible to make a Eulerian path across the remaining bridges. if I'm ever in Kaliningrad, I must remember to do that. :) 16:56
16:57 Tedd1 joined
isBEKaml masak: you actually used two nouns that are old and new forms of the same thing. :) 16:58
masak: I was thinking, "what is Kalinin..." and had to look it up. :)
masak isBEKaml: oh, sorry. I thought that was common knowledge... :P 16:59
maybe it's just me and my fascination with exclaves in general.
pmichaud Maybe it's just you in general. :-) 17:00
masak :P
isBEKaml that's what masak++ said. ;)
why is it so difficult to find a way to input characters in my native language? 17:02
masak what's your native language?
isBEKaml even unicode.org lists it as one of the major issues apart from other indic languages. :(
tamil
I could just use online tools for it. e.g., quillpad.in 17:03
masak isBEKaml: I'm using Emacs for all my input method needs. Emacs LEIM lists tamil-inscript and tamil-itrans.
17:03 dakkar left
isBEKaml masak: but I wanted a way of using them like SCIM. 17:03
masak: I have never used emacs (huge packages scare me) 17:04
masak isBEKaml: the image on the Wikipedia article for SCIM lists Tamil. 17:05
Emacs isn't that big by current standards.
17:05 pernatiy left 17:06 dukeleto left 17:07 dukeleto joined
isBEKaml masak: I can see only chinese and japanese here. Maybe, what I have here is a default install. Will have to check more (Oddly enough, I did use SCIM before ~~ long enough for me to not even remember it) 17:08
masak I've never used SCIM, so I can't help, I'm afraid. 17:10
Google Translate doesn't do Tamil, it seems.
17:11 silug joined
isBEKaml quillpad.in/tamil 17:12
this is what I use, as an inplace editor. 17:13
17:13 orphu left
masak wow, Tamil is so pretty. :> 17:14
isBEKaml but darn difficult to encode/type in. :( (3 bytes for each character, actually)
I'm learning to use it electronically(for eg., I could contribute to more WP articles) regardless of the difficulty. :) 17:16
masak: learned that two of the original seven Bridges of Königsberg have been removed, actually making it possible to make a Eulerian path across 17:20
geez... 17:21
masak what? :)
isBEKaml masak: i.imgur.com/xddqS.png
masak: that says "Thank you, masak!"
:)
masak thanks for what? :)
isBEKaml simply 17:22
*shrugs* 17:23
masak heh
17:24 kfo joined
isBEKaml masak: I see bemusement. ;) 17:24
isBEKaml finds SCIM documentation wanting and lacking details 17:25
17:26 lumi left 17:27 lumi joined, kfo_ left 17:28 Sarten-X left 17:29 Sarten-X joined 17:35 lumi left 17:36 _twitch joined 17:42 Sarten-X left 17:46 fhelmberger left 17:49 dukeleto left, Chillance joined, dukeleto joined, dukeleto left 17:51 Sarten-X joined, dukeleto joined, dukeleto left 17:52 dukeleto joined, dukeleto left 17:54 dukeleto joined 17:56 colomon left, Sarten-X left 18:03 Sarten-X joined 18:25 colomon joined 18:28 impious joined 18:30 bluescreen10 left
masak rakudo: sub is-balanced($_ is copy) { s/'[]'// while /'[]'/; !.chars }; for "[[][]]", "[[]]]", "", "][" { say .&is-balanced } 18:30
p6eval rakudo 048573: OUTPUT«Bool::True␤Bool::False␤Bool::True␤Bool::False␤»
masak \o/
cotto_work Even with --gen-parrot --gen-nqp, I can't get the nom branch of Rakudo to build. 18:35
colomon cotto_work: what error do you get?
cotto_work colomon: nopaste.snit.ch/49221 18:36
colomon cotto_work: ah. Not one I've run into, alas. 18:38
masak me either. 18:43
18:43 mj41 left
jnthn looking 18:43
cotto_work: Do you have a leftover Perl6 directory in your build tree? Try nuking that... 18:44
18:44 mtk left 18:45 mtk joined
cotto_work jnthn: that seems to be working 18:48
jnthn :)
cotto_work thanks
18:50 Tedd1 left 18:51 envi_laptop left 18:52 dukeleto left, dukeleto joined
moritz now gets a segfault building nom 18:55
moritz cleans out and tries again
18:56 ggoebel left 18:57 Lorn is now known as Lorn_
jnthn moritz: Need new nqp also 18:57
18:57 Lorn_ is now known as Lorn 18:58 Sarten-X left 19:02 mkramer joined, _twitch left 19:05 Sarten-X joined
moritz jnthn: still segfaults (with --gen-parrot --gen-nqp) 19:05
jnthn: gist.github.com/1003037 19:06
19:07 dukeleto left 19:08 dukeleto joined, dukeleto left
szabgab apparently the rakudo installation is missing a file called libgcc_s_sjlj-1.dll 19:08
this can be found in c:\strawberry but not in the rakudo build directory
19:08 dukeleto joined, dukeleto left 19:09 dukeleto joined, dukeleto left, isBEKaml left, dukeleto joined, dukeleto left 19:10 dukeleto joined, dukeleto left
jnthn moritz: ouch. That's...a weird one. :( 19:11
19:11 dukeleto joined, dukeleto left, ymasory left 19:12 dukeleto joined, dukeleto left, dukeleto joined, dukeleto left 19:13 dukeleto joined, dukeleto left, dukeleto joined, dukeleto left 19:14 dukeleto joined, dukeleto left 19:15 molaf joined, molaf left 19:16 dukeleto joined, dukeleto left 19:17 dukeleto joined, dukeleto left, impious left 19:18 dukeleto joined, dukeleto left 19:19 dukeleto joined, dukeleto left, dukeleto joined, dukeleto left 19:20 dukeleto joined, dukeleto left, dukeleto joined 19:21 dukeleto left 19:22 dukeleto joined, dukeleto left, dukeleto joined, dukeleto left 19:23 dukeleto joined, dukeleto left, mj41 joined, dukeleto joined, tadam joined, hercynium left 19:25 slavik1 left
moritz not the usual gc-burns-our-objects segfault 19:28
szabgab moritz: I am uploading a new .exe file
could you please add it to the download directory (and remove the other file) 19:29
moritz szabgab: please give it a new name (not just replace the old one9
szabgab sure
it will have a different name
moritz szabgab: don't you have commit access already?
19:29 frettled left
szabgab let me see 19:29
19:32 orphu joined
szabgab I don't think I have commit bit 19:32
on guthub I can only see http and read-only access 19:33
moritz ok, I'll upload it for you
19:34 Sarten-X left
szabgab this is the file perlide.org/download/rakudo-star-2011.04.v2.exe 19:34
and if I can get commit bit then later I'll do it myself and can also add the config file and the howto file 19:35
anyway, now sleep & 19:36
19:36 Sarten-X joined, frettled joined 19:38 dukeleto left
jnthn moritz: No, and I can't reproduce it here :( 19:39
19:39 dukeleto joined, dukeleto left
jnthn moritz: You certainly got a clean build of latest nqp and nom? 19:39
And no Perl6 directory left over?
19:39 dukeleto joined, dukeleto left 19:40 dukeleto joined, dukeleto left
moritz no Perl6 dir left over 19:41
19:42 dukeleto joined, dukeleto left, dukeleto joined, dukeleto left, Schwern joined 19:43 dukeleto joined, dukeleto left
moritz does a really real clean 19:43
19:43 Schwern left
jnthn crosses his fingers 19:43
19:44 Sarten-X left, dukeleto joined, dukeleto left 19:45 dukeleto joined, dukeleto left, mkramer left 19:46 dukeleto joined, dukeleto left 19:49 dukeleto joined, dukeleto left 19:50 dukeleto joined, dukeleto left 19:51 dukeleto joined, dukeleto left, Sarten-X joined, dukeleto joined, dukeleto left 19:52 dukeleto joined, dukeleto left 19:54 dukeleto joined, dukeleto left
sorear good * #perl6 19:54
sleep is *not* being good to me today...
moritz still segfaulting :( 19:55
jnthn moritz: :(
moritz: trying on another box.
19:55 dukeleto joined, dukeleto left
moritz I git-clean'ed rakudo, nqp and parrot and ran perl Configure.pl --gen-parrot --gen-nqp && make 19:55
19:55 Sarten-X left 19:57 dukeleto joined, dukeleto left, dukeleto joined, dukeleto left, Sarten-X joined 19:58 dukeleto joined, dukeleto left, dukeleto joined, dukeleto left 19:59 dukeleto joined, dukeleto left, dukeleto joined, dukeleto left 20:00 dukeleto joined, dukeleto left, Eevee left, dukeleto joined 20:07 Eevee joined 20:16 tadam left 20:18 mkramer1 joined
dalek ecza: f9e93e4 | (Solomon Foster)++ | / (3 files):
Add bif_abs, bif_complex_re, and bif_complex_im, typing them to prefix:<abs>, Complex.re, and Complex.im respectively. Error conditions for big_complex_re and bif_complex_im applied to non-complex objects are wrong, but I'm not sure if that can ever come into play in practice.

Also added abs_test.pl with quick tests of these methods.
20:19
ecza: 3f05979 | sorear++ | lib/Builtins.cs:
Simplify complex_re and complex_im, add [fat]?rat_[nu|de] for good measure.
ecza: 99f6bc3 | sorear++ | / (2 files):
Move abs tests into test2.pl where they belong.
20:24 wknight8111 left
sorear masak: o/ 20:26
masak sorear: \o 20:27
20:29 MayDaniel left 20:32 kanishka joined
dalek ecza: e2a35a1 | sorear++ | / (2 files):
FatRat.new, FatRat abs tests, bind numerator/denominator to Perl
20:32
20:34 mj41 left, Sarten-X left 20:36 Sarten-X joined 20:37 hudnix left 20:43 kanishka left 20:52 [hercynium] joined 20:53 [hercynium] left 20:59 hanekomu joined 21:02 MayDaniel joined
sorear rakudo: (sub () { ... }).defined.say 21:02
p6eval rakudo 048573: OUTPUT«Bool::True␤»
sorear rakudobug? S32/Callable:50
moritz: what's the syntax for linking to S32xxx? 21:03
21:06 bluescreen10 joined
masak lol! I blogged! strangelyconsistent.org/blog/june-1...and-output 21:16
jnthn Great! I can learn to program! \o/ 21:17
;)
masak sorear: huh, wow. I don't think I've read that part of S32 before. :) 21:18
jnthn masak++ # explains stuff simply
masak I had assumed up until now that Routines were always defined.
jnthn Me too
I thought .yada was the way you asked if something was ...'d. 21:19
masak ooh :)
tadzik hello zebras
jnthn I'd probably prefer it to be that way.
o/ tadzik
masak tadzik: hello little panda :)
tadzik what a ridiculous day
masak jnthn: yeah, me too. 21:20
tadzik: ISP trouble?
jnthn tadzik: Another beer ticket?
tadzik yes, no
net was down for a day or something, and I've been learning Information Theory the whole day 21:21
masak how appropriate.
jnthn hun, your ISP didn't work, and you didn't use the day to drink beer? :)
*huh
masak thought "hun" does express the right kind of concern here :P 21:22
jnthn :P
tadzik it may be the most interesting subject I had so far, yet it's so badly lectured I didn't pay attention to it at all. It's about encoding data, related to telecommunication and teletransmission I think. Shannon, Hamming, Huffman, those sort of guys
jnthn "the keys are right next to each other!"
masak jnthn: you can hun, but you can't hide :)
tadzik it's sad that the system spoiled the subject with ridiculous labolatories and LTA classes. I really enjoyed learning it today 21:23
jnthn :P
tadzik aw, whatever :) 21:24
how is nom doing?
jnthn tadzik: Mostly design progress today
tadzik pulls 21:25
also, ISP was down so badly that when I called them, the connection didn't make it due to overload on the line :) 21:26
21:28 bluescreen10 left
jnthn tadzik: Clear up Perl6 directory and get latest nqp build also :) 21:28
moritz is seeing a SEGV at the end of the build :(
masak ooh: Shannon's maxim: "The enemy knows the system" -- I *like* that :)
jnthn Didn't reproduce here yet.
masak decides to learn some more about Rakudo :) 21:29
sorear hello masak 21:30
sorear checks the blogs 21:31
tadzik Cannot fetch object from non-existant serialization context 1306782074.42145
make realclean left it or something?
oh, some leftover pbcs
jnthn tadzik: that'll do it
tadzik: I'll awesomize that error when I get around to it.
sorear masak: IME edublogs *really* *really* *really* need a way for users to ask questions 21:32
tadzik no worries
jnthn it should be like "Yo dawg, you gave me an out of date copy of Foo.pm!"
sorear masak: so I suggest at least adding a disqus link oslt
masak disqus? 21:33
sorear it's a web service that hosts comments for static-HTML blogs
masak ooh
tadzik ./perl6 -e 'say "Hello world!"' 0,25s user 0,03s system 99% cpu 0,281 total 21:35
I know it's notmuch, but it looks nice :)
Tene sorear: what sort of questions?
tadzik compared to like 1.5 on master
sorear masak: example: whiteknight.github.com/2011/02/08/g...sweep.html 21:36
jnthn tadzik: Is that nom?
sorear I haven't actually done any research beyond reading whiteknight's blog; it might be a pay service, in which case nevermind
jnthn tadzik: As in, you got a working build of it? 21:37
sorear Tene: things masak thinks are obvious and it never occurred to em to write, but the readership disagrees
Tene: was it you who pointed me to EY's qm edublogging? that's what I'm thinking of
tadzik jnthn: yes, yes
jnthn tadzik: OK...I wonder what makes mortiz's environment special... 21:38
tadzik segfault, yep?
jnthn yeah.
Tene sorear: I don't understand "edublogging" actually
tadzik strange
Tene I thoguht it was a typo for "debuglog" at first
masak sorear: I think you're right, and I'll think of something to do about it. don't know what just yet.
sorear Tene: portmanteau, education, blogging
Tene: strangelyconsistent.org/blog/a-mont...ndamentals 21:39
jnthn tadzik: 32 or 64? 21:41
oh, I think I reproduced.
masak TMI
jnthn xkcd.com/583/ :P 21:42
tadzik jnthn: 64
masak 'night, #perl6
jnthn tadzik: ah, ok
o/ masak
21:42 masak left
jnthn tadzik: I've got it on 32 so...hmm. 21:43
But only on one of my machines.
tadzik planet python impressed with Perl 6: twitter.com/#!/planetpython/status/...8483689473 :) 21:44
jnthn: I'm pretty far from my 32 machine
unfortunately. It has a kickass monitor :)
jnthn tadzik: no wories 21:45
oh, hang on...the failure I have isn't a segfault
21:46 Psyche^ joined 21:50 Patterner left, Psyche^ is now known as Patterner 21:53 aindilis left 21:54 aindilis joined 21:55 Sarten-X left, hanekomu left 21:58 Mowah_ left 22:01 Sarten-X joined 22:03 alester left 22:11 Mowah left 22:16 huf left 22:22 stepnem left 22:23 Sarten-X left 22:31 huf joined 22:32 stepnem joined
dalek ecza: 212ba4d | sorear++ | / (8 files):
Sub is now a hierarchy of speccish classes
22:38
colomon niecza: say (1 / (2 ** 200)).WHAT 22:41
p6eval niecza v6-25-ge2a35a1: OUTPUT«Num()␤»
colomon niecza: say (1 / (2 ** 6)).WHAT
p6eval niecza v6-25-ge2a35a1: OUTPUT«Rat()␤»
colomon niecza++
22:44 icwiener left 22:49 donri left
sorear hello colomon. 22:51
colomon o/
sorear wonders whether to reinstate $?ORIG
it fell off - I think during the metamodle work around v2 - it wouldn't be hard to readd - but it would significantly hurt executable sizes 22:52
22:53 orphu left
sorear since it requires adding a copy of 200kb of source code, STD.dll would go from 1.5M to 1.7M 22:53
colomon When I drove to the doctor's office this afternoon, I was pondering how to merge your system for handling numbers with the Numeric and Real roles.
would the additional size slow things down? 22:54
sorear downloads, probably
well, yes, it would
but that's fixable
for silly mutability control reasons the CLR forces me to memcpy() the entire serialization blob into a fresh buffer before using it, which breaks demand paging 22:55
but I could have a private blob for this 22:56
22:56 jfried left
sorear - 22:56
so, Numeric and Real? 22:57
colomon the roles, yeah.
sorear I got as far as I did on numbers only by punting "I can think about extensibility later"
I'd be interested in hearing your thoughts on this
colomon I think it comes down to figuring out how to allow the native types to instantiate the roles in a graceful fashion. 22:59
sorear Native types?
colomon I'm presuming that there are nice performance benefits to figuring out what math type we have in the C# code instead of in p6?
sorear yes
colomon native types, I mean like what you're doing with BigInteger there. 23:00
sorear what I've already thought is that (for concreteness) Builtins.bif_plus is tantamount to a multi dispatcher
so it would make some sense to say 23:01
proto infix:<+>($a,$b) is specialized('bif_plus') { }
mutli infix:<+>(Int $a, Int $b) { $a + $b }
...
now, if the user defines any new <+> multi, bif_plus is not used directly; instead the multi dispatcher picks the type case 23:02
this relies on the aritmetic operations being lexical though
colomon interesting 23:03
sorear it's only a half-baked idea
colomon I was imagining something like a Native role which the bif_plus types did, and then... 23:04
sorear (also, there is a LOT of room for optimization in the MMD system. Starting with caching the sorted dispatch list.)
colomon multi infix:<+>(Native $a, Native $b) { call bif_plus }
multi infix:<+>(Numeric $a, Numeric $b) { slower generic method }
but that's a half-baked idea too. :) 23:05
sorear colomon: that seems even better, but I'm not sure how it would interact with the spec. It seems like the nature of multi dispatch and tie-checking makes candidate lists part of the API.
colomon: what would you put in the Numeric,Numeric case?
colomon actually, probably nothing in Numeric, Numeric, now that I think about it. 23:06
Real, Real would be the classic example; in Rakudo, it's { $a.Bridge + $b.Bridge } 23:07
which is a workable solution for types we don't know about.
sorear .Bridge coerces to the best "core" numeric type? 23:08
colomon "It seems like the nature of multi dispatch and tie-checking makes candidate lists part of the API." I'm not 100% sure what you mean by that, but it sounds suspiciously like something that might be worth getting the spec to relax if it gives big win in performance?
.Bridge coerces to the "best" "core" type, yes. Num in Rakudo. 23:09
I thought it might make sense to make it FatRat if that was available, but obviously that will be slower.
it's an interesting question whether "best" should be "most accurate" or "fastest". 23:10
and it might make sense to leave that to the compiler developer, too.
I've got to run for a bit, time to put the little guy to bed. (His mom is quizzing him on Scottish folk song lyrics at the moment.) 23:11
dalek kudo/nom: 5a8d894 | jnthn++ | / (3 files):
Stub in ContainerDescriptor and Scalar.
kudo/nom: ca2d5a2 | jnthn++ | / (3 files):
Start to sketch out some container primitives/fast-path for Scalar.
kudo/nom: af85c29 | jnthn++ | src/ (2 files):
Communicate the built-in Scalar type to things that need to know it.
23:20 hudnix joined
sorear pugs: say $?POSITION 23:30
p6eval pugs: OUTPUT«/tmp/ptP2YDPn24 line 1, column 5 - line 2, column 1␤»
23:36 ymasory joined 23:43 MayDaniel left 23:47 tty234 joined, _jaldhar joined, _jaldhar left 23:49 cdarroch left 23:52 _jaldhar joined, _jaldhar left
jnthn sleep & 23:53
23:57 _jaldhar joined, _jaldhar left