»ö« 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: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.
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
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
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
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
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++
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.)
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
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: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
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)
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
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
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
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: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++)
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
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
ecza: 774d996 | sorear++ | src/ (2 files):
Allow using lexicals across lines in REPL
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
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
(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
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 ?
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
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.